মডেল Export করা (HDF5, SavedModel)

Model Deployment এবং Production - কেরাস (Keras) - Machine Learning

333

Keras এবং TensorFlow ব্যবহার করে প্রশিক্ষিত মডেলগুলোকে সংরক্ষণ এবং এক্সপোর্ট করা অত্যন্ত গুরুত্বপূর্ণ, কারণ এতে প্রশিক্ষণ শেষ হওয়ার পর মডেলটি ভবিষ্যতে পুনরায় ব্যবহার বা ডিপ্লয় করা সম্ভব হয়। Keras এবং TensorFlow দুইটি জনপ্রিয় ফরম্যাটে মডেল সংরক্ষণ করতে সহায়তা করে:

  1. HDF5 ফরম্যাট (.h5)
  2. SavedModel ফরম্যাট (TensorFlow এর native format)

উপরের দুটি ফরম্যাটই মডেল এক্সপোর্টের জন্য জনপ্রিয় এবং তাদের প্রতিটির সুবিধা রয়েছে। চলুন, এই দুইটি ফরম্যাটে কিভাবে মডেল এক্সপোর্ট করা যায় এবং তাদের মধ্যে পার্থক্য কি তা দেখি।


১. HDF5 ফরম্যাটে মডেল এক্সপোর্ট

HDF5 (Hierarchical Data Format version 5) একটি সাধারণ ফাইল ফরম্যাট যা মডেল, ওজন, কনফিগারেশন এবং অন্যান্য গুরুত্বপূর্ণ তথ্য সংরক্ষণের জন্য ব্যবহৃত হয়। এটি সাধারণত .h5 এক্সটেনশন ব্যবহার করে।

মডেল HDF5 ফরম্যাটে সংরক্ষণ করা:

# মডেল তৈরি করা
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

model = Sequential([
    Dense(64, activation='relu', input_dim=10),
    Dense(1, activation='sigmoid')
])

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# মডেল প্রশিক্ষণ
model.fit(X_train, y_train, epochs=5, batch_size=32)

# মডেল HDF5 ফরম্যাটে সংরক্ষণ করা
model.save('model.h5')  # মডেলটি 'model.h5' নামে ফাইল হবে

এই model.save('model.h5') কমান্ডটি পুরো মডেলটি (আর্কিটেকচার, প্যারামিটার, ওয়েটস এবং কনফিগারেশন) HDF5 ফরম্যাটে সংরক্ষণ করবে।

HDF5 ফরম্যাটে সংরক্ষিত মডেল লোড করা:

from tensorflow.keras.models import load_model

# HDF5 ফরম্যাট থেকে মডেল লোড করা
loaded_model = load_model('model.h5')

# মডেল ব্যবহার করা
loaded_model.predict(X_test)

২. SavedModel ফরম্যাটে মডেল এক্সপোর্ট

SavedModel হল TensorFlow এর নিজস্ব ফরম্যাট এবং এটি TensorFlow ভিত্তিক পরিবেশে মডেল ডিপ্লয়মেন্টের জন্য আরও সুবিধাজনক। SavedModel ফরম্যাটে মডেল সংরক্ষণ করা হলে, এটি একটি ডিরেক্টরি হিসেবে সংরক্ষিত হয়, যাতে মডেল সম্পর্কিত সমস্ত ফাইল এবং মেটাডেটা থাকে।

মডেল SavedModel ফরম্যাটে সংরক্ষণ করা:

# মডেল তৈরি করা
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

model = Sequential([
    Dense(64, activation='relu', input_dim=10),
    Dense(1, activation='sigmoid')
])

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# মডেল প্রশিক্ষণ
model.fit(X_train, y_train, epochs=5, batch_size=32)

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

এই model.save('saved_model/my_model') কমান্ডটি পুরো মডেলটি (আর্কিটেকচার, প্যারামিটার, ওয়েটস এবং কনফিগারেশন) একটি ডিরেক্টরি হিসেবে সংরক্ষণ করবে।

SavedModel ফরম্যাটে সংরক্ষিত মডেল লোড করা:

from tensorflow.keras.models import load_model

# SavedModel ফরম্যাট থেকে মডেল লোড করা
loaded_model = load_model('saved_model/my_model')

# মডেল ব্যবহার করা
loaded_model.predict(X_test)

HDF5 এবং SavedModel এর মধ্যে পার্থক্য

বৈশিষ্ট্যHDF5 ফরম্যাটSavedModel ফরম্যাট
ফরম্যাটএকটি একক .h5 ফাইলএকটি ডিরেক্টরি (প্রত্যেকটি ফাইল আলাদা থাকে)
পোর্টেবিলিটিঅন্যান্য লাইব্রেরি এবং প্ল্যাটফর্মে সহজে ব্যবহারযোগ্যTensorFlow এর জন্য উপযুক্ত
ডিপ্লয়মেন্টসহজ, তবে কিছু TensorFlow নির্ভর কাজের জন্য উপযুক্ত নয়TensorFlow পরিবেশে ডিপ্লয়মেন্টের জন্য আদর্শ
মডেল ভার্সনিংএকক ফাইল ব্যবহারের জন্য সহজভার্সনিং এবং কমপ্লেক্স মডেল ডিপ্লয়মেন্টে সুবিধাজনক

কিভাবে কোন ফরম্যাটে মডেল সংরক্ষণ করবেন?

  • HDF5 ফরম্যাটে মডেল সংরক্ষণ করা সাধারণত মডেল ডেভেলপমেন্ট এবং শেয়ারিং এর জন্য উপযুক্ত।
  • SavedModel ফরম্যাটটি TensorFlow পরিবেশে ব্যবহারের জন্য আদর্শ, বিশেষ করে যখন আপনি TensorFlow Serving বা TensorFlow Lite এর মাধ্যমে ডিপ্লয় করতে চান।

সারাংশ

  • HDF5 ফরম্যাট: এটি সাধারণত .h5 এক্সটেনশনে মডেল সংরক্ষণ করে এবং মডেল, ওয়েটস এবং কনফিগারেশন সব কিছু একটি একক ফাইলে রাখে। এটি বহিরাগত টুলস বা লাইব্রেরির জন্য খুবই উপযুক্ত।
  • SavedModel ফরম্যাট: এটি TensorFlow এর native ফরম্যাট, যা একটি ডিরেক্টরির মাধ্যমে সংরক্ষণ করা হয় এবং TensorFlow পরিবেশে ডিপ্লয়মেন্টের জন্য সুবিধাজনক। এটি উন্নত বৈশিষ্ট্য এবং কমপ্লেক্স ডিপ্লয়মেন্টের জন্য উপযুক্ত।

এই দুই ফরম্যাটে মডেল এক্সপোর্ট করা আপনার প্রয়োজন অনুসারে নির্ভর করবে, তবে TensorFlow এর কাজের জন্য SavedModel ব্যবহার করা অনেক সময় ভালো বিকল্প।

Content added By
Promotion

Are you sure to start over?

Loading...