D· AI-utvecklareLaboration· ca 50 min· container
Labb: tensorer, autograd och din första träningsloop
Räkna gradienter med autograd, jämföra med handräkning, och träna en linjär modell med en riktig loop.
Lär ut: pytorch-grunder · Kräver: gradient-descentmatriser
Teori
requires_grad=True spårar tensorn, .backward() fyller .grad, gradienter ackumuleras — nollställ varje steg. torch.no_grad() stänger av spårning när du uppdaterar vikter för hand.
Deluppgifter
- gradient med autograd — `grad_of(f, x0)` returnerar df/dx i x0 med autograd, där f är en Python-funktion på en tensor.
- gd_steps — `gd_steps(f, x0, lr, steps)` gör gradient descent på f med autograd och nollställer gradienten varje steg.
- train_linear — `train_linear(X, y, lr, steps)` tränar w, b (MSE) och returnerar (w, b).
Evals: linear-mse (mse <= 0.05)
Logga in för att köra laborationen.
Förväntade resultat
grad_of(lambda x: x**2 + 2*x, 3.0) = 8; gd_steps på (x−3)² når ≈3; linjär modell på y = 2x + 1 + brus ger MSE < 0,05.
Vanliga fel
- Glömmer
zero_()→ gradienten ackumuleras och stegen blir fel. - Uppdaterar vikter utan
torch.no_grad()→ autograd-fel. .item()saknas när ett tal ska returneras.