Deep Learning Academy · Lektion

Skriv en minimal träningsloop

Iterera över data och uppdatera vikter

Lektion 2 av 413 steg

Skriv en minimal träningsloop är en gratis lektion i Deep Learning Academy på CoddyKit. Detta är lektion 2 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.

Från steg till slinga

Du känner till de fyra stegen i en iteration. Nu kapslar du in dem i en slinga som går igenom dina data om och om igen tills modellen är tränad. 🔁

Samla ingredienserna

Innan du börjar iterera behöver du tre saker: en modell, en förlustfunktion och en optimerare som innehåller modellens parametrar. Konfigurera dem en gång, i början.

loss_fn = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters())

Iterera över epoker

Den yttre slingan räknar epoker, där varje epok är en fullständig genomgång av träningsdatan. Några få epoker kan räcka för ett litet problem, medan ett svårt problem kan kräva fler.

for epoch in range(epochs):
    ...

Iterera över batcher

Inuti varje epok itererar du över dataloader, som ger dig en batch med indata och etiketter i taget i stället för hela datasetet på en gång.

for x, y in dataloader:
    ...

Nollställ och kör sedan forward

Börja varje batch med att rensa gamla gradienter och kör sedan forward-passet för att få förutsägelser. Ordningen spelar roll: nollställ först och förutsäg sedan.

optimizer.zero_grad()
pred = model(x)

Mät och lär sedan

Beräkna loss, anropa backward för gradienterna och kör sedan optimerarens step. Det är i dessa tre rader som varje vikt faktiskt förbättras.

loss = loss_fn(pred, y)
loss.backward()
optimizer.step()

Hela grundstrukturen

Sätt ihop allt så har du en fullständig träningsslinga. Den är kort med flit: samma struktur används i projekt av alla storlekar.

for epoch in range(epochs):
    for x, y in dataloader:
        optimizer.zero_grad()
        loss = loss_fn(model(x), y)
        loss.backward()
        optimizer.step()

Följ loss

Skriv ut loss efter varje epok så att du kan se lärandet ske. Ett tal som sjunker visar att slingan fungerar som den ska.

print(epoch, loss.item())

Varför item spelar roll

Använd loss.item för att hämta ett vanligt Python-flyttal. Om du loggar den råa tensorn hålls hela beräkningsgrafen vid liv och minne slösas bort.

Om loss står stilla

Om loss vägrar sjunka bör du först misstänka grunderna: en learning rate som är för hög eller låg, eller att du glömt zero_grad vid något steg.

Liten men komplett

Den här slingan är liten men ändå verkligen komplett. Allt mer avancerat du möter senare lägger bara till validering, loggning eller högre hastighet ovanpå dessa få rader.

Snabb kontroll

Vad itererar den inre slingan över i en minimal träningsslinga?

Sammanfattning

Du byggde en riktig träningsslinga: iterera över epoker och batcher, och kör sedan zero, forward, loss, backward och step. Skriv ut loss för att följa hur modellen lär sig. 🎉

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 ”Skriv en minimal träningsloop” gratis?

Ja – hela texten till ”Skriv en minimal träningsloop” 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 ”Skriv en minimal träningsloop”?

Iterera över data och uppdatera vikter 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 2 av 4.

Hur lång tid tar lektionen ”Skriv en minimal träningsloop”?

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. Framåtpass, förlust, bakåtpass och steg
  2. Skriv en minimal träningsloop
  3. Följ noggrannheten under träningen
  4. Träningsläge kontra evalueringsläge
← Tillbaka till Deep Learning Academy