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

TensorFlow Python-এ লেয়ার ইনস্ট্যান্সের কনস্ট্রাক্টর আর্গুমেন্ট কীভাবে ফেরত দিবেন?

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 অফিসিয়াল গাইড

আউটপুট

লেয়ার ইনস্ট্যান্সের কনস্ট্রাক্টর আর্গুমেন্ট ফেরত দেওয়া হচ্ছে:

ব্যাখ্যা

  1. CustomDense ক্লাস: layers.Layer ইনহেরিট করে একটি কাস্টম ডেন্স লেয়ার তৈরি করা হয়েছে। units প্যারামিটার কনস্ট্রাক্টরে গ্রহণ করা হয়।
  2. build() মেথড: ইনপুট শেপ অনুযায়ী ওয়েইট (w) এবং বায়াস (b) তৈরি করে। add_weight() দিয়ে ট্রেনেবল প্যারামিটার যোগ করা হয়।
  3. call() মেথড: ফরওয়ার্ড পাসের লজিক সংজ্ঞায়িত করে — ম্যাট্রিক্স গুণ এবং বায়াস যোগ।
  4. get_config() মেথড: এটি মূল কী — কনস্ট্রাক্টর আর্গুমেন্ট (units) একটি ডিকশনারি হিসেবে ফেরত দেয়। এই মেথড ওভাররাইড না করলে কাস্টম লেয়ার সিরিয়ালাইজ হবে না।
  5. মডেল রিকনস্ট্রাকশন: model.get_config() দিয়ে পুরো মডেলের কনফিগারেশন নেওয়া হয়, তারপর keras.Model.from_config() দিয়ে custom_objects পাস করে নতুন মডেল তৈরি করা হয়।

কেন এটি গুরুত্বপূর্ণ?

  • মডেল সেভ/লোড করার সময় কাস্টম লイヤার সিরিয়ালাইজ করতে get_config() বাধ্যতামূলক।
  • হাইপারপ্যারামিটার টিউনিং, মডেল শেয়ারিং, প্রোডাকশন ডিপ্লয়মেন্টে এটি অপরিহার্য।
  • from_config ব্যবহার করে একই আর্কিটেকচারের নতুন ইনস্ট্যান্স তৈরি করা যায়।
  1. Keras ব্যবহার করে পাইথনে সম্পূর্ণ মডেল সংরক্ষণ করা

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

  3. পাইথনে টেনসরফ্লো ব্যবহার করে দুটি ম্যাট্রিক্স গুণ করার পদ্ধতি

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