Forward-caches worden backward hergebruikt
Waarom activaties tijdens de forward pass worden opgeslagen.
Forward-caches worden backward hergebruikt is een gratis Deep Learning Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Deep Learning Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Deep Learning Academy bevat in totaal 4 lessen.
Twee doorgangen, één doel
Het trainen van elke batch bestaat uit twee doorgangen: een voorwaartse doorgang om de voorspelling en verlieswaarde te berekenen, gevolgd door een achterwaartse doorgang om gradiënten te berekenen. Ze vormen samen één geheel.
De voorwaartse doorgang berekent waarden
Voorwaarts zet elke laag zijn invoer om in een uitvoer en stuurt die door. Aan het einde heb je een voorspelling en één getal voor de verlieswaarde.
Achterwaarts zijn voorwaartse waarden nodig
Om de gradiënt van een laag te berekenen, heeft de kettingregel precies de activaties nodig die die laag tijdens de voorwaartse doorgang heeft geproduceerd. Die waarden zijn onmisbaar.
Dus slaan we ze op
Tijdens de voorwaartse doorgang slaat het netwerk stilletjes de invoer en uitvoer van elke laag op in het geheugen, zodat de achterwaartse doorgang ze kan ophalen. 💾
Een concreet voorbeeld
De afgeleide van een laag gebruikt vaak zijn eigen uitvoer opnieuw. Bij een sigmoid hangt de gradiënt af van de opgeslagen uitvoer, dus door die op te slaan voorkom je herberekening.
sigmoid_grad = saved_output * (1 - saved_output)Achterwaarts wordt de opslag opnieuw gebruikt
De achterwaartse doorgang loopt in omgekeerde volgorde door de lagen en haalt bij elke laag de bijbehorende opgeslagen waarden op om ze met de gradiënt te vermenigvuldigen. Niets wordt opnieuw berekend.
Opslag kost geheugen
Het opslaan van elke activatie verklaart waarom het trainen van een diep netwerk veel meer geheugen gebruikt dan het alleen uitvoeren ervan voor voorspellingen. Grotere netwerken hebben grotere opslag nodig.
Inferentie slaat de opslag over
Wanneer je alleen voorspellingen nodig hebt, is er geen achterwaartse doorgang. PyTorch slaat de opslag daarom volledig over. Daarom gebruikt inferentie minder geheugen.
with torch.no_grad():
preds = model(x)PyTorch doet dit voor je
Elke bewerking op een tensor met requires_grad legt vast wat nodig is in de berekeningsgrafiek en bouwt de opslag automatisch op terwijl je werkt.
Eén achterwaartse doorgang maakt hem vrij
Standaard verbruikt backward() de opgeslagen grafiek en maakt die vrij. Daarom veroorzaakt een tweede backward() op dezelfde grafiek een fout.
loss.backward()Waarom dit ontwerp werkt
Door voorwaartse waarden op te slaan, is elke gradiënt één goedkope opzoek-en-vermenigvuldigbewerking in plaats van een nieuwe berekening. Daardoor is backpropagation snel en exact.
Korte controle
Laten we het idee van opslaan controleren.
Samenvatting
De voorwaartse doorgang slaat activaties op en de achterwaartse doorgang gebruikt ze opnieuw om gradiënten op te bouwen. Die ruil van geheugen voor snelheid maakt backpropagation praktisch. 💾
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Forward-caches worden backward hergebruikt” gratis?
Ja — de volledige tekst van “Forward-caches worden backward hergebruikt” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Deep Learning Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Deep Learning Academy bevat in totaal 4 lessen.
Wat leer ik in “Forward-caches worden backward hergebruikt”?
Waarom activaties tijdens de forward pass worden opgeslagen. Je oefent met Deep Learning Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Deep Learning Academy te beginnen?
Ervaring vooraf is niet nodig. Deep Learning Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Forward-caches worden backward hergebruikt”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Deep Learning Academy?
Ja. Elke les over Deep Learning Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- De kettingregel, laag voor laag
- Forward-caches worden backward hergebruikt
- Backprop van een klein netwerk met de hand
- Verdwijnende en exploderende gradiënten