🏋️
Lektion 3 · Praxis

Trainingsschleife

Lineare Regression mit nn.Linear, MSELoss und SGD – Epoche für Epoche

Tempo
1 / 30
Vorbereitung Erzeugen Forward Verlust Backward Update Ergebnis

📜Quelltext

Zeile 1
1import torch
2from torch import nn
3 
4torch.manual_seed(42)
5X = torch.tensor([[1.], [2.], [3.], [4.]])
6Y = torch.tensor([[3.], [5.], [7.], [9.]]) # y = 2x + 1
7 
8model = nn.Linear(1, 1) # ŷ = w·x + b
9loss_fn = nn.MSELoss()
10optimizer = torch.optim.SGD(model.parameters(), lr=0.05)
11 
12for epoch in range(500):
13 y_pred = model(X) # ① Forward
14 loss = loss_fn(y_pred, Y) # ② Verlust
15 optimizer.zero_grad() # ③ Gradienten nullen
16 loss.backward() # ④ Backward
17 optimizer.step() # ⑤ Update
18 
19print(model.weight.item(), model.bias.item())

🖥️Konsole (stdout)

— noch keine Ausgabe —

🔎Variablen (locals)

🟡 = geändert

Noch keine Variablen – das Programm hat gerade erst begonnen.

🧰 VorbereitungZeile 1

Ein komplettes Training in 17 Zeilen

Wir trainieren das kleinste denkbare neuronale Netz – eine lineare Schicht – so, dass es die Regel y = 2x + 1 aus vier Beispielen lernt. Der Code enthält alle Bausteine, die auch GPT oder Stable Diffusion nutzen: Daten, Modell, Verlustfunktion, Optimizer und die Trainingsschleife.

🎬Visualisierung

🏋️

Die Trainingsschleife in 5 Schritten

  • 1① Forward – Vorhersage berechnen
  • 2② Verlust – wie falsch ist die Vorhersage?
  • 3③ zero_grad – alte Gradienten löschen
  • 4④ backward – neue Gradienten per Autograd
  • 5⑤ step – Parameter ein Stück verbessern