कस्टम डेटासेट और DataLoaders
torch.utils.data.Dataset, __len__/__getitem__, DataLoader, रूपांतरण और augmentation।
कस्टम डेटासेट और DataLoaders, CoddyKit पर पाइथन के साथ एआई सीखें का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह पाइथन के साथ एआई सीखें सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। पाइथन के साथ एआई सीखें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
मॉडल को डेटा देना
प्रशिक्षण के लिए डेटा पढ़ने, रूपांतरित करने और बैच बनाने का एक कुशल तरीका आवश्यक होता है। PyTorch दो अमूर्तताएँ प्रदान करता है: डेटासेट (जो एक नमूना प्राप्त करना जानता है) और DataLoader (जो नमूनों के बैच बनाता और उन्हें क्रमहीन करता है)।
from torch.utils.data import Dataset, DataLoaderडेटासेट इंटरफ़ेस
कस्टम Dataset उपवर्ग में दो विधियाँ लागू करना अनिवार्य है: __len__ (नमूनों की संख्या) और __getitem__ (किसी सूचकांक पर मौजूद नमूना लौटाना)। PyTorch डेटा प्राप्त करने के लिए इन्हें कॉल करता है।
__len__ लागू करना
__len__ PyTorch को डेटासेट का आकार बताता है, ताकि उसे पता हो कि कितने सूचकांक मौजूद हैं और एक युग में कितने बैच होते हैं।
class ImageDataset(Dataset):
def __init__(self, paths, labels):
self.paths = paths
self.labels = labels
def __len__(self):
return len(self.paths)__getitem__ लागू करना
किसी सूचकांक के आधार पर __getitem__ एक नमूना और उसका लेबल लोड करके लौटाता है। यहीं आप किसी चित्र फ़ाइल को खोलकर उसे टेन्सर में बदलते हैं।
from PIL import Image
def __getitem__(self, idx):
img = Image.open(self.paths[idx]).convert("RGB")
label = self.labels[idx]
return img, labelरूपांतरण क्यों आवश्यक हैं?
कच्चे चित्रों का आकार और पिक्सेल-परास अलग-अलग होता है। रूपांतरण उन्हें एकसमान बनाते हैं: उनका आकार एक निश्चित रूप में बदलते हैं, उन्हें टेन्सर में बदलते हैं और पिक्सेल मानों को सामान्यीकृत करते हैं, ताकि मॉडल स्थिर रूप से प्रशिक्षित हो।
from torchvision import transformstransforms.Compose
transforms.Compose कई रूपांतरणों को एक ऐसी पाइपलाइन में जोड़ता है, जो उन्हें दिए गए क्रम में लागू करती है। सामान्य क्रम Resize, फिर ToTensor और फिर Normalize होता है।
tf = transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
])रूपांतरणों को समझना
Resize स्थानिक आकार को निश्चित करता है; ToTensor PIL चित्र को टेन्सर में बदलता है और पिक्सेल को [0,1] तक मापता है; Normalize प्रत्येक चैनल को स्थानांतरित और मापकर उसका माध्य शून्य तथा प्रसरण एक करता है, जिससे अभिसरण तेज़ होता है।
डेटासेट में रूपांतरण लागू करना
रूपांतरण को डेटासेट में दें और उसे __getitem__ के अंदर लागू करें, ताकि हर नमूना प्राप्त होते समय एकसमान रूप से पूर्व-संसाधित हो।
class ImageDataset(Dataset):
def __init__(self, paths, labels, transform):
self.paths, self.labels, self.transform = paths, labels, transform
def __getitem__(self, idx):
img = Image.open(self.paths[idx]).convert("RGB")
return self.transform(img), self.labels[idx]DataLoader में लपेटना
DataLoader डेटासेट को बैचों के एक क्रमिक संग्रह में बदलता है। प्रति चरण नमूनों की संख्या नियंत्रित करने के लिए batch_size और हर युग में क्रम को यादृच्छिक बनाने के लिए shuffle=True सेट करें। प्रशिक्षण के लिए यह महत्वपूर्ण है।
dataset = ImageDataset(paths, labels, tf)
loader = DataLoader(dataset, batch_size=32, shuffle=True)गति के लिए num_workers
num_workers समानांतर उप-प्रक्रियाएँ शुरू करता है, जो GPU के प्रशिक्षण के दौरान डेटा लोड और रूपांतरित करती हैं तथा इनपुट-आउटपुट विलंबता को छिपाती हैं। 4 जैसा मान अक्सर GPU को प्रतीक्षा करने के बजाय लगातार डेटा देता रहता है।
loader = DataLoader(
dataset,
batch_size=32,
shuffle=True,
num_workers=4
)बैचों पर पुनरावृत्ति
बैच किए गए टेन्सर प्राप्त करने के लिए DataLoader पर लूप चलाएँ। हर पुनरावृत्ति में (images, labels) मिलता है, जहाँ images का आकार [batch_size, channels, H, W] होता है और वह मॉडल के लिए तैयार रहता है।
for images, labels in loader:
print(images.shape) # torch.Size([32, 3, 224, 224])
breakत्वरित जाँच
डेटा पाइपलाइन की अपनी समझ जाँचें।
पुनरावलोकन: डेटासेट और DataLoader
आपने __len__ और __getitem__ के साथ कस्टम Dataset बनाया, transforms.Compose (Resize, ToTensor, Normalize) का उपयोग करके चित्रों को पूर्व-संसाधित किया और बैचों को कुशलता से अपने मॉडल तक पहुँचाने के लिए इसे batch_size, shuffle और num_workers वाले DataLoader में लपेटा।
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 53
- पाठ
- 225
अक्सर पूछे जाने वाले प्रश्न
क्या “कस्टम डेटासेट और DataLoaders” पाठ निःशुल्क है?
हाँ — पाइथन के साथ एआई सीखें अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “कस्टम डेटासेट और DataLoaders” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। पाइथन के साथ एआई सीखें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“कस्टम डेटासेट और DataLoaders” में मैं क्या सीखूँगा?
torch.utils.data.Dataset, __len__/__getitem__, DataLoader, रूपांतरण और augmentation। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ पाइथन के साथ एआई सीखें का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या पाइथन के साथ एआई सीखें शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर पाइथन के साथ एआई सीखें शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“कस्टम डेटासेट और DataLoaders” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस पाइथन के साथ एआई सीखें पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर पाइथन के साथ एआई सीखें पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- PyTorch टेंसर और Autograd
- कस्टम डेटासेट और DataLoaders
- PyTorch में CNN बनाना और प्रशिक्षित करना
- YOLOv8 के साथ ऑब्जेक्ट डिटेक्शन