PyTorch-এ DataLoader এবং Dataset তৈরি করা একটি গুরুত্বপূর্ণ পদক্ষেপ যা মেশিন লার্নিং মডেল প্রশিক্ষণের জন্য ডেটা প্রস্তুত করতে সাহায্য করে। Dataset হল ডেটা পরিচালনার একটি ক্লাস, যেখানে ডেটার সংগ্রহ এবং ফিচার/লেবেল লোড করার লজিক থাকে। DataLoader হল একটি সাহায্যকারী ক্লাস যা Dataset থেকে ডেটা ব্যাচ করে লোড করে। নিচে এই প্রক্রিয়াটি ধাপে ধাপে বর্ণনা করা হলো।
ধাপ ১: PyTorch ইনস্টল করা
প্রথমে নিশ্চিত করুন যে আপনার সিস্টেমে PyTorch ইনস্টল করা আছে। আপনি নিচের কমান্ড ব্যবহার করে এটি ইনস্টল করতে পারেন:
pip install torch torchvision
ধাপ ২: Dataset তৈরি করা
Dataset ক্লাস তৈরি করতে হলে আপনাকে torch.utils.data.Dataset ক্লাসকে ইনহেরিট করতে হবে এবং কিছু মৌলিক মেথড যেমন __len__ এবং __getitem__ ওভাররাইড করতে হবে।
import torch
from torch.utils.data import Dataset
class MyDataset(Dataset):
def __init__(self, data, labels):
"""
:param data: ইনপুট ডেটা, একটি 2D টেনসর (numpy array বা list)
:param labels: লেবেল, একটি 1D টেনসর
"""
self.data = data
self.labels = labels
def __len__(self):
# ডেটাসেটের আকার ফেরত দিন
return len(self.data)
def __getitem__(self, idx):
# নির্দিষ্ট ইনডেক্সের ডেটা এবং লেবেল ফেরত দিন
return self.data[idx], self.labels[idx]
উদাহরণ:
এখন, আমরা একটি উদাহরণ তৈরি করি যেখানে ডেটাসেট কিছু সিমুলেটেড ডেটা নিয়ে কাজ করবে।
import numpy as np
# সিমুলেটেড ডেটা তৈরি করুন
data = np.random.rand(1000, 10) # 1000 স্যাম্পল, 10 ফিচার
labels = np.random.randint(0, 2, size=(1000,)) # 1000 লেবেল (0 অথবা 1)
# MyDataset তৈরি করুন
dataset = MyDataset(data=torch.tensor(data, dtype=torch.float32),
labels=torch.tensor(labels, dtype=torch.long))
ধাপ ৩: DataLoader তৈরি করা
DataLoader হল একটি ক্লাস যা Dataset থেকে ডেটা ব্যাচ লোড করে। এটি আপনাকে ডেটা শাফেল, ব্যাচিং এবং মাল্টিপ্রসেসিংয়ের মাধ্যমে লোড করতে সাহায্য করে।
from torch.utils.data import DataLoader
# DataLoader তৈরি করুন
dataloader = DataLoader(dataset, batch_size=32, shuffle=True) # ব্যাচ সাইজ 32
ধাপ ৪: DataLoader ব্যবহার করা
DataLoader ব্যবহার করে ডেটা প্রশিক্ষণের সময় ব্যাচের মাধ্যমে প্রাপ্ত করা যেতে পারে।
for batch_data, batch_labels in dataloader:
# প্রশিক্ষণের সময় ডেটা এবং লেবেল ব্যবহার করুন
print("Batch Data:", batch_data)
print("Batch Labels:", batch_labels)
উপসংহার
DataLoader এবং Dataset তৈরি করা এবং সেটআপ করা PyTorch-এ ডেটা পরিচালনার একটি গুরুত্বপূর্ণ অংশ। এটি আপনাকে ডেটা ব্যাচিং, শাফেলিং এবং মাল্টিপ্রসেসিংয়ের মাধ্যমে প্রশিক্ষণ প্রক্রিয়াকে আরও কার্যকরী করতে সাহায্য করে।
Read more