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

পাইথনে TensorFlow ব্যবহার করে StackOverflow প্রশ্ন ডেটাসেট দিয়ে মডেল ট্রেন করার পদ্ধতি

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

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

ইনস্টলেশন

pip install tensorflow

টেনসর (Tensor) TensorFlow-এ ব্যবহৃত একটি ডেটা স্ট্রাকচার। এটি ফ্লো ডায়াগ্রামে এজ সংযুক্ত করতে সাহায্য করে। এই ফ্লো ডায়াগ্রামকে 'ডেটা ফ্লো গ্রাফ' বলা হয়। টেনসরগুলো আসলে মাল্টি-ডাইমেনশনাল অ্যারে বা লিস্ট। এদের তিনটি প্রধান অ্যাট্রিবিউট দিয়ে চেনা যায়:

  • র‍্যাঙ্ক (Rank) — টেনসরের ডাইমেনশনালিটি বা ডাইমেনশনের সংখ্যা নির্দেশ করে।
  • টাইপ (Type) — টেনসরের এলিমেন্টগুলোর ডেটা টাইপ নির্দেশ করে।
  • শেপ (Shape) — সারি ও কলামের সংখ্যা মিলিয়ে নির্দেশ করে।

নিচের কোড Google Colaboratory-এ রান করা হয়েছে। Google Colab ব্রাউজারে পাইথন কোড চালাতে সাহায্য করে এবং ফ্রি GPU অ্যাক্সেস দেয়। Colaboratory Jupyter Notebook-এর ওপর তৈরি।

উদাহরণ

print("A bag-of-words linear model is built to train the stackoverflow dataset")
binary_model = tf.keras.Sequential([layers.Dense(4)])
binary_model.compile(
    loss=losses.SparseCategoricalCrossentropy(from_logits=True),
    optimizer='adam',
    metrics=['accuracy'])
history = binary_model.fit(
    binary_train_ds, validation_data=binary_val_ds, epochs=10)

কোড ক্রেডিট: https://www.tensorflow.org/tutorials/load_data/text

আউটপুট

A bag-of-words linear model is built to train the stackoverflow dataset
Epoch 1/10 188/188 [==============================] - 4s 19ms/step - loss: 1.2450 - accuracy: 0.5243 - val_loss: 0.9285 - val_accuracy: 0.7645
Epoch 2/10 188/188 [==============================] - 1s 3ms/step - loss: 0.8304 - accuracy: 0.8172 - val_loss: 0.7675 - val_accuracy: 0.7895
Epoch 3/10 188/188 [==============================] - 1s 3ms/step - loss: 0.6615 - accuracy: 0.8625 - val_loss: 0.6824 - val_accuracy: 0.8050
Epoch 4/10 188/188 [==============================] - 1s 3ms/step - loss: 0.5604 - accuracy: 0.8833 - val_loss: 0.6291 - val_accuracy: 0.8125
Epoch 5/10 188/188 [==============================] - 1s 3ms/step - loss: 0.4901 - accuracy: 0.9034 - val_loss: 0.5923 - val_accuracy: 0.8210
Epoch 6/10 188/188 [==============================] - 1s 3ms/step - loss: 0.4370 - accuracy: 0.9178 - val_loss: 0.5656 - val_accuracy: 0.8255
Epoch 7/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3948 - accuracy: 0.9270 - val_loss: 0.5455 - val_accuracy: 0.8290
Epoch 8/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3601 - accuracy: 0.9325 - val_loss: 0.5299 - val_accuracy: 0.8295
Epoch 9/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3307 - accuracy: 0.9408 - val_loss: 0.5177 - val_accuracy: 0.8335
Epoch 10/10 188/188 [==============================] - 1s 3ms/step - loss: 0.3054 - accuracy: 0.9472 - val_loss: 0.5080 - val_accuracy: 0.8340

ব্যাখ্যা

  • নিউরাল নেটওয়ার্ক 'Sequential' API ব্যবহার করে তৈরি করা হয়েছে।
  • 'binary' ফরম্যাটে ভেক্টরাইজড ডেটার জন্য ব‍্যাগ-অফ-ওয়ার্ডস মডেল ট্রেন করা হয়েছে, যা একটি লিনিয়ার মডেল।
  1. টেনসরফ্লো (TensorFlow) কীভাবে পাইথনে মডেল ট্রেন (train) করতে ব্যবহৃত হয়?

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

  3. TensorFlow ব্যবহার করে পাইথনে লিনিয়ার মডেল ট্রেন করা

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