Deep Learning Academy · Lektion

Skriv et minimalt træningsloop

Gå gennem data, og opdatér vægtene.

Lektion 2 af 413 trin

Skriv et minimalt træningsloop er en gratis Deep Learning Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Deep Learning Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Deep Learning Academy-kurset indeholder 4 lektioner i alt.

Fra trin til løkke

Du kender de fire trin i én iteration. Nu pakker du dem ind i en løkke, der gennemgår dine data igen og igen, indtil modellen er trænet. 🔁

Saml ingredienserne

Før du laver løkken, skal du bruge tre ting: en model, en tabsfunktion og en optimeringsalgoritme, der indeholder modellens parametre. Opsæt dem én gang på forhånd.

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

Gennemløb epoker

Den ydre løkke tæller epoker, hvor hver epoke er én fuld gennemgang af dine træningsdata. Et par epoker kan være nok til et lille problem, mens et svært problem kræver flere.

for epoch in range(epochs):
    ...

Gennemløb batches

Inde i hver epoke gennemløber du dataloader, som giver dig ét batch med input og etiketter ad gangen i stedet for hele datasættet på én gang.

for x, y in dataloader:
    ...

Nulstil, og kør derefter fremad

Begynd hvert batch med at rydde gamle gradienter, og kør derefter det fremadgående gennemløb for at få forudsigelser. Rækkefølgen er vigtig: nulstil først, og lav derefter forudsigelsen.

optimizer.zero_grad()
pred = model(x)

Mål, og lær derefter

Beregn tabet, kald backward for gradienterne, og kør derefter optimeringsalgoritmens step. Det er i disse tre linjer, at hver vægt faktisk forbedres.

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

Det fulde skelet

Sæt det hele sammen, så har du en komplet træningsløkke. Den er med vilje kort: Den samme struktur driver projekter i alle størrelser.

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

Hold øje med tabet

Udskriv tabet for hver epoke, så du kan se læringen ske. Et tal, der bevæger sig nedad, betyder, at din løkke fungerer som tilsigtet.

print(epoch, loss.item())

Hvorfor item er vigtigt

Brug loss.item til at hente et almindeligt Python-flydende tal. Hvis du logger den rå tensor, holdes hele beregningsgrafen i live, og det spilder hukommelse.

Hvis tabet går i stå

Hvis tabet nægter at falde, skal du først undersøge det grundlæggende: en læringsrate, der er for høj eller for lav, eller et glemt zero_grad ved hvert trin.

Lille, men komplet

Denne løkke er lille, men den er faktisk komplet. Alt det mere avancerede, du møder senere, tilføjer blot validering, logning eller hastighed oven på disse få linjer.

Hurtigt tjek

Hvad gennemløber den indre løkke i en minimal træningsløkke?

Opsummering

Du byggede en rigtig træningsløkke: gennemløb epoker, gennemløb batches, og kør derefter nulstil, fremad, tab, baglæns og opdatering. Udskriv tabet for at følge læringen. 🎉

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Skriv et minimalt træningsloop” gratis?

Ja — hele teksten til “Skriv et minimalt træningsloop” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Deep Learning Academy-kurset, skal du opgradere til CoddyKit PRO. Deep Learning Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Skriv et minimalt træningsloop”?

Gå gennem data, og opdatér vægtene. Du øver dig i Deep Learning Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Deep Learning Academy?

Der kræves ingen tidligere erfaring. Deep Learning Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Skriv et minimalt træningsloop”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Deep Learning Academy-lektion?

Ja. Alle Deep Learning Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Forward pass, loss, backward, step
  2. Skriv et minimalt træningsloop
  3. Følg nøjagtigheden under træningen
  4. Train- og eval-tilstand
← Tilbage til Deep Learning Academy