PyTorch Lightning ব্যবহার করে মডেল ট্রেনিং এবং ভ্যালিডেশন লুপ তৈরি করা খুবই সহজ। নিচে মডেল ট্রেনিং এবং ভ্যালিডেশন লুপ তৈরি করার জন্য একটি উদাহরণ সহ বিস্তারিত নির্দেশনা দেওয়া হলো।
১. প্রয়োজনীয় লাইব্রেরি ইন্সটল করা
প্রথমে নিশ্চিত করুন যে আপনার সিস্টেমে PyTorch এবং PyTorch Lightning ইন্সটল করা আছে। যদি না থাকে, তাহলে নিচের কমান্ডটি ব্যবহার করে ইনস্টল করুন:
pip install torch pytorch-lightning
২. Lightning Module তৈরি করা
একটি Lightning Module তৈরি করুন যেখানে মডেলের স্থাপনা, ট্রেনিং স্টেপ এবং ভ্যালিডেশন স্টেপ উল্লেখ করা থাকবে।
import pytorch_lightning as pl
import torch
from torch import nn
from torch.nn import functional as F
from torchvision import datasets, transforms
class SimpleNN(pl.LightningModule):
def __init__(self):
super(SimpleNN, self).__init__()
self.layer1 = nn.Linear(28 * 28, 128) # 28x28 input (e.g., MNIST images)
self.layer2 = nn.Linear(128, 10) # 10 output classes
def forward(self, x):
x = x.view(x.size(0), -1) # Flatten the image
x = F.relu(self.layer1(x))
x = self.layer2(x)
return x
def training_step(self, batch, batch_idx):
x, y = batch
y_hat = self(x) # Forward pass
loss = F.cross_entropy(y_hat, y) # Calculate loss
return loss
def validation_step(self, batch, batch_idx):
x, y = batch
y_hat = self(x)
val_loss = F.cross_entropy(y_hat, y)
self.log('val_loss', val_loss) # Log the validation loss
def configure_optimizers(self):
optimizer = torch.optim.Adam(self.parameters(), lr=0.001)
return optimizer
৩. ডেটা লোডার তৈরি করা
MNIST ডেটাসেট ব্যবহার করে ডেটা লোডার তৈরি করুন:
def get_data_loaders(batch_size=32):
transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])
train_dataset = datasets.MNIST(root='./data', train=True, download=True, transform=transform)
val_dataset = datasets.MNIST(root='./data', train=False, download=True, transform=transform)
train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=batch_size, shuffle=True)
val_loader = torch.utils.data.DataLoader(val_dataset, batch_size=batch_size, shuffle=False)
return train_loader, val_loader
৪. ট্রেনিং এবং ভ্যালিডেশন লুপ চালানো
SageMaker বা অন্যান্য পরিবেশে ট্রেনিং এবং ভ্যালিডেশন লুপ চালানোর জন্য নিচের কোডটি ব্যবহার করুন:
from pytorch_lightning import Trainer
# ডেটা লোডার পাবেন
train_loader, val_loader = get_data_loaders()
# Lightning Module তৈরি করুন
model = SimpleNN()
# Trainer তৈরি করুন
trainer = Trainer(max_epochs=5)
# মডেল ট্রেন করুন
trainer.fit(model, train_loader, val_loader)
উপসংহার
এভাবে, আপনি PyTorch Lightning ব্যবহার করে মডেল ট্রেনিং এবং ভ্যালিডেশন লুপ তৈরি করতে পারেন। এই প্রক্রিয়াটি মডেল তৈরির এবং প্রশিক্ষণের জন্য কার্যকর এবং ব্যবহারকারী-বান্ধব পদ্ধতি প্রদান করে। PyTorch Lightning স্বয়ংক্রিয়ভাবে ট্রেনিং এবং ভ্যালিডেশন লুপ পরিচালনা করে, যা কোডের জটিলতা কমিয়ে দেয় এবং উন্নত কার্যকারিতা নিশ্চিত করে।
Read more