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

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


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

এটি অত্যন্ত মাপযোগ্য (scalable) এবং ক্রস-প্ল্যাটফর্ম ক্ষমতা নিয়ে আসে। এর মানে Keras TPU বা GPU ক্লাস্টারগুলোর ওপর চালানো যায়। Keras মডেলগুলো ওয়েব ব্রাউজার বা মোবাইল ফোনেও রান করার জন্য এক্সপোর্ট করা যায়।

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("মডেলটি প্লট করা হচ্ছে")
keras.utils.plot_model(model, "my_resnet.png", show_shapes=True)
print("ডেটাকে ট্রেনিং এবং টেস্ট ডেটায় ভাগ করা হচ্ছে")
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()
print("ডেটার টাইপ float-এ রূপান্তর করা হচ্ছে")
x_train = x_train.astype("float32") / 255.0
x_test = x_test.astype("float32") / 255.0
y_train = keras.utils.to_categorical(y_train, 10)
y_test = keras.utils.to_categorical(y_test, 10)
print("মডেল কম্পাইল করা হচ্ছে")
model.compile(
    optimizer=keras.optimizers.RMSprop(1e-3),
    loss=keras.losses.CategoricalCrossentropy(from_logits=True),
    metrics=["acc"],
)
model.fit(x_train[:2000], y_train[:2000], batch_size=64, epochs=2, validation_split=0.2)

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

আউটপুট

মডেলটি প্লট করা হচ্ছে
ডেটাকে ট্রেনিং এবং টেস্ট ডেটায় ভাগ করা হচ্ছে
Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz
170500096/170498071 [==============================] - 2s 0us/step
ডেটার টাইপ float-এ রূপান্তর করা হচ্ছে
মডেল কম্পাইল করা হচ্ছে
Epoch 1/2
25/25 [==============================] - 9s 332ms/step - loss: 2.3163 - acc: 0.1028 - val_loss: 2.2962 - val_acc: 0.1175
Epoch 2/2
25/25 [==============================] - 12s 492ms/step - loss: 2.3155 - acc: 0.1175 - val_loss: 2.2606 - val_acc: 0.1200
<tensorflow.python.keras.callbacks.History at 0x7f48d3ecfb00>

ব্যাখ্যা

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

  • ডেটার টাইপ 'float'-এ রূপান্তর করা হয়েছে।

  • 'compile' মেথড ব্যবহার করে মডেল কম্পাইল করা হয়েছে।

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


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

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

  3. Python প্রোগ্রামে Keras ব্যবহার করে মডেল প্লট কীভাবে করা যায়?

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