Hoppa till innehållet
AI-grafen
D· AI-utvecklaredeep-learning· ca 45 min· utvecklande· verifierad 2026-09-20

PyTorch — tensorer och autograd

Kunna skapa och räkna med tensorer, låta autograd beräkna gradienter, och förstå sambandet mellan det du gjorde för hand i backprop och vad `.backward()` gör.

Förkunskaper

Kod

import torch

x = torch.tensor([1.0, 2.0, 3.0])
W = torch.tensor([[1.0, 0.0, 2.0],
                  [0.5, 1.0, 0.0]], requires_grad=True)
y = W @ x                # tensor([7.0, 2.5])
L = (y ** 2).sum()       # skalär loss
L.backward()             # autograd: gradient av L m.a.p. W
print(W.grad)

W.grad innehåller ∂L/∂W = 2·y·xᵀ — samma som du hade räknat ut för hand med kedjeregeln. Autograd spelar in varje operation och kör kedjeregeln baklänges.

Intuition

En tensor är en n-dimensionell array (0-dim = tal, 1-dim = vektor, 2-dim = matris) som kan bo på GPU och som minns hur den räknades fram.

Tre saker att ha koll på:

  • requires_grad=True säger "spåra den här, jag vill ha gradienten".
  • .backward() fyller .grad på alla spårade tensorer.
  • Gradienter ackumuleras — nollställ dem (W.grad.zero_() eller optimizer.zero_grad()) före varje nytt steg, annars summeras gamla gradienter in.

torch.no_grad() stänger av spårningen när du bara vill räkna (t.ex. vid utvärdering).

Formellt

Vanliga former: x.shape, x.view(2, 3), x.T, x.unsqueeze(0). Batchdimensionen brukar vara först: en batch bilder är (N, C, H, W). Enhet: x.to("cuda") flyttar till GPU; alla tensorer i en operation måste vara på samma enhet.

Behärskning innebär

  • Beräknar en gradient med autograd och jämför med handräkning
  • Förklarar vad requires_grad och .backward() gör

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser