Deep Learning Academy · leksjon

Batching, stokking og num_workers

Konfigurer en DataLoader for høyere hastighet

Leksjon 2 av 413 trinn

Batching, stokking og num_workers 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.

Møt DataLoader

Et datasett leverer ett eksempel om gangen, men trening trenger grupper. DataLoader pakker inn datasettet og leverer det i praktiske grupper. 📦

from torch.utils.data import DataLoader
loader = DataLoader(ds)

Gruppering sparer tid

Angi batch_size, så setter innlasteren det angitte antallet eksempler sammen i én tensor. Større grupper utnytter maskinvaren bedre og jevner ut støyende oppdateringer.

loader = DataLoader(ds, batch_size=32)

Én gruppe, satt sammen

Hver gruppe får en ny første dimensjon. Trettito eksempler med formen 784 blir til én tensor med formen 32 ganger 784, klar for modellen.

Gå gjennom gruppene

De itererer gjennom innlasteren som gjennom enhver annen Python-sekvens. Hver runde i løkken gir én gruppe med inndata og etiketter til treningssteget.

for xb, yb in loader:
    pred = model(xb)

Bland ved hver epoke

Når De setter shuffle til True, omorganiseres eksemplene ved hver epoke. Dette bryter utilsiktet rekkefølge, slik at modellen ikke kan memorere sekvensen i dataene.

loader = DataLoader(ds, batch_size=32, shuffle=True)

Bland trening, ikke test

Slå på blanding for treningssettet, men slå det av for validering og test. Evaluering måler bare ytelse, så en stabil rekkefølge er grei der.

num_workers laster inn parallelt

Lesing og dekoding av data kan sette GPU-en på vent. Når De setter num_workers til en verdi over null, opprettes hjelpeprosesser som klargjør neste gruppe mens modellen trener.

loader = DataLoader(ds, batch_size=32, num_workers=4)

Velg et fornuftig antall arbeidere

Et vanlig utgangspunkt for num_workers er antallet CPU-kjerner De har. For mange kan føre til unødig belastning på minnet, så mål heller enn å gjette.

pin_memory gjør GPU-kopier raskere

Når De trener på en GPU, setter De pin_memory til True. Da plasseres gruppene i side-låst minne, slik at overføringer til enheten går merkbart raskere.

loader = DataLoader(ds, batch_size=32, pin_memory=True)

Håndter den siste gruppen

Den siste gruppen er ofte mindre enn de andre. Bruk drop_last True for å forkaste den når modellen krever at alle grupper har samme størrelse.

loader = DataLoader(ds, batch_size=32, drop_last=True)

Én innlaster per delsett

I praksis lager De en separat innlaster for trening, validering og test. Hver av dem får egne innstillinger, for eksempel blanding bare for trening.

Rask kontroll

Hva gjør det egentlig å sette num_workers til en verdi over null?

Oppsummering

En DataLoader grupperer datasettet, blander treningsdataene og bruker num_workers til å laste inn grupper parallelt. Den holder modellen forsynt med data og sørger for høy hastighet. 🎉

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 «Batching, stokking og num_workers» gratis?

Ja – hele teksten i «Batching, stokking og num_workers» 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 «Batching, stokking og num_workers»?

Konfigurer en DataLoader for høyere hastighet 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 «Batching, stokking og num_workers»?

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. Skriv en egendefinert datasettklasse
  2. Batching, stokking og num_workers
  3. collate_fn for inndata med variabel lengde
  4. Normaliser og standardiser inndata
← Tilbake til Deep Learning Academy