Deep Learning Schritt für Schritt – wie in einem Debugger.
Setze Haltepunkte, gehe vor und zurück und sieh zu, wie Tensoren entstehen, wie Autograd Gradienten berechnet und wie ein Modell Epoche für Epoche lernt. Jede Zahl wird live berechnet.
- 2016
- von Meta AI (FAIR) veröffentlicht
- 2022
- an die PyTorch Foundation (Linux Foundation) übergeben
- Python-first
- Code liest sich wie normales Python/NumPy
- Define-by-Run
- Rechengraph entsteht beim Ausführen – ideal zum Debuggen
🧭 Die Lektionen
Drei Programme, die du wie im Debugger durchläufst – mit Haltepunkten, Step Over und Rückwärtsschritten.
🧩 Die Bausteine von PyTorch
Sechs Konzepte reichen, um fast jedes Modell zu verstehen – vom Mini-Regressor bis zum Sprachmodell.
Tensor
Mehrdimensionale Arrays auf CPU oder GPU – Daten, Gewichte und Zwischenergebnisse.
x = torch.randn(32, 3, 224, 224)Autograd
Merkt sich jede Rechnung und leitet per Kettenregel automatisch ab.
loss.backward()nn.Module
Baukasten für Modelle: Schichten, Parameter und forward()-Logik.
nn.Sequential(nn.Linear(784, 128), nn.ReLU())Verlustfunktion
Eine Zahl, die sagt, wie falsch das Modell liegt.
nn.CrossEntropyLoss()Optimizer
Verschiebt die Parameter entlang der Gradienten: SGD, Adam, AdamW …
torch.optim.AdamW(model.parameters())Dataset & DataLoader
Lädt, mischt und bündelt Daten in Mini-Batches – parallel.
DataLoader(ds, batch_size=64, shuffle=True)🔄 Der typische Workflow
So sieht fast jedes PyTorch-Projekt aus – die innere Schleife siehst du in Lektion 3 im Detail.
🌍 Die wichtigsten Einsatzbereiche
Wo PyTorch in Forschung und Industrie eingesetzt wird – zum Aufklappen. (Inhalte aus MariaDB)
📖 Glossar
Die wichtigsten Begriffe kurz erklärt. (Inhalte aus MariaDB)
DataLoader
DatenLiefert Daten in Mini-Batches, mischt sie und lädt sie parallel.
DataLoader(ds, batch_size=32, shuffle=True)Broadcasting
GrundlagenAutomatisches „Strecken“ kleinerer Tensoren, damit Operationen elementweise passen – ohne Daten zu kopieren.
a + torch.tensor([1., 2., 3.])Device
GrundlagenWo ein Tensor liegt und gerechnet wird: CPU, CUDA-GPU oder Apple-GPU (mps).
x.to("cuda")dtype
GrundlagenDatentyp der Elemente, z. B. float32 (Standard für Gewichte), int64 (Indizes) oder bfloat16 (sparsames Training).
x.dtypeShape
GrundlagenDie Größe jeder Dimension eines Tensors. Viele Fehler in PyTorch sind Shape-Fehler – deshalb zeigt der Debugger die Shape immer mit an.
x.shape # torch.Size([4, 1])Tensor
GrundlagenMehrdimensionales Zahlenfeld – die zentrale Datenstruktur in PyTorch. Ein Skalar hat 0, ein Vektor 1, eine Matrix 2 Dimensionen, ein Farbbild-Stapel z. B. 4 (Batch × Kanal × Höhe × Breite).
torch.tensor([[1., 2.], [3., 4.]])nn.Module
ModelleBasisklasse aller Modelle und Schichten. Verwaltet Parameter, Unter-Module und definiert in forward(), was mit der Eingabe passiert.
class Net(nn.Module): ...Autograd
TrainingDie automatische Differentiation von PyTorch: Jede Operation merkt sich, wie sie entstanden ist; loss.backward() berechnet damit alle Gradienten per Kettenregel.
loss.backward()Epoche
TrainingEin vollständiger Durchlauf über alle Trainingsdaten.
for epoch in range(200): ...Gradient
TrainingAbleitung des Verlusts nach einem Parameter: gibt an, in welche Richtung und wie stark der Verlust steigt, wenn man den Parameter vergrößert.
w.gradLernrate
TrainingSchrittweite des Optimizers. Zu klein: Training kriecht. Zu groß: der Verlust springt oder explodiert.
lr=0.05Optimizer
TrainingAktualisiert die Parameter anhand ihrer Gradienten, z. B. SGD, SGD mit Momentum oder Adam.
torch.optim.Adam(model.parameters(), lr=1e-3)Rechengraph
TrainingGerichteter Graph aus Tensoren und Operationen, der beim Forward-Pass dynamisch entsteht („define by run“) und beim Backward-Pass rückwärts durchlaufen wird.
z.grad_fnrequires_grad
TrainingMarkiert einen Tensor als lernbar. Nur für solche Tensoren werden Gradienten berechnet und in .grad gespeichert.
w = torch.tensor(3., requires_grad=True)torch.no_grad
TrainingKontext, in dem kein Rechengraph aufgebaut wird – für Inferenz und für manuelle Parameter-Updates.
with torch.no_grad(): ...Verlustfunktion
TrainingMisst, wie falsch die Vorhersage ist (z. B. MSELoss für Zahlen, CrossEntropyLoss für Klassen). Ziel des Trainings ist, sie zu minimieren.
nn.MSELoss()