PyTorch Lightning একটি উচ্চ-স্তরের লাইব্রেরি যা PyTorch কোডকে আরও সংগঠিত এবং পাঠযোগ্য করে তোলে। এটি মেশিন লার্নিং প্রকল্পের উন্নয়ন প্রক্রিয়াকে সহজতর করে, বিশেষ করে প্রশিক্ষণ, যাচাইকরণ, এবং পরীক্ষণের ক্ষেত্রে।
নিচে একটি Lightning Module তৈরি করার প্রক্রিয়া উদাহরণসহ আলোচনা করা হলো।
১. প্রয়োজনীয় লাইব্রেরি ইমপোর্ট করা
import pytorch_lightning as pl
import torch
from torch import nn
from torch.utils.data import DataLoader, TensorDataset
২. Lightning Module তৈরি করা
Lightning Module তৈরি করতে, আপনাকে pl.LightningModule শ্রেণীকে হেরিটেজ করতে হবে। এর মধ্যে প্রশিক্ষণ, যাচাইকরণ, এবং অপটিমাইজারের সেটআপের জন্য বিভিন্ন মেথড সংজ্ঞায়িত করতে হয়।
class LitModel(pl.LightningModule):
def __init__(self):
super(LitModel, self).__init__()
self.model = nn.Linear(10, 1) # একটি সাধারণ নিউরাল নেটওয়ার্ক মডেল
self.criterion = nn.MSELoss() # লস ফাংশন
def forward(self, x):
return self.model(x)
def training_step(self, batch, batch_idx):
x, y = batch
y_hat = self.forward(x) # মডেল থেকে পূর্বাভাস পাওয়া
loss = self.criterion(y_hat, y) # লস হিসাব করা
self.log('train_loss', loss) # লস লগ করা
return loss
def configure_optimizers(self):
return torch.optim.Adam(self.model.parameters(), lr=0.001) # অপটিমাইজার
৩. ডেটাসেট তৈরি করা
একটি কাস্টম ডেটাসেট তৈরি করুন এবং DataLoader ব্যবহার করুন।
# ডেটা তৈরি করা
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)
৪. মডেল ট্রেনিং
Lightning Trainer ব্যবহার করে মডেলটি প্রশিক্ষণ দিন।
# Lightning মডেল তৈরি করা
model = LitModel()
# Trainer তৈরি করা
trainer = pl.Trainer(max_epochs=5) # প্রশিক্ষণের জন্য সর্বাধিক এপোক
# মডেল প্রশিক্ষণ দেওয়া
trainer.fit(model, train_loader)
৫. ইনফারেন্স করা
মডেল প্রশিক্ষণের পরে ইনফারেন্স করতে পারেন।
# ইনফারেন্স করার জন্য নতুন ডেটা
test_data = torch.randn(5, 10) # 5 টি ইনপুট উদাহরণ
with torch.no_grad():
predictions = model(test_data)
print(f'Predictions: {predictions}')
উপসংহার
এই নির্দেশিকাগুলি অনুসরণ করে, আপনি PyTorch Lightning ব্যবহার করে একটি Lightning Module তৈরি করতে পারবেন। এটি আপনার মডেলকে প্রশিক্ষণ, যাচাইকরণ এবং ইনফারেন্স করার প্রক্রিয়া সহজ করে এবং কোডের পঠনযোগ্যতা ও রক্ষণাবেক্ষণ উন্নত করে।
Read more