Deep Learning Academy · Lektion

Spara och läs in med state_dict

Spara vikter som checkpoint för att fortsätta senare

Lektion 3 av 413 steg

Spara och läs in med state_dict är en gratis lektion i Deep Learning Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Deep Learning Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Deep Learning Academy innehåller totalt 4 lektioner.

Varför kontrollpunkter är viktiga

Träning kan ta flera timmar och krascher inträffar. Om du sparar dina framsteg som en checkpoint kan du stoppa, återuppta eller leverera modellen utan att träna om från noll.

Vad en state_dict innehåller

En modells state_dict är en vanlig ordlista som kopplar varje lagernamn till dess inlärda tensorer. Den innehåller allt modellen vet, packat för lagring.

model.state_dict()

Spara vikterna

Använd torch.save på state_dict för att skriva vikterna till disk. Filändelsen .pt eller .pth är den vanliga konventionen för dessa filer.

torch.save(model.state_dict(), 'model.pt')

Läs in vikterna igen

För att återställa läser du filen med torch.load och för in den i en modell med hjälp av load_state_dict. Arkitekturen måste överensstämma med den sparade.

model.load_state_dict(torch.load('model.pt'))

Återskapa arkitekturen först

En state_dict innehåller tal, inte själva klassen. Du måste skapa samma modellobjekt i koden innan du kan läsa in vikterna i det.

model = MyNet()
model.load_state_dict(torch.load('model.pt'))

Eval-läge efter inläsning

Anropa model.eval() direkt efter inläsning för inferens. Det växlar dropout och batch norm till prediktionsbeteende så att resultaten blir korrekta.

model.eval()

Spara även optimeraren

För att verkligen återuppta träningen ska du även spara optimerarens state_dict. Den innehåller momentum och adaptiv statistik som annars skulle återställas till noll.

torch.save(optimizer.state_dict(), 'opt.pt')

Samla en fullständig checkpoint

Packa modell, optimerare och aktuell epok i en enda checkpoint-ordlista. Nu kan en enda fil återställa hela träningssessionen.

ckpt = {'epoch': epoch, 'model': model.state_dict(), 'opt': optimizer.state_dict()}
torch.save(ckpt, 'ckpt.pt')

Återuppta från en checkpoint

Läs in paketet och återställ varje del i tur och ordning. Genom att läsa den sparade epoken kan du fortsätta loopen exakt där den slutade.

ckpt = torch.load('ckpt.pt')
model.load_state_dict(ckpt['model'])
optimizer.load_state_dict(ckpt['opt'])

Mappa till rätt enhet

Om du sparade på GPU och läser in på CPU ska du ange map_location till torch.load. Då flyttas vikterna till en enhet som din dator faktiskt har.

torch.load('model.pt', map_location='cpu')

Spara den bästa, inte den sista

Följ valideringsförlusten och skriv över din checkpoint endast när den förbättras. På så sätt behåller du den bästa modellen, inte det som den sista epoken gav.

Snabbkontroll

Du sparade endast model.state_dict(). Vad måste finnas innan du kan läsa in den?

Sammanfattning

Spara vikter med state_dict och torch.save, bygg om modellen för att läsa in dem och samla optimeraren och epoken för att kunna återuppta allt. Behåll den bästa. 💾

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Spara och läs in med state_dict” gratis?

Ja – hela texten till ”Spara och läs in med state_dict” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Deep Learning Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Deep Learning Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Spara och läs in med state_dict”?

Spara vikter som checkpoint för att fortsätta senare Ni övar på Deep Learning Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Deep Learning Academy?

Du behöver inga förkunskaper. Utbildningen i Deep Learning Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Spara och läs in med state_dict”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Deep Learning Academy-lektionen?

Ja. Varje Deep Learning Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Dela upp träning, validering och test
  2. En epoch-loop med validering
  3. Spara och läs in med state_dict
  4. Early stopping på valideringsförlust
← Tillbaka till Deep Learning Academy