‫Quanto è eccitante tutto questo, abbiamo fatto molta strada dal combattere per ottenere le nostre immagini e posizioni, le nostre etichette in
‫tempi verbali, preparando la nostra giornata alla nostra scelta di un modello sull'hub di flusso del tensore, creando richiami di modelli.
‫Siamo finalmente nella fase in cui siamo pronti per addestrare il nostro primo modello di deep learning, quindi creiamo
‫un training per l'intestazione, un modello.
‫Ora inseriremo un sottoinsieme di dati, perché se ricordi quando
‫abbiamo diviso i nostri dati, inizieremo l'addestramento solo su 1000 immagini perché vogliamo farlo?
‫Quindi andiamo proprio qui, il nostro primo modello si allenerà solo su mille immagini per assicurarsi che tutto
‫funzioni.
‫Quindi è quello che stiamo cercando di fare.
‫Stiamo cercando di ridurre al minimo il tempo tra gli esperimenti.
‫Quindi iniziamo iniziando da un sottoinsieme dei dati per assicurarci che tutto questo codice, intendo, potrebbe rompersi.
‫Destra.
‫Quindi vogliamo assicurarci che funzioni prima di dedicare molto tempo all'addestramento su 10.000 immagini, perché l'addestramento su
‫un migliaio di immagini andrà molto più veloce di 10.000 immagini.
‫E puoi immaginare che lo stesso valga se lo aumenti a 100000 immagini o nel caso dell'immagine netta
‫quattordici virgola due milioni.
‫Quindi c'è un'altra variabile che dobbiamo definire prima di poter iniziare ad addestrare un modello, ed è il
‫numero di epoche.
‫E quindi il numero di epoche è quanti passaggi dei dati vorremmo che il nostro modello facesse.
‫E un passaggio è, puoi immaginare, è equivalente al nostro modello, cercare di trovare modelli in ogni immagine di cane
‫e vedere quali modelli si riferiscono a ciascuna etichetta.
‫Passiamo ora alle epoche qui.
‫È uguale a cento e faremo qualcosa di interessante qui, creeremo un
‫piccolo cursore come abbiamo fatto prima di Harran.
‫E poi creeremo un cursore di tipo e quindi gli uomini saranno 10, i Mac possono essere 100 e quindi il passaggio può
‫essere 10.
‫Guarda quello.
‫Quant'è fico?
‫Quindi, se volessimo fare 10 epoche, potremmo farne 10.
‫Ma lo limiteremo a 100 perché abbiamo il nostro callback di arresto anticipato e vedremo tutto questo
‫in azione in un secondo.
‫Ma essenzialmente, cosa farà un pass di addestramento se torniamo al nostro Keano, un'epoca darebbe
‫al nostro modello una singola possibilità di guardare tutti i dati di addestramento e poi convalidarli dai loro.
‫100 epoche, quindi stiamo dando al nostro modello fino a 100 possibilità di esaminare il set di dati di addestramento e
‫capire i modelli.
‫Quindi andrà a ciò che passa, passerà attraverso questi strati.
‫Passeremo le nostre immagini di addestramento al nostro modello.
‫Passerà attraverso questi strati.
‫E poi il nostro modello, mentre impara i modelli, farà delle ipotesi su quale etichetta appartiene a quale
‫immagine.
‫E peggiore è l'ipotesi, maggiore sarà la perdita.
‫Quindi è qui che entra in gioco Adam.
‫Ricorda che il ragazzo in fondo alla collina ai Campionati Internazionali di Dissenso in collina sta
‫dicendo al nostro modello come può migliorare le sue ipotesi ad ogni epoca.
‫E poi vedremo come se la cava il nostro modello a livello di precisione, perché abbiamo quel giudice spettatore
‫in fondo alla collina che osserva come si comporta bene il nostro modello.
‫Quindi, ancora una volta, se tutto questo non ha senso, avrà più senso una volta che inizieremo effettivamente a eseguire
‫un modello.
‫Quindi facciamo un ultimo controllo.
‫Il controllo finale è un'ultima volta per assicurarci che stiamo usando una GPU, perché se non stiamo usando una GPU, questo
‫addestramento del nostro modello sulle immagini richiederà molto, molto tempo.
‫Hai visto fin dall'inizio che una GPU può velocizzare il nostro codice fino a 30 volte e talvolta di più.
‫Scriviamo quel codice.
‫Controlla per assicurarti che stiamo ancora girando su una GPU così perent.
‫GPU.
‫Disponibile, e poi andiamo.
‫Sì.
‫Se t. F. config, non ultimi i dispositivi fisici.
‫E poi vogliamo controllare G. P. UN. altrimenti non è disponibile, quindi questo è lo stesso codice che abbiamo scritto sopra.
‫Ma abbiamo bisogno di una GPU per poterlo eseguire in un considerevole lasso di tempo.
‫Sì, avremmo potuto controllare anche qui.
‫Ricorda, questo è un piccolo trucco di scorciatoia, ma mi piace dire questa stampa qui ora.
‫Boom, abbiamo un G. P. UN. in esecuzione, abbiamo impostato un numero di
‫epoche, creiamo una semplice funzione che addestra un modello.
‫Quindi diciamolo bene qui.
‫Creiamo una funzione che addestra un modello e la funzione creerà un modello usando create model.
‫E poi vogliamo organizzare una richiamata per la decima commissione.
‫Usando la nostra funzione d'ora in poi, quindi create.
‫Vedi, è qui che la creazione di funzioni è davvero entrata in gioco per noi qui.
‫Altrimenti, dovremmo scrivere codice ad hoc.
‫Ma la scrittura delle funzioni per cominciare richiede un po' più di tempo, ma alla lunga ci fa risparmiare tempo.
‫Quindi chiama la funzione sul nostro modello, analizzando i dati di addestramento, i dati di convalida.
‫Un certo numero di epoche per cui allenarsi.
‫Che ora è una scatola.
‫Lo giustifichiamo con il nostro piccolo slider malato e i kovács, che sono le nostre funzioni di supporto
‫che vorremmo usare, e poi alla fine vogliamo che restituisca il modello, lo cambieremo in markdown.
‫Sembra fenomenale.
‫Ok, andiamo qui.
‫C'era una funzione per addestrare e restituire un modello addestrato.
‫Quindi qui siamo addestrati bene.
‫Non posso credere che siamo finalmente all'altezza.
‫Questo è incredibile.
‫Stiamo formando il nostro primo Deep Learning e conoscere la rete.
‫Quindi i treni ricevono un modello e restituiscono la versione addestrata.
‫Bello e semplice.
‫Ricorda, anche se ci stiamo emozionando non significa che stiamo perdendo le nostre abitudini comunicative,
‫quindi creeremo un modello.
‫Quindi andremo a modello uguale, diciamo, è qui che entra in gioco la nostra funzione di creazione del modello.
‫O si.
‫È così soddisfacente da scrivere.
‫E poi creiamo una nuova sessione di bordo ogni volta che formiamo un modello.
‫Perché ricorda, con la nostra scheda Tensas, con il nostro callback della scheda Tensas, in realtà chiamiamo semplicemente Estancia
‫Board.
‫Non abbiamo bisogno di quel callback che abbiamo impostato la nostra funzione.
‫Quindi, se torniamo qui ogni volta che viene chiamato, creerà una nuova cartella nei log con la data
‫e l'ora correnti.
‫Quindi questo è importante perché ogni volta che eseguiamo le nostre funzioni del modello di treno, quindi ogni
‫volta che proviamo ad addestrare un nuovo modello, un nuovo esperimento, creiamo una cartella di registro, che possiamo quindi monitorare le prestazioni del
‫nostro modello.
‫Quindi questa è una cosa davvero utile in seguito, quando cercheremo di valutare quale esperimento ha funzionato meglio di un
‫altro.
‫E poi andiamo ad adattare il modello ai dati che passano ai callback che abbiamo creato.
‫Ora, di nuovo, c'è probabilmente un modo migliore per eseguire questa funzione, ma stiamo solo cercando
‫di farlo funzionare.
‫E poi possiamo tornare indietro dopo aver superato la fase di adattamento di un modello per la prima
‫volta e perfezionarlo.
‫Andiamo modello per adattarsi e lo passeremo.
‫X è uguale ai dati del treno, che è un batch di dati, se ricordi, che contiene le immagini e le etichette.
‫Quindi le epoche saranno le epoche di Naameh, a. K. un. quante volte è consentito al nostro modello di esaminare i
‫dati di addestramento prima che si fermi?
‫O quante possibilità aveva il nostro modello di passare sopra l'intero set di dati di addestramento per trovare i modelli e quindi
‫i dati di convalida?
‫Saranno dati validi, che sono anche un gruppo di dati, o batch di dati, mi dispiace, e la frequenza di convalida è
‫la frequenza con cui vogliamo testare i modelli che il nostro modello ha trovato sul nostro set di convalida.
‫E lo impostiamo su uno perché vogliamo che verifichi i suoi modelli che ha trovato nel training set
‫sui dati di convalida ogni epoca.
‫Quindi una volta che un'epoca e poi i nostri callback sono a bordo di Bordewich, abbiamo appena creato sopra
‫con la nostra funzione e l'arresto anticipato di whoof.
‫E poi vogliamo restituire il modello messo un po'.
‫Restituire il modello montato.
‫Quanto è bello e ora possiamo adattare il nostro modello ai dati.
‫Perché così semplice come andare.
‫Modello, ECLSS, modello di treno.
‫Vedete i vantaggi nella creazione di funzioni in modo da poter eseguire questa funzione dopo aver fatto un sacco di
‫esperimenti diversi in seguito.
‫E allora sei pronto adesso?
‫Un piccolo bocconcino qui.
‫Quando si addestra un modello per la prima volta, in particolare su dati di immagine o qualsiasi
‫altro tipo di dati su larga scala, la prima epoca di solito impiegherà più tempo rispetto al resto.
‫Ora, questo perché le funzioni che abbiamo scritto ottengono i dati ed è stato inizializzato.
‫Quindi un. K. un. caricando i dati nella memoria della nostra GPU.
‫Ora, l'utilizzo di più dati richiede generalmente più tempo, motivo per cui abbiamo iniziato con un migliaio di immagini
‫e così via dopo la prima epoca.
‫Bene, l'abbiamo impostato in modo che sia limitato a 100, il primo potrebbe richiedere un paio di minuti dopo
‫il primo airpark, il successivo APOC dovrebbe richiedere solo un paio di secondi.
‫Quindi sei pronto.
‫Lo faremo insieme.
‫Le dita incrociate tutte le nostre funzioni, perché questo in realtà dipende da alcune righe di codice
‫qui.
‫Diciamo, se funziona tre a uno.
‫Guarda quell'edificio, un modello con rete mobile V2.
‫Ho incrociato le dita.
‫Spero che lo faccia anche tu.
‫Oh, sì, sta iniziando.
‫Vedi, ci siamo, epoca uno dei 100.
‫Perché la casella è impostata su 100.
‫Quindi si allenerà per 25 passaggi, il che significa la dimensione del nostro batch, quindi se andiamo abbiamo 800 immagini nel nostro set di allenamento
‫perché ricorda, abbiamo iniziato con mille.
‫Quindi se lo dividiamo per 32, otteniamo venticinque.
‫Ecco perché l'addestramento è composto da venticinque passaggi, perché c'è la dimensione del lotto trentadue e la convalida.
‫Se facciamo duecento divisi per trentadue, verrà arrotondato per eccesso.
‫Quindi è arrotondato per eccesso a sette.
‫Ecco perché abbiamo la convalida.
‫Quindi 200 immagini su uno scapolo sono 30 a.
‫E controlla questo.
‫Ci siamo.
‫Circa cinque minuti, quindi ecco di cosa sto parlando con la perdita, quindi ora tutte queste cose
‫che abbiamo creato proprio qui, quindi la perdita.
‫Quindi il nostro obiettivo è ricordare di ridurre al minimo la perdita.
‫Perché siamo in cima alla collina, abbiamo paura delle altezze, vogliamo arrivare in fondo alla collina, vuoi
‫ridurre al minimo la funzione di perdita?
‫La perdita è l'altezza della collina.
‫Scendiamo qui.
‫Quindi speriamo che questo numero scenda, ma vogliamo massimizzare la precisione.
‫Quindi è così che sapremo se il nostro modello si sta allenando o meno, se si tratta di modelli di
‫apprendimento, questa perdita dovrebbe diminuire, questa precisione dovrebbe aumentare.
‫Quindi ci vorranno alcuni minuti per superare la prima epoca.
‫Aspetterò fino a quando non sarà passata attraverso la prima epoca e poi accelererò questo video e poi ci vedremo una
‫volta che sarà passata la prima epoca perché vedrai le epoche successive dopo questa.
‫Quindi Epoch due su 100 sarà piuttosto veloce perché stiamo usando una GPU.
‫L'unico motivo per cui il primo impiega un po' di tempo è perché deve caricare tutte quelle immagini nella memoria della
‫GPU.
‫Ci vediamo all'istante, ma per me saranno circa tre minuti.
‫Va bene, sono tornato.
‫Quindi abbiamo un ETA qui, che sta per tempo stimato di arrivo, è di circa 12 secondi rimasti in
‫questa prima epoca finché tutto va secondo i piani.
‫E così puoi vedere che la perdita si è leggermente ridotta e la precisione è aumentata.
‫Quindi questa è una buona cosa.
‫Ora, quello che dovremmo vedere alla fine di questa prima epoca, se ci sistemiamo correttamente, dovremmo dire che questo
‫è perso sul training set e l'accuratezza sul training set.
‫Dovremmo vedere la perdita sui dati di convalida e l'accuratezza sul set di convalida apparire da un momento all'altro.
‫Quindi stiamo solo aspettando.
‫Quindi probabilmente quello che sta facendo ora è che sono passati un po' più di 12 secondi, ma
‫sta caricando i dati di convalida in memoria in modo che possa calcolare e valutare come si sta comportando su quel set di dati.
‫Non posso credere che lo stiamo facendo, è come far brillare un modello insieme in tempo reale.
‫Questo è fenomenale.
‫Non l'ho mai fatto prima.
‫Finché il tuo codice funziona.
‫Eccoci qui.
‫Guarda quello.
‫Quindi ora abbiamo questo di cui non stiamo parlando, abbiamo questa metrica sui dati di addestramento e questa
‫metrica sulla convalida.
‫Quindi guarda quanto velocemente la nostra precisione sta migliorando.
‫Ora, te l'avevo detto che le epoche accelereranno.
‫Guarda quello.
‫Il primo ha impiegato circa cinque minuti, ma questi richiedono cinque secondi.
‫Siamo già a un punto di precisione zero.
‫Questa è la precisione del 100% sui dati di allenamento.
‫Questo è folle.
‫Quindi ciò che questo ci sta dicendo in realtà è che è una buona cosa che il nostro modello sia overfitting
‫perché sta funzionando molto meglio sui dati di addestramento rispetto ai dati di convalida.
‫Ma questo è fantastico, il nostro modello sta funzionando, sta trovando schemi, sta usando ciò che la rete mobile
‫V2 ha imparato e l'immagine della rete e lo sta applicando ai nostri cani.
‫La visione del cane del set di dati sta prendendo vita da così stoate.
‫Ora, spero che anche il tuo funzioni così perché stiamo allenando un modello insieme in tempo reale.
‫Questo è bellissimo.
‫Quindi quello che dovremmo vedere è che una volta che l'accuratezza della convalida smette di migliorare per un certo numero
‫di epoche, quindi, tre, a causa della nostra richiamata di arresto anticipato, smetterà di allenarsi.
‫Quindi in realtà non credo che raggiungeremo le 100 epoche, forse nemmeno vicino, perché qui stiamo ottenendo
‫una precisione di un punto zero con una piccola perdita sui nostri dati di allenamento.
‫Quindi eccoci qui.
‫Si fermò.
‫Il mio cuore sta battendo forte.
‫È stato fenomenale, quindi dico quello che intendevo, la prima epoca richiede un po' di tempo perché sta
‫caricando i dati in memoria una volta caricati, quei dati iniziali nella memoria, la GPU sta per
‫andare, va bene, il tempo di calpestare il gas e accenderà i postbruciatori o il gas.
‫Niente freni, piccola.
‫Quindi abbiamo raggiunto 18 epoche su 100.
‫E possiamo vedere che il nostro modello sul nostro set di dati di addestramento funziona con una precisione del 100%.
‫È abbastanza folle.
‫1. 0.
‫Devi moltiplicare questo numero per 100.
‫La perdita è abbastanza bassa.
‫Voglio dire, una perdita pari a zero è perfetta.
‫Ma possiamo dire che il nostro modello è overfitting perché sta funzionando molto meglio sui dati di
‫addestramento rispetto ai dati di convalida.
‫Quindi, se torniamo indietro, è come se il nostro modello avesse memorizzato i materiali del corso piuttosto che i principi di risoluzione dei
‫problemi di quei materiali del corso.
‫E fa fatica ad adattarsi a un set di dati che non ha mai visto prima, ovvero un esame pratico o il nostro set di
‫convalida.
‫Quindi in questo momento il nostro modello ha una scarsa capacità di generalizzare.
‫Quindi penso che sia sufficiente per un video.
‫È un sacco di eccitazione.
‫Quello che voglio che tu faccia un po' di compiti è prima di andare a controllare i registri del consiglio nel prossimo video,
‫perché abbiamo già usato la nostra chiamata del consiglio di Tenzer prima.
‫Voglio che tu controlli questa è una domanda è davvero importante dopo che abbiamo provato a modellare.
‫Voglio che tu faccia domande.
‫Sembra che il nostro modello sia in sovralimentazione perché sta funzionando.
‫Molto meglio sul set di dati di addestramento rispetto al set di dati di convalida.
‫Quali sono alcuni modi per prevenire l'overfitting del modello nell'apprendimento profondo, le reti neurali?
‫Quindi lo trasformeremo in un atterramento.
‫Questa è una domanda che voglio che tu cerchi prima di passare al prossimo video, quali sono alcuni modi per prevenire un
‫overfitting del modello e reti molto conosciute?
‫Quindi dai un'occhiata anche se non ne sei sicuro.
‫Voglio solo che inizi a incuriosirti su cosa sta succedendo e voglio che smetti di raccogliere gli
‫indizi su quando il tuo modello è overfitting, ad esempio prestazioni molto migliori sul set di dati di addestramento rispetto
‫al set di dati di convalida.
‫E una piccola nota qui, l'overfitting della nota per cominciare è una buona cosa.
‫Significa che il nostro modello sta imparando.
‫Quindi sono straordinariamente entusiasta di aver appena addestrato insieme la nostra prima rete neurale di apprendimento profondo utilizzando
‫il trasferimento di apprendimento che la visione del cane sta prendendo vita.
‫Quindi abbiamo finito di addestrare un modello, almeno un primo sottoinsieme di un modello.
‫Questo non è sui dati completi.
‫Questo è solo su un migliaio di immagini.
‫Quindi il nostro prossimo passo è, se entriamo nel nostro keynote, cosa stiamo facendo?
‫Quindi adattiamo il modello ai dati.
‫Non abbiamo ancora fatto una previsione.
‫Quindi quello che potremmo fare è valutare il modello usando i callback della nostra scheda tensore in modo che tu possa vederlo.
‫E poi scopriremo come fare una previsione con il nostro modello addestrato.
‫Sembra un piano.
‫Quindi dai un'occhiata a questa domanda e ci vediamo nel prossimo video.