Cos'è Pytorch?
Pytorch è un quadro di apprendimento profondo open source per la costruzione di architetture di rete e altre tecniche di alto livello come RNN, CNN e LSTM. È utilizzato da ricercatori, aziende e comunità ML e AI.
Il gruppo di ricerca sull'intelligenza artificiale di Facebook è principalmente responsabile del suo sviluppo.
Cos'è il tensore (approccio basato sulla matematica)?
Esercitare una forza su una superficie e guardare come si devia in direzioni diverse. Potresti prevedere che si muova nella stessa direzione della forza, ma questo non sempre accade; La ragione di ciò è che il materiale non è uniforme in tutte le direzioni; Può avere una struttura, come un cristallo o strati. Una forza, che è un vettore, è il tuo punto di partenza. (Le direzioni X, Y e Z hanno ciascuna tre componenti.) Ricevi un vettore di deflessione (movimento in x, y e z). La forza, tuttavia, è nella direzione inversa dal movimento! Facciamo finta che la risposta sia proporzionata alla forza, che significa raddoppiando la forza del doppio del movimento. Questa è chiamata "reazione lineare."
Come puoi mettere tutto questo in termini matematici? Con un tensore, ovviamente. Considera un tensore come uno strumento matematico che prende un vettore (come la forza) e restituisce un nuovo vettore (il movimento). I tensori sono richiesti solo quando i due vettori puntano in direzioni opposte.
Iterazioni, lotti, EPOCS. Cosa sono in termini di reti neurali?
Il numero di iterazioni (indicato da N Qui) è il numero di volte in cui un lotto di istanze di allenamento stima il gradiente e aggiorna i parametri della rete neurale.
La dimensione del lotto B si riferisce a quanti istanze di formazione sono impiegati in un'unica iterazione. Questo viene generalmente utilizzato quando il numero di istanze di allenamento è piuttosto grande e di solito è efficace dividere gli interi dati in mini-batch. Ogni lotto ha le dimensioni: 1< B < N.
Per utilizzare i dati di formazione completi una volta, ci vuole N (N/B) iterazioni. Questo è ciò che è un'epoca. COSÌ (N/B)*E, Dove E è il numero di epoche, è il numero totale di volte in cui i parametri vengono modificati.
Esistono tre tipi di discesa gradiente. C'è un compromesso tra loro come si può dare una buona precisione ma è lento. D'altra parte, uno è più veloce, ma non garantisce una buona precisione:
N = b, un'epoca è uguale a un'iterazione in modalità batch.
Mono-batch in modalità: 1 < B < N, with N/B iterations per epoch.
B = 1, un'epoca prende n iterazioni nel modello stocastico di discesa gradiente.
Implementazione di DataLoader sul set di dati MNIST Fashion
Caricamento del set di dati Mnist di moda da Pytorch
Fashion-Mnist è un set di dati di immagini che include 60.000 formazione e 10.000 istanze di test. Ogni esempio include un'immagine in scala di grigi 28 con un'etichetta di una delle dieci categorie. Di seguito sono riportati alcuni parametri che soddisfano durante il caricamento del set di dati.
radice: Questa è la directory in cui viene salvato il set di dati.
treno: indica che i dati addestrati o testati devono essere caricati.
scaricamento: Se i dati non sono disponibili su root, vengono scaricati via Internet.
trasforma e target_transform: Questi parametri specificano le trasformazioni di funzionalità ed etichetta.
Torcia di importazioneCostume Set di dati dei tuoi file
importosNel codice sopra, vediamo tre metodi importanti:
__dentro__: Questa funzione viene chiamata quando viene creato l'oggetto set di dati. Entrambe le trasformazioni, così come la directory contenente le immagini e il file delle annotazioni, sono impostate.
__len__: Questa funzione ti restituisce la lunghezza del set di dati o il numero di campioni nel set di dati.
__geTitem__: Questo metodo ci fornisce il campione presente in un indice.
Formazione con Dataloader
Archiviare i dati nei caricatori di dati. I caricatori di dati sono ipotesi che consentono di passare i campioni uno alla volta al momento dell'allenamento e persino mescolare i dati dopo che tutti i lotti sono stati elaborati.
dalla torcia.utils.Data Import DataLaderItera il caricatore del dataloader
# Visualizza immagine ed etichetta.Produzione
Caratteristiche La forma del lotto corrente è la torcia.Dimensione ([32, 1, 28, 28])
La forma delle etichette dell'attuale forma del lotto è torcia.Dimensione ([32])
Etichetta: 5
Ogni iterazione nel codice sopra restituisce un lotto di funzionalità di formazione e etichette di formazione per ogni iterazione. Per evitare l'adattamento, i dati vengono mescolati dopo che tutti i lotti sono stati elaborati.
Implementazione del caricatore di dati su un set di dati personalizzato
# Importazione delle librerie che utilizzeremoProduzione
0 tensore ([0, 4, 9, 15, 14])Conclusione
Abbiamo esaminato l'implementazione del caricatore di dati di Pytorch per gestire la formazione dei nostri dati. Ora ci rendiamo conto di quanto facilmente possiamo gestire i lotti, la mescolanza, l'iterazione dei nostri set di dati utilizzando Dataloader. Questo aiuta in una migliore analisi dei nostri modelli e alla fine migliorali.