Keras হলো একটি উচ্চস্তরের নিউরাল নেটওয়ার্ক API যা টেনসরফ্লো বা থিওয়ারের ওপরে কাজ করে। এটি মেশিন লার্নিং এবং ডিপ লার্নিং মডেল তৈরি করতে সহায়ক এবং এটি ব্যবহারকারী বান্ধব, যেহেতু এটি দ্রুত মডেল তৈরি এবং প্রশিক্ষণের জন্য একটি সহজতর ইন্টারফেস প্রদান করে। এখানে, আমরা Keras এর মডেল Compile এবং Train করার পদ্ধতি আলোচনা করব।
১. মডেল Compile করা
মডেল compile করার মাধ্যমে আমরা নির্ধারণ করি যে মডেলটি কিভাবে ট্রেন হবে এবং তার আপডেট কীভাবে হবে। compile পদ্ধতির মধ্যে আমরা তিনটি গুরুত্বপূর্ণ উপাদান নির্ধারণ করি:
- Optimizer: এটি মডেল ট্রেনিংয়ের সময় ওজন আপডেট করার জন্য ব্যবহৃত হয়।
- Loss function: এটি মডেলটির আউটপুট এবং প্রকৃত আউটপুটের মধ্যে ত্রুটি পরিমাপ করে।
- Metrics: মডেলটির পারফরম্যান্স পরিমাপ করতে ব্যবহৃত হয় (যেমন Accuracy)।
উদাহরণ: মডেল Compile করার কোড
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import Adam
# মডেল তৈরি
model = Sequential()
model.add(Dense(64, activation='relu', input_dim=8)) # ইনপুট লেয়ার
model.add(Dense(32, activation='relu')) # হিডেন লেয়ার
model.add(Dense(1, activation='sigmoid')) # আউটপুট লেয়ার (বাইনরি ক্লাসিফিকেশন)
# মডেল কম্পাইল করা
model.compile(optimizer=Adam(learning_rate=0.001), # অপটিমাইজার
loss='binary_crossentropy', # ক্ষতি ফাংশন
metrics=['accuracy']) # মেট্রিক্স
এখানে:
- optimizer হিসেবে
Adamব্যবহার করা হয়েছে, যা জনপ্রিয় অপটিমাইজার। - loss হিসেবে
binary_crossentropyব্যবহার করা হয়েছে, যা বাইনরি ক্লাসিফিকেশনের জন্য উপযুক্ত। - metrics হিসেবে
accuracyব্যবহার করা হয়েছে, যা মডেলের সঠিকতা পরিমাপ করবে।
২. মডেল Train করা
মডেল train করার জন্য আমরা fit পদ্ধতি ব্যবহার করি, যেখানে আমরা ডেটা, epochs (প্রশিক্ষণের চক্রের সংখ্যা), এবং batch size (একবারে ডেটার কতটুকু সাইজ) নির্ধারণ করি। fit পদ্ধতি মডেলকে প্রশিক্ষিত করে এবং মডেলটি সঠিক আউটপুট দেয়ার জন্য ওজন আপডেট করে।
উদাহরণ: মডেল ট্রেন করার কোড
# ট্রেনিং ডেটা (ধরা যাক, X_train এবং y_train)
# X_train হলো ইনপুট ফিচার, y_train হলো আউটপুট লেবেল
# মডেল ট্রেনিং
model.fit(X_train, y_train,
epochs=10, # মোট ১০ বার ট্রেনিং হবে
batch_size=32, # একবারে ৩২টি ডেটা পয়েন্ট
validation_data=(X_val, y_val)) # ভ্যালিডেশন ডেটা ব্যবহার করা
এখানে:
X_trainএবংy_trainহল ট্রেনিং ডেটা এবং লেবেল।- epochs: মডেলটি মোট কতবার ট্রেনিং করবে।
- batch_size: একবারে কতগুলো ডেটা পয়েন্ট মডেল ব্যবহার করবে ট্রেনিংয়ের জন্য।
- validation_data: মডেলকে ভ্যালিডেশন ডেটার মাধ্যমে মূল্যায়ন করা হবে প্রতি epoch শেষে।
৩. ট্রেনিং শেষে মডেল মূল্যায়ন (Evaluate)
মডেলটি ট্রেনিং শেষ করার পর, আমরা মডেলটিকে টেস্ট ডেটা দিয়ে মূল্যায়ন করতে পারি। এর জন্য evaluate পদ্ধতি ব্যবহার করা হয়।
উদাহরণ: মডেল মূল্যায়ন করার কোড
# টেস্ট ডেটা (ধরা যাক, X_test এবং y_test)
# X_test হলো ইনপুট ফিচার, y_test হলো আউটপুট লেবেল
# মডেল মূল্যায়ন
loss, accuracy = model.evaluate(X_test, y_test)
print("Test Loss:", loss)
print("Test Accuracy:", accuracy)
এখানে:
evaluateপদ্ধতিটি মডেলের ক্ষতি এবং সঠিকতা প্রদান করবে টেস্ট ডেটার উপর।
৪. মডেল থেকে পূর্বাভাস (Prediction)
ট্রেনিং এবং মূল্যায়ন শেষ হওয়ার পর, আমরা মডেল ব্যবহার করে নতুন ডেটার জন্য পূর্বাভাস করতে পারি। এর জন্য predict পদ্ধতি ব্যবহৃত হয়।
উদাহরণ: পূর্বাভাস নেওয়া
# নতুন ইনপুট ডেটার জন্য পূর্বাভাস করা
predictions = model.predict(X_new)
# পূর্বাভাস প্রদর্শন
print(predictions)
এখানে:
X_newহলো নতুন ইনপুট ডেটা, এবংpredictপদ্ধতি আউটপুট হিসেবে মডেলটির পূর্বাভাস প্রদান করবে।
সারাংশ
- মডেল Compile: মডেল তৈরি করার পর, কম্পাইল করার মাধ্যমে অপটিমাইজার, ক্ষতি ফাংশন এবং মেট্রিক্স নির্ধারণ করা হয়।
- মডেল Train:
fitপদ্ধতির মাধ্যমে ডেটা ব্যবহার করে মডেল প্রশিক্ষিত করা হয়। - মডেল Evaluate:
evaluateপদ্ধতির মাধ্যমে মডেলের পারফরম্যান্স টেস্ট ডেটা ব্যবহার করে মূল্যায়ন করা হয়। - Prediction: মডেল পূর্বাভাস করতে
predictপদ্ধতি ব্যবহার করা হয়।
এই প্রক্রিয়া মডেল তৈরির মৌলিক অংশ এবং মডেলটি সফলভাবে ট্রেন এবং টেস্ট করার জন্য খুবই গুরুত্বপূর্ণ।
Read more