Custom Layers কীভাবে তৈরি করবেন

Custom Layers এবং Activation Functions - টেন্সরফ্লো (TensorFlow) - Machine Learning

294

টেনসরফ্লো (TensorFlow)-এ কাস্টম লেয়ার তৈরি করা একটি শক্তিশালী ফিচার, যা আপনাকে টেনসরফ্লো মডেলে আপনার নিজস্ব গাণিতিক অপারেশন বা লেয়ার যুক্ত করার সুযোগ দেয়। এখানে কাস্টম লেয়ার তৈরির প্রক্রিয়া বিস্তারিতভাবে আলোচনা করা হয়েছে।

কাস্টম লেয়ার তৈরি করার ধাপ

  1. tf.keras.layers.Layer ক্লাসের সাথে কাস্টম লেয়ার তৈরি করা।
  2. কাস্টম লেয়ারের __init__, build, এবং call মেথডগুলি পুনঃনির্ধারণ করা।

১. কাস্টম লেয়ার তৈরি

এখানে একটি সাধারণ কাস্টম লেয়ার তৈরি করা হয়েছে যা ইনপুট টেনসরটি গুণ (multiply) করবে একটি নির্দিষ্ট স্কেলার মান দ্বারা।

import tensorflow as tf

class CustomMultiplyLayer(tf.keras.layers.Layer):
    def __init__(self, multiplier=2.0, **kwargs):
        super(CustomMultiplyLayer, self).__init__(**kwargs)
        self.multiplier = multiplier  # স্কেলার গুণ

    def build(self, input_shape):
        # কাস্টম লেয়ারের বিল্ড মেথড (যথাযথ ইনপুট শেপের জন্য প্রস্তুত করা)
        super(CustomMultiplyLayer, self).build(input_shape)

    def call(self, inputs):
        # `call` মেথডে ইনপুটের উপর গাণিতিক অপারেশন করা হয়
        return inputs * self.multiplier  # ইনপুটটিকে গুণ করুন
  • __init__: এখানে আমরা স্কেলার গুণ (multiplier) প্যারামিটার সংজ্ঞায়িত করেছি, যা কাস্টম লেয়ারে ব্যবহার করা হবে।
  • build: কাস্টম লেয়ারের বিল্ড মেথডে আপনি আপনার লেয়ারের জন্য যেকোনো অতিরিক্ত প্রস্তুতি নিতে পারেন (যেমন, প্যারামিটার বা ওয়েটস ইনিশিয়ালাইজ করা)।
  • call: এই মেথডটি ইনপুট টেনসর গ্রহণ করে এবং তাতে গাণিতিক অপারেশন বা লজিক প্রয়োগ করে আউটপুট প্রদান করে।

২. কাস্টম লেয়ার ব্যবহার

এখন এই কাস্টম লেয়ারকে একটি কেসিয়াল মডেল (sequential model) বা অন্য কোনো কাস্টম মডেলে ব্যবহার করতে পারি।

# একটি সিকোয়েনশিয়াল মডেল তৈরি
model = tf.keras.Sequential([
    tf.keras.layers.Input(shape=(4,)),  # ইনপুট শেপ
    CustomMultiplyLayer(multiplier=3.0),  # কাস্টম লেয়ার ব্যবহার
    tf.keras.layers.Dense(1)  # আউটপুট লেয়ার
])

# মডেলটি কম্পাইল এবং সারাংশ দেখুন
model.compile(optimizer='adam', loss='mean_squared_error')
model.summary()
  • এখানে আমরা CustomMultiplyLayer ব্যবহার করেছি যা ইনপুটের সব মানকে ৩ দিয়ে গুণ করবে।
  • পরে, একটি Dense লেয়ার সংযুক্ত করা হয়েছে যা একটি সিঙ্গল আউটপুট প্রদান করবে।

৩. মডেল ট্রেনিং

কাস্টম লেয়ার যুক্ত করার পর, আমরা মডেলটি ট্রেনিং করতে পারি।

import numpy as np

# কৃত্রিম ডেটা তৈরি
x_train = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], dtype=float)
y_train = np.array([[3], [15], [27]], dtype=float)

# মডেল ট্রেনিং
model.fit(x_train, y_train, epochs=10)

৪. কাস্টম লেয়ারের আরও কাস্টমাইজেশন

কাস্টম লেয়ারগুলো আরো জটিল হতে পারে, যেমন:

  • পারামিটার লেয়ার: কাস্টম লেয়ারে ট্রেনেবল প্যারামিটার যুক্ত করা।
  • অপারেশনগুলোর সংমিশ্রণ: কাস্টম অপারেশন বা অ্যাক্টিভেশন ফাংশন তৈরি করা।
  • মাল্টি-ডাইমেনশনাল ইনপুট: ইনপুট ডেটা যদি মাল্টি-ডাইমেনশনাল হয়, তবে কাস্টম লেয়ারের মাধ্যমে সেগুলি পরিচালনা করা।

উদাহরণ: কাস্টম অ্যাক্টিভেশন ফাংশন

এখানে একটি কাস্টম অ্যাক্টিভেশন ফাংশন তৈরি করা হয়েছে যা সিগময়েড ফাংশনকে স্কেল করে।

class CustomActivationLayer(tf.keras.layers.Layer):
    def __init__(self, scale=1.0, **kwargs):
        super(CustomActivationLayer, self).__init__(**kwargs)
        self.scale = scale  # স্কেল ফ্যাক্টর

    def call(self, inputs):
        return tf.sigmoid(inputs) * self.scale

এটি একটি সাধারণ কাস্টম লেয়ার যেখানে সিগময়েড অ্যাক্টিভেশন ফাংশনকে স্কেল করা হয়েছে।


সারাংশ

টেনসরফ্লো-তে কাস্টম লেয়ার তৈরি করা অত্যন্ত সহজ এবং আপনি আপনার নিজস্ব গাণিতিক অপারেশন বা লজিক প্রয়োগ করতে পারেন। tf.keras.layers.Layer ক্লাসের সাথে কাস্টম লেয়ার তৈরি করতে __init__, build, এবং call মেথডগুলি কাস্টমাইজ করা হয়। এই কাস্টম লেয়ারগুলি মডেলে অন্তর্ভুক্ত করে আপনি আরও জটিল এবং কাস্টম ডিপ লার্নিং মডেল তৈরি করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...