Deep Learning Academy · Lektion

Batching, shuffling og num_workers

Konfigurér en DataLoader til højere hastighed.

Lektion 2 af 413 trin

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

Mød DataLoader

Et datasæt afleverer ét eksempel ad gangen, men træning kræver grupper. DataLoader pakker dit datasæt ind og leverer det i praktiske batches. 📦

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

Batchinddeling sparer tid

Angiv batch_size, så samler indlæseren det angivne antal eksempler i én tensor. Større batches udnytter din hardware bedre og udjævner støjende opdateringer.

loader = DataLoader(ds, batch_size=32)

Ét batch samlet i en tensor

Hvert batch tilføjer en ny første dimension. 32 eksempler med formen 784 bliver til én tensor med formen 32 gange 784, klar til modellen.

Gå gennem batches

Du gennemløber indlæseren som enhver anden Python-sekvens. Ved hver gentagelse af løkken får du ét batch med input og etiketter til dit træningstrin.

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

Bland ved hver epoke

Hvis du indstiller shuffle til True, omarrangeres eksemplerne ved hver epoke. Det fjerner utilsigtet rækkefølge, så modellen ikke kan huske rækkefølgen af dine data.

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

Bland træning, ikke test

Slå blanding til for træningssættet, men fra for validering og test. Evaluering måler kun ydeevnen, så en stabil rækkefølge er fin dér.

num_workers indlæser parallelt

Læsning og afkodning af data kan få GPU'en til at vente. Hvis du indstiller num_workers til mere end nul, oprettes hjælpeprocesser, der forbereder det næste batch, mens modellen trænes.

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

Vælg et fornuftigt antal arbejdere

Et almindeligt udgangspunkt for num_workers er det antal CPU-kerner, du har. For mange kan belaste hukommelsen unødigt, så mål i stedet for at gætte.

pin_memory gør GPU-kopiering hurtigere

Når du træner på en GPU, skal du indstille pin_memory til True. Det placerer batches i låst hukommelse, så overførsler til enheden bliver mærkbart hurtigere.

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

Håndter det sidste batch

Det sidste batch er ofte mindre end resten. Brug drop_last True til at kassere det, når din model kræver, at alle batches har samme størrelse.

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

Én indlæser pr. delmængde

I praksis opretter du en separat loader til træning, validering og test. Hver får sine egne indstillinger, f.eks. blanding kun ved træning.

Hurtigt tjek

Hvad gør det faktisk at indstille num_workers til mere end nul?

Opsummering

En DataLoader opdeler dit datasæt i batches, blander træningsdata og bruger num_workers til at indlæse batches parallelt. Den holder din model forsynet med data og kørende hurtigt. 🎉

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 “Batching, shuffling og num_workers” gratis?

Ja — hele teksten til “Batching, shuffling og num_workers” 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 “Batching, shuffling og num_workers”?

Konfigurér en DataLoader til højere hastighed. 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 “Batching, shuffling og num_workers”?

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. Skriv en brugerdefineret Dataset-klasse
  2. Batching, shuffling og num_workers
  3. collate_fn til input med variabel længde
  4. Normalisér og standardisér input
← Tilbage til Deep Learning Academy