Deep Learning Academy · leksjon

Forward lagrer, backward gjenbruker

Hvorfor aktiveringer lagres under forward-passet

Leksjon 2 av 413 trinn

Forward lagrer, backward gjenbruker er en gratis leksjon i Deep Learning Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Deep Learning Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Deep Learning Academy inneholder totalt 4 leksjoner.

To passeringer, ett mål

Hver batch under trening går gjennom to passeringer: et forward-pass for å lage en prediksjon og beregne tapet, og deretter et backward-pass for å beregne gradientene. De fungerer som et par.

Forward-passet beregner verdier

Forover gjør hvert lag inputen sin om til en output og sender den videre. Til slutt har De en prediksjon og ett enkelt tall for tapet.

Backward trenger verdier fra forward

For å beregne gradienten til et lag trenger kjerneregelen nettopp de aktiveringene som laget produserte under forward-passet. Disse verdiene er nødvendige.

Derfor mellomlagrer vi dem

Under forward-passet mellomlagrer nettverket stille inputene og outputene til hvert lag i minnet, klare til å hentes av backward-passet. 💾

Et konkret eksempel

Den deriverte til et lag bruker ofte lagets egen output på nytt. For en sigmoid avhenger gradienten av den lagrede output-verdien, så mellomlagring sparer ny beregning.

sigmoid_grad = saved_output * (1 - saved_output)

Backward bruker mellomlageret på nytt

Backward-passet går gjennom lagene i omvendt rekkefølge, og ved hvert lag henter det de tilsvarende mellomlagrede verdiene for å multiplisere dem inn i gradienten. Ingenting beregnes på nytt.

Mellomlagring koster minne

Å lagre hver aktivering er grunnen til at trening av et dypt nettverk bruker langt mer minne enn å kjøre det bare for prediksjoner. Større nettverk trenger større mellomlagre.

Inference hopper over mellomlageret

Når De bare trenger prediksjoner, finnes det ikke noe backward-pass, så PyTorch hopper over mellomlageret helt. Derfor bruker inference mindre minne.

with torch.no_grad():
    preds = model(x)

PyTorch gjør dette for Dem

Hver operasjon på en tensor med requires_grad registrerer det den trenger i beregningsgrafen og bygger automatisk opp mellomlageret underveis.

Én backward frigjør det

Som standard bruker et kall til backward() opp det mellomlagrede graf-objektet og frigjør det. Derfor gir et nytt backward() på den samme grafen en feilmelding.

loss.backward()

Hvorfor denne utformingen fungerer

Ved å mellomlagre verdier fra forward blir hver gradient et billig oppslag-og-multiplikasjon i stedet for en ny beregning. Det gjør backprop rask og nøyaktig.

Hurtigsjekk

La oss sjekke ideen med mellomlageret.

Oppsummering

Forward-passet mellomlagrer aktiveringer, og backward-passet bruker dem på nytt for å bygge gradienter. Dette byttet av minne mot hastighet er det som gjør backprop praktisk. 💾

Gratis å komme i gang

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
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «Forward lagrer, backward gjenbruker» gratis?

Ja – hele teksten i «Forward lagrer, backward gjenbruker» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Deep Learning Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Deep Learning Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Forward lagrer, backward gjenbruker»?

Hvorfor aktiveringer lagres under forward-passet Du øver på Deep Learning Academy 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 Deep Learning Academy?

Ingen tidligere erfaring er nødvendig. Deep Learning Academy 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 2 av 4.

Hvor lang tid tar leksjonen «Forward lagrer, backward gjenbruker»?

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 Deep Learning Academy-leksjonen?

Ja. Alle Deep Learning Academy-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

  1. Kjerneregelen, lag for lag
  2. Forward lagrer, backward gjenbruker
  3. Gjør backprop på et lite nettverk for hånd
  4. Forsvinnende og eksploderende gradienter
← Tilbake til Deep Learning Academy