Previsione dei set di dati MNIST utilizzando Keras!!

Contenuti

Questo articolo è stato pubblicato nell'ambito del Blogathon sulla scienza dei dati

introduzione:

Tecnologia. Questo set di dati è composto da cifre scritte a mano dal 0 al 9 e fornisce una pavimentazione per testare i sistemi di elaborazione delle immagini. Questo è considerato il "programma Hello World in Machine Learning"’ que involucra Deep Learning.

I passaggi coinvolti sono:

  1. Importa set di dati
  2. Dividir el conjunto de datos en prueba y addestramento
  3. Costruzione del modello
  4. Allena il modello
  5. Prevedi precisione

1) Importazione di set di dati:

Per continuare con il codice, abbiamo bisogno del set di dati. Quindi, pensiamo a varie fonti come set di dati, FIA, Kaggle, eccetera. Ma dal momento che stiamo usando Python con i suoi vasti moduli integrati, ha i dati MNIST nel modulo keras.datasets. Perciò, non abbiamo bisogno di scaricare e memorizzare i dati esternamente.

da keras.datsets import mnist
data = mnist.load_data()

Perciò, dal modulo keras.datasets importiamo la funzione mnist che contiene il data set.

Dopo, il set di dati è memorizzato nei dati variabili utilizzando la funzione mnist.load_data () che carica il set di dati in dati variabili.

Prossimo, vediamo il tipo di dati che troviamo qualcosa di insolito dato che è del tipo tupla. Sappiamo che il set di dati mnist contiene immagini di cifre scritte a mano, immagazzinato sotto forma di tuple.

dati
genere(dati)

2) Dividi il set di dati in training e test:

Dividiamo direttamente il set di dati in train and test. Quindi, Per quello, inizializziamo quattro variabili X_train, y_train, X_test, y_test per danneggiare il treno e testare i dati rispettivamente per i valori dipendenti e indipendenti.

(X_treno, y_train), (X_test, y_test) = dati
X_treno[0].forma
X_train.shape
19690blog-5-3-9956563

Stampando la forma di ogni immagine possiamo scoprire che ha una dimensione di 28 × 28. Il che significa che l'immagine ha 28 pixel x 28 pixel.

Ora, dobbiamo rimodellare in modo tale da poter accedere a ogni pixel dell'immagine. La razón para acceder a cada píxel es que solo entonces podemos aplicar ideas de apprendimento profondo y podemos asignar un código de color a cada píxel. Quindi memorizziamo l'array rimodellato in X_train, X_test rispettivamente.

X_train = X_train.reshape((X_train.shape[0], 28*28)).come tipo('float32')
X_test = X_test.reshape((X_test.shape[0], 28*28)).come tipo('float32')

Conosciamo il codice colore RGB in cui valori diversi producono vari colori. È anche difficile ricordare tutte le combinazioni di colori. Quindi, fare riferimento a questo Collegamento per avere una breve idea sui codici colore RGB.

Sappiamo già che ogni pixel ha il suo codice colore univoco e sappiamo anche che ha un valore massimo di 255. Per realizzare Machine Learning, è importante convertire tutti i valori di 0 un 255 per ogni pixel a un intervallo di valori di 0 un 1. Il modo più semplice è dividere il valore di ogni pixel per 255 per ottenere i valori nell'intervallo di 0 un 1.

X_treno = X_treno / 255
X_test = X_test / 255

Ora abbiamo finito di dividere i dati in test e training, oltre a preparare i dati per un uso successivo. Perciò, ora possiamo passare al pass 3: Costruzione di modelli.

3) Allena il modello:

Per eseguire la costruzione del modello, dobbiamo importare le funzioni richieste, vale a dire, sequenziale e denso per eseguire deep learning, che è disponibile nella libreria Keras.

Ma questo non è direttamente disponibile, por lo que debemos comprender este simple grafico a linee:

1) Duro -> Modelli -> Sequenziale

2) Duro -> Copertine -> Denso

Vediamo come possiamo importare le funzioni con la stessa logica di un codice Python.

