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

Python-এ Keras সিকোয়েনশিয়াল মডেল ব্যবহার করে ফিচার এক্সট্রাকশন


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

'TensorFlow' প্যাকেজটি উইন্ডোজে নিচের কমান্ড দিয়ে ইনস্টল করা যায়:

pip install tensorflow

Tensor হল TensorFlow-এ ব্যবহৃত একটি ডেটা স্ট্রাকচার। এটি ফ্লো ডায়াগ্রামের এজগুলো কানেক্ট করতে সাহায্য করে। এই ফ্লো ডায়াগ্রামকে 'Data flow graph' বলা হয়। টেনসরগুলো আর কিছু নয় বহু-মাত্রিক অ্যারে বা লিস্ট। এগুলো তিনটি প্রধান অ্যাট্রিবিউট দিয়ে চেনা যায়:

  • র‍্যাঙ্ক (Rank) - এটি টেনসরটির ডাইমেনশনালিটি সম্পর্কে বলে। এটি টেনসরটির অর্ডার বা সংজ্ঞায়িত টেনসরটিতে কতগুলো ডাইমেনশন আছে তা বোঝাতে পারে।

  • টাইপ (Type) - এটি টেনসরটির এলিমেন্টগুলোর সাথে সম্পর্কিত ডেটা টাইপ বলে। এটি এক-মাত্রিক, দুই-মাত্রিক বা n-মাত্রিক টেনসর হতে পারে।

  • শেপ (Shape) - এটি রো এবং কলামের সংখ্যা মিলিত।

Keras ONEIROS (Open ended Neuro-Electronic Intelligent Robot Operating System) প্রকল্পের গবেষণার অংশ হিসেবে বিকশিত হয়েছিল। Keras একটি গভীর শিক্ষার API, যা পাইথনে লেখা হয়েছে। এটি একটি উচ্চ-স্তরের API যার একটি উৎপাদনশীল ইন্টারফেস রয়েছে যা মেশিন লার্নিং সমস্যা সমাধান করতে সাহায্য করে। এটি TensorFlow ফ্রেমওয়ার্কের উপরে চলে। এটি দ্রুত পরীক্ষা-নিরীক্ষা করতে সাহায্য করার জন্য তৈরি করা হয়েছিল। এটি মেশিন লার্নিং সমাধান বিকাশ এবং ক্যাপসুলেট করার জন্য প্রয়োজনীয় বিমূর্তি এবং বিল্ডিং ব্লক প্রদান করে।

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

Keras ইতিমধ্যেই TensorFlow প্যাকেজের ভিতরে রয়েছে। নিচের কোড লাইন ব্যবহার করে এটিকে অ্যাক্সেস করা যায়:

import tensorflow
from tensorflow import keras

নিচের কোড চালাতে আমরা Google Colaboratory ব্যবহার করছি। Google Colab বা Colaboratory ব্রাউজারের ওপর পাইথন কোড চালাতে সাহায্য করে এবং শূন্য কনফিগারেশন এবং GPU-তে ফ্রি অ্যাক্সেস দেয়। Colaboratory Jupyter Notebook-এর ওপর নির্মিত। কোড স্নিপেট নিচে দেওয়া হলো:

উদাহরণ

print("সিকোয়েনশিয়াল মডেল তৈরি করা হয়েছে")
initial_model = keras.Sequential(
    [
        keras.Input(shape=(250, 250, 3)),
        layers.Conv2D(32, 5, strides=2, activation="relu"),
        layers.Conv2D(32, 3, activation="relu"),
        layers.Conv2D(32, 3, activation="relu"),
    ]
)
print("মডেল থেকে ফিচার এক্সট্রাকশন")
feature_extractor = keras.Model(
    inputs=initial_model.inputs,
    outputs=[layer.output for layer in initial_model.layers],
)
print("ফিচার এক্সট্রাক্টর মেথড টেস্ট ডেটা-তে কল করা হচ্ছে")
x = tf.ones((1, 250, 250, 3))
features = feature_extractor(x)

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

আউটপুট

Sequential modal created
Feature extraction form the model
The feature extractor method is called on test data


ব্যাখ্যা

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

  • ট্রেনিং সম্পূর্ণ হলে, এটি ইভ্যালুয়েট করা হয়।

  • এই মডেল ডিস্কে সেভ করা হয়।

  • প্রয়োজনে এটি রিস্টোর করা যায়।

  • মডেল ট্রেনিং দ্রুত করতে একাধিক GPU ব্যবহার করা যায়।

  • একবার মডেল বিল্ড হলে, এটি ফাংশনাল API মডেল처럼 আচরণ করে।

  • এটি ইঙ্গিত দেয় প্রতিটি লেয়ারের একটি ইনপুট এবং আউটপুট আছে।


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

  2. Keras ব্যবহার করে পাইথনে সম্পূর্ণ মডেল সংরক্ষণ করা

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

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