কম্পিউটার

কেরাস ব্যবহার করে পাইথনে কীভাবে ট্রান্সফার লার্নিং প্রয়োগ করা যেতে পারে?


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

টেনসর হল টেনসরফ্লোতে ব্যবহৃত একটি ডেটা স্ট্রাকচার। এটি একটি প্রবাহ চিত্রে প্রান্তগুলিকে সংযুক্ত করতে সহায়তা করে। এই ফ্লো ডায়াগ্রামটি 'ডেটা ফ্লো গ্রাফ' নামে পরিচিত। টেনসরগুলি একটি বহুমাত্রিক অ্যারে বা একটি তালিকা ছাড়া কিছুই নয়৷

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

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

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

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

import tensorflow
from tensorflow import keras

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

উদাহরণ

model = keras.Sequential([
   keras.Input(shape=(784))
   layers.Dense(32, activation='relu'),
   layers.Dense(32, activation='relu'),
   layers.Dense(32, activation='relu'),
   layers.Dense(10),
])
print("Load the pre-trained weights")
model.load_weights(...)
print("Freeze all the layers except the last layer")
for layer in model.layers[:-1]:
   layer.trainable = False
print("Recompile the model and train it")
print("The last layer weights will be updated")
model.compile(...)
model.fit(...)

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

আউটপুট

Load the pre-trained weights
Freeze all the layers except the last layer
Recompile the model and train it
The last layer weights will be updated

ব্যাখ্যা

  • ট্রান্সফার লার্নিং একটি মডেলের নীচের স্তরগুলিকে হিমায়িত করে এবং উপরের স্তরগুলিকে প্রশিক্ষণ দেয়৷

  • ক্রমিক মডেল তৈরি করা হয়েছে৷

  • পুরানো মডেলের প্রাক-প্রশিক্ষিত ওজন এই মডেলের সাথে লোড এবং আবদ্ধ।

  • শেষ স্তর ব্যতীত নীচের স্তরগুলি হিমায়িত।

  • লেয়ারগুলো বার বার করা হয়েছে এবং শেষ লেয়ার ছাড়া প্রতিটি লেয়ারের জন্য 'layer.trainable' সেট করা হয়েছে 'False'।

  • এটি সংকলিত এবং ডেটার সাথে মানানসই।


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

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

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

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