PyTorch-tensorer og Autograd
torch.Tensor, requires_grad, backward(), gradientberegning og tensoroperasjoner.
PyTorch-tensorer og Autograd er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær AI med Python, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.
Hva er PyTorch?
PyTorch er et rammeverk for dyp læring som er bygget rundt tensorer, flerdimensjonale tabeller med GPU-akselerasjon og automatisk derivasjon. De to grunnpilarene De må mestre først, er tensorer og autograd.
pip install torch
import torchOpprette tensorer
En tensor ligner på en NumPy-tabell, men kan ligge på en GPU og spore gradienter. Opprett en med torch.tensor. Tensorer har en shape og en dtype.
x = torch.tensor([1.0, 2.0, 3.0])
print(x.shape) # torch.Size([3])
print(x.dtype) # torch.float32Tensoroperasjoner
Tensorer støtter elementvis matematikk, matriseprodukt og omforming. Operasjonene er vektoriserte og kjører raskt på maskinvaren. Dette er beregningsgrunnlaget for alle nevrale nettverk.
a = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
b = torch.tensor([[5.0, 6.0], [7.0, 8.0]])
print(a + b)
print(a @ b) # matrix multiplyrequires_grad: Spore gradienter
For å beregne gradienter oppretter De en tensor med requires_grad=True. PyTorch registrerer deretter alle operasjoner på den og bygger en beregningsgraf som kan deriveres senere.
x = torch.tensor([2.0, 3.0], requires_grad=True)
print(x.requires_grad) # TrueBygge en beregning
Bruk operasjoner på en tensor som sporer gradienter, for å lage et skalarresultat. Her kvadrerer vi hvert element og summerer dem, slik at vi får ett tall som vi kan derivere med hensyn på x.
x = torch.tensor([2.0, 3.0], requires_grad=True)
y = x.pow(2).sum() # y = x0^2 + x1^2
print(y) # tensor(13., grad_fn=...)Kalle backward()
Kall .backward() på en skalar for å beregne gradienter med tilbakepropagering. PyTorch går gjennom den registrerte grafen baklengs og fyller automatisk inn de deriverte.
y.backward()Lese .grad
Etter backward() inneholder hver inndatatensor gradienten sin i .grad. For y = sum(x^2) er den deriverte 2x, så gradienten er [4, 6].
print(x.grad) # tensor([4., 6.])Gradienter akkumuleres
En subtil fallgruve er at gradienter summeres over flere kall til backward(). I en treningssløyfe må De nullstille dem for hvert trinn med x.grad.zero_() eller optimalisatorens zero_grad().
x.grad.zero_() # reset before the next backward()torch.no_grad() for inferens
Under inferens trenger De ikke gradienter, og sporing av dem sløser med minne. Pakk prediksjonskoden inn i with torch.no_grad(): for å deaktivere bygging av beregningsgrafer og få raskere kjøring.
with torch.no_grad():
preds = x.pow(2).sum()
print(preds.requires_grad) # Falsedetach() stopper gradientflyten
.detach() returnerer en tensor som deler data, men som er koblet fra beregningsgrafen. Bruk den når De vil bruke en verdi uten at gradienter flyter tilbake gjennom den, for eksempel ved logging eller når en del av et nettverk skal fryses.
z = x.detach()
print(z.requires_grad) # FalseHvorfor autograd er viktig
Autograd er det som gjør dyp læring praktisk: De definerer beregningen fremover, og PyTorch utleder automatisk gradientene for tilbakepropagering. Alle treningssløyfer De skriver, bygger på requires_grad, backward og .grad.
Hurtigsjekk
Test forståelsen Deres av autograd.
Oppsummering: Tensorer og autograd
De opprettet tensorer med torch.tensor og aktiverte gradientsporing med requires_grad=True. De beregnet et resultat, kjørte .backward() og leste de deriverte fra .grad. De lærte at gradienter akkumuleres, brukte torch.no_grad() til inferens og .detach() til å stoppe gradientflyten.
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 53
- Leksjoner
- 225
Ofte stilte spørsmål
Er leksjonen «PyTorch-tensorer og Autograd» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «PyTorch-tensorer og Autograd», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.
Hva lærer jeg i «PyTorch-tensorer og Autograd»?
torch.Tensor, requires_grad, backward(), gradientberegning og tensoroperasjoner. Du øver på Lær AI med Python med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Lær AI med Python?
Ingen tidligere erfaring er nødvendig. Lær AI med Python på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «PyTorch-tensorer og Autograd»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Lær AI med Python-leksjonen?
Ja. Alle Lær AI med Python-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- PyTorch-tensorer og Autograd
- Egendefinerte datasett og DataLoaders
- Bygging og trening av CNN-er i PyTorch
- Objektdeteksjon med YOLOv8