মডেল ইনফারেন্স প্রক্রিয়া হল প্রশিক্ষিত মডেল ব্যবহার করে নতুন ডেটার উপর পূর্বাভাস করা। এখানে আমি Python এবং PyTorch ব্যবহার করে একটি মডেল ইনফারেন্স প্রক্রিয়ার উদাহরণ দেখাব, যেখানে আমরা একটি সহজ নিউরাল নেটওয়ার্ক মডেল তৈরি করব, সেটি প্রশিক্ষণ দেব এবং ইনফারেন্স করব।
১. প্রয়োজনীয় লাইব্রেরি ইনস্টল করা
প্রথমে নিশ্চিত করুন যে আপনার সিস্টেমে PyTorch ইনস্টল করা আছে। যদি না থাকে, তবে নিচের কমান্ডটি চালান:
pip install torch torchvision
২. নিউরাল নেটওয়ার্ক মডেল তৈরি করা
এখন একটি সাধারণ নিউরাল নেটওয়ার্ক মডেল তৈরি করুন এবং সেটি প্রশিক্ষণ দিন।
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, TensorDataset
# একটি সাধারণ নিউরাল নেটওয়ার্ক মডেল তৈরি করা
class SimpleNN(nn.Module):
def __init__(self):
super(SimpleNN, self).__init__()
self.fc1 = nn.Linear(10, 5) # ইনপুট সাইজ 10, আউটপুট সাইজ 5
self.fc2 = nn.Linear(5, 1) # ইনপুট সাইজ 5, আউটপুট সাইজ 1
def forward(self, x):
x = torch.relu(self.fc1(x)) # ReLU অ্যাক্টিভেশন ফাংশন
return self.fc2(x) # আউটপুট লেয়ার
# ডেটা তৈরি
x_train = torch.randn(100, 10) # 100টি উদাহরণ, প্রতিটির 10টি বৈশিষ্ট্য
y_train = torch.randn(100, 1) # লক্ষ্য পরিবর্তনশীল
train_dataset = TensorDataset(x_train, y_train)
train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True) # ব্যাচ সাইজ 32
# মডেল তৈরি
model = SimpleNN()
criterion = nn.MSELoss() # গড় বর্গ ত্রুটি (MSE)
optimizer = optim.Adam(model.parameters(), lr=0.001) # Adam অপটিমাইজার
# প্রশিক্ষণ প্রক্রিয়া
num_epochs = 10
for epoch in range(num_epochs):
for inputs, targets in train_loader:
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, targets)
loss.backward()
optimizer.step()
৩. ইনফারেন্স করা
মডেল প্রশিক্ষণের পর, নতুন ডেটার উপর ইনফারেন্স করার জন্য নিম্নলিখিত প্রক্রিয়া অনুসরণ করুন:
# নতুন ইনপুটের উপর ইনফারেন্স করা
new_data = torch.randn(5, 10) # 5 টি নতুন উদাহরণ
# মডেল ব্যবহার করে ইনফারেন্স
model.eval() # মডেলকে ইনফারেন্স মোডে নিয়ে আসা
with torch.no_grad(): # গ্রেডিয়েন্ট হিসাব না করার জন্য
predictions = model(new_data)
# পূর্বাভাস প্রদর্শন করা
print("Predictions:")
print(predictions.numpy())
৪. ইনফারেন্সের ফলাফল বিশ্লেষণ
প্রিন্ট আউট আপনার মডেল দ্বারা উৎপন্ন পূর্বাভাসের ফলাফল হবে। আপনি এই পূর্বাভাসগুলি বিভিন্নভাবে বিশ্লেষণ করতে পারেন, যেমন:
- যদি এটি একটি ক্লাসিফিকেশন সমস্যা হয়, তবে আপনি আউটপুটগুলিকে ক্লাসে রূপান্তর করতে পারেন।
- যদি এটি একটি রিগ্রেশন সমস্যা হয়, তবে পূর্বাভাসের গুণমান বিশ্লেষণ করতে MSE বা RMSE ব্যবহার করতে পারেন।
উপসংহার
এই উদাহরণটি দেখায় কিভাবে একটি সহজ নিউরাল নেটওয়ার্ক মডেল তৈরি করা যায়, প্রশিক্ষণ দেওয়া যায় এবং নতুন ডেটার উপর ইনফারেন্স করা যায়। ইনফারেন্স হল মডেল ব্যবহারের সবচেয়ে গুরুত্বপূর্ণ অংশ, যা আপনাকে প্রকৃত ডেটা থেকে মূল্যবান তথ্য এবং অন্তর্দৃষ্টি বের করতে সহায়তা করে।
Read more