🏋️
Lektion 3 · Praxis
Trainingsschleife
Lineare Regression mit nn.Linear, MSELoss und SGD – Epoche für Epoche
Tempo1 / 30
Vorbereitung Erzeugen Forward Verlust Backward Update Ergebnis
📜Quelltext
Zeile 11➤import 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ändertNoch 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