Functional API দিয়ে মডেল ট্রেনিং এবং Evaluate করা

Machine Learning - কেরাস (Keras) - Functional API দিয়ে Complex মডেল তৈরি
211

Keras Functional API একটি শক্তিশালী উপায় যা আপনাকে কমপ্লেক্স এবং নমনীয় মডেল তৈরি করতে সহায়তা করে। এটি Sequential API এর তুলনায় বেশি ফ্লেক্সিবিলিটি প্রদান করে এবং একই সময়ে একাধিক ইনপুট এবং আউটপুট ব্যবহার করতে সক্ষম। Functional API মডেল তৈরির জন্য, আপনি Input() লেয়ার এবং মডেল সংযোগের জন্য Model() ফাংশন ব্যবহার করেন।

নিচে Functional API দিয়ে একটি নিউরাল নেটওয়ার্ক মডেল ট্রেনিং এবং Evaluate করার প্রক্রিয়া নিয়ে বিস্তারিত আলোচনা করা হলো।


১. Functional API দিয়ে মডেল তৈরি করা

Functional API দিয়ে মডেল তৈরি করার প্রক্রিয়া Input() লেয়ার ব্যবহার করে শুরু হয় এবং তারপর অন্যান্য লেয়ারগুলির সাথে যুক্ত করা হয়। শেষে Model() ফাংশনটি দিয়ে মডেলটি তৈরি হয়।

উদাহরণ:

import tensorflow as tf
from tensorflow.keras import layers, Model

# ইনপুট লেয়ার
input = layers.Input(shape=(8,))

# হিডেন লেয়ার
x = layers.Dense(64, activation='relu')(input)
x = layers.Dense(32, activation='relu')(x)

# আউটপুট লেয়ার
output = layers.Dense(1, activation='sigmoid')(x)

# মডেল তৈরি করা
model = Model(inputs=input, outputs=output)

# মডেল সারাংশ দেখানো
model.summary()

এখানে:

  • input: ইনপুট ডেটার জন্য একটি লেয়ার।
  • Dense: সম্পূর্ণভাবে যুক্ত (fully connected) লেয়ার।
  • output: আউটপুট লেয়ার।
  • Model: মডেল তৈরির জন্য ব্যবহৃত ফাংশন যা ইনপুট এবং আউটপুট লেয়ারকে যুক্ত করে।

২. মডেল ট্রেনিং (Training)

মডেল ট্রেনিং করার জন্য, প্রথমে আপনাকে মডেলটি compile করতে হবে, তারপর fit() ফাংশন দিয়ে ট্রেনিং শুরু করতে হবে।

উদাহরণ:

# মডেল কম্পাইল করা
model.compile(optimizer='adam', 
              loss='binary_crossentropy', 
              metrics=['accuracy'])

# ট্রেনিং ডেটা তৈরি করা
import numpy as np

# উদাহরণ ডেটা (100 উদাহরণ, 8 ইনপুট ফিচার)
X_train = np.random.rand(100, 8)
y_train = np.random.randint(0, 2, 100)

# মডেল প্রশিক্ষণ
model.fit(X_train, y_train, epochs=10, batch_size=32)

এখানে:

  • optimizer='adam': Adam অপটিমাইজার ব্যবহার করা হয়েছে।
  • loss='binary_crossentropy': বাইনারি শ্রেণীকরণের জন্য লস ফাংশন।
  • metrics=['accuracy']: প্রশিক্ষণের সময় সঠিকতার পরিমাপ।

model.fit() ফাংশনটি মডেলকে প্রশিক্ষণ দেয়, যেখানে epochs হল প্রশিক্ষণের ধাপের সংখ্যা এবং batch_size হল একবারে কতটা ডেটা মডেল প্রসেস করবে।


৩. মডেল Evaluate করা

মডেল evaluate() ফাংশন দিয়ে যাচাই করা হয়, যা ডেটার উপর মডেলের কর্মক্ষমতা পরিমাপ করে। এটি মডেল প্রশিক্ষণের পর টেস্ট ডেটার ওপর অ্যাকিউরেসি বা লস মূল্যায়ন করতে ব্যবহার হয়।

উদাহরণ:

# টেস্ট ডেটা তৈরি করা
X_test = np.random.rand(20, 8)  # 20 উদাহরণ
y_test = np.random.randint(0, 2, 20)

# মডেল Evaluate করা
loss, accuracy = model.evaluate(X_test, y_test)

print(f"Loss: {loss}")
print(f"Accuracy: {accuracy}")

এখানে:

  • X_test: টেস্ট ডেটা।
  • y_test: টেস্ট লেবেল।
  • evaluate(): মডেলটির লস এবং অ্যাকিউরেসি মাপার জন্য ব্যবহার হয়।

evaluate() ফাংশনটি দুটি মান ফেরত দেয়:

  • Loss: মডেলটির লস ফাংশনের মান।
  • Accuracy: মডেলটির সঠিকতা।

৪. মডেল প্রেডিকশন

মডেল প্রশিক্ষণের পর predict() ফাংশন দিয়ে নতুন ডেটার ওপর পূর্বাভাস (prediction) করা হয়।

উদাহরণ:

# নতুন ইনপুট ডেটা
X_new = np.random.rand(5, 8)  # 5 নতুন উদাহরণ

# পূর্বাভাস করা
predictions = model.predict(X_new)

print(f"Predictions: {predictions}")

এখানে:

  • X_new: নতুন ইনপুট ডেটা।
  • predict(): মডেল থেকে পূর্বাভাস প্রাপ্তি।

predict() ফাংশনটি আপনার মডেল থেকে পূর্বাভাস হিসেবে আউটপুট ফেরত দেয়।


সারাংশ

  1. Functional API দিয়ে মডেল তৈরি করা অত্যন্ত নমনীয় এবং ফ্লেক্সিবল, যেখানে আপনি ইনপুট এবং আউটপুট লেয়ারকে সরাসরি সংযুক্ত করতে পারেন।
  2. মডেল ট্রেনিং করতে compile() এবং fit() ফাংশন ব্যবহার করা হয়, যা মডেলকে প্রশিক্ষিত করে এবং নির্দিষ্ট এপকস এবং ব্যাচ সাইজের মাধ্যমে কাজ সম্পাদন করে।
  3. মডেল যাচাইয়ের জন্য evaluate() ফাংশন ব্যবহার করা হয়, যা মডেলের কর্মক্ষমতা (লস এবং অ্যাকিউরেসি) পরিমাপ করে।
  4. নতুন ডেটার জন্য পূর্বাভাস করতে predict() ফাংশন ব্যবহার করা হয়।

Functional API একটি শক্তিশালী টুল, বিশেষত যখন আপনি একাধিক ইনপুট বা আউটপুট, বা বিভিন্ন ধরনের মডেল আর্কিটেকচার তৈরি করতে চান।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...