TensorFlow Hub থেকে Pretrained মডেল লোড করা

TensorFlow Hub এবং Pretrained মডেল - টেন্সরফ্লো (TensorFlow) - Machine Learning

388

TensorFlow Hub একটি গ্রন্থাগার যা আপনি pre-trained models সহজেই ব্যবহার করতে পারেন এবং তাদের ভিত্তিতে নতুন মডেল তৈরি করতে পারেন। TensorFlow Hub এর মাধ্যমে আপনি pre-trained models ব্যবহার করে সময় বাঁচাতে পারেন, যেগুলি অন্যান্য ডেটাসেটগুলিতে প্রশিক্ষিত হয়ে থাকে এবং আপনি সেগুলিকে আপনার মডেলে ইন্টিগ্রেট করতে পারেন।

এখানে, আমি TensorFlow Hub থেকে একটি pre-trained model লোড করার এবং সেটি ব্যবহার করার জন্য একটি ধাপে ধাপে গাইড দিচ্ছি।


ধাপ ১: প্রয়োজনীয় লাইব্রেরি ইনস্টল করা

প্রথমে আপনার সিস্টেমে TensorFlow এবং TensorFlow Hub ইনস্টল করতে হবে।

pip install tensorflow tensorflow-hub

ধাপ ২: মডেল লোড করা

এখন, আপনি TensorFlow Hub থেকে একটি pre-trained model লোড করতে পারেন। এখানে আমরা একটি Image Classification মডেল, যেমন MobileNetV2 লোড করব।

import tensorflow as tf
import tensorflow_hub as hub
import numpy as np
import matplotlib.pyplot as plt

# Pre-trained model URL from TensorFlow Hub
model_url = "https://tfhub.dev/google/tf2-preview/mobilenet_v2/classification/4"

# Load the pre-trained model
model = hub.KerasLayer(model_url)

# Print model summary
model.summary()

এখানে, MobileNetV2 একটি জনপ্রিয় pre-trained model যা Image Classification-এর জন্য ব্যবহৃত হয়।


ধাপ ৩: ইনপুট ডেটা প্রক্রিয়া করা

মডেলটি এক্সপেক্টেড ইনপুট আকারের (যেমন: 224x224 পিক্সেল) একটি ছবি নিতে পারে। তাই আপনাকে আপনার ইনপুট ইমেজটি সঠিক আকারে রিসাইজ এবং প্রক্রিয়া করতে হবে।

# Example image URL (can be any image)
image_path = "path_to_your_image.jpg"

# Load image
img = tf.io.read_file(image_path)
img = tf.image.decode_jpeg(img, channels=3)  # decode the image into a tensor
img = tf.image.resize(img, [224, 224])  # Resize the image to match model's expected input
img = img / 255.0  # Normalize the image to [0, 1]

# Add batch dimension
img = tf.expand_dims(img, axis=0)

# Print image shape
print(f"Processed Image Shape: {img.shape}")

এখানে, 224x224 হল MobileNetV2 মডেলের ইনপুট আকার, এবং ছবিটি 0 থেকে 1 পর্যন্ত normalize করা হয়েছে।


ধাপ ৪: মডেল ইনফারেন্স করা

এখন, আপনি মডেলটি ব্যবহার করে একটি ছবি ক্লাসিফাই করতে পারেন।

# Perform inference
predictions = model(img)

# Get predicted class index
predicted_class = np.argmax(predictions, axis=-1)

# Print predicted class index
print(f"Predicted Class Index: {predicted_class}")

এখানে, predictions হলো মডেলের আউটপুট (একটি tensor), এবং np.argmax ব্যবহার করে সর্বোচ্চ স্কোর পাওয়া ক্লাসটি চিহ্নিত করা হয়।


ধাপ ৫: আউটপুট ক্লাসের নাম নির্ধারণ করা

TensorFlow Hub-এ ব্যবহৃত মডেলগুলি সাধারণত class labels এর সাথে সম্পর্কিত থাকে। MobileNetV2 মডেলটির জন্য, আমরা ImageNet ক্লাস লেবেলগুলির সাথে মানানসই আউটপুট তৈরি করতে পারি।

# ImageNet class labels
labels_path = "https://storage.googleapis.com/download.tensorflow.org/data/imagenet_class_index.json"
class_idx = tf.keras.utils.get_file('imagenet_class_index.json', labels_path)

import json
with open(class_idx, 'r') as f:
    class_labels = json.load(f)

# Get the label for the predicted class
predicted_label = class_labels[str(predicted_class[0])][1]
print(f"Predicted Label: {predicted_label}")

এখানে, imagenet_class_index.json ফাইলটি ImageNet ডেটাসেটে থাকা প্রতিটি ক্লাসের নাম এবং তাদের ইন্ডেক্স ধারণ করে।


সারাংশ

  • TensorFlow Hub থেকে pre-trained models লোড করা খুবই সহজ। আপনি সহজেই এটি ইমেজ ক্লাসিফিকেশন, ভাষা প্রক্রিয়াকরণ বা অন্যান্য কাজের জন্য ব্যবহার করতে পারেন।
  • আপনি KerasLayer ব্যবহার করে মডেল লোড করতে পারেন এবং এটি TensorFlow মডেল আর্কিটেকচারে যুক্ত করতে পারেন।
  • ইনপুট ইমেজটি প্রক্রিয়া করা, মডেল ইনফারেন্স চালানো, এবং class labels বের করা সবই খুব সহজে করা যায়।

এভাবে, TensorFlow Hub এর মাধ্যমে pre-trained মডেল লোড এবং ব্যবহার করে আপনি দ্রুত প্রকল্পে মডেল ইন্টিগ্রেট করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...