PyTorch, TensorFlow, এবং Keras মডেলগুলি ONNX (Open Neural Network Exchange) ফরম্যাটে রূপান্তর করা একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা বিভিন্ন ফ্রেমওয়ার্কের মধ্যে মডেলগুলির ব্যবহার এবং বিনিময় সহজ করে। নিচে এই তিনটি ফ্রেমওয়ার্ক থেকে ONNX-এ মডেল রূপান্তরের পদ্ধতি আলোচনা করা হলো।
১. PyTorch থেকে ONNX এ রূপান্তর
PyTorch মডেলকে ONNX ফরম্যাটে রূপান্তর করতে নিচের স্টেপগুলি অনুসরণ করুন:
ধাপ ১: PyTorch মডেল তৈরি করা
import torch
import torchvision.models as models
# মডেল তৈরি করুন (উদাহরণস্বরূপ, ResNet18)
model = models.resnet18(pretrained=True)
model.eval() # মডেলটিকে ইভ্যালুয়েশন মোডে সেট করুন
# ইনপুট টেনসর তৈরি করুন
dummy_input = torch.randn(1, 3, 224, 224) # (ব্যাচ সাইজ, চ্যানেল, উচ্চতা, প্রস্থ)
ধাপ ২: ONNX ফাইল তৈরি করা
# ONNX ফাইল সেভ করুন
torch.onnx.export(model, dummy_input, "resnet18.onnx",
export_params=True,
opset_version=11, # অপারেশন সেটের সংস্করণ
do_constant_folding=True, # কনস্ট্যান্ট ফোল্ডিং
input_names=['input'], # ইনপুটের নাম
output_names=['output'], # আউটপুটের নাম
dynamic_axes={'input': {0: 'batch_size'}, # ব্যাচ সাইজ ডায়নামিক
'output': {0: 'batch_size'}})
২. TensorFlow/Keras থেকে ONNX এ রূপান্তর
TensorFlow/Keras মডেলকে ONNX ফরম্যাটে রূপান্তর করতে tf2onnx লাইব্রেরি ব্যবহার করা হয়।
ধাপ ১: TensorFlow/Keras মডেল তৈরি করা
import tensorflow as tf
from tensorflow.keras import layers, models
# Keras মডেল তৈরি করুন
model = models.Sequential([
layers.Conv2D(32, (3, 3), activation='relu', input_shape=(224, 224, 3)),
layers.MaxPooling2D(),
layers.Flatten(),
layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
ধাপ ২: ONNX ফাইল তৈরি করা
pip install tf2onnx
import tf2onnx
# Keras মডেল থেকে ONNX ফাইল তৈরি করুন
onnx_model = tf2onnx.convert.from_keras(model, output_path="model.onnx")
৩. TensorFlow SavedModel থেকে ONNX এ রূপান্তর
আপনি TensorFlow SavedModel ব্যবহার করে ONNX ফাইল তৈরি করতে পারেন।
# SavedModel ফোল্ডারে মডেল সেভ করুন
model.save("saved_model")
# SavedModel থেকে ONNX ফাইল তৈরি করুন
import tf2onnx
onnx_model = tf2onnx.convert.from_saved_model("saved_model", output_path="model.onnx")
উপসংহার
PyTorch, TensorFlow, এবং Keras মডেলগুলি ONNX ফরম্যাটে রূপান্তর করা একটি সহজ প্রক্রিয়া। ONNX ব্যবহার করে, আপনি বিভিন্ন ফ্রেমওয়ার্কের মধ্যে মডেলগুলি স্থানান্তর এবং ব্যবহার করতে পারেন, যা গবেষণা এবং ডেভেলপমেন্টের জন্য গুরুত্বপূর্ণ।
Read more