D· AI-utvecklaredeep-learning· ca 60 min· utvecklande· verifierad 2026-09-20
Träna ett neuronnät i PyTorch
Kunna skriva en komplett träningsloop — modell, loss, optimerare, batchar, utvärdering — och läsa av träningskurvan för att se om modellen lär sig, underanpassar eller överanpassar.
Förkunskaper
- DBackpropagationkrävs
- DPyTorch — tensorer och autogradkrävs
Kod
import torch, torch.nn as nn
model = nn.Sequential(nn.Linear(784, 128), nn.ReLU(), nn.Linear(128, 10))
loss_fn = nn.CrossEntropyLoss()
opt = torch.optim.SGD(model.parameters(), lr=0.1)
for epoch in range(5):
model.train()
for X, y in train_loader: # batchar av (N, 784), (N,)
opt.zero_grad()
loss = loss_fn(model(X), y)
loss.backward()
opt.step()
model.eval()
with torch.no_grad():
correct = sum((model(X).argmax(1) == y).sum().item() for X, y in val_loader)
print(epoch, loss.item(), correct / len(val_loader.dataset))
Fem rader som är hela deep learning: nollställ, forward, loss, backward, steg.
Intuition
Läs kurvorna:
| Träningsloss | Valideringsloss | Diagnos |
|---|---|---|
| sjunker | sjunker | lär sig — fortsätt |
| sjunker | stiger | överanpassning — memorerar träningsdata |
| hög, står stilla | hög | underanpassning — för enkel modell eller för låg lr |
| exploderar / NaN | — | för hög lr eller onormaliserad data |
CrossEntropyLoss tar råa utdata (logits) och gör softmax internt — lägg inte till
softmax själv. Validera alltid på data modellen inte tränats på.
Formellt
En epok = ett varv över all träningsdata. Batchstorlek styr hur många exempel
per gradientsteg. Adam (torch.optim.Adam) är en populär optimerare som anpassar
steglängden per parameter och ofta fungerar utan finjustering av lr (börja med 1e-3).
Behärskning innebär
- Skriver en träningsloop med nn.Module, loss och optimizer
- Tolkar tränings- och valideringsloss över epoker
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
Leder till
- DMNIST från grunden
- DTransformers — arkitekturen
- EBatch- och layernormalisering
- ECheckpoints, sparande och återstart
- EFinjustering av språkmodeller
- EGPU-minne, gradientackumulering och batchar
- EOptimerare: momentum, Adam, schemaläggning
- ERegularisering: dropout, weight decay, early stopping
- EReproducerbarhet
- ETransfer learning
- ETräningsdiagnostik
- FDistribuerad träning
- FMixed precision-träning
Del av målen (28)
- Träna ditt första neuronnät
- Träna neuronnät på riktigt
- Bildklassificering med faltningsnät
- Förstå hur generativ AI fungerar
- Bygg en transformer från grunden
- Finjustera och driva egna modeller
- AI-säkerhet i praktiken
- Finjustera en modell med LoRA
- Ansvarsfull AI i praktiken
- Bygg ett RAG-system som går att lita på
- Reproducera ett paper
- Statistik för experiment
- Bygg ett röstgränssnitt
- Frontier Lab — självständigt forskningsprojekt
- Kör modeller billigare: kvantisering
- Språkmodeller i praktiken
- Djup reinforcement learning
- Bygg en agent som går att lita på
- Tolka en språkmodell
- Evals i praktiken
- Multimodala system
- Generativa modeller i djupet
- Bygg ett NLP-system end-to-end
- Bygg ett minnessystem för en agent
- AI i produktion
- AI-tjänst i drift
- Bygg en AI-tjänst som håller i drift
- AI, etik och samhälle