Hva er Pytorch?
Pytorch er en åpen kildekode-ramme for å konstruere nettverksarkitekturer og andre teknikker på høyt nivå som RNN, CNN og LSTM. Det brukes av forskere, bedrifter og ML- og AI -samfunn.
Facebooks forskningsgruppe for kunstig intelligens er hovedsakelig ansvarlig for utviklingen.
Hva er Tensor (matematikkbasert tilnærming)?
Utøve en kraft på en overflate og se hvordan den avleder i forskjellige retninger. Du kan forvente at den skal bevege seg i samme retning som styrken, men dette skjer ikke alltid; Årsaken til dette er at materialet ikke er ensartet i alle retninger; Det kan ha en viss struktur, for eksempel en krystall eller lag. En kraft, som er en vektor, er utgangspunktet ditt. (Veibeskrivelsen x, y og z har tre komponenter.) Du mottar en avbøyningsvektor (bevegelse i x, y og z). Kraften er imidlertid i motsatt retning fra bevegelsen! La oss late som om responsen er proporsjonal med styrken, noe som betyr å doble styrken dobbelt så stor som bevegelsen. Dette kalles en "lineær reaksjon.”
Hvordan kan du sette alt dette i matematiske termer? Med en tensor, selvfølgelig. Tenk på en tensor som et matematisk instrument som tar en vektor (for eksempel kraften) og returnerer en ny vektor (bevegelsen). Tensorer er bare påkrevd når de to vektorene peker i motsatte retninger.
Iterasjoner, partier, epocs. Hva er de når det gjelder nevrale nettverk?
Antall iterasjoner (betegnet med n Her) er antall ganger en gruppe treningsforekomster estimerer gradienten og oppdaterer det nevrale nettverkets parametere.
Batchstørrelsen B refererer til hvor mange treningsforekomster som brukes i en enkelt iterasjon. Dette brukes vanligvis når antall treningsforekomster er ganske stort, og det er vanligvis effektivt å dele hele dataene i mini-batches. Hver batch har størrelsen: 1< B < N.
For å bruke de fullstendige treningsdataene en gang, tar det n (N/B) iterasjoner. Dette er hva en epoke er. Så (N/B)*E, hvor E er antallet epoker, er det totale antall ganger parametrene endres.
Det er tre typer gradient nedstigning. Det er en avveining mellom dem, da man kan gi en god nøyaktighet, men er treg. På den annen side er man raskere, men den garanterer ikke en god nøyaktighet:
N = b, en epoke tilsvarer en iterasjon i batchmodus.
Mini-batch-modus: 1 < B < N, with N/B iterations per epoch.
B = 1, en epoke tar n iterasjoner i den stokastiske modellen for gradient nedstigning.
Implementering av DataLoader på Fashion Mnist Dataset
Laster mote MNIST -datasettet fra Pytorch
Fashion-Mnist er et bildedatasett som inkluderer 60 000 trening og 10.000 testforekomster. Hvert eksempel inneholder et 28 x 28 gråtonebilde med en etikett fra en av ti kategorier. Nedenfor er noen parametere som du tilfredsstiller mens du laster inn datasettet.
rot: Dette er katalogen som datasettet er lagret i.
tog: indikerer at de trente eller testede dataene må lastes.
nedlasting: Hvis dataene ikke er tilgjengelige i roten, lastes de ned via Internett.
Transform og Target_Transform: Disse parametrene spesifiserer funksjonen og etiketttransformasjonene.
Importer fakkelTilpasset Datasett for filene dine
importosI koden ovenfor ser vi tre viktige metoder:
__i det__: Denne funksjonen kalles når datasettobjektet opprettes. Begge transformasjoner, så vel som katalogen som inneholder bildene og merknadsfilen, er satt opp.
__len__: Denne funksjonen gir deg lengden på datasettet eller antall prøver i datasettet.
__getItem__: Denne metoden gir oss prøven til stede ved en indeks.
Trening med Dataloader
Lagre dataene i datalasterne. Datalastene er iterable som lar deg passere prøvene en om gangen på treningstidspunktet og til og med stokke dataene etter at alle partier er behandlet.
fra fakkel.benyttede.Dataimport DataLoaderItererer datalasteren
# Vis bilde og etikett.Produksjon
Har form på den nåværende batch er fakkel.Størrelse ([32, 1, 28, 28])
Etiketter form på den nåværende batchformen er fakkel.Størrelse ([32])
Etikett: 5
Hver iterasjon i koden ovenfor returnerer en gruppe treningsfunksjoner og treningsetiketter for hver iterasjon. For å unngå overmontering, blandes dataene etter at alle partiene er behandlet.
Implementering av datalaster på et tilpasset datasett
# Importere bibliotekene vi skal brukeProduksjon
0 Tensor ([0, 4, 9, 15, 14])Konklusjon
Vi gikk gjennom implementeringen av Pytorchs datalaster for å administrere opplæringen av dataene våre. Vi innser nå hvor lett vi kan administrere partiene, stokking, iterasjon av datasettene våre ved hjelp av datalaster. Dette hjelper til med bedre analyse av modellene våre og til slutt forbedre dem.