Caffe2 এ একটি মডেল ট্রেনিং করার পর, আপনার মডেলটি evaluation বা testing করতে হয় যাতে মডেলটির পারফরম্যান্স মূল্যায়ন করা যায়। এটি সাধারণত test dataset ব্যবহার করে করা হয়। মডেলটি একটি নতুন, অপ্রশিক্ষিত ডেটাসেটের উপর কীভাবে কাজ করছে তা পরীক্ষা করতে, যেমন ImageNet বা CIFAR-10 এর মতো টেস্ট ডেটাসেট ব্যবহার করা হয়।
এখানে Caffe2-এ pretrained মডেল (যেমন, ResNet, AlexNet, VGG) দিয়ে test data দিয়ে evaluation করার প্রক্রিয়া দেখানো হলো।
1. Caffe2 এ Test Data দিয়ে মডেল Evaluate করার ধাপগুলো
১.১. মডেল লোড করা
প্রথমে আপনাকে pretrained মডেল লোড করতে হবে। এই উদাহরণে, আমরা ResNet মডেল ব্যবহার করব, তবে একই পদ্ধতি অন্য মডেলগুলির জন্যও প্রযোজ্য।
from caffe2.python import workspace, model_lib, core
import numpy as np
# Workspace রিসেট করা
workspace.ResetWorkspace()
# ResNet50 মডেল লোড করা
model = model_lib.ResNet50()
# pretrained মডেল লোড করা
model.load_model("path_to_pretrained_model")
workspace.RunNetOnce(model.param_init_net)
workspace.RunNetOnce(model.net)
১.২. Test Data লোড এবং প্রস্তুতি
Test data লোড করার জন্য আপনাকে ডেটাসেটটি এক্সেস করতে হবে এবং মডেলের জন্য উপযুক্ত ফরম্যাটে প্রস্তুত করতে হবে। সাধারণত, ডেটাসেটটি Blob আকারে Caffe2 এর Workspace-এ লোড করতে হয়।
# Test Data লোড করা (এখানে 'test_data' একটি উদাহরণ)
test_data = np.random.randn(100, 3, 224, 224).astype(np.float32) # 100টি ইমেজের উদাহরণ
workspace.FeedBlob("data", test_data) # 'data' ব্লবে ইনপুট ডেটা ফিড করা
১.৩. ইনফারেন্স (Prediction) এবং Evaluation
এখন মডেলটি test data এর উপর ইনফারেন্স চালাবে এবং এর আউটপুট রেজাল্টস (যেমন প্রেডিকশন ক্লাস) সংগ্রহ করবে। এরপর, প্রাপ্ত ফলাফলগুলোর সাথে আসল লেবেল (True Labels) তুলনা করে accuracy বা অন্যান্য মেট্রিক্সে evaluation করা হয়।
# মডেলটির আউটপুট ব্লব থেকে প্রেডিকশন সংগ্রহ করা
workspace.RunNetOnce(model.net) # মডেল নেটওয়ার্ক রান করা
output = workspace.FetchBlob("softmax") # softmax আউটপুটের ব্লব থেকে আউটপুট সংগ্রহ করা
# আউটপুট আর্গুমেন্টের আকার দেখতে
print(output.shape)
# Accuracy বা অন্য evaluation মেট্রিক্স বের করা (যেমন, Top-1 accuracy)
# এখানে 'true_labels' হলো test data-এর আসল লেবেল
accuracy = np.mean(np.argmax(output, axis=1) == true_labels)
print(f"Accuracy: {accuracy:.4f}")
১.৪. Accuracy এবং অন্যান্য মেট্রিক্স বের করা
মডেলের পারফরম্যান্স মূল্যায়ন করতে accuracy, precision, recall, এবং F1-score মতো মেট্রিক্স ব্যবহার করা যেতে পারে। এখানে শুধু accuracy এর একটি সাধারণ হিসাব দেওয়া হলো।
# accuracy হিসাব করা
accuracy = np.mean(np.argmax(output, axis=1) == true_labels)
print(f"Accuracy: {accuracy:.4f}")
এছাড়া আপনি যদি Confusion Matrix ব্যবহার করতে চান, সেটা কনফিউশন ম্যাট্রিক্স তৈরির জন্য sklearn.metrics ব্যবহার করে করতে পারেন:
from sklearn.metrics import confusion_matrix
conf_matrix = confusion_matrix(true_labels, np.argmax(output, axis=1))
print("Confusion Matrix:\n", conf_matrix)
2. Caffe2 এর Evaluation করার জন্য কিছু টিপস
- Test data প্রস্তুতি: Test data বা validation data সঠিকভাবে প্রিপ্রসেসড হতে হবে (যেমন, normalization, resizing) যাতে মডেল সঠিকভাবে কাজ করতে পারে।
- Evaluation Metrics: আপনার মডেলটির পারফরম্যান্স মূল্যায়ন করার জন্য বিভিন্ন মেট্রিক্স ব্যবহার করা যেতে পারে, যেমন:
- Accuracy: সঠিক প্রেডিকশনের হার।
- Precision: সঠিক positive প্রেডিকশনের হার।
- Recall: আসল positive এর মধ্যে সঠিক প্রেডিকশনের হার।
- F1-Score: Precision এবং Recall এর সমন্বিত পরিমাপ।
- Batch processing: Test data যদি খুব বড় হয়, তাহলে সেগুলো ব্যাচে প্রক্রিয়া করুন যাতে মেমরি ম্যানেজমেন্ট সহজ হয়।
3. সারাংশ
Caffe2 এ pretrained মডেল দিয়ে test data এর উপর evaluation করা একটি সাধারণ প্রক্রিয়া। আপনি প্রথমে pretrained মডেলটি লোড করবেন, তারপর test data দিয়ে ইনফারেন্স চালিয়ে মডেলের পারফরম্যান্স পর্যালোচনা করবেন। Accuracy এবং অন্যান্য evaluation মেট্রিক্স (যেমন, confusion matrix) ব্যবহার করে মডেলের কার্যকারিতা বিশ্লেষণ করা হয়।
Read more