TensorFlow হল Google দ্বারা বিকশিত একটি ওপেন-সোর্স মেশিন লার্নিং ফ্রেমওয়ার্ক। এটি Python-এর সাথে মিলিত হয়ে অ্যালগরিদম, ডিপ লার্নিং অ্যাপ্লিকেশন এবং অন্যান্য জটিল কাজ বাস্তবায়নে ব্যবহৃত হয়। গবেষণা থেকে প্রোডাকশন পরিবেশ পর্যন্ত TensorFlow ব্যাপকভাবে ব্যবহৃত হয়।
Keras: TensorFlow-এর হাই-লেভেল API
Keras ONEIROS (Open-ended Neuro-Electronic Intelligent Robot Operating System) গবেষণা প্রকল্পের অংশ হিসেবে উন্নত হয়েছিল। এটি Python-এ লেখা একটি ডিপ লার্নিং API যা উন্নত ইন্টারফেস প্রদান করে মেশিন লার্নিং সমস্যা সমাধানের জন্য। Keras TensorFlow-এর উপরে চলে এবং দ্রুত পরীক্ষা-নিরীক্ষা সুবিধা দেয়।
Keras-এর মূল বৈশিষ্ট্য
- TensorFlow-এর মধ্যে অন্তর্নির্মিত (built-in)
- TPU এবং GPU ক্লাস্টারে স্কেল করতে পারে
- মডেল ওয়েব ব্রাউজার বা মোবাইল ফোনে এক্সপোর্ট করা যায়
- ফাংশনাল API দিয়ে নন-লিনিয়ার টপোলজি, শেয়ার্ড লেয়ার, মাল্টিপল ইনপুট/আউটপুট সম্ভব
Keras অ্যাক্সেস করা
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
Google Colaboratory ব্যবহার
এই উদাহরণটি Google Colab-এ চালানো হয়েছে — একটি ব্রাউজার-ভিত্তিক Python পরিবেশ যাতে জিরো কনফিগারেশন এবং ফ্রি GPU অ্যাক্সেস থাকে। এটি Jupyter Notebook-এর উপর তৈরি।
উদাহরণ: কাস্টম লেয়ারের কনস্ট্রাক্টর আর্গুমেন্ট ফেরত দেওয়া
class CustomDense(layers.Layer):
def __init__(self, units=32):
super(CustomDense, self).__init__()
self.units = units
def build(self, input_shape):
self.w = self.add_weight(
shape=(input_shape[-1], self.units),
initializer="random_normal",
trainable=True,
)
self.b = self.add_weight(
shape=(self.units,),
initializer="random_normal",
trainable=True
)
def call(self, inputs):
return tf.matmul(inputs, self.w) + self.b
def get_config(self):
return {"units": self.units}
# মডেল তৈরি ও কনফিগারেশন ফেরত দেওয়া
inputs = keras.Input((4,))
outputs = CustomDense(10)(inputs)
model = keras.Model(inputs, outputs)
print("লেয়ার ইনস্ট্যান্সের কনস্ট্রাক্টর আর্গুমেন্ট ফেরত দেওয়া হচ্ছে:")
config = model.get_config()
new_model = keras.Model.from_config(
config,
custom_objects={"CustomDense": CustomDense}
)
কোড উৎস: TensorFlow অফিসিয়াল গাইড
আউটপুট
লেয়ার ইনস্ট্যান্সের কনস্ট্রাক্টর আর্গুমেন্ট ফেরত দেওয়া হচ্ছে:
ব্যাখ্যা
- CustomDense ক্লাস:
layers.Layerইনহেরিট করে একটি কাস্টম ডেন্স লেয়ার তৈরি করা হয়েছে।unitsপ্যারামিটার কনস্ট্রাক্টরে গ্রহণ করা হয়। - build() মেথড: ইনপুট শেপ অনুযায়ী ওয়েইট (
w) এবং বায়াস (b) তৈরি করে।add_weight()দিয়ে ট্রেনেবল প্যারামিটার যোগ করা হয়। - call() মেথড: ফরওয়ার্ড পাসের লজিক সংজ্ঞায়িত করে — ম্যাট্রিক্স গুণ এবং বায়াস যোগ।
- get_config() মেথড: এটি মূল কী — কনস্ট্রাক্টর আর্গুমেন্ট (
units) একটি ডিকশনারি হিসেবে ফেরত দেয়। এই মেথড ওভাররাইড না করলে কাস্টম লেয়ার সিরিয়ালাইজ হবে না। - মডেল রিকনস্ট্রাকশন:
model.get_config()দিয়ে পুরো মডেলের কনফিগারেশন নেওয়া হয়, তারপরkeras.Model.from_config()দিয়েcustom_objectsপাস করে নতুন মডেল তৈরি করা হয়।
কেন এটি গুরুত্বপূর্ণ?
- মডেল সেভ/লোড করার সময় কাস্টম লイヤার সিরিয়ালাইজ করতে
get_config()বাধ্যতামূলক। - হাইপারপ্যারামিটার টিউনিং, মডেল শেয়ারিং, প্রোডাকশন ডিপ্লয়মেন্টে এটি অপরিহার্য।
from_configব্যবহার করে একই আর্কিটেকচারের নতুন ইনস্ট্যান্স তৈরি করা যায়।