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

TensorFlow ব্যবহার করে IMDB ডেটাসেটে লস ফাংশন, অপ্টিমাইজার সংজ্ঞায়িত করে মডেল ট্রেন ও মূল্যায়ন করা

TensorFlow হল Google প্রদত্ত একটি মেশিন লার্নিং ফ্রেমওয়ার্ক। এটি একটি ওপেন-সোর্স ফ্রেমওয়ার্ক যা পাইথনের সাথে সংযোগে অ্যালগরিদম, ডিপ লার্নিং অ্যাপ্লিকেশন ইত্যাদি বাস্তবায়নে ব্যবহৃত হয়। এটি গবেষণা এবং প্রোডাকশন উদ্দেশ্যে ব্যবহৃত হয়।

'tensorflow' প্যাকেজটি উইন্ডোজে নিচের কোড দিয়ে ইনস্টল করা যায়:

pip install tensorflow

'IMDB' ডেটাসেটে ৫০ হাজারেরও বেশি মুভির রিভিউ রয়েছে। এই ডেটাসেট সাধারণত ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং-এর সাথে সম্পর্কিত অপারেশনগুলোর সাথে ব্যবহৃত হয়।

নিচের কোড চালাতে আমরা Google Colaboratory ব্যবহার করছি। Google Colab বা Colaboratory ব্রাউজারের মাধ্যমে পাইথন কোড চালাতে সাহায্য করে এবং এটি শূন্য কনফিগারেশনের সাথে ফ্রি GPU অ্যাক্সেস প্রদান করে (Graphical Processing Units)। Colaboratory Jupyter Notebook-এর উপরে তৈরি।

IMDB ডেটাসেটে লস ফাংশন, অপ্টিমাইজার সংজ্ঞায়িত করে মডেল ট্রেন ও মূল্যায়নের কোড স্নিপেট নিচে দেওয়া হল:

উদাহরণ

model.compile(loss=losses.BinaryCrossentropy(from_logits=True),
              optimizer='adam',
              metrics=tf.metrics.BinaryAccuracy(threshold=0.0))
epochs = 10
history = model.fit(
    train_ds,
    validation_data=val_ds,
    epochs=epochs)
loss, accuracy = model.evaluate(test_ds)
print("Loss is :", loss)
print("Accuracy is :", accuracy)

কোড ক্রেডিট - https://www.tensorflow.org/tutorials/keras/text_classification

আউটপুট

Epoch 1/10 625/625 [==============================] - 12s 19ms/step - loss: 0.6818 - binary_accuracy: 0.6130 - val_loss: 0.6135 - val_binary_accuracy: 0.7750
Epoch 2/10 625/625 [==============================] - 4s 7ms/step - loss: 0.5785 - binary_accuracy: 0.7853 - val_loss: 0.4971 - val_binary_accuracy: 0.8230
Epoch 3/10 625/625 [==============================] - 4s 7ms/step - loss: 0.4651 - binary_accuracy: 0.8372 - val_loss: 0.4193 - val_binary_accuracy: 0.8470
Epoch 4/10 625/625 [==============================] - 4s 7ms/step - loss: 0.3901 - binary_accuracy: 0.8635 - val_loss: 0.3732 - val_binary_accuracy: 0.8612
Epoch 5/10 625/625 [==============================] - 4s 7ms/step - loss: 0.3435 - binary_accuracy: 0.8771 - val_loss: 0.3444 - val_binary_accuracy: 0.8688
Epoch 6/10 625/625 [==============================] - 4s 7ms/step - loss: 0.3106 - binary_accuracy: 0.8877 - val_loss: 0.3255 - val_binary_accuracy: 0.8730
Epoch 7/10 625/625 [==============================] - 5s 7ms/step - loss: 0.2855 - binary_accuracy: 0.8970 - val_loss: 0.3119 - val_binary_accuracy: 0.8732
Epoch 8/10 625/625 [==============================] - 5s 7ms/step - loss: 0.2652 - binary_accuracy: 0.9048 - val_loss: 0.3027 - val_binary_accuracy: 0.8772
Epoch 9/10 625/625 [==============================] - 5s 7ms/step - loss: 0.2481 - binary_accuracy: 0.9125 - val_loss: 0.2959 - val_binary_accuracy: 0.8782
Epoch 10/10 625/625 [==============================] - 5s 7ms/step - loss: 0.2328 - binary_accuracy: 0.9161 - val_loss: 0.2913 - val_binary_accuracy: 0.8792
782/782 [==============================] - 10s 12ms/step - loss: 0.3099 - binary_accuracy: 0.8741
Loss is : 0.3099007308483124
Accuracy is : 0.8741199970245361

ব্যাখ্যা

  • মডেল তৈরি হলে, এটি 'compile' ফাংশন ব্যবহার করে কম্পাইল করা হয়।

  • মডেল ট্রেন করার জন্য সংজ্ঞায়িত স্টেপের সংখ্যা এখানে ১০।

  • 'fit' ফাংশন ব্যবহার করে তৈরি মডেলে ডেটা ফিট করা হয়।

  • 'evaluate' ফাংশন ব্যবহার করে টেস্ট ডেটাসেটে মডেলের লস এবং নির্ভুলতা ক্যালকুলেট করা হয়।

  • লস এবং নির্ভুলতার মান কনসোলে প্রদর্শিত হয়।

  1. পাইথনে টেনসরফ্লো ও প্রি-ট্রেনড মডেল দিয়ে ডেটা ভিজ্যুয়ালাইজ করা

  2. টেনসরফ্লো (TensorFlow) কীভাবে পাইথনে মডেল ট্রেন (train) করতে ব্যবহৃত হয়?

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

  4. TensorFlow ব্যবহার করে MNIST ডেটাসেটের জন্য মডেল সংজ্ঞায়িত করা