Custom Callback তৈরি করা এবং তার ব্যবহার

Callbacks এবং Advanced Features - পাইটর্চ লাইটনিং (PyTorch Lightning) - Latest Technologies

233

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-এ অত্যন্ত সহজ এবং কার্যকরী। এটি প্রশিক্ষণের সময় বিভিন্ন কাস্টম কার্যকলাপ সম্পাদন করতে সহায়ক, যেমন লগিং বা নির্দিষ্ট শর্তে কিছু কার্যক্রম পরিচালনা করা। উপরোক্ত উদাহরণগুলি

Promotion

Are you sure to start over?

Loading...