🔥 PyTorch visuell verstehen

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
LEingabeverdeckte SchichtenVerlust
➡️ Forward: Vorhersage⬅️ Backward: Gradienten

🧭 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.

📦DatenDataset + DataLoader
🧱Modellnn.Module definieren
➡️Forwardŷ = model(x)
🎯Verlustloss_fn(ŷ, y)
⬅️Backwardloss.backward()
🔧Updateoptimizer.step()
📊Evaluierenmodel.eval() + no_grad
🚀Exporttorch.export / ONNX
🔁Forward → Verlust → Backward → Update wiederholt sich für jeden Batch und jede Epoche (Trainingsschleife)

🌍 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

Daten

Liefert Daten in Mini-Batches, mischt sie und lädt sie parallel.

DataLoader(ds, batch_size=32, shuffle=True)

Broadcasting

Grundlagen

Automatisches „Strecken“ kleinerer Tensoren, damit Operationen elementweise passen – ohne Daten zu kopieren.

a + torch.tensor([1., 2., 3.])

Device

Grundlagen

Wo ein Tensor liegt und gerechnet wird: CPU, CUDA-GPU oder Apple-GPU (mps).

x.to("cuda")

dtype

Grundlagen

Datentyp der Elemente, z. B. float32 (Standard für Gewichte), int64 (Indizes) oder bfloat16 (sparsames Training).

x.dtype

Shape

Grundlagen

Die 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

Grundlagen

Mehrdimensionales 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

Modelle

Basisklasse aller Modelle und Schichten. Verwaltet Parameter, Unter-Module und definiert in forward(), was mit der Eingabe passiert.

class Net(nn.Module): ...

Autograd

Training

Die automatische Differentiation von PyTorch: Jede Operation merkt sich, wie sie entstanden ist; loss.backward() berechnet damit alle Gradienten per Kettenregel.

loss.backward()

Epoche

Training

Ein vollständiger Durchlauf über alle Trainingsdaten.

for epoch in range(200): ...

Gradient

Training

Ableitung des Verlusts nach einem Parameter: gibt an, in welche Richtung und wie stark der Verlust steigt, wenn man den Parameter vergrößert.

w.grad

Lernrate

Training

Schrittweite des Optimizers. Zu klein: Training kriecht. Zu groß: der Verlust springt oder explodiert.

lr=0.05

Optimizer

Training

Aktualisiert die Parameter anhand ihrer Gradienten, z. B. SGD, SGD mit Momentum oder Adam.

torch.optim.Adam(model.parameters(), lr=1e-3)

Rechengraph

Training

Gerichteter 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_fn

requires_grad

Training

Markiert 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

Training

Kontext, in dem kein Rechengraph aufgebaut wird – für Inferenz und für manuelle Parameter-Updates.

with torch.no_grad(): ...

Verlustfunktion

Training

Misst, wie falsch die Vorhersage ist (z. B. MSELoss für Zahlen, CrossEntropyLoss für Klassen). Ziel des Trainings ist, sie zu minimieren.

nn.MSELoss()