মডেল Export করা (ONNX বা অন্যান্য ফরম্যাট)

Caffe2 তে মডেল Export এবং Deployment - ক্যাফে২ (Caffe2) - Machine Learning

353

মডেল এক্সপোর্ট করার প্রক্রিয়াটি মেশিন লার্নিং মডেল ট্রেনিং শেষ করার পর, মডেলটিকে ব্যবহারযোগ্য ফরম্যাটে রূপান্তর করার প্রক্রিয়া। এর মাধ্যমে মডেলটি অন্যান্য সিস্টেমে বা প্রোডাকশন পরিবেশে সহজেই ডিপ্লয় করা যায়। ONNX (Open Neural Network Exchange) একটি জনপ্রিয় স্ট্যান্ডার্ড ফরম্যাট, যা মডেলগুলিকে বিভিন্ন ফ্রেমওয়ার্কের মধ্যে স্থানান্তর করতে সাহায্য করে।

1. ONNX ফরম্যাটে মডেল এক্সপোর্ট (Caffe2, PyTorch)

ONNX হল একটি ওপেন সোর্স ফরম্যাট যা বিভিন্ন মেশিন লার্নিং ফ্রেমওয়ার্কের মধ্যে মডেল স্থানান্তরের সুবিধা দেয়। এটি PyTorch, Caffe2, TensorFlow, Microsoft Cognitive Toolkit (CNTK) ইত্যাদি ফ্রেমওয়ার্কের মধ্যে সমন্বয়কারী হিসেবে কাজ করে।

Step 1: PyTorch থেকে ONNX ফরম্যাটে মডেল এক্সপোর্ট

PyTorch মডেলকে ONNX ফরম্যাটে এক্সপোর্ট করার জন্য torch.onnx.export() ফাংশন ব্যবহার করা হয়।

PyTorch মডেল এক্সপোর্ট করার উদাহরণ:

import torch
import torch.onnx
import torchvision.models as models

# PyTorch প্রি-ট্রেইনড মডেল লোড করা
model = models.resnet18(pretrained=True)
model.eval()  # মডেলকে evaluation মোডে সেট করা

# Dummy input তৈরি করা (input shape অনুযায়ী)
dummy_input = torch.randn(1, 3, 224, 224)

# মডেল এক্সপোর্ট করা ONNX ফরম্যাটে
onnx_file_path = "resnet18.onnx"
torch.onnx.export(model, dummy_input, onnx_file_path)

print(f"মডেল এক্সপোর্ট হয়েছে: {onnx_file_path}")

Step 2: ONNX মডেল লোড এবং প্রিন্ট করা (ONNX ফাইল)

একবার মডেল ONNX ফরম্যাটে এক্সপোর্ট হয়ে গেলে, আপনি এটি ONNX লোডার দিয়ে লোড এবং যাচাই করতে পারেন।

import onnx

# ONNX মডেল লোড করা
onnx_model = onnx.load(onnx_file_path)

# মডেল যাচাই করা
onnx.checker.check_model(onnx_model)

print("ONNX মডেল যাচাই সফল!")

2. Caffe2 তে মডেল এক্সপোর্ট (ONNX)

Caffe2 তে ONNX মডেল ইমপোর্ট এবং এক্সপোর্ট করার জন্য Caffe2 এর ONNX সাপোর্ট ব্যবহার করা হয়।

Step 1: ONNX মডেল লোড এবং Caffe2 তে এক্সপোর্ট

Caffe2 তে ONNX মডেল লোড করার জন্য onnx_caffe2_backend ব্যবহার করা হয়। উদাহরণ:

import onnx
from caffe2.python.onnx import backend

# ONNX মডেল লোড করা
onnx_model = onnx.load("resnet18.onnx")

# Caffe2 এর জন্য মডেল প্রস্তুত করা
caffe2_backend = backend.prepare(onnx_model)

# Caffe2 এ মডেল রান করা
output = caffe2_backend.run(["input"])[0]
print(output)