da keras.models import Sequential
da keras.layers import Dense
modello = Sequenziale()
modello.aggiungi(Denso(32, input_dim = 28 * 28, attivazione = 'rileggere'))
modello.aggiungi(Denso(64, attivazione = 'rileggere'))
modello.aggiungi(Denso(10, attivazione = 'softmax'))

Luego almacenamos la función en el modelo de variabile, in quanto semplifica l'accesso alla funzione ogni volta invece di digitare la funzione ogni volta, possiamo usare la variabile e chiamare la funzione.

Dopo, trasforma l'immagine in un denso gruppo di livelli e impila ogni livello uno sopra l'altro e usa 'relu’ como nuestra funzione sveglia. La spiegazione di "relu"’ va oltre lo scopo di questo blog. Per avere maggiori informazioni a riguardo, puoi consultare Quello.

D'altra parte, impiliamo qualche altro strato con "softmax"’ come nostra funzione di attivazione. Per maggiori informazioni sulla funzione 'softmax', puoi fare riferimento a questo articolo, in quanto è di nuovo oltre lo scopo di questo blog, poiché il mio obiettivo principale è ottenere il più accurato possibile con il set di dati MNIST.

Dopo, infine compiliamo il modello completo e usiamo entropia incrociata como nuestra función de pérdida, per ottimizzare l'uso del nostro modello Adamo come nostro ottimizzatore e usiamo la precisione come metrica per valutare il nostro modello.

Per una panoramica del nostro modello, usamos ‘model.summary ()', che fornisce brevi dettagli sul nostro modello.

27829blog-5-7-2613900

Ora possiamo passare al Pass 4: Allena il modello.

4) Allena il modello:

Questo è il penultimo passaggio in cui addestreremo il modello con una singola riga di codice. Quindi, Per quello, stiamo usando la funzione .fit () che prende come input l'insieme dei treni della variabile dipendente e della variabile indipendente e dipendente, e imposta le epoche = 10, e imposta batch_size come 100.

Trenino => X_treno; y_train

Epoche => Una época significa entrenar la neuronale rosso con todos los datos de entrenamiento para un ciclo. Un'epoca è composta da uno o più lotti, dove usiamo una parte del set di dati per addestrare la rete neurale. Il che significa che mandiamo il modello in addestramento 10 tempi per ottenere un'elevata precisione. Puoi anche modificare il numero di epoche in base alle prestazioni del modello.

Dimensione del lotto => La dimensione batch è un termine utilizzato nell'apprendimento automatico e si riferisce al numero di esempi di addestramento utilizzati in un'iterazione. Quindi, fondamentalmente, noi inviamo 100 immagini da addestrare come batch per iterazione.

Vediamo la parte di codifica.

52592blog-5-8-4402980

Perciò, dopo aver addestrato il modello, abbiamo raggiunto una precisione di 97,88% per il set di dati di allenamento. Ora è il momento di vedere come funziona il modello nel set di prova e vedere se abbiamo raggiunto la precisione richiesta. Perciò, ora andiamo all'ultimo passaggio o passaggio 5: Prevedi precisione.

5) Precisione della previsione:

Quindi, per scoprire come funziona il modello sul set di dati di test, Uso la variabile punteggi per memorizzare il valore e uso la funzione .valuta () che prende il test set delle variabili dipendenti e indipendenti come input. Questo calcola la perdita e la precisione del modello nel set di prova. Come ci concentriamo sulla precisione, stampiamo solo la precisione.

84112blog-5-9-5227806

Finalmente, abbiamo raggiunto il risultato e garantiamo una precisione di oltre 96% nel set di prova che è molto apprezzabile, e il motivo del blog è raggiunto. Ho scritto il link a il computer portatile per tua referenza (lettori).

Per favore, sentiti libero di connetterti con me attraverso Linkedin così come. E grazie per aver letto il blog.

Il supporto mostrato in questo articolo non è di proprietà di DataPeaker e viene utilizzato a discrezione dell'autore.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.