কম্পিউটার টিউটোরিয়াল

পাইথনে টেনসরফ্লো দিয়ে ডেটা মডেলে ফিট (fit) করা


টেনসরফ্লো দিয়ে ডেটা মডেলে ফিট করা যায় 'fit' মেথড ব্যবহার করে।

আরও পড়ুন: টেনসরফ্লো কী এবং কেরাস কীভাবে টেনসরফ্লোর সাথে কাজ করে নিউরাল নেটওয়ার্ক তৈরির জন্য?

কমপক্ষে একটি লেয়ার থাকা নিউরাল নেটওয়ার্ককে কনভোল্যুশনাল লেয়ার বলা হয়। আমরা কনভোল্যুশনাল নিউরাল নেটওয়ার্ক ব্যবহার করে লার্নিং মডেল বানাতে পারি।

ইমেজ ক্লাসিফিকেশনের জন্য ট্রান্সফার লার্নিং-এর ভিত্তি হলো, যদি একটি মডেল বড় ও সাধারণ ডেটাসেটে ট্রেন করা হয়, তবে সেই মডেলটি ভিজ্যুয়াল ওয়ার্ল্ডের জন্য একটি জেনেরিক মডেল হিসেবে কার্যকরভাবে কাজ করতে পারে। এতে ফিচার ম্যাপগুলো শিখে নেয়া থাকবে, অর্থাৎ ইউজারকে বড় মডেল বড় ডেটাসেটে ট্রেন করে স্ক্র্যাচ থেকে শুরু করতে হবে না।

টেনসরফ্লো হাব হলো প্রি-ট্রেনড টেনসরফ্লো মডেলের একটি রিপোজিটরি। টেনসরফ্লো দিয়ে লার্নিং মডেল ফাইন-টিউন করা যায়। আমরা বুঝব কীভাবে tf.keras সহ টেনসরফ্লো হাব থেকে মডেল ব্যবহার করতে হয়, একটি ইমেজ ক্লাসিফিকেশন মডেল ব্যবহার করতে হয়। একবার এটি হলে, ট্রান্সফার লার্নিং ব্যবহার করে কাস্টম ইমেজ ক্লাসের জন্য একটি মডেল ফাইন-টিউন করা যায়। এটি একটি প্রি-ট্রেনড ক্লাসিফায়ার মডেল ব্যবহার করে একটি ইমেজ लेकर সেটি কী তা প্রেডিক্ট করে। এটি কোনো ট্রেনিং ছাড়াই করা যায়।

নিচের কোড চালানোর জন্য আমরা গুগল কোলাবরেটরি ব্যবহার করছি। গুগল কোল্যাব বা কোলাবরেটরি ব্রাউজারের ওপর পাইথন কোড চালাতে সাহায্য করে এবং জিরো কনফিগারেশন ও ফ্রি জিপিইউ (GPU) অ্যাক্সেস দেয়। কোলাবরেটরি জুপিটার নোটবুকের ওপর বিল্ড করা হয়েছে।

উদাহরণ

print("Training for 2 epochs only")
class CollectBatchStats(tf.keras.callbacks.Callback):
    def __init__(self):
        self.batch_losses = []
        self.batch_acc = []
    def on_train_batch_end(self, batch, logs=None):
        self.batch_losses.append(logs['loss'])
        self.batch_acc.append(logs['acc'])
        self.model.reset_metrics()

batch_stats_callback = CollectBatchStats()
print("The fit method is called")
history = model.fit(train_ds, epochs=2, callbacks=[batch_stats_callback])

কোড কרדিট: https://www.tensorflow.org/tutorials/images/transfer_learning_with_hub

আউটপুট

Training for 2 epochs only
The fit method is called
Epoch 1/2
92/92 [==============================] - 88s 919ms/step - loss: 0.7155 - acc: 0.7460
Epoch 2/2
92/92 [==============================] - 85s 922ms/step - loss: 0.3694 - acc: 0.8754

ব্যাখ্যা

  • .fit মেথডটি মডেল ট্রেন করতে ব্যবহৃত হয়।

  • ট্রেনিং ছোট রাখা হয়েছে, তাই শুধু ২টি ইপক (epoch) ব্যবহার করা হয়েছে।

  • একটি কাস্টম কলব্যাক ব্যবহার করা হয়েছে ডেটা ভিজ্যুয়ালাইজ করতে, যাতে প্রতিটি ব্যাচের লস ও একুরেসি লগ করা যায়।

  1. টেনসরফ্লো (TensorFlow) কীভাবে পাইথনে ডেটা ভিজুয়ালাইজ (visualize) করতে ব্যবহৃত হয়?

  2. Keras ব্যবহার করে পাইথনে পুনরুদ্ধারকৃত মডেল মূল্যায়ন করা

  3. Keras ব্যবহার করে পাইথনে সম্পূর্ণ মডেল সংরক্ষণ করা

  4. Python-এ Keras ব্যবহার করে মডেল প্লট কীভাবে করা যায়?