PyTorch-এ লস ফাংশন এবং অপটিমাইজার এর ব্যবহার

অপটিমাইজার এবং লস ফাংশন - টর্চ (Torch) - Latest Technologies

259

PyTorch-এ লস ফাংশন এবং অপটিমাইজার মডেল ট্রেনিং-এর গুরুত্বপূর্ণ অংশ। লস ফাংশন দিয়ে আমরা মডেলের আউটপুট ও টার্গেটের মধ্যে পার্থক্য মাপতে পারি, আর অপটিমাইজার দিয়ে সেই পার্থক্য কমানোর জন্য মডেলের প্যারামিটার আপডেট করতে পারি। নিচে লস ফাংশন এবং অপটিমাইজার ব্যবহারের একটি সাধারণ উদাহরণ দেয়া হলো:

ধাপ ১: লস ফাংশন তৈরি করা

লস ফাংশন হিসেবে nn মডিউল থেকে বিভিন্ন ধরনের ফাংশন নিতে পারেন। উদাহরণস্বরূপ, ক্লাসিফিকেশনের জন্য CrossEntropyLoss এবং রিগ্রেশনের জন্য MSELoss সাধারণত ব্যবহৃত হয়।

import torch
import torch.nn as nn

# লস ফাংশন নির্বাচন
criterion = nn.CrossEntropyLoss()  # ক্লাসিফিকেশন সমস্যার জন্য

ধাপ ২: অপটিমাইজার তৈরি করা

অপটিমাইজার তৈরি করতে হলে মডেলের প্যারামিটার এবং লার্নিং রেট নির্ধারণ করতে হবে। এখানে Adam অপটিমাইজার ব্যবহার করা হয়েছে, তবে SGD, RMSprop ইত্যাদি অপটিমাইজারও ব্যবহার করতে পারেন।

import torch.optim as optim

# অপটিমাইজার নির্বাচন
optimizer = optim.Adam(model.parameters(), lr=0.001)

ধাপ ৩: লস ফাংশন এবং অপটিমাইজার ব্যবহার করে ট্রেনিং লুপ

ট্রেনিং লুপে ফিড-ফরোয়ার্ড, লস গণনা, ব্যাকপ্রপাগেশন এবং অপটিমাইজার স্টেপ করা হয়। উদাহরণস্বরূপ:

# মডেল ট্রেনিং লুপ
for epoch in range(num_epochs):
    # ইনপুট ফরোয়ার্ড পাস
    outputs = model(inputs)
    loss = criterion(outputs, labels)  # লস গণনা
    
    # ব্যাকওয়ার্ড পাস এবং অপটিমাইজেশন
    optimizer.zero_grad()  # গ্রেডিয়েন্ট রিসেট করা
    loss.backward()        # ব্যাকপ্রপাগেশন
    optimizer.step()        # প্যারামিটার আপডেট
    
    print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')

সারাংশ

  1. criterion দিয়ে লস ফাংশন তৈরি করুন।
  2. optimizer দিয়ে অপটিমাইজার তৈরি করুন।
  3. ট্রেনিং লুপে loss.backward() এবং optimizer.step() ব্যবহার করে প্যারামিটার আপডেট করুন।

এভাবে PyTorch ব্যবহার করে সহজেই মডেল ট্রেনিং করতে পারবেন।

Promotion

Are you sure to start over?

Loading...