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

Python-এ Keras Embedding লেয়ার ব্যবহার করে লেয়ার শেয়ারিং কীভাবে করা যায়?


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

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

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

উদাহরণ

print("2000টি অনন্য শব্দ ১২৮-মাত্রিক ভেক্টরে ম্যাপ করা Embedding")
shared_embedding = layers.Embedding(2000, 128)
print("ভেরিয়েবল-লেন্থ পূর্ণসংখ্যা সিকোয়েন্স")
text_input_a = keras.Input(shape=(None,), dtype="int32")
print("ভেরিয়েবল-লেন্থ পূর্ণসংখ্যা সিকোয়েন্স")
text_input_b = keras.Input(shape=(None,), dtype="int32")
print("একই লেয়ার পুনর্ব্যবহার করে দুটি ইনপুট এনকোড করা হচ্ছে")
encoded_input_a = shared_embedding(text_input_a)
encoded_input_b = shared_embedding(text_input_b)

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

আউটপুট

2000টি অনন্য শব্দ ১২৮-মাত্রিক ভেক্টরে ম্যাপ করা Embedding
ভেরিয়েবল-লেন্থ পূর্ণসংখ্যা সিকোয়েন্স
ভেরিয়েবল-লেন্থ পূর্ণসংখ্যা সিকোয়েন্স
একই লেয়ার পুনর্ব্যবহার করে দুটি ইনপুট এনকোড করা হচ্ছে

ব্যাখ্যা

  • ফাংশনাল API মডেল শেয়ার করা লেয়ার ব্যবহার করে।

  • এই শেয়ার করা লেয়ারগুলো ইনস্ট্যান্স যেগুলো একই মডেলে একাধিকবার পুনর্ব্যবহার করা যায়।

  • এই লেয়ারগুলো গ্রাফে একাধিক পথের সাথে সম্পর্কিত ফিচার শিখে।

  • শেয়ার করা লেয়ারগুলো দুটি ভিন্ন টেক্সট भाग থেকে ইনপুট এনকোড করতে ব্যবহৃত হয় যারা একই ভোকাবুলারি শেয়ার করে।

  • এভাবে বিভিন্ন ইনপুট জুড়ে তথ্য শেয়ারিং সম্ভব।

  • এ কারণে মডেল কম ডেটায় ট্রেন করা যায়।

  • উপরোক্ত কোডে 'Embedding' লেয়ার দুটি ভিন্ন টেক্সট জুড়ে শেয়ার করা হয়েছে।


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

  2. Python প্রোগ্রামে Keras ব্যবহার করে মডেল প্লট কীভাবে করা যায়?

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

  4. Python-এ Keras ফাংশনাল API ব্যবহার করে লেয়ার তৈরি করার পদ্ধতি