‫OK, ottimo, ora abbiamo una piccola funzione di supporto che non solo ci restituisce le nostre immagini sotto forma di tempi, fa
‫sì che elabori le immagini per noi, ma restituisce anche l'etichetta in modo che possiamo recuperarla sotto forma
‫di tupla.
‫Quindi utilizziamolo per scrivere un'altra funzione che trasformerà i nostri dati, tutti i nostri dati, perché
‫questo fa solo un campione.
‫Abbiamo bisogno di un modo per trasformare tutti i nostri dati in modo che i nostri X e Y, i nostri dati e le etichette in batch di dimensione 32.
‫Tutto bene.
‫Ora abbiamo, scriviamolo.
‫Stiamo cercando di comunicare a noi stessi nei nostri taccuini un modo per trasformare i nostri dati in tuple di tempi.
‫E andiamo qui nella forma.
‫Etichetta immagine.
‫Facciamo una funzione per trasformare tutti i nostri dati.
‫X e Y in batch.
‫D'accordo, meraviglioso.
‫Ora, di nuovo, se ti stai chiedendo da dove provenga tutto questo, un ottimo posto per qualsiasi tipo di caricamento dei
‫dati è leggere la documentazione.
‫So che a volte potrebbe essere un po' noioso, ma fidati di me, leggendo, anche se non hai capito la prima volta,
‫io non ho capito la prima volta.
‫Leggilo, provalo, provalo di nuovo e guarda come sarà.
‫Un grosso cane di una funzione.
‫Oh, va bene perché stiamo lavorando sulla visione del cane, ma ci farà risparmiare un sacco
‫di tempo in seguito.
‫Facciamolo.
‫Quindi dobbiamo definire la dimensione di bash.
‫Quindi 32 è un buon inizio.
‫Ricorda, tendono a scorrere per impostazione predefinita da 30 a molto.
‫Quindi, se non lo imposti da qualche parte, probabilmente verrà impostato su 32, ma lo definiremo comunque.
‫Quindi creiamo una funzione per trasformare i dati in batch.
‫E ora scriveremo insieme questa funzione.
‫E farà alcune piccole cose in modo diverso, a seconda se vogliamo un batch di dati di addestramento, un
‫batch di dati di convalida o un batch di dati di test.
‫Perché ricorda, questi sono i nostri tre set lì, quindi questi sono i nostri tre set, quindi abbiamo un set di allenamento.
‫Diventeremo un batch di addestramento, un batch di convalida e un batch di test.
‫Destra.
‫Quindi vogliamo la morte, creare corrispondenze di dati, vogliamo che prenda una X e una Y.
‫E in realtà, perché non può essere nessuno.
‫Ora voglio che pensi al motivo per cui potrebbe essere nessuno?
‫Perché perché le nostre etichette probabilmente avranno un senso e un po'.
‫Ma pensa solo al motivo per cui potremmo voler creare un batch di dati senza etichette?
‫I dati validi sono falsi e i dati di test sono falsi.
‫E ci lasceremo un po' di dottore qui.
‫Avevo un collega che si chiamava Ron e mi ha detto una tecnica chiamata paperella di gomma.
‫Era un programmatore molto migliore di me, e ha detto, se hai problemi.
‫Per capire come fare qualcosa in codice, prima scrivilo in linguaggio o dillo a te stesso in linguaggio come
‫se stessi parlando a una papera di gomma.
‫E le paperelle di gomma non capiscono molto bene l'inglese, quindi devi chiarirlo come un ottimo consiglio di
‫Ron.
‫Grazie, Ron.
‫Quindi questa funzione crea batch di dati dall'immagine X e dalle coppie di etichette Y.
‫Mescola i dati se si tratta di dati di allenamento, quindi mescola i dati in giro, perché se c'era un ordine
‫intrinseco nel file di allenamento che abbiamo scaricato, probabilmente non perché questi sembrano piuttosto confusi.
‫Non vogliamo che il nostro modello lo ricordi, anche se vogliamo che sia il più adattabile possibile, indipendentemente
‫dall'ordine in cui arriva un'immagine.
‫Ma quindi, se si tratta di dati di addestramento, mescola ma non mescola, se si tratta di dati di convalida.
‫Ora, voglio che pensiate al motivo per cui potrebbe non essere mescolato se si tratta di dati di convalida.
‫Non preoccuparti, ce ne occuperemo noi.
‫Ma nel frattempo pensaci.
‫Accetta anche dati di test come input.
‫Ora ecco perché potremmo non essere nessuno.
‫Perché i dati dei test non hanno etichette, ovviamente.
‫Ora.
‫Quello che vogliamo fare è costruire una funzione che faccia la stessa cosa ma abbia alcune cause di Claus o Iliffe,
‫se sono dati validi o dati di test.
‫Quindi sappiamo cosa vogliamo fare.
‫E abbiamo alcune condizioni qui che se sono dati validi o di prova.
‫Quindi iniziamo con un dato di prova, perché penso che sia la quantità minima di cose.
‫Quindi, se i dati sono un set di dati di prova.
‫Probabilmente no.
‫Ho sicuramente avuto etichette o sappiamo che non abbiamo etichette se si tratta di un set di dati di test, quindi lo faremo
‫se i dati di test.
‫Brent, diamoci una piccola dritta, mi racconterò cosa sta succedendo, classificando i batch di
‫dati di test, solo per assicurarmi che in seguito, ehi, forse stiamo facendo dei batch di dati e
‫noi ho passato accidentalmente un parametro falso ai dati di test e finisce per farlo in modo diverso per i dati
‫di test.
‫Non lo vogliamo.
‫Vogliamo sapere che sta facendo lotti di prova.
‫Quindi i dati sono uguali ai dati.
‫Il set di dati.
‫Quindi questo è il modulo intensivo, dati bassi che stiamo creando essenzialmente un set di dati batch e stiamo andando
‫a questo è un po' interessante qui da Tenzer Slices.
‫Quindi crea un set di dati, solo un set di dati di flusso tensoriale i cui elementi sono sezioni del dare e dei tempi.
‫Quindi fondamentalmente quello che dice è passami alcuni tempi e creerò un set di dati da quello.
‫Un po' di confusione, lo so, ma è proprio così, intensivo, come Tefft, costante X.
‫Quindi fondamentalmente ciò che dice è che creerò un set di dati offload teso.
‫Dalle affettatrici Tensas.
‫X e poiché stiamo passando X alla costante TFW, trasforma X in un Tenzer.
‫Quindi questo è solo un file senza etichette.
‫OK, e ora torniamo ai dati, ecco dove trasformiamo il nostro turno di set di dati, perché in questo momento questo trasformerebbe
‫tutto X in un set di dati.
‫Dobbiamo trasformarlo in una dimensione batch di 32.
‫Quindi è uguale alla mappa dei punti dati.
‫Dobbiamo elaborare l'immagine.
‫E dobbiamo trasformarlo in una dimensione batch batch.
‫Whoa, stanno succedendo un sacco di cose qui.
‫Daniele, cosa sta succedendo?
‫Bene, abbiamo parlato attraverso la riga sopra, ma questo tutto ciò che sta dicendo è fondamentalmente prendere questi dati, che è un
‫set di dati intensificato fatto di X.
‫Che sono solo nomi di file sotto forma di tempi e quindi mappare le nostre funzioni di immagine di processo.
‫Vedi, questo è il motivo per cui l'abbiamo inserito nella nostra funzione in modo da poterlo chiamare immagine elaborata.
‫Passerà attraverso tutti questi passaggi qui sui nostri nomi di file.
‫Quindi li importerà, li trasformerà in tempi normalizzati e poi lo trasformerà in un batch di dimensioni
‫batch.
‫Andiamo qui.
‫Batch di dati basso così intensivo.
‫Questo è il flusso di lavoro che utilizzo ogni volta che guardo.
‫aFunzione, quindi se torniamo indietro.
‫Ecco, Bache.
‫Combina elementi consecutivi di questo set di dati in batch.
‫Ci siamo.
‫Quindi, se gli passiamo un intervallo di otto e vogliamo che sia un lotto di tre, dividerà
‫otto in tre lotti.
‫Quindi questo è esattamente il motivo per cui questo in una nuova scheda.
‫Questo è quello che farà qui, tranne per la taglia da 30 a.
‫Meraviglioso.
‫Quindi questo è un dato di prova.
‫Ora vogliamo fare se i dati sono un set di dati valido, non abbiamo bisogno di mescolarlo.
‫Ora, voglio che tu ci pensi di nuovo, perché non dovremmo rimescolarlo?
‫Va bene se non sei del tutto sicuro.
‫Anch'io sono stato sorpreso da questo molte volte, quindi una piccola dichiarazione di progresso qui e poi faremo più o meno lo
‫stesso di questo.
‫Potremmo semplicemente copiarlo, ma ci eserciteremo a scriverlo per avere un set di dati da cui.
‫Decine di sezioni ora, è qui che, poiché il set di convalida ha etichette, posizioneremo un paio di
‫X e T. F. costante Y
‫Quindi solo trasformando nomi di file ed etichette in tempi verbali.
‫E abbiamo qui i percorsi dei file, le etichette.
‫Quindi ora abbiamo uno scarico teso, un set di dati.
‫Di contenitori ed etichette di file di immagine, poiché è un set di dati di convalida, il
‫set di dati di convalida ha etichette e lo trasformeremo in un database uguale
‫a mappa dati, esattamente come sopra, elaborando l'immagine e trasformandola in un lotto di dimensioni batch.
‫OK, ottenere il grilletto felice.
‫Meraviglioso.
‫E poi restituire i dati.
‫E infine, vogliamo se nessuno di questi funziona bene, se i dati validi sono falsi e anche i dati di test sono falsi, ovviamente sarà
‫un batch di addestramento.
‫Quindi andremo a creare badge di dati di allenamento su.
‫E andiamo.
‫Quindi, se si tratta di un set di dati di allenamento, vogliamo mescolarlo.
‫Questa è l'unica differenza qui.
‫Quindi vogliamo trasformare i percorsi dei file e le etichette in tempi.
‫Quindi, proprio come abbiamo fatto con la convalida, potremmo semplicemente copiarlo ora.
‫È probabilmente un modo più efficiente per scrivere questa funzione che esegue la stessa funzionalità.
‫Ma ho cercato di scriverlo in un modo che sia abbastanza comprensibile per quello che sta succedendo.
‫Constant e mentre l'ho detto, potrei aver detto che è abbastanza comprensibile, ma se ti imbatti in
‫qualcosa del genere per la prima volta, fidati di me, quando l'ho fatto, ero confuso.
‫Ma una volta che l'ho esaminato passo dopo passo, ricorda la nostra tecnica per scomporre una
‫funzione, scrivila riga per riga e poi controlla cosa sta facendo in ogni riga.
‫Quindi vogliamo mescolare i nomi dei percorsi e le etichette prima della mappatura.
‫Ne parleremo tra un secondo prima della mappatura.
‫La funzione del processore di immagini è più veloce della riproduzione casuale delle immagini.
‫Scriverò solo il codice così possiamo parlarne, ma date in ordine casuale.
‫Forsys, sottouffici Stancil, quante variabili vogliamo mescolare che vogliamo mescolare l'intero lotto?
‫Beh, stanno succedendo molte cose qui.
‫Bene, tutto ciò che sta dicendo è, ehi, prendi questi dati, che è un insieme di dati dei dati, quindi i nomi
‫dei file e le etichette e poi mescolali e vogliamo mescolare il numero di esempi.
‫Se ne mescolassimo solo cento, prenderemmo i primi cento esempi di X e Y e li mescoleremmo.
‫Ma no, vogliamo mescolarli tutti.
‫E il motivo è, si potrebbe dire, degli editoriali che si mescolano più tardi dopo aver eseguito
‫la funzione mappa, diventa immagine del processo della mappa dei dati.
‫Quindi, se si esegue la riproduzione casuale dopo aver già elaborato l'immagine, è necessario molto più tempo per mescolare un'immagine completa rispetto
‫a un semplice nome di file.
‫Quindi, come ho detto, ricorda, stiamo cercando di ridurre al minimo il tempo tra gli esperimenti, quindi vogliamo cercare di aumentare la velocità
‫in modo da poterlo fare.
‫Mi sono appena accorto che abbiamo commesso un piccolo errore quassù.
‫Nel nostro set di dati di convalida, perché abbiamo.
‫Immagini ed etichette, dobbiamo mappare la funzione, ottenere un'etichetta immagine, che elabori anche la nostra immagine, mentre
‫per il nostro set di dati di prova, poiché non abbiamo etichette, possiamo eseguire direttamente la funzione immagine
‫elaborata.
‫Quindi sostituiamo questa etichetta dell'immagine e sarà lo stesso.
‫Per il nostro set di dati di addestramento, quindi ottieni l'etichetta dell'immagine meravigliosa e potremmo semplicemente scrivere cosa sta facendo con
‫un piccolo commento.
‫Quindi crea l'etichetta dell'immagine Tuttle's.
‫Questo trasforma anche il percorso dell'immagine in un'immagine preelaborata.
‫Quindi se puoi.
‫Mescola i tuoi dati quando sono nel formato più piccolo, a. K. un. nel nostro caso, nomi
‫di file anziché immagini complete e ora, finalmente, vogliamo trasformare i dati di addestramento in batch.
‫Quindi batch di dati è uguale a batch di dati.
‫Quella taglia, e poi usciremo qui, torneremo.
‫Dana Bash.
‫Wolf, è un po' un colosso di una funzione, ma come ho detto, questo ci farà risparmiare un sacco di
‫tempo in seguito e lo vedrai.
‫Ricorda, questo è il tipo di stile di lavoro di sviluppo a cui voglio che inizi a pensare,
‫come farò a riutilizzare alcune funzionalità in seguito?
‫Bene, se lo sono, lo cavalcherò in una funzione.
‫E probabilmente lo sai già perché sei uno sviluppatore molto più intelligente di quello che sono io.
‫Di solito mi spacconevo e scrivevo le cose riga per riga.
‫Ora testiamo la nostra funzione creando batch di dati di addestramento e convalida.
‫Quindi andremo a formare i dati.
‫Useremo la nostra funzione Big Dog appena sopra.
‫Passeremo a X train per i dati di addestramento e ci alleniamo per i dati di convalida e questo è tutto ciò di cui abbiamo
‫bisogno.
‫E poi per i dati validi, possiamo creare batch di dati, valore X, valore Y.
‫Sono dati validi?
‫Uguale a vero.
‫E ora, incrociamo le dita, dovremmo vedere.
‫I nostri messaggi di avanzamento della stampa.
‫Oh, sì, è fantastico.
‫OK, ora diamo un'occhiata ai diversi attributi delle nostre corrispondenze di dati.
‫Quindi, se andiamo ad addestrare i dati, ora sono nel formato di un batch di dati, che è decine rispetto al modo preferito di Flo di
‫elaborare le cose.
‫Ci siamo.
‫Questi sono i nostri dati di allenamento, i primi qui.
‫Cosa sta dicendo?
‫Quindi hai forma nessuno, due, due, quattro, due, due, quattro, tre.
‫Questa è la nostra immagine.
‫Nessuno è per la dimensione del lotto.
‫So che l'abbiamo detto a trentadue, ma rimarrà come nessuno perché la dimensione del lotto, ricorda, è
‫flessibile.
‫Quindi queste sono solo le nostre immagini ora sono in lotti di trentadue e hanno una forma da due a quattro, due,
‫due per tre canali di colore di peso in altezza di tipo float trentadue.
‫E qui abbiamo un paio della nostra etichetta.
‫Quindi queste sono coppie di etichette di immagini sotto forma di tempi e anche le nostre etichette non hanno una forma batch perché la
‫dimensione del batch è flessibile.
‫E hanno una dimensione di centoventi, perché se andiamo, perché zero?
‫Ci sono 120 diversi raid di cani, e poi è lo stesso di nuovo per i dati di convalida.
‫Bellissimo.
‫Quindi è stato piuttosto approfondito.
‫Una volta terminato questo video, che avverrà tra pochi secondi, tornerei indietro e leggerò semplicemente cosa
‫sta succedendo in questa funzione qui.
‫Se non sei del tutto sicuro, cercherei il caricamento e la preelaborazione dei dati, il tutorial
‫delle immagini, lo leggo e poi il modo migliore per imparare è semplicemente scriverlo, abbattere la funzione
‫e provare a eseguire una riga per riga.
‫È così che rompo le cose per me stesso.
‫Ma per come sono i nostri dati al momento, è ancora difficile capire se sei nuovo al concetto
‫di batch.
‫Probabilmente è un concetto molto difficile da afferrare.
‫Va benissimo non sapere cosa sta succedendo in questo momento.
‫Quindi, per aiutarci a capire, invece di far stampare questo gobbledygook, quando cerchiamo di
‫controllare cosa c'è nei nostri batch di dati, scriviamo una funzione che ci aiuti
‫a visualizzare cosa sta succedendo.
‫Quindi è quello che faremo nel prossimo video.