PyTorch Lightning-এ Custom Callback তৈরি করা একটি শক্তিশালী উপায়, যা প্রশিক্ষণের সময় নির্দিষ্ট কার্যকলাপ সম্পাদন করার সুযোগ দেয়। এটি মডেল প্রশিক্ষণের সময় বিভিন্ন কার্যকলাপ, যেমন লগিং, early stopping, এবং অন্যান্য কাস্টম অপারেশনকে স্বয়ংক্রিয় করতে সহায়ক। নিচে কিভাবে একটি Custom Callback তৈরি করা যায় এবং তার ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করা হলো।
Custom Callback তৈরি করা
পদক্ষেপ ১: PyTorch Lightning ইনস্টল করা
pip install pytorch-lightning
পদক্ষেপ ২: Custom Callback তৈরি করা
Custom Callback তৈরি করতে, আপনাকে pytorch_lightning.callbacks.Callback ক্লাস থেকে উত্তরাধিকারী নিতে হবে এবং আপনার নিজের কাস্টম কার্যকলাপগুলি সংজ্ঞায়িত করতে হবে।
import pytorch_lightning as pl
class CustomLoggingCallback(pl.Callback):
def on_epoch_end(self, trainer, pl_module):
# এপোকের শেষে লগিং তথ্য যোগ করা
print(f'Epoch {trainer.current_epoch} finished!')
# এখানে আপনার কাস্টম লজিং কোড যোগ করুন
# উদাহরণস্বরূপ, মডেলের কিছু বৈশিষ্ট্য লগ করা
model_parameters = sum(p.numel() for p in pl_module.parameters())
print(f'Total model parameters: {model_parameters}')
Custom Callback ব্যবহার করা
পদক্ষেপ ৩: মডেল তৈরি করা
import torch
from torch import nn
from torch.utils.data import DataLoader, Dataset
# একটি মৌলিক ডেটাসেট তৈরি করা
class SimpleDataset(Dataset):
def __init__(self, size):
self.data = torch.randn(size, 10)
self.labels = (self.data.sum(dim=1) > 0).long() # লেবেল তৈরি
def __len__(self):
return len(self.data)
def __getitem__(self, idx):
return self.data[idx], self.labels[idx]
# মডেল তৈরি করা
class SimpleModel(pl.LightningModule):
def __init__(self):
super(SimpleModel, self).__init__()
self.layer = nn.Linear(10, 2)
def forward(self, x):
return self.layer(x)
def training_step(self, batch, batch_idx):
x, y = batch
y_hat = self(x)
loss = nn.CrossEntropyLoss()(y_hat, y)
return loss
def configure_optimizers(self):
return torch.optim.Adam(self.parameters(), lr=0.001)
পদক্ষেপ ৪: প্রশিক্ষণ এবং Callback অন্তর্ভুক্ত করা
# ডেটা লোডার তৈরি
train_dataset = SimpleDataset(size=1000)
train_loader = DataLoader(train_dataset, batch_size=32)
# মডেল ইনস্ট্যান্স তৈরি করা
model = SimpleModel()
# Custom Callback তৈরি করা
custom_callback = CustomLoggingCallback()
# প্রশিক্ষণ শুরু করা
trainer = pl.Trainer(callbacks=[custom_callback], max_epochs=5)
trainer.fit(model, train_loader)
উপসংহার
Custom Callback তৈরি এবং ব্যবহার করা PyTorch Lightning-এ অত্যন্ত সহজ এবং কার্যকরী। এটি প্রশিক্ষণের সময় বিভিন্ন কাস্টম কার্যকলাপ সম্পাদন করতে সহায়ক, যেমন লগিং বা নির্দিষ্ট শর্তে কিছু কার্যক্রম পরিচালনা করা। উপরোক্ত উদাহরণগুলি
Read more