কম্পিউটার

পাইথন ব্যবহার করে লেয়ার ইনস্ট্যান্সের কনস্ট্রাক্টর আর্গুমেন্ট ফেরত দিতে Tensorflow কিভাবে ব্যবহার করা যেতে পারে?


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

কেরাস ONEIROS (ওপেন-এন্ডেড নিউরো-ইলেক্ট্রনিক ইন্টেলিজেন্ট রোবট অপারেটিং সিস্টেম) প্রকল্পের গবেষণার অংশ হিসাবে তৈরি করা হয়েছিল। কেরাস একটি গভীর শিক্ষার API, যা পাইথনে লেখা। এটি একটি উচ্চ-স্তরের API যার একটি উত্পাদনশীল ইন্টারফেস রয়েছে যা মেশিন লার্নিং সমস্যা সমাধানে সহায়তা করে৷

এটি টেনসরফ্লো ফ্রেমওয়ার্কের উপরে চলে। এটি একটি দ্রুত পদ্ধতিতে পরীক্ষা সাহায্য করার জন্য নির্মিত হয়েছিল. এটি প্রয়োজনীয় বিমূর্ততা এবং বিল্ডিং ব্লকগুলি প্রদান করে যা মেশিন লার্নিং সমাধানগুলি বিকাশ এবং এনক্যাপসুলেট করার জন্য অপরিহার্য৷

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

কেরাস ইতিমধ্যেই টেনসরফ্লো প্যাকেজের মধ্যে উপস্থিত রয়েছে। এটি কোডের নীচের লাইন ব্যবহার করে অ্যাক্সেস করা যেতে পারে।

import tensorflow
from tensorflow import keras

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

নিচের কোডটি চালানোর জন্য আমরা Google Colaboratory ব্যবহার করছি। Google Colab বা Colaboratory ব্রাউজারে Python কোড চালাতে সাহায্য করে এবং এর জন্য শূন্য কনফিগারেশন এবং GPUs (গ্রাফিক্যাল প্রসেসিং ইউনিট) তে বিনামূল্যে অ্যাক্সেস প্রয়োজন। জুপিটার নোটবুকের উপরে কোলাবোরেটরি তৈরি করা হয়েছে। পাইথন −

ব্যবহার করে লেয়ার ইনস্ট্যান্সের কনস্ট্রাক্টর আর্গুমেন্ট ফেরত দেওয়ার জন্য কোড স্নিপেট নিচে দেওয়া হল

উদাহরণ

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("The below function returns constructor arguments for the instance of the layer")
config = model.get_config()

new_model = keras.Model.from_config(config, custom_objects={"CustomDense": CustomDense})

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

আউটপুট

The below function returns constructor arguments for the instance of the layer

ব্যাখ্যা

  • 'CustomDense' নামে একটি ক্লাস তৈরি করা হয়েছে যা মডেলে ওজন যোগ করতে ব্যবহৃত হয়।

  • 'get_config' নামের আরেকটি ফাংশন সংজ্ঞায়িত করা হয়েছে যা লেয়ারের প্রতিটি উদাহরণের জন্য কনস্ট্রাক্টর আর্গুমেন্ট প্রদান করে।

  • মডেলের ইনপুট স্তরগুলি সংজ্ঞায়িত করা হয়েছে৷

  • এরপরে, মডেলটি সংজ্ঞায়িত করা হয় এবং ফাংশনটিকে বলা হয়।


  1. পাইথন ব্যবহার করে পুরো মডেলটিকে কীভাবে সংরক্ষণ করতে কেরাস ব্যবহার করা যেতে পারে?

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

  3. পাইথন ব্যবহার করে দুটি ম্যাট্রিক্সকে গুন করার জন্য Tensorflow কিভাবে ব্যবহার করা যেতে পারে?

  4. পাইথন ব্যবহার করে মডেল প্লট করার জন্য কেরাস কীভাবে ব্যবহার করা যেতে পারে?