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

Python-এ Keras ব্যবহার করে মডেল ট্রেনিং কীভাবে করা যায়?


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

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

pip install tensorflow

Tensor হল TensorFlow-এ ব্যবহৃত একটি ডেটা স্ট্রাকচার। এটি ফ্লো ডায়াগ্রামের এজগুলো কানেক্ট করতে সাহায্য করে। এই ফ্লো ডায়াগ্রামকে 'Data flow graph' বলা হয়। টেনসরগুলো আর কিছু নয় বহু-মাত্রিক অ্যারে বা লিস্ট।

Keras ONEIROS (Open-ended Neuro-Electronic Intelligent Robot Operating System) প্রকল্পের গবেষণার অংশ হিসেবে বিকশিত হয়েছিল। Keras একটি গভীর শিক্ষার API, যা পাইথনে লেখা হয়েছে। এটি একটি উচ্চ-স্তরের API যার একটি উৎপাদনশীল ইন্টারফেস রয়েছে যা মেশিন লার্নিং সমস্যা সমাধান করতে সাহায্য করে। এটি TensorFlow ফ্রেমওয়ার্কের উপরে চলে। এটি দ্রুত পরীক্ষা-নিরীক্ষা করতে সাহায্য করার জন্য তৈরি করা হয়েছিল। এটি মেশিন লার্নিং সমাধান বিকাশ এবং ক্যাপসুলেট করার জন্য প্রয়োজনীয় বিমূর্তি এবং বিল্ডিং ব্লক প্রদান করে।

Keras ইতিমধ্যেই TensorFlow প্যাকেজের ভিতরে রয়েছে। নিচের কোড লাইন ব্যবহার করে এটিকে অ্যাক্সেস করা যায়:

import tensorflow
from tensorflow import keras

Keras ফাংশনাল API সিকোয়েনশিয়াল API-র তুলনায় আরও নমনীয় মডেল তৈরি করতে সাহায্য করে। ফাংশনাল API নন-লিনিয়ার টপোলজি वाले মডেল, শেয়ার করা লেয়ার, এবং একাধিক ইনপুট-আউটপুট নিয়ে কাজ করতে পারে। একটি গভীর শিক্ষার মডেল সাধারণত একটি ডায়RECTেড এসাইক্লিক গ্রাফ (DAG) যাতে একাধিক লেয়ার থাকে। ফাংশনাল API লেয়ার গ্রাফ তৈরি করতে সাহায্য করে।

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

উদাহরণ

print("নমুনা ইনপুট ডেটা")
title_data = np.random.randint(num_words, size=(1280, 10))
body_data = np.random.randint(num_words, size=(1280, 100))
tags_data = np.random.randint(2, size=(1280, num_tags)).astype("float32")
print("নমুনা টার্গেট ডেটা")
priority_targets = np.random.random(size=(1280, 1))
dept_targets = np.random.randint(2, size=(1280, num_classes))
print("মডেল ডেটার সাথে ফিট করা হচ্ছে")
model.fit(
    {"title": title_data, "body": body_data, "tags": tags_data},
    {"priority": priority_targets, "class": dept_targets},
    epochs=2,
    batch_size=32,
)

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

আউটপুট

নমুনা ইনপুট ডেটা
নমুনা টার্গেট ডেটা
মডেল ডেটার সাথে ফিট করা হচ্ছে
Epoch 1/2
40/40 [==============================] - 5s 43ms/step - loss: 1.2738 - priority_loss: 0.7043 - class_loss: 2.8477
Epoch 2/2
40/40 [==============================] - 2s 44ms/step - loss: 1.2720 - priority_loss: 0.6997 - class_loss: 2.8612
<tensorflow.python.keras.callbacks.History at 0x7f48d0809e80>

ব্যাখ্যা

  • নমুনা ইনপুট এবং টার্গেট ডেটা জেনারেট করা হয়েছে।

  • NumPy অ্যারে হিসেবে ইনপুট এবং টার্গেট পাস করে মডেল ট্রেন করা হয়েছে।


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

  2. Keras ব্যবহার করে পাইথনে ম্যানুয়ালি ওজন সংরক্ষণ করা

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

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