PyTorch Lightning ব্যবহার করে একটি Basic Image Classification মডেল তৈরি করা

প্র্যাকটিস প্রোজেক্টস - পাইটর্চ লাইটনিং (PyTorch Lightning) - Latest Technologies

246

PyTorch Lightning ব্যবহার করে একটি মৌলিক ইমেজ ক্লাসিফিকেশন মডেল তৈরি করা খুব সহজ। এখানে আমরা MNIST ডেটাসেট ব্যবহার করে একটি সিম্পল নিউরাল নেটওয়ার্ক তৈরি এবং প্রশিক্ষণের প্রক্রিয়া আলোচনা করব। এই উদাহরণটি আপনাকে কিভাবে PyTorch Lightning ব্যবহার করে একটি ইমেজ ক্লাসিফিকেশন মডেল তৈরি করতে হয়, তা দেখাবে।

ধাপ ১: প্রয়োজনীয় লাইব্রেরি ইন্সটল করা

প্রথমে নিশ্চিত করুন যে আপনার সিস্টেমে PyTorch এবং PyTorch Lightning ইন্সটল করা আছে। নিচের কমান্ড ব্যবহার করে ইন্সটল করতে পারেন:

pip install torch torchvision pytorch-lightning

ধাপ ২: ডেটা লোডার তৈরি করা

MNIST ডেটাসেট থেকে ইমেজ ডেটা লোড করার জন্য একটি ডেটা লোডার তৈরি করুন।

import torchvision.transforms as transforms
from torchvision import datasets
from torch.utils.data import DataLoader

def get_data_loaders(batch_size=32):
    transform = transforms.Compose([
        transforms.ToTensor(),
        transforms.Normalize((0.5,), (0.5,))  # Normalizing to [-1, 1]
    ])

    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 = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)
    val_loader = DataLoader(val_dataset, batch_size=batch_size, shuffle=False)

    return train_loader, val_loader

ধাপ ৩: Lightning Module তৈরি করা

এখন আমরা একটি Lightning Module তৈরি করব, যেখানে নিউরাল নেটওয়ার্কের আর্কিটেকচার এবং প্রশিক্ষণ পদ্ধতি থাকবে।

import pytorch_lightning as pl
import torch
from torch import nn
import torch.nn.functional as F

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
        self.log('train_loss', loss)  # Log the training 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

ধাপ ৪: মডেল প্রশিক্ষণ করা

এখন আমরা ডেটা লোডার তৈরি করব এবং মডেলটি প্রশিক্ষণ দেব।

from pytorch_lightning import Trainer

# Get data loaders
train_loader, val_loader = get_data_loaders()

# Create the model
model = SimpleNN()

# Create a Trainer
trainer = Trainer(max_epochs=5)

# Train the model
trainer.fit(model, train_loader, val_loader)

উপসংহার

এভাবে, আপনি PyTorch Lightning ব্যবহার করে একটি মৌলিক ইমেজ ক্লাসিফিকেশন মডেল তৈরি এবং প্রশিক্ষণ দিতে পারেন। এই প্রক্রিয়া সহজ এবং কার্যকরী, এবং আপনি PyTorch Lightning-এর সুবিধাগুলো ব্যবহার করে মডেল তৈরির সময় কোডের পাঠযোগ্যতা এবং সংগঠন উন্নত করতে পারেন। MNIST ডেটাসেটের মাধ্যমে এটি করা হয়েছে, কিন্তু আপনি অন্যান্য ডেটাসেটের জন্যও একই কাঠামো ব্যবহার করতে পারেন।

Promotion

Are you sure to start over?

Loading...