Forward Propagation এবং Model Evaluation

Torch ব্যবহার করে মডেল তৈরি করা - টর্চ (Torch) - Latest Technologies

269

Forward Propagation (Forward Pass)

Forward Propagation হলো Deep Learning মডেলের একটি প্রক্রিয়া যেখানে ইনপুট ডেটা মডেলের মধ্যে দিয়ে প্রবাহিত হয় এবং আউটপুট জেনারেট করে। PyTorch-এ, এটি মডেলের forward মেথডের মাধ্যমে পরিচালিত হয়। মডেল ট্রেইনিং এবং prediction-এর সময় forward propagation হয়।

PyTorch-এ Forward Propagation উদাহরণ:

import torch
import torch.nn as nn

# একটি সাধারণ নিউরাল নেটওয়ার্ক ক্লাস তৈরি
class SimpleNN(nn.Module):
    def __init__(self, input_size, hidden_size, output_size):
        super(SimpleNN, self).__init__()
        self.hidden = nn.Linear(input_size, hidden_size)
        self.output = nn.Linear(hidden_size, output_size)

    def forward(self, x):
        x = torch.relu(self.hidden(x))
        x = self.output(x)
        return x

# মডেল ইনিশিয়ালাইজেশন
model = SimpleNN(input_size=2, hidden_size=5, output_size=1)

# ইনপুট টেন্সর
input_data = torch.tensor([[1.0, 2.0]])

# Forward pass
output = model(input_data)
print(output)

উপরের কোডে, SimpleNN একটি নিউরাল নেটওয়ার্ক মডেল যেখানে forward propagation মেথডে ইনপুট x দিয়ে hidden এবং output লেয়ার দিয়ে আউটপুট পাওয়া যায়।

Model Evaluation

Model Evaluation হলো মডেলের পারফর্ম্যান্স যাচাই করার একটি প্রক্রিয়া। এটি মডেল ট্রেইনিংয়ের পরে অথবা validation/testing dataset-এ মডেল কেমন কাজ করছে তা নির্ধারণের জন্য ব্যবহৃত হয়।

মডেল ইভ্যালুয়েশনের স্টেপসমূহ:

  1. Loss Function: মডেলের আউটপুট এবং টার্গেট আউটপুটের পার্থক্য পরিমাপ করতে ব্যবহার করা হয়।
  2. Evaluation Metrics: যেমন Accuracy, Precision, Recall, F1 Score, এবং ROC-AUC।
  3. Confusion Matrix: ক্লাসিফিকেশন মডেলের পারফর্ম্যান্স বিশ্লেষণ করতে ব্যবহৃত হয়।

PyTorch-এ Model Evaluation উদাহরণ:

import torch
import torch.nn as nn
import torch.optim as optim

# Model, loss function এবং optimizer ইনিশিয়ালাইজ
model = SimpleNN(input_size=2, hidden_size=5, output_size=1)
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)

# কিছু ডেটাসেট উদাহরণ
input_data = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
target = torch.tensor([[0.5], [1.5]])

# মডেলকে ইভ্যালুয়েট মোডে সেট করা
model.eval()

# আউটপুট জেনারেট করা
with torch.no_grad():  # Gradient না ক্যালকুলেট করার জন্য
    output = model(input_data)
    loss = criterion(output, target)
    print(f'Loss: {loss.item()}')

# মেট্রিক্স অনুযায়ী পর্যালোচনা
accuracy = ((output.round() == target).sum().float() / target.size(0)) * 100
print(f'Accuracy: {accuracy.item()}%')

উপরের উদাহরণে, আমরা মডেলটি ট্রেইন না করেই evaluation mode-এ সেট করেছি এবং টেস্ট ডেটাসেটে আউটপুট এবং টার্গেটের মধ্যে লস পরিমাপ করেছি।

এছাড়াও, মেট্রিক হিসেবে Accuracy পরিমাপ করা হয়েছে।

Promotion

Are you sure to start over?

Loading...