Eine eigene Dataset-Klasse schreiben
Implementieren Sie __len__ und __getitem__.
Eine eigene Dataset-Klasse schreiben ist eine kostenlose Deep Learning Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Deep Learning Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Deep Learning Academy-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
Your Data Needs a Front Door
Before a model can learn, PyTorch needs a clean way to reach your samples one at a time. That front door is a Dataset class. 🚪
Start by Subclassing
You build a custom dataset by subclassing torch.utils.data.Dataset. PyTorch then knows exactly how to ask your object for data.
from torch.utils.data import Dataset
class MyData(Dataset):
passStash Your Data in __init__
The __init__ method runs once when you create the dataset. Use it to load file paths, arrays, or labels into the object's fields.
def __init__(self, X, y):
self.X = X
self.y = yTwo Methods Make It Work
A working dataset only needs two methods: __len__ to report its size and __getitem__ to fetch one sample. That is the whole contract.
__len__ Counts Your Samples
The __len__ method returns how many samples you have. PyTorch reads this to know when an epoch ends and how far an index can go.
def __len__(self):
return len(self.X)__getitem__ Returns One Sample
Given an index, __getitem__ returns a single sample, usually a feature and its label. This is where one row of data is handed over.
def __getitem__(self, idx):
return self.X[idx], self.y[idx]Return Tensors, Not Lists
__getitem__ should hand back tensors so the model can use them directly. Convert NumPy arrays or Python lists right here if needed.
import torch
x = torch.tensor(self.X[idx], dtype=torch.float32)Lazy Loading for Big Data
For huge datasets, do not load everything in __init__. Instead read each file inside __getitem__ so only one sample sits in memory at a time.
Apply Transforms Per Sample
__getitem__ is the natural place to apply a transform, like resizing an image. Store the transform in __init__, then call it before returning.
if self.transform:
x = self.transform(x)Index It Like a List
Once built, your dataset behaves like a list. Calling len(ds) or ds[0] just triggers the two methods you defined. Test it before training.
ds = MyData(X, y)
print(len(ds), ds[0])Now It Plugs Into Everything
This tidy interface is why a custom Dataset drops straight into a DataLoader. You write two methods and the rest of PyTorch just works.
Quick Check
Which method does PyTorch call to fetch a single sample by index?
Recap
A custom dataset subclasses Dataset and defines two methods: __len__ for its size and __getitem__ to return one sample. Two methods, full power. 🎉
Häufig gestellte Fragen
Ist die Lektion „Eine eigene Dataset-Klasse schreiben“ kostenlos?
Ja — der vollständige Text von „Eine eigene Dataset-Klasse schreiben“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Deep Learning Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Deep Learning Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Eine eigene Dataset-Klasse schreiben“?
Implementieren Sie __len__ und __getitem__. Du übst Deep Learning Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Deep Learning Academy zu starten?
Keine Vorkenntnisse erforderlich. Deep Learning Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Eine eigene Dataset-Klasse schreiben“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Deep Learning Academy-Lektion Code schreiben und ausführen?
Ja. Jede Deep Learning Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Eine eigene Dataset-Klasse schreiben
- Batching, Shuffling und num_workers
- collate_fn für Eingaben variabler Länge
- Eingaben normalisieren und standardisieren