3. TensorFlow থেকে ONNX ফরম্যাটে মডেল এক্সপোর্ট

TensorFlow থেকে ONNX ফরম্যাটে মডেল এক্সপোর্ট করার জন্য tf2onnx লাইব্রেরি ব্যবহার করা হয়। এটি TensorFlow মডেলকে ONNX ফরম্যাটে রূপান্তর করতে সহায়তা করে।

Step 1: tf2onnx ইনস্টল করা

pip install tf2onnx

Step 2: TensorFlow মডেল এক্সপোর্ট করা

import tf2onnx
import tensorflow as tf

# TensorFlow মডেল লোড করা (প্রি-ট্রেইনড মডেল ব্যবহার করা)
model = tf.keras.applications.MobileNetV2(weights='imagenet')

# TensorFlow মডেল থেকে ONNX মডেল এক্সপোর্ট করা
onnx_model = tf2onnx.convert.from_keras(model)

# ONNX ফাইলে সংরক্ষণ করা
onnx.save_model(onnx_model, 'mobilenetv2.onnx')

4. Keras থেকে ONNX ফরম্যাটে মডেল এক্সপোর্ট

Keras মডেলকে ONNX ফরম্যাটে রূপান্তর করতে onnxmltools ব্যবহার করা হয়।

Step 1: onnxmltools ইনস্টল করা

pip install onnxmltools

Step 2: Keras মডেল থেকে ONNX ফরম্যাটে এক্সপোর্ট

import onnxmltools
import keras
from keras.applications import VGG16

# Keras মডেল লোড করা
model = VGG16(weights='imagenet')

# Keras মডেলকে ONNX ফরম্যাটে রূপান্তর করা
onnx_model = onnxmltools.convert.from_keras(model)

# ONNX মডেলে সংরক্ষণ করা
onnxmltools.utils.save_model(onnx_model, 'vgg16.onnx')

5. অন্যান্য মডেল এক্সপোর্ট ফরম্যাট

SavedModel (TensorFlow):

TensorFlow মডেলকে SavedModel ফরম্যাটে এক্সপোর্ট করতে, আপনি model.save() ফাংশন ব্যবহার করতে পারেন:

# TensorFlow মডেলকে SavedModel ফরম্যাটে সংরক্ষণ
model.save('saved_model/my_model')

H5 (Keras):

Keras মডেলকে H5 ফরম্যাটে এক্সপোর্ট করতে, আপনি model.save() ব্যবহার করতে পারেন:

# Keras মডেলকে H5 ফরম্যাটে সংরক্ষণ
model.save('my_model.h5')

সারাংশ:

  • ONNX ফরম্যাট মডেল এক্সপোর্ট করার জন্য একটি মানক এবং ওপেন সোর্স ফরম্যাট, যা বিভিন্ন মেশিন লার্নিং ফ্রেমওয়ার্কের মধ্যে মডেল স্থানান্তর করতে সহায়তা করে।
  • PyTorch, TensorFlow, Keras এবং Caffe2 এর মধ্যে মডেল এক্সপোর্ট এবং ইমপোর্ট করার জন্য ONNX ব্যবহার করা হয়।
  • PyTorch এবং TensorFlow থেকে ONNX মডেল এক্সপোর্ট করার জন্য বিশেষ লাইব্রেরি এবং ফাংশন ব্যবহার করা হয় (যেমন torch.onnx.export() এবং tf2onnx বা onnxmltools)।
  • অন্য ফরম্যাট যেমন SavedModel (TensorFlow) এবং H5 (Keras) এর জন্য তাদের নিজস্ব এক্সপোর্ট পদ্ধতি রয়েছে।

এই পদ্ধতিগুলি আপনাকে মডেল এক্সপোর্ট করতে এবং প্রোডাকশনে সহজে ডিপ্লয় করতে সাহায্য করবে।

Content added By
Promotion

Are you sure to start over?

Loading...