Normalisera och standardisera indata
Skala egenskaper så att träningen konvergerar
Normalisera och standardisera indata är en gratis lektion i Deep Learning Academy på CoddyKit. Detta är lektion 4 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.
Råa tal gör inlärningen långsammare
Särdrag med mycket olika skalor, som ålder och lön, förvirrar ett neuralt nätverk. Därför gör normalisering att träningen konvergerar snabbare när du skalar om dem först. ⚖️
Två vanliga metoder
Du kommer att möta två huvudsakliga skalningsmetoder: standardisering flyttar data till medelvärdet noll och variansen ett, medan min-max-skalning pressar ihop den till ett fast intervall, till exempel 0 till 1.
Standardisera med medelvärde och standardavvikelse
Standardisering subtraherar medelvärdet och dividerar med standardavvikelsen. Resultatet är centrerat kring noll med en spridning på ett, vilket är standard inom deep learning.
x = (x - x.mean()) / x.std()Min-max-skalning
Min-max-skalning mappar det minsta värdet till 0 och det största till 1. Det är användbart när ett begränsat indataintervall är viktigt, till exempel för pixelintensiteter.
x = (x - x.min()) / (x.max() - x.min())Anpassa endast efter träningsdata
Beräkna medelvärdet och standardavvikelsen enbart från träningsmängden. Om du återanvänder testdata för att bestämma denna statistik läcker information in och resultaten blir konstgjort bättre.
Återanvänd samma statistik
Tillämpa exakt samma statistik från träningen på validerings- och testdata. Båda delmängderna måste transformeras på samma sätt, annars får modellen indata som inte matchar.
x_val = (x_val - train_mean) / train_stdPer kanal för bilder
För bilder normaliserar du varje färgkanal med sitt eget medelvärde och sin egen standardavvikelse. PyTorch innehåller transforms.Normalize för att göra precis detta i en pipeline.
transforms.Normalize(mean=[0.5], std=[0.5])Använd känd ImageNet-statistik
När du använder förtränade synmodeller ska du normalisera med de medelvärden och standardavvikelser från ImageNet som de tränades med. När dessa värden matchar hamnar indata i det förväntade intervallet.
Gör det inuti __getitem__
Det tydligaste stället att skala data är datasetets __getitem__ eller en transformering. Då kommer varje exempel normaliserat, utan extra kod i träningsloopen.
Se upp med division med noll
Om ett särdrag är konstant är dess standardavvikelse noll, och divisionen blir instabil. Lägg till ett litet epsilon i nämnaren för att hålla matematiken säker och stabil.
x = (x - mean) / (std + 1e-8)Ett litet steg, stor effekt
Att normalisera indata är en snabb förbehandlingsvana, men det leder ofta till snabbare och stabilare träning. Hoppar du över det kan även en bra modell kämpa.
Snabb kontroll
Från vilken delmängd ska du beräkna normaliseringsstatistiken?
Sammanfattning
Normalisering skalar om särdrag så att träningen konvergerar. Statistiken anpassas efter träningsmängden och återanvänds överallt, ofta inuti en transformering. 🎉
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 ”Normalisera och standardisera indata” gratis?
Ja – hela texten till ”Normalisera och standardisera indata” 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 ”Normalisera och standardisera indata”?
Skala egenskaper så att träningen konvergerar 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 4 av 4.
Hur lång tid tar lektionen ”Normalisera och standardisera indata”?
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
- Skriv en anpassad Dataset-klass
- Batchning, blandning och num_workers
- collate_fn för indata med varierande längd
- Normalisera och standardisera indata