Trading algoritmico con Python - pagina 22

 

Machine Learning con BigQuery sulla piattaforma cloud di Google



Machine Learning con BigQuery sulla piattaforma cloud di Google

Il video illustra i contenuti di un corso incentrato sull'utilizzo di BigQuery per il machine learning. BigQuery è un data warehouse aziendale inizialmente utilizzato internamente a Google e successivamente diventato un servizio cloud. È altamente scalabile e senza server, in grado di accogliere petabyte di dati e fornire risultati di query rapidi. L'istruzione del corso si basa su casi di studio del mondo reale, guidando gli studenti attraverso il processo di creazione di modelli di apprendimento automatico dall'approvvigionamento dei dati alla creazione del modello. Durante il corso, gli studenti utilizzano BigQuery per costruire i propri modelli, richiedendo loro di configurare un account Google Cloud Platform (GCP) specifico per BigQuery.

Il video spiega i principi guida di Google per il ridimensionamento delle risorse hardware, sottolineando la decisione di ridimensionare anziché aumentare. Google riconosce che l'hardware può guastarsi in qualsiasi momento, quindi i progetti dovrebbero tenere conto di potenziali guasti. Inoltre, Google utilizza hardware di base, che è conveniente e consente la flessibilità del fornitore. La scalabilità orizzontale è preferibile rispetto alla scalabilità verticale a causa dell'elevato costo dell'hardware. Google ha sviluppato tecnologie come GFS, MapReduce e Bigtable, che hanno portato a un'architettura hardware scalabile. Colossus ha sostituito GFS e funge da sottosistema distribuito sottostante per le tecnologie di Google, tra cui BigQuery.

Il docente fornisce una panoramica della soluzione di database di Google, Spanner, che è distribuita a livello globale e si affida a Colossus per la gestione delle transazioni distribuite. Il video mostra anche il processo di registrazione e gestione degli account di fatturazione all'interno di Google Cloud Platform. Gli utenti possono creare un account GCP visitando il sito Web della piattaforma, accettando i termini e fornendo le informazioni necessarie. Ai nuovi utenti viene concesso un credito di $ 300 da utilizzare su GCP, che può essere monitorato attraverso la sezione relativa alla fatturazione. Il docente consiglia di impostare avvisi di budget per ricevere notifiche al raggiungimento di determinati obiettivi di fatturazione.

La creazione e lo scopo di BigQuery sono discussi in dettaglio. La crescita esponenziale dei dati di Google ha reso necessario lo sviluppo di BigQuery, che consente query interattive su set di dati di grandi dimensioni. BigQuery è in grado di gestire le query indipendentemente dal fatto che coinvolgano 50 righe o 50 miliardi di righe. Il suo dialetto SQL non standard facilita una breve curva di apprendimento e può parallelizzare l'esecuzione SQL su migliaia di macchine. Sebbene BigQuery memorizzi i dati strutturati, differisce dai database relazionali in quanto supporta i tipi di record nidificati all'interno delle tabelle, consentendo l'archiviazione di strutture nidificate.

Viene spiegata l'architettura di BigQuery, evidenziando il suo approccio alla parallelizzazione. A differenza della maggior parte dei sistemi di database relazionali che eseguono una query per core, BigQuery è progettato per eseguire una singola query su migliaia di core, migliorando notevolmente le prestazioni rispetto agli approcci tradizionali. Il motore Dremel abilita il pipelining delle query, consentendo ad altre query di utilizzare i core disponibili mentre alcune sono in attesa di I/O. BigQuery utilizza un approccio multi-tenancy, consentendo a più clienti di eseguire query contemporaneamente sullo stesso hardware senza influire su altre posizioni. L'interfaccia di BigQuery comprende tre riquadri principali, tra cui la cronologia delle query, le query salvate, la cronologia dei processi e le sezioni delle risorse per organizzare l'accesso a tabelle e viste.

Il video fornisce una spiegazione dettagliata delle schermate e dei pannelli all'interno di Google Cloud Console specifici per BigQuery. Il menu di navigazione mostra le risorse BigQuery, come set di dati e tabelle, mentre la sezione dell'area di lavoro SQL consente agli utenti di creare query, lavorare con le tabelle e visualizzare la cronologia dei loro lavori. Il pannello Explorer elenca i progetti correnti e le relative risorse, mentre il pannello Dettagli fornisce informazioni sulle risorse selezionate e consente modifiche agli schemi delle tabelle, esportazioni di dati e altre funzioni. Viene chiarito che BigQuery non è adatto per le applicazioni OLTP a causa della sua mancanza di supporto per piccoli aggiornamenti frequenti a livello di riga. Pur non essendo un database NoSQL, BigQuery utilizza un dialetto di SQL ed è più simile a un database OLAP, offrendo vantaggi e idoneità simili per molti casi d'uso OLAP.

La definizione di BigQuery di Google viene ulteriormente discussa, sottolineando il suo cloud completamente gestito, altamente scalabile, economico e veloce.

Ecco altri punti discussi nel video:

  1. Formato di archiviazione di BigQuery: BigQuery utilizza un formato di archiviazione a colonne, ottimizzato per le prestazioni delle query. Memorizza i dati in modo compresso e colonnare, consentendo un'elaborazione efficiente di colonne specifiche in una query senza accedere a dati non necessari. Questo formato è particolarmente vantaggioso per i carichi di lavoro analitici che comportano aggregazioni e filtri.

  2. Importazione dei dati: BigQuery supporta vari metodi di importazione dei dati. Può caricare direttamente i dati da fonti come Google Cloud Storage, Fogli Google e Google Cloud Bigtable. Offre inoltre integrazioni con altri strumenti di elaborazione dati, come Dataflow e Dataprep, per le operazioni ETL (Extract, Transform, Load).

  3. Partizionamento e clustering dei dati: per ottimizzare le prestazioni delle query, BigQuery offre funzionalità come il partizionamento e il clustering. Il partizionamento implica la divisione di set di dati di grandi dimensioni in parti più piccole e gestibili in base a una colonna scelta (ad esempio, data). Il clustering organizza ulteriormente i dati all'interno di ciascuna partizione, in base a una o più colonne, per migliorare le prestazioni delle query riducendo la quantità di dati analizzati.

  4. Controlli di accesso ai dati e sicurezza: BigQuery offre solidi controlli di accesso per gestire la sicurezza dei dati. Si integra con Google Cloud Identity and Access Management (IAM), consentendo agli utenti di definire autorizzazioni di accesso granulari a livello di progetto, set di dati e tabella. BigQuery supporta anche la crittografia dei dati inattivi e in transito, garantendo la protezione dei dati sensibili.

  5. Determinazione del prezzo dei dati e ottimizzazione dei costi: il video illustra brevemente il modello di determinazione dei prezzi di BigQuery. Funziona su base pay-as-you-go, addebitando agli utenti in base alla quantità di dati elaborati dalle query. BigQuery offre funzionalità come la memorizzazione nella cache delle query, che possono ridurre i costi evitando l'elaborazione ridondante dei dati. È importante ottimizzare le query ed evitare la scansione dei dati non necessaria per ridurre al minimo i costi.

  6. Machine learning con BigQuery: il corso copre l'utilizzo di BigQuery per le attività di machine learning. BigQuery si integra con i servizi di machine learning di Google Cloud, come AutoML e TensorFlow, consentendo agli utenti di sfruttare la potenza di BigQuery per la preparazione dei dati e l'ingegnerizzazione delle funzionalità prima di addestrare i modelli di machine learning.

  7. Casi d'uso ed esempi: il docente menziona vari casi d'uso del mondo reale in cui BigQuery eccelle, come l'analisi di grandi volumi di dati di log, la conduzione di ricerche di mercato, l'esecuzione della segmentazione dei clienti e l'esecuzione di query analitiche complesse su enormi set di dati.

Nel complesso, il video offre una panoramica delle capacità, dell'architettura e delle funzionalità principali di BigQuery, evidenziando la sua idoneità per l'analisi dei dati su larga scala e le attività di machine learning. Sottolinea i vantaggi dell'utilizzo di una soluzione basata su cloud completamente gestita e altamente scalabile come BigQuery per gestire in modo efficiente grandi quantità di dati.

  • 00:00:00 Il video illustra i contenuti del corso, incentrato sull'utilizzo di BigQuery per il machine learning. BigQuery è un data warehouse aziendale altamente scalabile e serverless originariamente utilizzato internamente a Google prima di diventare un servizio cloud. Può contenere petabyte di dati e restituire i dati in pochi secondi, rendendolo una risorsa preziosa per l'apprendimento automatico supervisionato, in particolare con set di dati di grandi dimensioni. Le istruzioni in questo corso si basano su casi di studio del mondo reale e gli studenti verranno guidati attraverso il processo di costruzione dei loro modelli di apprendimento automatico dall'approvvigionamento dei dati alla modellazione per creare un modello altamente predittivo. Durante il corso, gli studenti sfrutteranno BigQuery per creare i propri modelli, il che significa impostare un account GCP, che sarà specifico solo per BigQuery.

  • 00:05:00 Il video spiega i principi guida alla base del ridimensionamento delle risorse hardware di Google, in particolare la decisione di passare al ridimensionamento anziché all'aumento. I principi guida di Google quando si tratta di hardware è che tutto può fallire in qualsiasi momento e che i progetti dovrebbero tenerne conto. Il secondo principio ha a che fare con l'utilizzo di hardware di base, che è conveniente e facile da ottenere, consentendo così a Google di cambiare fornitore senza incorrere in sanzioni. Infine, l'hardware è costoso, quindi l'obiettivo è ridimensionare anziché aumentare. Google ha progettato tecnologie chiave come GFS, MapReduce e Bigtable per spostarle verso un'architettura hardware scalabile. Inoltre, Colossus ha sostituito GFS ed è il sottosistema distribuito sottostante su cui è costruita gran parte della tecnologia di Google, incluso BigQuery, che si basa su Colossus.

  • 00:10:00 Il docente fornisce una panoramica della soluzione di database di Google, Spanner, che è distribuita a livello globale e utilizza Colossus per gestire le transazioni distribuite, dimostrando anche come registrarsi e gestire gli account di fatturazione all'interno di Google Cloud Platform. Per iniziare a utilizzare i servizi Google Cloud, gli utenti devono creare un account su GCP, che può essere fatto accedendo al browser e digitando "GCP" o "Google Cloud Platform". Dopo aver accettato i termini e aver fornito le informazioni appropriate, ai nuovi utenti viene concesso un credito di $ 300 da utilizzare su GCP, che può essere monitorato attraverso le funzionalità di panoramica e budget nella sezione fatturazione. Il docente incoraggia gli utenti a impostare avvisi di budget per ricevere notifiche quando vengono raggiunti determinati obiettivi di fatturazione, che possono essere raggiunti facendo clic su "crea un budget" e specificando l'importo totale in dollari da spendere, nonché selezionando gli avvisi di progetto e budget essere abilitato.

  • 00:15:00 Vengono discussi la creazione e lo scopo di BigQuery. La crescita esponenziale dei dati di Google ha causato problemi, portando allo sviluppo di uno strumento che ha consentito query interattive su set di dati di grandi dimensioni: BigQuery. Offre la possibilità di operare allo stesso modo indipendentemente dal fatto che si stiano interrogando 50 righe o 50 miliardi di righe. Grazie al suo dialetto non standard basato su SQL, ha una breve curva di apprendimento, integrata con la capacità di parallelizzare l'esecuzione di SQL su migliaia di macchine. I dati strutturati sono ciò che BigQuery può archiviare, ma a differenza di un database relazionale, questi campi possono contenere tipi di record, inclusi i record nidificati all'interno delle tabelle. Queste strutture nidificate sono essenzialmente tabelle pre-unite.

  • 00:20:00 Il video spiega l'architettura di BigQuery e il suo approccio alla parallelizzazione. Mentre la maggior parte dei sistemi di database relazionali può eseguire solo una query per core, BigQuery è progettato per eseguire una singola query su migliaia di core, massimizzando notevolmente le prestazioni rispetto ai tradizionali approcci di query core. Ciò è possibile grazie al motore Dremel, che può eseguire la pipeline delle query, consentendo ad altre query di utilizzare i core disponibili mentre alcune sono in attesa di I/O. Questo approccio multi-tenancy significa che molti clienti possono eseguire query contemporaneamente sullo stesso hardware e BigQuery sfrutta diversi modelli di utilizzo dei dati, quindi l'utilizzo intenso in una località geografica non influisce su altre località. Il video spiega anche i tre riquadri principali dell'interfaccia di BigQuery, con la cronologia delle query specifica per ogni progetto, e salva le query, la cronologia dei lavori e le sezioni delle risorse disponibili per organizzare l'accesso a tabelle e visualizzazioni.

  • 00:25:00 Il relatore spiega le varie schermate e pannelli che compongono la Google Cloud Console specifica per BigQuery. Il menu di navigazione mostra le risorse BigQuery come set di dati e tabelle, mentre la sezione dell'area di lavoro SQL consente agli utenti di creare query, lavorare con le tabelle e visualizzare la cronologia dei loro lavori. Il pannello Esplora visualizza un elenco dei progetti correnti e delle relative risorse, mentre il pannello Dettagli fornisce informazioni sulla risorsa selezionata e consente agli utenti di modificare gli schemi delle tabelle, esportare dati ed eseguire altre funzioni. Il relatore discute anche cosa non è BigQuery, spiegando che non è adatto per le applicazioni OLTP a causa della sua mancanza di supporto per aggiornamenti frequenti e piccoli a livello di riga e che non è un database NoSQL perché utilizza un dialetto di SQL . Al contrario, BigQuery è più simile a un database OLAP e offre molti degli stessi vantaggi, rendendolo appropriato per molti casi d'uso OLAP.

  • 00:30:00 È stata discussa la definizione di BigQuery di Google. È un data warehouse cloud completamente gestito, altamente scalabile, conveniente e veloce per l'analisi con machine learning integrato. Inoltre, BigQuery è costituito da molti altri componenti come Megastore e Colossus. BigQuery ha il suo algoritmo per l'archiviazione dei dati, Column IO, che memorizza i dati in colonne, migliorando le prestazioni e addebitando agli utenti in base ai dati restituiti. La rete di Google è veloce grazie alla loro elevata attenzione ai dettagli; pertanto, gran parte della loro architettura di rete rimane un mistero. Infine, BigQuery ha rilasciato il supporto per SQL standard con il lancio di BigQuery 2.0, rinominando BigQuery SQL in Legacy SQL e dialetto SQL preferito per query e dati archiviati in BigQuery.

  • 00:35:00 Il video illustra il processo di salvataggio e apertura delle query in BigQuery, nonché la creazione e l'esecuzione di query sulle viste. Il narratore spiega che una vista è una tabella virtuale e dimostra come creare e salvare una vista in un nuovo set di dati. Il video illustra anche le diverse opzioni all'interno dell'editor di query, come la formattazione della query e l'accesso alle impostazioni della query. Inoltre, il video copre l'esplosione delle carriere nell'apprendimento automatico e nella scienza dei dati e discute le differenze tra ruoli come analista di dati e scienziato di dati. Infine, il narratore spiega che il focus del corso sarà sull'apprendimento automatico supervisionato utilizzando Python, che è considerato il gold standard nel campo.

  • 00:40:00 Vengono discussi i diversi ruoli nel campo dell'apprendimento automatico, tra cui lo scienziato dei dati, l'ingegnere dell'apprendimento automatico e l'ingegnere dei dati. L'attenzione si concentra sull'apprendimento automatico applicato, che è l'applicazione nel mondo reale dei principi dell'apprendimento automatico per risolvere problemi, al contrario di applicazioni puramente accademiche o di ricerca. Viene anche sottolineata l'importanza dei set di dati strutturati, in particolare quelli che si trovano nei database relazionali, poiché i modelli tradizionali come i gradient booster hanno dimostrato di eccellere nella modellazione di set di dati altamente strutturati e hanno vinto molte competizioni rispetto alle reti neurali artificiali.

  • 00:45:00 Viene trattato il processo di apprendimento automatico, che è altamente orientato al processo. L'articolo spiega come gli ingegneri di machine learning devono seguire gli stessi passaggi fondamentali quando hanno un problema da risolvere. Il primo passo è esaminare i dati, seguito dall'approvvigionamento dei dati. Poiché la maggior parte dell'apprendimento automatico applicato è supervisionato, i dati devono prima essere puliti (o "litigati"), il che comporta il massaggio dei dati in un formato supportato numericamente. Ciò richiede che l'ingegnere di machine learning dedichi la maggior parte del proprio tempo alla gestione dei dati. Una volta che i dati sono stati ripuliti, inizia la fase di modellazione. In questa fase, devono essere sviluppati modelli o algoritmi, che apprendono modelli dal set di dati ripulito. L'obiettivo dell'apprendimento automatico è essere in grado di fare previsioni estremamente accurate rispetto a dati aggiornati. Una volta che i modelli sono stati messi a punto e testati su nuovi dati, vengono messi in produzione per essere utilizzati dai consumatori.

  • 00:50:00 Il video illustra il processo di installazione della versione 3.7 di Python utilizzando la distribuzione Anaconda su un Mac. La distribuzione Anaconda è disponibile sia per Windows che per Mac e ha un programma di installazione grafico. Dopo aver scaricato il programma di installazione e inserito la password, si consiglia il tipo di installazione predefinito e il processo di installazione potrebbe richiedere un paio di minuti. Una volta completata l'installazione, è possibile avviare Anaconda Navigator e aprire un nuovo notebook Python 3 per iniziare la codifica.

  • 00:55:00 L'istruttore spiega come navigare nell'IDE Jupyter Notebook, utilizzato per il machine learning con BigQuery sulla piattaforma cloud di Google. Il primo passaggio consiste nell'individuare il notebook sul laptop digitando CMD e accedendo al prompt dei comandi di Anaconda. Da lì, digitando "Jupyter Notebook" verrà caricato il motore Python sul computer locale. Una volta caricato, viene spiegata la navigazione nel Notebook, incluso come chiudere la pagina

  • 01:00:00 Viene presentata una guida dettagliata sull'utilizzo di Jupyter Notebook, a partire dalla navigazione su "Nuovo notebook" e dalla selezione di Python 3. Il tutorial mostra anche come importare librerie, creare, eseguire e rinominare le celle, modificare ordine delle celle, salvataggio automatico di un taccuino, inserimento, copia, taglia, incolla, esegui tutto e riavvia il kernel e usa Markdown per annotare un taccuino. Inoltre, la semplicità del notebook è enfatizzata e considerata sufficiente per lavorare con la pipeline di machine learning.

  • 01:05:00 Il video illustra le basi dell'utilizzo dei dati in BigQuery, inclusi set di dati e tabelle. Spiega quanto sia importante per gli ingegneri del machine learning essere in grado di creare, caricare e gestire i dati in BigQuery, poiché la scalabilità può essere un grosso problema durante la creazione di modelli del mondo reale. Con BigQuery ML, richiede solo la conoscenza di SQL, rendendolo semplice e accessibile per gli esperti di SQL, e offre ai professionisti esperti di machine learning la possibilità di creare i propri modelli su qualsiasi scala. Inoltre, il video copre le principali librerie di apprendimento automatico utilizzate nell'apprendimento automatico applicato in Python come Pandas, che è una libreria per il wrangling e la manipolazione dei dati, Numpy, che è un pacchetto fondamentale per il calcolo scientifico con Python, Matplotlib per la creazione di grafici 2D, e Scikit-Learn, che è una libreria utilizzata per costruire modelli tradizionali.

  • 01:10:00 Il video tutorial esplora le basi del data wrangling e della manipolazione dei dati per l'apprendimento automatico utilizzando due librerie principali: pandas e numpy. La libreria dei panda viene utilizzata per caricare un famoso set di dati giocattolo per l'apprendimento automatico chiamato set di dati Titanic e creare un alias. Viene creato un array per consentire la comprensione del modello e vengono identificati gli attributi necessari per il modello come classe di passeggeri, sesso, età e sopravvissuti. La variabile obiettivo, che deve essere prevista, è l'attributo sopravvissuto, che può essere 1 o 0; è sopravvissuto significa 1 mentre non è sopravvissuto è 0. Il passo successivo è convertire i valori negli attributi in numeri usando il codice Python, che può essere compreso dalla macchina. Tutte le osservazioni con valori null o nand vengono rimosse e l'attributo sopravvissuto viene eliminato dall'asse x per impedire al modello di imbrogliare. Infine, il set di dati è suddiviso in sezioni di test e formazione utilizzando la libreria generica per l'apprendimento automatico chiamata scikit-learn.

  • 01:15:00 Il video discute l'uso dell'apprendimento automatico con il titanico set di dati e come negli scenari del mondo reale, la maggior parte dei modelli proviene da database relazionali. Viene introdotta l'interfaccia SQL Server Management Studio poiché viene comunemente utilizzata per gestire i database del server SQL. Viene presentato uno scenario ipotetico in cui l'attività consiste nel creare un set di dati che può essere utilizzato per prevedere le vendite future. Il video spiega come creare una query e unire i tavoli per creare una cronologia degli ordini per le celebrità e come salvare queste informazioni come visualizzazione in modo che possano essere facilmente interrogate ed esportate come file CSV da condividere con il resto del squadra.

  • 01:20:00 Il video illustra il processo di esportazione dei dati in un file CSV da un database cloud utilizzando SQL Server. Spiegano che l'analisi esplorativa dei dati, nota anche come analisi dei dati, svolge un ruolo cruciale nell'apprendimento automatico e introducono le librerie Matplotlib e Seaborn per la visualizzazione dei dati. Il video prosegue mostrando esempi di come utilizzare queste librerie per esplorare il set di dati del Titanic, calcolare le percentuali dei valori mancanti e creare istogrammi e grafici a barre. Notano che Seaborn è spesso preferito per la sua semplicità.

  • 01:25:00 Il relatore esplora i diversi tipi di modelli di machine learning e le loro applicazioni. I modelli di deep learning, pur eccellendo nel riconoscimento di immagini e parlato, nella maggior parte dei casi potrebbero non essere la soluzione migliore per l'apprendimento automatico supervisionato, che si basa su set di dati altamente strutturati. I modelli tradizionali, come i gradient booster, sono più accurati, meno computazionalmente intensivi, più facili da spiegare e possono accelerare i problemi di classificazione e regressione. L'oratore guida quindi il pubblico attraverso il processo di creazione di un modello tradizionale utilizzando Python, Panda per il data wrangling e XGBoost, una libreria di potenziamento del gradiente che ha vinto molte competizioni di modellazione competitiva. Il modello ha ottenuto un punteggio dell'83% sul set di dati e il relatore spiega come salvare il modello utilizzando la libreria Pickle.

  • 01:30:00 Il video spiega cos'è la classificazione e come separa le osservazioni in gruppi in base a caratteristiche come voti, punteggi dei test ed esperienza. Copre anche la classificazione binaria e il modo in cui implica la classificazione dei dati in due gruppi con un output di sì o no. Il video introduce quindi le reti neurali artificiali e i modelli di deep learning, definendo la regressione lineare come previsione del valore sulla base di una linea e spiegando come viene utilizzata nelle previsioni per prevedere punti dati casuali come diagnosi di cancro o prezzi delle azioni. La dimostrazione sulla regressione lineare in Python utilizza la libreria pandas per massaggiare i dati, mentre la libreria numpy contiene i dati in un contenitore di array ottimizzato e la libreria matplotlib viene utilizzata per la visualizzazione dei dati. Il video mostra come tracciare un grafico per trovare la relazione lineare positiva tra le ore studiate e i punteggi ottenuti, e infine importa il modello di classificatore utilizzato per la regressione lineare nello script Python.

  • 01:35:00 Il relatore ripercorre i fondamenti della classificazione come tecnica di apprendimento automatico supervisionato e fornisce una definizione semplificata che separa le osservazioni in gruppi in base alle loro caratteristiche. L'esempio fornito è il rilevamento dello spam, in cui le e-mail sono divise in due categorie: spam e non spam. Un esempio più complesso è il progetto di apprendimento automatico Titanic, che è un problema di classificazione binaria in cui l'output del modello è uno per sopravvissuto o uno zero per non sopravvissuto. La parte successiva della sezione illustra come costruire un modello di classificazione con elevata precisione, inclusa l'importazione di librerie, l'utilizzo del set di dati iris, la conversione di valori testuali in numeri utilizzando la codifica dell'etichetta, l'addestramento di un modello di classificatore forestale casuale e il test del modello completato rispetto al dati di addestramento per ottenere una precisione del 97%.

  • 01:40:00 Vengono discusse le basi per lavorare con i dati utilizzando BigQuery, inclusi set di dati e tabelle. In qualità di ingegnere di machine learning, è fondamentale essere in grado di creare, caricare e gestire i dati in BigQuery. La sezione esamina la gestione dei dati in BigQuery, incluso il modo in cui può gestire petabyte di dati e i vantaggi dell'utilizzo del taccuino Jupyter cloud di Google chiamato Cloud Datalab. È coperto anche BigQuery ML, che non richiede conoscenze di programmazione diverse da SQL, rendendo più semplice per i professionisti dei dati la creazione di modelli di machine learning. Infine, la sezione copre le sfumature dei set di dati e delle tabelle, incluso come creare un set di dati e aggiungervi tabelle in BigQuery.

  • 01:45:00 Il relatore discute le diverse opzioni di origine durante la creazione di tabelle in BigQuery, tra cui una tabella vuota, origini dati esterne e il caricamento di dati da un'origine leggibile come CSV, JSON, Arvo, Parquet e ORC. Mentre la maggior parte degli ingegneri di machine learning preferisce utilizzare i file CSV, Arvo è più veloce da caricare e più facile da analizzare senza problemi di codifica, mentre Parquet e ORC sono ampiamente utilizzati nell'ecosistema Apache Hadoop. Il relatore introduce quindi il Cloud Data Lab di Google, che è una macchina virtuale (VM) ospitata su GCP che contiene un'interfaccia simile a Jupyter Notebook chiamata Datalab. Gli utenti possono prendere il codice da un Jupyter Notebook in locale e utilizzarlo su GCP e, durante la creazione di una nuova istanza Datalab, gli utenti scelgono una regione di archiviazione e potrebbe essere richiesto di creare una chiave SSH.

  • 01:50:00 L'istruttore mostra come creare una connessione a BigQuery e importare il titanic dataset controverso in un'istanza di cloud datalab. Importando BigQuery e creando una connessione ad esso, gli utenti possono scrivere codice SQL per interrogare i dati. Con l'aiuto di librerie preconfezionate come i panda, il classificatore dell'albero decisionale e la suddivisione del test di addestramento, gli utenti possono segmentare i propri dati, adattarli ai propri dati di addestramento e assegnare un punteggio al proprio modello. Inoltre, gli utenti possono apportare modifiche alla loro query direttamente all'interno della cella ed eseguirla per creare un nuovo dataframe panda che ospita il set di dati dalla query. Infine, l'istruttore mostra come caricare ed eseguire query su un altro set di dati, il set di dati iris, nell'istanza cloud datalab utilizzando BigQuery.

  • 01:55:00 Il presentatore mostra come importare i dati dalla libreria BigQuery in un notebook Jupyter sulla piattaforma cloud di Google. Il set di dati dell'iride viene importato e suddiviso in set di addestramento e test e per l'addestramento viene utilizzato un classificatore foresta casuale. I valori previsti vengono emessi per il modello. Il presentatore mostra anche come aggiornare le risorse su un'istanza di cloud data lab accedendovi dalla home page di Google e facendo clic su "modifica".

  • 02:00:00 Il relatore spiega BigQuery ML, uno strumento che consente ai professionisti di SQL di creare modelli di machine learning su larga scala utilizzando competenze e strumenti SQL esistenti, democratizzando così il machine learning. BigQuery ML attualmente supporta tre tipi di modelli: regressione lineare, regressione logistica binaria e regressione logistica multiclasse. Il relatore spiega anche come creare un modello di regressione logistica binaria in BigQuery utilizzando il linguaggio SQL. La creazione del modello comporta la definizione del modello, la specifica delle opzioni e il passaggio della variabile di destinazione mediante istruzioni SQL. Il modello può essere valutato e le metriche di accuratezza presentate anche tramite SQL. Infine, il relatore spiega la fase di previsione in cui al modello vengono passati nuovi dati che non ha mai visto prima.

  • 02:05:00 Il relatore spiega come utilizzare BigQuery ML per creare un modello di classificazione binaria e valutarlo. I dati vengono caricati da un file CSV in BigQuery e al modello vengono passate tutte le colonne tranne la variabile di destinazione. Una volta completata la valutazione, il modello effettuerà una previsione per ciascun membro della famiglia, con la prima colonna nell'output che prevede la sopravvivenza (una per i sopravvissuti e zero per i non sopravvissuti). L'oratore passa quindi all'installazione dello strumento da riga di comando chiamato gsutil, che è uno strumento da riga di comando utilizzato per lavorare con lo spazio di archiviazione di Google su GCP. Lo strumento offre tre livelli di archiviazione con accessibilità e prezzi diversi.

  • 02:10:00 Il relatore mostra come caricare e gestire i file in Google Cloud Storage utilizzando gsutil. Innanzitutto, l'utente deve impostare il progetto in modo che funzioni all'interno e creare un bucket utilizzando gsutil mb, tenendo presente che ogni nome di bucket deve essere univoco. Quindi, il relatore spiega come copiare un file in un bucket e garantirne l'accesso pubblico, utilizzando gli elenchi di controllo degli accessi (ACL) per controllare chi può leggere e scrivere i dati. Il relatore mostra anche come scaricare e copiare i file in un altro bucket utilizzando gsutil e utilizzando l'opzione -m per velocizzare il processo di caricamento. Il relatore conclude mostrando come esportare i dati da un database relazionale in due file e caricarli su GCP utilizzando Cloud Storage.

  • 02:15:00 Il relatore mostra come caricare due set di dati su BigQuery di Google Cloud Platform, unirli utilizzando SQL e creare una vista per creare modelli di machine learning. Dopo aver esportato i dati da SQL Server e averli salvati come file CSV, il relatore li carica nel bucket di archiviazione cloud di GCP, li scarica in BigQuery e li combina utilizzando una semplice istruzione di join. Infine, il relatore mostra come creare una vista di questo set di dati più ampio da utilizzare nei modelli di machine learning.

  • 02:20:00 Il relatore illustra il processo di creazione di una tabella in Google BigQuery su Cloud Platform per il set di dati del progetto Titanic. Caricano il set di dati dalla loro fonte locale, rilevano automaticamente lo schema dal file CSV e saltano la prima riga poiché contiene informazioni di intestazione. Dopo aver creato correttamente la tabella, la interrogano e confermano che i dati e le intestazioni vengono visualizzati correttamente. Il relatore osserva che il set di dati è ora pronto per le fasi successive del progetto.
Machine Learning with BigQuery on Google's Cloud Platform
Machine Learning with BigQuery on Google's Cloud Platform
  • 2022.04.25
  • www.youtube.com
A complete look at BigQuery for machine learning.LogikBot - Affordable, Real-World and Comprehensive - https://www.logikbot.comThere are two core paths on Lo...
 

Visualizzazione dei dati con matplotlib in 1 ora



Visualizzazione dei dati con matplotlib in 1 ora

In questo video, l'istruttore introduce l'importanza della visualizzazione dei dati nell'apprendimento automatico e spiega come può aiutare a dare un senso a grandi quantità di dati raccolti. Le due principali librerie Python per la visualizzazione dei dati, Matplotlib e Seaborn, sono trattate nel corso.

L'istruttore afferma che il corso è progettato principalmente per ingegneri dell'apprendimento automatico, ingegneri dei dati e scienziati dei dati che desiderano imparare Python. Per illustrare l'utilizzo di Matplotlib, viene fornito un semplice esempio di tracciamento di una curva. La filosofia di Matplotlib ruota attorno allo sfruttamento del linguaggio esistente, Python, che è diventato lo standard per la creazione di modelli di apprendimento automatico e la gestione dei dati. Combinando Matplotlib con altri pacchetti Python, gli utenti possono sfruttare i numerosi pacchetti disponibili per varie attività.

Il video sottolinea l'importanza di utilizzare il pacchetto NumPy insieme a Matplotlib per il calcolo scientifico. Sebbene Matplotlib possa funzionare senza NumPy, l'utilizzo di NumPy può far risparmiare molto tempo e fatica. NumPy fornisce un potente oggetto array multidimensionale e funzioni per manipolarlo. Un esempio è mostrato nel video, dove una curva con 100 punti viene generata utilizzando NumPy per calcolare le coordinate x e y. Questo approccio si rivela molto più veloce rispetto all'esecuzione dell'operazione utilizzando Python puro. Inoltre, il video copre la tracciatura di due curve sullo stesso grafico per il confronto, la tracciatura dei dati da un file estraendo e organizzando i dati utilizzando il codice Python e la tracciatura dei punti anziché degli elementi in modo lineare.

Il tutorial approfondisce la creazione di diversi tipi di grafici a barre utilizzando la libreria Matplotlib. Viene introdotta la funzione dedicata per la creazione di grafici a barre, "bar", che prende la coordinata x per ogni barra e l'altezza di ogni barra come parametri di input. Regolando i parametri opzionali, gli utenti possono creare vari effetti e persino generare barre orizzontali utilizzando la funzione "barh". Il tutorial copre anche il tracciamento di più grafici a barre sullo stesso grafico e la creazione di barre in pila utilizzando un parametro speciale nella funzione "barra". Inoltre, il video accenna brevemente alla creazione di grafici a torta utilizzando la funzione "torta".

Varie funzioni utilizzate nella visualizzazione dei dati con Matplotlib sono spiegate nel tutorial. La prima funzione trattata sono gli istogrammi, che sono rappresentazioni grafiche delle distribuzioni di probabilità. Vengono discussi la funzione "hist" ei suoi parametri, che consentono agli utenti di tracciare facilmente i dati come istogrammi. La seconda funzione trattata sono i box plot, che facilitano il confronto delle distribuzioni di valore. Il video spiega i componenti di un box plot, inclusi quartili, mediana, media e quantità statistiche di un set di dati, e dimostra come generarli utilizzando la funzione "boxplot". Infine, l'esercitazione copre la modifica dei grafici utilizzando colori e stili diversi, come la definizione dei colori utilizzando terzine, quartine o nomi di colori HTML, nonché l'impostazione del colore di un grafico della curva.

Il video continua spiegando come aggiungere colore a grafici a dispersione, grafici a barre e grafici a torta utilizzando il parametro "color". Questo parametro consente agli utenti di controllare i singoli colori dei punti o modificare il colore comune per tutti i punti. Il video tocca anche l'importazione di librerie come moduli, l'utilizzo di alias per semplificare la codifica e il chiarimento della rappresentazione delle variabili. Si sottolinea che quasi tutto in Matplotlib e Python coinvolge funzioni, come la funzione "pi" e la funzione "show".

Successivamente, l'esercitazione illustra le combinazioni di colori e i modelli di linea personalizzati durante la creazione di box plot, marcatori e forme di linea. Dimostra la creazione di marcatori personalizzati utilizzando forme predefinite e la definizione di marcatori personalizzati utilizzando simboli di testo matematici. Inoltre, spiega come modificare facilmente le impostazioni predefinite di Matplotlib utilizzando l'oggetto di configurazione centralizzato, consentendo agli utenti di adattare lo stile visivo, come avere uno sfondo nero e annotazioni bianche, a diversi contesti di utilizzo.

Il presentatore spiega come salvare un grafico in un file utilizzando la funzione "savefig" in Matplotlib. Riguardano anche l'aggiunta di annotazioni a un grafico, tra cui un titolo, etichette per gli assi x e y, un riquadro delimitato e frecce. Il video mostra il processo di aggiunta di queste annotazioni per migliorare la chiarezza visiva e la comprensione del grafico. Inoltre, mostra come controllare manualmente la spaziatura dei tick in Matplotlib per regolazioni precise. Il video evidenzia le varie funzioni disponibili in Matplotlib per annotare i grafici e renderli più autoesplicativi per i lettori.

Andando avanti, l'istruttore discute la visualizzazione dei dati con Matplotlib e introduce Seaborn, un'interfaccia di alto livello per Matplotlib. Seaborn fornisce parametri e funzionalità diversi rispetto a Matplotlib. L'istruttore mostra come creare visualizzazioni utilizzando il set di dati e le mappe dei colori integrati di Seaborn. Il video si conclude presentando esempi di creazione di un grafico fattoriale e utilizzo di mappe di colori per tracciare i dati. Attraverso questi esempi, gli spettatori ottengono informazioni sull'utilizzo di diverse funzioni e strumenti in Matplotlib e Seaborn per migliorare le proprie capacità di visualizzazione dei dati.

Il video spiega come ridimensionare i grafici utilizzando la funzione "set_context" di Seaborn. Questa funzione consente agli utenti di controllare gli elementi del grafico, come le dimensioni, in base al contesto in cui verrà visualizzato il grafico. Quindi chiarisce la distinzione tra i due tipi di funzioni di Seaborn: funzioni a livello di assi e funzioni a livello di figura. Le funzioni a livello di assi operano a livello di asse e restituiscono l'oggetto assi, mentre le funzioni a livello di figura creano grafici che includono assi organizzati in modo significativo. Infine, il video fornisce indicazioni sull'impostazione degli assi per un box plot utilizzando l'oggetto Matplotlib axis subplots.

Questo tutorial video completo copre una vasta gamma di argomenti relativi alla visualizzazione dei dati con Matplotlib e Seaborn. Inizia introducendo l'importanza della visualizzazione dei dati nell'apprendimento automatico e l'uso di Matplotlib come potente libreria. Dimostra come tracciare curve, creare grafici a barre, generare istogrammi e box plot e personalizzare colori, indicatori e stili di linea. Il tutorial copre anche il salvataggio di grafici, l'aggiunta di annotazioni e la manipolazione della spaziatura dei tick. Inoltre, introduce Seaborn come uno strumento di visualizzazione alternativo con il proprio set di caratteristiche e funzionalità. Seguendo questo tutorial, i visualizzatori possono migliorare le proprie capacità di visualizzazione dei dati e comunicare efficacemente i propri risultati utilizzando queste potenti librerie Python.

  • 00:00:00 L'istruttore introduce la visualizzazione dei dati e la sua importanza nell'apprendimento automatico. Sottolinea la necessità di dare un senso alle grandi quantità di dati raccolti a livello globale e come la visualizzazione dei dati può essere utile per raggiungere questo obiettivo. In questo corso vengono trattate le due librerie più utilizzate per la visualizzazione dei dati in Python, Matplotlib e Seaborn. L'istruttore spiega che questo corso è rivolto principalmente a ingegneri dell'apprendimento automatico, ingegneri dei dati e scienziati dei dati che desiderano imparare Python e fornisce un semplice esempio di tracciamento di una curva utilizzando Matplotlib. La filosofia alla base di Matplotlib è quella di sfruttare il linguaggio esistente, Python, che è diventato lo standard di riferimento per la creazione di modelli di apprendimento automatico e la gestione dei dati. La combinazione di Matplotlib con altri pacchetti implica l'utilizzo del codice Python poiché esistono numerosi pacchetti per Python per varie attività.

  • 00:05:00 Il video spiega l'importanza dell'utilizzo del pacchetto NumPy con Matplotlib per il calcolo scientifico. Sebbene Matplotlib possa funzionare senza NumPy, l'utilizzo di NumPy può far risparmiare molto tempo e fatica fornendo un potente oggetto array multidimensionale e funzioni per manipolarlo. Il video include un esempio di generazione di una curva con 100 punti utilizzando NumPy per calcolare le coordinate x e y, che è molto più veloce rispetto all'esecuzione dell'operazione utilizzando Python puro. Inoltre, il video copre la tracciatura di due curve su un grafico per il confronto, la tracciatura dei dati da un file utilizzando il codice Python per estrarre e organizzare i dati e la tracciatura dei punti anziché degli elementi in modo lineare.

  • 00:10:00 Il video tutorial illustra come creare diversi tipi di grafici a barre utilizzando la libreria Matplotlib. La funzione barra è la funzione dedicata per la creazione di grafici a barre e prende la coordinata x per ogni barra e l'altezza di ogni barra come parametri di input. Regolando i parametri opzionali, possiamo creare diversi effetti e persino creare barre orizzontali utilizzando la funzione bar h. Il tutorial illustra anche come tracciare più grafici a barre sullo stesso grafico e come tracciare barre in pila utilizzando un parametro speciale nella funzione barra. Infine, il tutorial tocca la creazione di grafici a torta utilizzando la funzione pie.

  • 00:15:00 Il video tutorial copre varie funzioni utilizzate nella visualizzazione dei dati con matplotlib. La prima funzione trattata sono gli istogrammi, una rappresentazione grafica di una distribuzione di probabilità. Per generare istogrammi, il video spiega la funzione hist e i suoi parametri che consentono agli utenti di tracciare facilmente i dati. La seconda funzione trattata sono i box plot, che consentono un facile confronto delle distribuzioni di valori. Il video spiega l'anatomia di un box plot, compresi i quartili, la mediana, la media e le quantità statistiche di un set di dati e come generarli utilizzando la funzione box plot. Infine, il tutorial copre l'alterazione dei grafici utilizzando diversi colori e stili, inclusa la definizione dei colori utilizzando terzine, quartine, nomi di colori html e l'impostazione del colore di un grafico della curva.

  • 00:20:00 Il video illustra come aggiungere colore a grafici a dispersione, grafici a barre e grafici a torta utilizzando il parametro "color" per controllare i singoli colori dei punti o per modificare il colore comune per tutti i punti. Il video illustra anche come importare le librerie come moduli, utilizzare gli alias per semplificare la codifica e quali variabili rappresentano. Inoltre, si ricorda agli spettatori che quasi tutto in matplotlib e Python coinvolge funzioni, come la funzione "pi" e la funzione "show".

  • 00:25:00 Impariamo schemi di colori personalizzati e modelli di linee durante la creazione di box plot, marcatori e forme di linee. Impariamo anche come creare i nostri marcatori utilizzando forme predefinite e come definire i nostri marcatori utilizzando simboli di testo matematici. Inoltre, impariamo come modificare facilmente le impostazioni predefinite di Matplotlib utilizzando l'oggetto di configurazione centralizzato, rendendo possibile avere uno sfondo nero e annotazioni bianche per diversi contesti di utilizzo.

  • 00:30:00 Il presentatore spiega come salvare un grafico in un file utilizzando la funzione "savefig" in Matplotlib. Descrivono anche come aggiungere annotazioni a un grafico, inclusi un titolo, etichette per gli assi x e y, un riquadro delimitato e frecce. Inoltre, dimostrano come controllare manualmente la spaziatura dei tick in Matplotlib. Il video evidenzia le varie funzioni disponibili in Matplotlib per annotare i grafici e renderli più autoesplicativi per i lettori.

  • 00:35:00 L'istruttore discute la visualizzazione dei dati con matplotlib e mostra come aggiungere localizzatori di assi e griglie ai grafici. Il video passa quindi all'introduzione di Seaborn, un'interfaccia di alto livello per matplotlib. L'istruttore spiega come seaborn fornisce parametri diversi rispetto a matplotlib e mostra come creare visualizzazioni utilizzando il set di dati integrato e le mappe dei colori di Seaborn. Il video si conclude con esempi di creazione di un grafico fattoriale e utilizzo di mappe di colori per tracciare i dati. Nel complesso, gli spettatori possono imparare a utilizzare varie funzioni e strumenti in matplotlib e seaborn per migliorare le proprie capacità di visualizzazione dei dati.

  • 00:40:00 Il video spiega come ridimensionare i grafici usando la funzione set context di Seaborn. La funzione set context consente agli utenti di controllare gli elementi della trama, come le dimensioni, a seconda del contesto in cui verrà visualizzata la trama. Il video spiega quindi la differenza tra i due tipi di funzioni di Seaborn: funzioni a livello di assi e funzioni a livello di figura. Le funzioni a livello di assi operano a livello di asse e restituiscono l'oggetto assi, mentre le funzioni a livello di figura creano grafici che includono assi organizzati in modo significativo. Infine, il video illustra come impostare gli assi per un box plot utilizzando l'oggetto subplots dell'asse matplotlib.
Data Visualization with matplotlib in 1 Hour
Data Visualization with matplotlib in 1 Hour
  • 2022.04.29
  • www.youtube.com
In this FREE course let's learn the basics of creating data visualizations with the grandfather of visualization libraries in Python, matplotlib.LogikBot - A...
 

Esercitazione sul deep learning con Python, TensorFlow e Keras



Esercitazione sul deep learning con Python, TensorFlow e Keras

Saluti a tutti e benvenuti a un attesissimo aggiornamento su deep learning e Python con TensorFlow, oltre a un nuovo tutorial di Chaos. Sono passati più di due anni dall'ultima volta che ho coperto l'apprendimento profondo di base in Python e durante questo periodo ci sono stati progressi significativi. Entrare nel deep learning e lavorare con modelli di deep learning è diventato molto più semplice e accessibile.

Se sei interessato ad approfondire il codice TensorFlow di livello inferiore e i dettagli intricati, puoi comunque fare riferimento al video precedente. Tuttavia, se stai mirando a iniziare con il deep learning, non è più necessario farlo perché ora disponiamo di API di alto livello intuitive come Chaos che si trovano sopra TensorFlow. Queste API rendono il deep learning incredibilmente semplice, consentendo a chiunque, anche senza una precedente conoscenza del deep learning, di seguirlo.

In questo tutorial, faremo una rapida panoramica delle reti neurali. Per iniziare, comprendiamo i componenti principali di una rete neurale. L'obiettivo principale di qualsiasi modello di apprendimento automatico, comprese le reti neurali, è mappare gli input agli output. Ad esempio, dati gli input X1, X2 e X3, miriamo a determinare se l'output corrisponde a un cane oa un gatto. In questo caso, lo strato di output è costituito da due neuroni che rappresentano la possibilità di essere un cane o un gatto.

Per ottenere questa mappatura, possiamo utilizzare un singolo strato nascosto, in cui ogni input, X1, X2 e X3, è connesso ai neuroni nello strato nascosto. A ciascuna di queste connessioni è associato un peso univoco. Tuttavia, se ci limitiamo a un singolo livello nascosto, le relazioni tra gli input e l'output sarebbero lineari. Per catturare le relazioni non lineari, che sono comuni nei problemi complessi, abbiamo bisogno di due o più strati nascosti. Una rete neurale con due o più livelli nascosti viene spesso definita rete neurale profonda.

Aggiungiamo un altro livello nascosto, collegandolo completamente al livello precedente. Ogni connessione tra gli strati ha il suo peso unico. In definitiva, l'output viene derivato dal livello finale, in cui ogni connessione al livello di output possiede un peso univoco. A livello di singolo neurone, il neurone riceve input, che potrebbero essere i valori del livello di input (X1, X2, X3) o input da altri neuroni. Questi input vengono sommati, considerando i pesi associati. Inoltre, viene applicata una funzione di attivazione per simulare o meno l'attivazione del neurone. Le funzioni di attivazione comuni includono la funzione gradino o la funzione sigmoide, che restituisce valori compresi tra 0 e 1. Nella nostra rete neurale, il livello di output utilizza una funzione di attivazione sigmoidea, assegnando probabilità a ciascuna classe (cane o gatto). La funzione Arg max viene quindi utilizzata per determinare la classe prevista in base alla probabilità più alta.

Ora che abbiamo una conoscenza di base delle reti neurali, procediamo a crearne una utilizzando TensorFlow. Innanzitutto, assicurati di aver installato TensorFlow eseguendo il comando "pip install --upgrade tensorflow". Puoi importare TensorFlow come "tf" e verificare la versione corrente utilizzando "tf.version". Per questo tutorial, si consiglia Python 3.6 o versioni successive, anche se TensorFlow dovrebbe supportare Python 3.7 e versioni successive in futuro.

Successivamente, importeremo un set di dati con cui lavorare. Utilizzeremo il set di dati MNIST, che consiste in immagini 28x28 di cifre scritte a mano che vanno da 0 a 9. Queste immagini verranno inserite nella rete neurale e la rete predirà la cifra corrispondente. Suddivideremo il set di dati in variabili di addestramento e test: X_train, Y_train, X_test e Y_test.

Per garantire prestazioni migliori, normalizzeremo i dati. I valori dei pixel delle immagini attualmente vanno da 0 a 255, quindi li ridimensioneremo tra 0 e 1 utilizzando la funzione TF.keras.utils.normalize.

Per creare il modello, utilizzeremo l'API Chaos di alto livello, che semplifica il processo di creazione e addestramento delle reti neurali in TensorFlow. Chaos fornisce un modello sequenziale chiamato Sequential che ci consente di impilare i livelli uno dopo l'altro.

Ecco un esempio di come creare un modello di rete neurale utilizzando Chaos:

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Flatten, Dense

# Create a sequential model
model = Sequential()

# Add a flatten layer to convert the input into a 1D array
model.add(Flatten(input_shape=(28, 28)))

# Add a dense layer with 128 neurons and ReLU activation
model.add(Dense(128, activation='relu'))

# Add another dense layer with 10 neurons for the output and softmax activation
model.add(Dense(10, activation='softmax'))

# Compile the model
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])


Nel codice sopra, importiamo i moduli necessari da TensorFlow e Chaos. Creiamo un modello sequenziale e vi aggiungiamo strati usando il metodo add. Il primo livello è un livello Appiattisci che converte l'input 2D (immagini 28x28) in un array 1D. Aggiungiamo quindi uno strato denso con 128 neuroni e attivazione ReLU. Infine, aggiungiamo uno strato di output con 10 neuroni (corrispondenti alle 10 cifre) e attivazione softmax.

Dopo aver definito il modello, lo compiliamo utilizzando il metodo compile. Specifichiamo l'ottimizzatore (in questo caso, 'adam'), la funzione di perdita ('sparse_categorical_crossentropy' per la classificazione multiclasse) e le metriche da valutare durante l'addestramento.

Ora che abbiamo definito e compilato il nostro modello, possiamo procedere ad addestrarlo sul set di dati MNIST. Useremo il metodo fit per addestrare il modello.

# Train the model model.fit(X_train, Y_train, epochs= 10 , validation_data=(X_test, Y_test))

Nel codice sopra, passiamo i dati di addestramento (X_train e Y_train) al metodo di adattamento insieme al numero di epoche per cui eseguire l'addestramento. Forniamo anche i dati di convalida (X_test e Y_test) per valutare le prestazioni del modello su dati invisibili durante l'addestramento.

Dopo aver addestrato il modello, possiamo fare previsioni usando il metodo predict:

# Make predictions predictions = model.predict(X_test)

Nel codice sopra, passiamo i dati del test (X_test) al metodo predict, che restituisce le probabilità previste per ogni classe.

Questa è una breve panoramica della creazione e dell'addestramento di una rete neurale utilizzando Chaos in TensorFlow. Puoi esplorare ulteriormente diversi livelli, funzioni di attivazione, ottimizzatori e altri parametri per personalizzare il tuo modello.

tecniche e concetti aggiuntivi relativi alla costruzione e all'addestramento di reti neurali.

  1. Tecniche di regolarizzazione:

    • Dropout: il dropout è una tecnica di regolarizzazione utilizzata per prevenire l'overfitting. Imposta casualmente una frazione di unità di input su 0 a ogni aggiornamento durante l'addestramento, il che aiuta a evitare che il modello faccia troppo affidamento su un particolare set di funzionalità.

    • Regolarizzazione L1 e L2: la regolarizzazione L1 e L2 sono tecniche utilizzate per aggiungere una penalità alla funzione di perdita per evitare grandi pesi nella rete. La regolarizzazione L1 aggiunge il valore assoluto dei pesi alla funzione di perdita, incoraggiando la scarsità, mentre la regolarizzazione L2 aggiunge i pesi al quadrato alla funzione di perdita, incoraggiando piccoli pesi.

  2. Funzioni avanzate di attivazione:

    • Leaky ReLU: Leaky ReLU è una funzione di attivazione che risolve il problema della "ReLU morente" consentendo una piccola pendenza per gli input negativi. Introduce una piccola pendenza negativa quando l'input è negativo, che aiuta a prevenire la morte dei neuroni durante l'allenamento.

    • Unità lineare esponenziale (ELU): ELU è una funzione di attivazione che uniforma l'uscita per ingressi negativi, consentendo all'attivazione di assumere valori negativi. È stato dimostrato che aiuta a migliorare l'apprendimento delle reti neurali e a ridurre la propensione verso valori positivi.

    • Swish: Swish è una funzione di attivazione che esegue un'interpolazione uniforme tra le funzioni lineari e sigmoidee. È stato dimostrato che in alcuni casi fornisce risultati migliori rispetto ad altre funzioni di attivazione come ReLU e sigmoid.

  3. Transfer Learning: Transfer Learning è una tecnica che sfrutta modelli preaddestrati per risolvere nuove attività o migliorare le prestazioni di un modello su un'attività correlata. Invece di addestrare un modello da zero, puoi utilizzare un modello pre-addestrato come punto di partenza e perfezionarlo sulla tua specifica attività o set di dati. Ciò è particolarmente utile quando si dispone di dati limitati per l'attività specifica.

  4. Ottimizzazione degli iperparametri: gli iperparametri sono parametri che non vengono appresi dal modello ma influiscono sul processo di apprendimento, ad esempio la velocità di apprendimento, le dimensioni del batch, il numero di livelli e così via. L'ottimizzazione di questi iperparametri può influire in modo significativo sulle prestazioni del modello. Tecniche come la ricerca su griglia, la ricerca casuale e l'ottimizzazione bayesiana possono essere utilizzate per cercare sistematicamente lo spazio degli iperparametri e trovare la migliore combinazione.

  5. Valutazione del modello: la valutazione delle prestazioni di un modello è fondamentale per valutarne l'efficacia. Le metriche di valutazione comuni per le attività di classificazione includono accuratezza, precisione, richiamo, punteggio F1 e area sotto la curva caratteristica operativa del ricevitore (ROC AUC). È importante scegliere le metriche appropriate in base al problema in questione e alla natura dei dati.

  6. Gestione di set di dati sbilanciati: i set di dati sbilanciati si verificano quando la distribuzione delle classi non è uguale, il che può portare a modelli distorti. Tecniche come il sovracampionamento della classe di minoranza, il sottocampionamento della classe di maggioranza o l'utilizzo di una combinazione di entrambi possono aiutare a risolvere questo problema. Inoltre, l'utilizzo di metriche di valutazione come precisione, richiamo e punteggio F1 può fornire una migliore comprensione delle prestazioni del modello su set di dati sbilanciati.

Ricorda, la creazione e l'addestramento di reti neurali è un processo iterativo. Implica sperimentazione, messa a punto e miglioramento continuo per ottenere i risultati desiderati.

Deep Learning with Python, TensorFlow, and Keras tutorial
Deep Learning with Python, TensorFlow, and Keras tutorial
  • 2018.08.11
  • www.youtube.com
An updated deep learning introduction using Python, TensorFlow, and Keras.Text-tutorial and notes: https://pythonprogramming.net/introduction-deep-learning-p...
 

Caricare i propri dati - Fondamenti di Deep Learning con Python, TensorFlow e Keras p.2



Caricare i propri dati - Fondamenti di Deep Learning con Python, TensorFlow e Keras p.2

Benvenuti a tutti nella seconda parte del nostro tutorial di deep learning su Python TensorFlow in Karros. In questo tutorial, ci concentreremo sul caricamento di un set di dati esterno. Nello specifico, utilizzeremo il set di dati di cani e gatti di Microsoft, originariamente una sfida di Kaggle. L'obiettivo è addestrare una rete neurale per identificare se un'immagine contiene un gatto o un cane.

Per iniziare, scarica il set di dati di cani e gatti da Microsoft. Dopo aver scaricato ed estratto il set di dati, dovresti vedere due directory: "cat" e "dog". Queste directory contengono rispettivamente immagini di cani e gatti. Ogni directory dovrebbe avere un numero considerevole di campioni, circa 12.500, fornendo ampi esempi per addestrare il nostro modello.

Ora passiamo alla parte di codifica. Dobbiamo importare diverse librerie: numpy come np, matplotlib.pyplot come plt e OpenCV come cv2. Se non hai queste librerie installate, puoi usare pip per installarle.

Successivamente, definiremo la directory dei dati in cui si trova il nostro set di dati. È possibile specificare il percorso del set di dati di conseguenza. Definiremo anche le categorie come "cane" e "gatto" in modo che corrispondano alle directory nel nostro set di dati.

Esamineremo ogni categoria e le immagini corrispondenti utilizzando la libreria del sistema operativo. Per ogni immagine, la convertiremo in scala di grigi utilizzando la libreria cv2. Abbiamo scelto la scala di grigi perché riteniamo che il colore non sia cruciale per distinguere tra cani e gatti in questo compito specifico.

Per visualizzare le immagini, useremo matplotlib.pyplot. Mostreremo un'immagine di esempio utilizzando plt.imshow e la mappa dei colori in scala di grigi. Questo passaggio ci consente di verificare che le immagini siano caricate correttamente.

Dopo aver verificato le immagini, procederemo a ridimensionarle in una forma uniforme. Dobbiamo decidere una dimensione target, ad esempio 50x50 pixel, per garantire la coerenza. Ridimensioneremo le immagini utilizzando la funzione cv2.resize e memorizzeremo gli array di immagini ridimensionate.

Ora creeremo il set di dati di addestramento. Inizializziamo un elenco vuoto chiamato "training_data" e definiamo una funzione chiamata "create_training_data". All'interno di questa funzione, iteriamo attraverso le immagini e assegniamo etichette numeriche (0 per cani, 1 per gatti) utilizzando l'indice della categoria nell'elenco "categorie".

Per ogni immagine, la ridimensioniamo alla dimensione target scelta. Aggiungiamo l'array dell'immagine ridimensionata e la sua etichetta corrispondente all'elenco training_data. Gestiamo anche eventuali eccezioni relative a immagini danneggiate nel set di dati.

Dopo aver creato il set di dati di addestramento, dovremmo controllare il bilanciamento dei dati. In un compito di classificazione binaria come questo, è essenziale avere un numero uguale di campioni per ogni classe (50% cani e 50% gatti). Dati sbilanciati possono portare a previsioni del modello distorte. Se i tuoi dati sono sbilanciati, puoi utilizzare i pesi delle classi durante l'addestramento per mitigare questo problema.

Per garantire la casualità e impedire al modello di apprendere l'ordine delle immagini, mescoliamo i dati di addestramento utilizzando la funzione random.shuffle.

Ora che i nostri dati sono mescolati, possiamo comprimerli in variabili per caratteristiche (X) ed etichette (Y). Inizializziamo elenchi vuoti per X e Y e iteriamo attraverso i dati di addestramento, aggiungendo le caratteristiche e le etichette ai rispettivi elenchi. Infine, convertiamo X in un array NumPy e lo rimodelliamo usando np.array e la forma di ciascuna caratteristica.

A questo punto, abbiamo preparato i nostri dati per addestrare la rete neurale. Ora siamo pronti per procedere con ulteriori passaggi, come suddividere i dati in set di addestramento e convalida, creare il modello e addestrarlo utilizzando TensorFlow.

Negativo 1 è un segnaposto che calcola automaticamente la dimensione in base alla lunghezza dell'array e alla forma di ogni elemento. Quindi, in questo caso, stiamo rimodellando l'array X in modo che abbia una forma di (-1, image_size, image_size). Ciò garantisce che i dati siano nel formato corretto per essere inseriti nella rete neurale.

Successivamente, dobbiamo normalizzare i valori dei pixel delle immagini. Attualmente, i valori dei pixel vanno da 0 a 255, che rappresentano l'intensità della scala di grigi. Le reti neurali generalmente funzionano meglio quando i dati di input sono normalizzati, il che significa che i valori vengono ridimensionati su un intervallo più piccolo. Possiamo ottenere ciò dividendo i valori dei pixel per 255.0, che li scalerà tra 0 e 1.0. Questo può essere fatto usando il seguente codice:

x = x / 255.0

Ora che abbiamo i nostri dati pre-elaborati, possiamo passare alla costruzione del nostro modello di deep learning utilizzando TensorFlow.
Loading in your own data - Deep Learning basics with Python, TensorFlow and Keras p.2
Loading in your own data - Deep Learning basics with Python, TensorFlow and Keras p.2
  • 2018.08.18
  • www.youtube.com
Welcome to a tutorial where we'll be discussing how to load in our own outside datasets, which comes with all sorts of challenges!First, we need a dataset. L...
 

Reti neurali convoluzionali - Fondamenti di Deep Learning con Python, TensorFlow e Keras p.3



Reti neurali convoluzionali - Fondamenti di Deep Learning con Python, TensorFlow e Keras p.3

Ciao a tutti e benvenuti alla terza parte della nostra serie di tutorial Deep Learning con Python, TensorFlow e Keras. In questo video, ci concentreremo sulle reti neurali convoluzionali (CNN) e su come applicarle per classificare i cani rispetto ai gatti utilizzando il set di dati che abbiamo creato nel video precedente.

Prima di addentrarci nelle CNN, esaminiamo rapidamente come funzionano e perché sono utili per i dati delle immagini. Le CNN comportano diversi passaggi: convoluzione, raggruppamento e poi ancora convoluzione e raggruppamento. L'idea principale alla base della convoluzione è estrarre caratteristiche utili da un'immagine. Usiamo una finestra convoluzionale, tipicamente rappresentata come una matrice (ad esempio, 3x3), per eseguire la scansione dell'immagine e semplificare le informazioni all'interno della finestra a un singolo valore. La finestra quindi si sposta e ripete questo processo più volte. Anche il passo, che determina quanto si muove la finestra, può essere regolato.

Con Keras, possiamo specificare la dimensione della finestra e la maggior parte degli altri dettagli vengono curati automaticamente. Se vuoi approfondire le complessità del deep learning, ti consiglio di dare un'occhiata alla serie di tutorial "Practical Machine Learning", in cui i meccanismi interni sono spiegati in modo più dettagliato, in particolare per il codice TensorFlow non elaborato.

L'output del livello convoluzionale è un insieme di caratteristiche estratte dall'immagine. Queste funzionalità vengono quindi in genere passate attraverso un livello di pooling, con il tipo più comune di pooling massimo. Il pool massimo seleziona il valore massimo all'interno di una finestra e lo sposta ripetutamente, riducendo efficacemente il campionamento dei dati.

L'idea di livello superiore alla base delle CNN è che estraggono gradualmente caratteristiche più complesse dall'immagine man mano che si approfondisce la rete. Gli strati iniziali potrebbero identificare bordi e linee, mentre gli strati più profondi potrebbero riconoscere forme più complesse come cerchi o quadrati. Alla fine, la rete può imparare a identificare oggetti o modelli specifici.

Per implementare una CNN, dobbiamo importare le librerie necessarie. Importiamo TensorFlow e i moduli Keras che useremo, come Sequential, Dense, Dropout, Activation, Conv2D e MaxPooling2D. Importiamo anche pickle per caricare il nostro set di dati.

Prima di inserire i dati nella rete neurale, dovremmo prendere in considerazione la possibilità di normalizzarla. Nel nostro caso, possiamo ridimensionare i dati dei pixel dividendoli per 255, dato che i valori dei pixel vanno da 0 a 255. In alternativa, possiamo usare la funzione normalize di caos.utils per scenari di normalizzazione più complessi.

Successivamente, iniziamo a costruire il nostro modello utilizzando l'API sequenziale. Aggiungiamo un livello Conv2D con 64 unità e una dimensione della finestra 3x3. Il input_shape è impostato dinamicamente utilizzando X.shape. Quindi aggiungiamo uno strato di attivazione utilizzando la funzione di attivazione lineare rettificata (ReLU). Successivamente, aggiungiamo un livello di pooling massimo con una dimensione della finestra 2x2.

Ripetiamo questo processo aggiungendo un altro layer Conv2D e un corrispondente layer di max pooling. A questo punto, abbiamo una rete neurale convoluzionale 2D.

Per passare le feature estratte a un layer completamente connesso, dobbiamo appiattire i dati. Aggiungiamo un livello Appiattisci prima di aggiungere un livello Dense finale con 64 nodi. Infine, aggiungiamo un livello di output con un singolo nodo e specifichiamo la funzione di attivazione, che può essere categorica o binaria.

Compiliamo il modello specificando la funzione di perdita (entropia incrociata categoriale o binaria), l'ottimizzatore (ad esempio, Adam) e le metriche per valutare le prestazioni del modello (ad esempio, l'accuratezza).

Per addestrare il modello, utilizziamo il metodo fit, passando i dati di input X e le etichette Y. Possiamo anche specificare la dimensione del batch (ad esempio, 32).

Useremo il seguente codice per addestrare il modello:

model.fit(X, Y, batch_size= 32 , validation_split= 0.1 )

Questo codice addestrerà il modello utilizzando i dati di input X e le etichette corrispondenti Y. Impostiamo la dimensione del batch su 32, il che significa che il modello elaborerà 32 campioni alla volta durante l'addestramento. Il parametro validation_split è impostato su 0.1, il che significa che il 10% dei dati verrà utilizzato per la convalida durante l'addestramento del modello.

Una volta addestrato il modello, possiamo valutarne le prestazioni utilizzando i dati di test. Possiamo usare il seguente codice per valutare il modello:

model.evaluate(X_test, Y_test)

Qui, X_test e Y_test rappresentano rispettivamente i dati e le etichette del test. Questo codice restituirà il valore di perdita e l'accuratezza del modello sui dati del test.

Dopo aver valutato il modello, possiamo usarlo per fare previsioni su dati nuovi e invisibili. Possiamo utilizzare la funzione predict() per ottenere le etichette previste per i nuovi dati. Ecco un esempio:

predictions = model.predict(X_new)

Questo codice genererà previsioni per i nuovi dati X_new. Le previsioni saranno probabilità per ogni classe e possiamo usare la funzione argmax() per trovare la classe con la probabilità più alta. Ecco un esempio:

predicted_labels = np.argmax(predictions, axis= 1 )

Questo codice assegnerà la classe con la probabilità più alta come etichetta prevista per ogni campione nei nuovi dati.

Questo è tutto! Ora hai addestrato un modello di rete neurale convoluzionale per classificare cani e gatti e lo hai utilizzato per fare previsioni su nuovi dati. Ricordarsi di salvare il modello addestrato per un utilizzo futuro, se necessario.

Convolutional Neural Networks - Deep Learning basics with Python, TensorFlow and Keras p.3
Convolutional Neural Networks - Deep Learning basics with Python, TensorFlow and Keras p.3
  • 2018.08.19
  • www.youtube.com
Welcome to a tutorial where we'll be discussing Convolutional Neural Networks (Convnets and CNNs), using one to classify dogs and cats with the dataset we bu...
 

Analisi dei modelli con TensorBoard - Deep Learning con Python, TensorFlow e Keras p.4



Analisi dei modelli con TensorBoard - Deep Learning con Python, TensorFlow e Keras p.4

Benvenuti a tutti alla parte 4 della serie di tutorial "Deep Learning with Python: TensorFlow and Keras". In questo video e nel prossimo parleremo di come analizzare e ottimizzare i nostri modelli utilizzando TensorBoard. TensorBoard è un potente strumento che ci consente di visualizzare l'addestramento dei nostri modelli nel tempo. Il suo scopo principale è aiutarci a comprendere vari aspetti delle prestazioni del nostro modello, come l'accuratezza, l'accuratezza della convalida, la perdita e la perdita della convalida. Inoltre, ci sono funzionalità più avanzate in TensorBoard che potremmo esplorare in futuri tutorial.

Prima di immergerci in TensorBoard, affrontiamo un piccolo dettaglio. Sebbene non sia fondamentale per questo tutorial, voglio sottolineare che anche i modelli piccoli tendono a consumare una quantità significativa di memoria della GPU. Se prevedi di eseguire più modelli contemporaneamente, puoi specificare una frazione della memoria GPU che ogni modello deve utilizzare. In questo modo, è possibile evitare potenziali problemi quando si eseguono più modelli o si incontrano vincoli di memoria. Ad esempio, in genere imposto il modello in modo che utilizzi un terzo della memoria della GPU. Questo approccio si è rivelato utile quando si eseguono più modelli contemporaneamente, come nella serie "Python Plays GTA" che coinvolge il rilevamento di oggetti e la guida autonoma. È solo un consiglio utile che può farti risparmiare tempo e mal di testa.

Ora, procediamo con l'argomento principale. La prima cosa che voglio affrontare è l'aggiunta di una funzione di attivazione dopo lo strato denso. È stata una svista da parte mia non includerlo inizialmente. L'aggiunta di una funzione di attivazione è essenziale perché senza di essa lo strato denso diventa una funzione di attivazione lineare, che non è adatta ai nostri scopi. Vogliamo evitare la regressione e garantire che il nostro modello funzioni in modo ottimale. Quindi, risolviamo rapidamente il problema inserendo la funzione di attivazione prima dello strato denso.

Con questa correzione, dovremmo osservare un significativo miglioramento della precisione. Mentre il modello viene addestrato, prendiamoci un momento per esplorare la documentazione di TensorFlow e conoscere i vari callback di Keras disponibili. Nel nostro caso, utilizzeremo il callback TensorBoard per interfacciarci con TensorBoard. Tuttavia, vale la pena notare che esistono altri callback utili, come l'arresto anticipato basato su parametri specifici, la pianificazione della velocità di apprendimento e il checkpoint del modello. Il checkpoint del modello è particolarmente utile quando si desidera salvare il modello a intervalli specifici, come la migliore perdita o l'accuratezza della convalida. Per ora, concentriamoci sulla richiamata di TensorBoard, ma in un video futuro potrei toccare brevemente altre richiamate.

Per utilizzare il callback di TensorBoard, dobbiamo importarlo dal modulo di callback Keras di TensorFlow. Aggiungi la seguente riga di codice per importare TensorBoard:

from tensorflow.keras.callbacks import TensorBoard

Ora che abbiamo importato il modulo necessario, eseguiamo alcune pulizie. È sempre consigliabile assegnare al modello un nome significativo, soprattutto quando si lavora con più modelli. In questo caso, possiamo nominare il nostro modello come "cats_vs_dogs_CNN_64x2". Inoltre, aggiungiamo un timestamp al nome per garantire l'univocità. L'inclusione del timestamp è utile quando si riaddestra un modello o si evita qualsiasi confusione con le versioni del modello. Quindi, all'inizio del nostro codice, definiamo il nome del modello e il timestamp come segue:

import time model_name = f"cats_vs_dogs_CNN_64x2_ { int (time.time())} "

Ora che abbiamo un nome modello univoco, possiamo creare l'oggetto callback TensorBoard. Assegna l'oggetto TensorBoard a una variabile chiamata tensorboard_callback utilizzando il seguente codice:

tensorboard_callback = TensorBoard(log_dir= f"logs/ {model_name} " )

Qui specifichiamo la directory di log per TensorBoard utilizzando il parametro log_dir. Formattiamo il percorso della directory di log utilizzando il nome del modello definito in precedenza.

Inoltre, la tensor board ci consente di analizzare e ottimizzare i nostri modelli fornendo visualizzazioni del processo di addestramento. Si concentra principalmente su metriche quali accuratezza, accuratezza della convalida, perdita e perdita della convalida. Queste metriche ci aiutano a capire le prestazioni del nostro modello nel tempo e a identificare le aree di miglioramento. Mentre l'accuratezza e la perdita sono comunemente monitorate, la scheda tensor offre funzionalità più avanzate che potremmo esplorare in futuro.

Per iniziare a utilizzare la scheda tensore, dobbiamo prima fare una piccola aggiunta al nostro codice. Sebbene non sia cruciale per questo tutorial, vale la pena menzionarlo. Aggiungendo poche righe di codice, possiamo allocare una frazione specifica di memoria GPU per il nostro modello. Ciò è vantaggioso quando si eseguono più modelli contemporaneamente o quando si riscontrano problemi con la VRAM. Ci consente di controllare l'allocazione della GPU ed evitare potenziali arresti anomali o overflow della memoria. Nel nostro caso, allochiamo un terzo della GPU per il modello. Ciò garantisce un'esecuzione regolare e previene eventuali conflitti quando si lavora con altri modelli o progetti.

Andando avanti, concentriamoci sull'implementazione della scheda tensore. Innanzitutto, dobbiamo importare le dipendenze necessarie. Importiamo il modulo "tensorboard" dal pacchetto "tensorflow.keras.callbacks". Questo modulo fornisce la funzionalità di richiamata per la scheda tensore.

Successivamente, vogliamo assegnare un nome significativo al nostro modello. Assegnare a ciascun modello un nome distinto è essenziale quando si lavora con più modelli. Ci aiuta a tenere traccia degli esperimenti ed evitare qualsiasi confusione. In questo caso, chiamiamo il nostro modello "cat's_first_dog_CNN_64x2_good_enough". Inoltre, aggiungiamo un timestamp al nome utilizzando il valore dell'ora corrente. Ciò garantisce l'unicità e impedisce qualsiasi sovrascrittura accidentale dei modelli.

Dopo aver dato un nome al nostro modello, possiamo definire l'oggetto callback della tensor board. Creiamo un'istanza della classe "TensorBoard" e la assegniamo alla variabile "tensorboard". Passiamo il percorso della directory di log al costruttore. La directory dei log è dove la scheda tensor memorizzerà i log e i dati relativi al nostro modello. Utilizziamo la formattazione della stringa per includere il nome del modello nel percorso della directory del registro.

Una volta che abbiamo l'oggetto callback pronto, possiamo incorporarlo nel nostro processo di addestramento del modello. Nel metodo "fit" del nostro modello, passiamo l'oggetto callback al parametro "callbacks" come un elenco. In questo caso, abbiamo solo un callback, che è il callback della scheda tensor. Tuttavia, vale la pena notare che è possibile includere più richiamate nell'elenco, se necessario.

Con il callback integrato, ora possiamo addestrare il nostro modello. Impostiamo il numero di epoche su 10 per questo esempio. Tuttavia, sentiti libero di regolare il numero di epoche in base alle tue esigenze. Man mano che il modello viene addestrato, la scheda tensore inizierà a generare registri e visualizzazioni in base alle metriche specificate.

Per visualizzare la scheda tensore in azione, dobbiamo aprire la finestra di comando o il terminale e navigare nella directory contenente i file di registro. Una volta nella directory corretta, eseguiamo il comando tensor board digitando "tensorboard --logdir logs" nel prompt dei comandi. Questo comando avvia il server della scheda tensore e fornisce un URL locale in cui è possibile accedere all'interfaccia della scheda tensore.

Dopo aver avviato la scheda tensor, possiamo aprire un browser Web e inserire l'URL fornito dal prompt dei comandi. Questo mostrerà l'interfaccia della scheda tensore, dove possiamo visualizzare l'avanzamento dell'addestramento del nostro modello. L'interfaccia mostra vari grafici, tra cui l'accuratezza nel campione, la perdita nel campione, l'accuratezza fuori dal campione e la perdita fuori dal campione. Analizziamo queste metriche per monitorare le prestazioni del modello e prendere decisioni informate in merito alla sua ottimizzazione.

Osservando i grafici, possiamo identificare modelli e tendenze nel comportamento del modello. Ad esempio, se la perdita di convalida inizia ad aumentare mentre l'accuratezza della convalida rimane costante o diminuisce, indica overfitting. D'altra parte, se sia l'accuratezza della convalida che la perdita migliorano nel tempo, suggerisce che il modello sta imparando in modo efficace.

La scheda Tensor fornisce una potente piattaforma per l'analisi e l'ottimizzazione dei modelli. Le sue visualizzazioni offrono preziose informazioni sul processo di formazione e facilitano il processo decisionale. Sfruttando la tensor board, possiamo semplificare il processo di sviluppo del modello e ottenere risultati migliori.

Nella parte successiva di questa serie di tutorial, approfondiremo le funzionalità avanzate della scheda tensoriale, inclusi istogrammi, distribuzioni e incorporamenti. Queste funzionalità forniscono ulteriore granularità e ci consentono di ottenere una comprensione più completa dei nostri modelli. Resta sintonizzato per il prossimo video, in cui esploreremo queste entusiasmanti funzionalità.

Questo è tutto per questo tutorial. Grazie per aver guardato e ci vediamo nel prossimo video!

Analyzing Models with TensorBoard - Deep Learning with Python, TensorFlow and Keras p.4
Analyzing Models with TensorBoard - Deep Learning with Python, TensorFlow and Keras p.4
  • 2018.08.24
  • www.youtube.com
Welcome to part 4 of the deep learning basics with Python, TensorFlow, and Keras tutorial series. In this part, what we're going to be talking about is Tenso...
 

Ottimizzazione con TensorBoard - Deep Learning con Python, TensorFlow e Keras p.5



Ottimizzazione con TensorBoard - Deep Learning con Python, TensorFlow e Keras p.5

Salve a tutti e benvenuti alla quinta parte della serie di tutorial Deep Learning con Python TensorBoard e Keras. In questo tutorial, ci concentreremo su TensorBoard e su come possiamo usarlo per ottimizzare i modelli visualizzando diversi tentativi di modello. Immergiamoci dentro!

Innanzitutto, analizziamo il modello e identifichiamo gli aspetti che possiamo modificare per migliorarne le prestazioni. Sebbene il nostro modello attuale abbia raggiunto una precisione di circa il 79%, riteniamo di poter fare di meglio. Alcune potenziali aree di ottimizzazione includono l'ottimizzatore, il tasso di apprendimento, il numero di strati densi, le unità per strato, le unità di attivazione, le dimensioni del kernel, il passo, il tasso di decadimento e altro ancora. Con numerose opzioni da esplorare, potremmo finire per testare migliaia di modelli. Quindi, da dove iniziamo?

Per semplificare le cose, iniziamo con le modifiche più semplici. Ci concentreremo sulla regolazione del numero di strati, nodi per strato e se includere o meno uno strato denso alla fine. Per il numero di strati densi, considereremo zero, uno o due. Per quanto riguarda le dimensioni dei livelli, utilizzeremo i valori 32, 64 e 128. Questi valori sono solo convenzioni e puoi sceglierne di diversi in base alle tue preferenze.

Ora, implementiamo queste modifiche nel nostro codice. Definiremo alcune variabili per le scelte che vogliamo fare, come il numero di livelli densi e le dimensioni dei livelli. Esamineremo queste variabili per creare diverse combinazioni di modelli. Inoltre, creeremo un nome per ogni modello che ne rifletta la configurazione.

Una volta che abbiamo le configurazioni del modello, possiamo procedere ad applicarle nel nostro codice. Aggiorneremo la struttura del modello di conseguenza, considerando la forma di input, i livelli convoluzionali, i livelli densi e il livello di output. Ci assicureremo inoltre che le dimensioni del livello siano opportunamente regolate.

Con tutte le modifiche apportate, è il momento di eseguire il codice. Tuttavia, poiché l'addestramento di numerosi modelli può richiedere molto tempo, ho già eseguito il codice e salvato i risultati. Procediamo ad analizzare i risultati utilizzando TensorBoard.

Carichiamo i log di TensorBoard e osserviamo le diverse combinazioni di modelli. I modelli sono organizzati in base alle loro prestazioni, in particolare alla perdita di convalida. Ci concentriamo sui modelli con le migliori prestazioni e notiamo le loro configurazioni.

Dai risultati risulta evidente che i modelli con tre strati convoluzionali e zero strati densi si comportano costantemente bene. Il numero specifico di nodi per strato sembra meno significativo. Tuttavia, vale la pena notare che strati densi più grandi, come 512 o 256 nodi, potrebbero produrre risultati ancora migliori. Per verificarlo, puoi testare diverse dimensioni di strati densi.

Per riassumere, abbiamo iniziato esplorando varie configurazioni del modello utilizzando TensorBoard. Abbiamo scoperto che i modelli con tre strati convoluzionali e senza strati densi hanno funzionato costantemente bene. Abbiamo anche identificato che il numero di nodi per strato potrebbe essere ulteriormente ottimizzato. Testando diverse dimensioni di strati densi, possiamo potenzialmente migliorare ulteriormente la precisione del modello.

Tieni presente che questo è solo un punto di partenza e ci sono molti altri aspetti che puoi modificare per ottimizzare i tuoi modelli. TensorBoard fornisce uno strumento prezioso per visualizzare e analizzare queste variazioni del modello, aiutandoti a prendere decisioni informate per il miglioramento del modello.

Optimizing with TensorBoard - Deep Learning w/ Python, TensorFlow & Keras p.5
Optimizing with TensorBoard - Deep Learning w/ Python, TensorFlow & Keras p.5
  • 2018.08.25
  • www.youtube.com
Welcome to part 5 of the Deep learning with Python, TensorFlow and Keras tutorial series. In the previous tutorial, we introduced TensorBoard, which is an ap...
 

Come usare il tuo modello addestrato - Nozioni di base sul Deep Learning con Python, TensorFlow e Keras p.6



Come usare il tuo modello addestrato - Nozioni di base sul Deep Learning con Python, TensorFlow e Keras p.6

Ciao a tutti e benvenuti alla Parte 6 della serie di tutorial Deep Learning in Python con TensorFlow e Keras!

In questo video, discuteremo di come utilizzare il nostro modello addestrato per fare previsioni su nuove immagini. Molte persone lo hanno chiesto, poiché hanno addestrato e testato con successo i loro set di dati, ma non sono sicuri di come utilizzare il modello per la previsione su immagini esterne. Quindi, tuffiamoci dentro!

Innanzitutto, dobbiamo importare le librerie necessarie. Importeremo cv2 per l'elaborazione delle immagini e tensorflow come TF per lavorare con il nostro modello. Avremo anche bisogno dell'elenco delle categorie, che contiene le etichette di classe "cane" e "gatto" che abbiamo usato durante l'addestramento.

Successivamente, definiremo una funzione chiamata prepare che accetta un percorso di file come parametro. Questa funzione gestirà i passaggi di pre-elaborazione richiesti per l'immagine di input. Ridimensioneremo l'immagine a una dimensione specifica e la convertiremo in scala di grigi. L'immagine verrà quindi restituita come un array numpy rimodellato.

Successivamente, caricheremo il nostro modello addestrato utilizzando la funzione TF.keras.models.load_model(). In precedenza, abbiamo salvato il nostro modello come "modello CNN 64 per 3", quindi lo caricheremo utilizzando lo stesso nome.

Ora siamo pronti a fare previsioni. Definiremo una variabile chiamata forecast e le assegneremo il risultato della chiamata a model.predict() sulla nostra immagine preparata. È importante notare che il metodo predict() prevede un elenco come input, anche se stiamo prevedendo su una singola immagine. Quindi, dobbiamo passare l'immagine preparata come un elenco.

Una volta ottenuto il risultato della previsione, possiamo stamparlo. Tuttavia, la previsione è attualmente sotto forma di un elenco nidificato. Per renderlo più leggibile, possiamo convertire il valore di previsione in un numero intero e usarlo come indice per recuperare l'etichetta di classe corrispondente dall'elenco delle categorie.

Infine, possiamo stampare l'etichetta della classe prevista, che indica se l'immagine è classificata come cane o gatto.

In questo tutorial, abbiamo utilizzato due immagini esterne per testare il nostro modello: una di un cane con un cono della vergogna e un'altra di una creatura sconosciuta. Queste immagini non facevano parte del nostro set di dati di addestramento, assicurando che stiamo facendo previsioni su dati invisibili.

Per provarlo con le tue immagini di cani e gatti, segui i passaggi descritti nel codice. Tieni presente che la precisione può variare, ma in media dovrebbe essere intorno all'80%.

È tutto per ora! Voglio ringraziare i nostri recenti sponsor: Michael, Nick, Rodrigo e Papasan E. Il vostro supporto è molto apprezzato. Se hai domande, commenti o suggerimenti per futuri tutorial, lasciali qui sotto. Sono anche aperto a idee per l'utilizzo di reti neurali ricorrenti, quindi se hai in mente un set di dati semplice, fammelo sapere.

Ci vediamo nel prossimo tutorial, dove esploreremo le reti neurali ricorrenti. Fino ad allora, buona programmazione!

How to use your trained model - Deep Learning basics with Python, TensorFlow and Keras p.6
How to use your trained model - Deep Learning basics with Python, TensorFlow and Keras p.6
  • 2018.08.31
  • www.youtube.com
In this part, we're going to cover how to actually use your model. We will us our cats vs dogs neural network that we've been perfecting.Text tutorial and sa...
 

Reti neurali ricorrenti (RNN) - Deep Learning con Python, TensorFlow e Keras p.7


Reti neurali ricorrenti (RNN) - Deep Learning con Python, TensorFlow e Keras p.7

Salve a tutti e benvenuti alla parte 7 della serie di tutorial Deep Learning con Python TensorFlow in Chaos. In questa parte, ci concentreremo sulla rete neurale ricorrente (RNN). Lo scopo di un RNN è catturare il significato e l'importanza dell'ordine dei dati. Ciò è particolarmente rilevante nei dati delle serie temporali, in cui i dati sono organizzati temporalmente, e nell'elaborazione del linguaggio naturale, in cui l'ordine delle parole in una frase ha un significato.

Per illustrare il concetto, consideriamo l'esempio di una frase: "Alcune persone hanno creato una rete neurale". Quando questa frase viene elaborata da una rete neurale profonda, che in genere tokenizza i dati suddividendoli in singole parole, la rete potrebbe non riuscire a catturare il significato corretto. Ad esempio, la frase "Una rete neurale ha creato alcune persone" ha un significato completamente diverso. Ciò sottolinea l'importanza dell'ordine delle parole nel determinare il significato di una frase.

Ora, approfondiamo il funzionamento di una rete neurale ricorrente. L'elemento costitutivo di base di un RNN è la cella ricorrente, che viene spesso implementata utilizzando una cella di memoria a lungo termine (LSTM). Sebbene esistano altre opzioni come l'unità ricorrente gated (GRU), la cella LSTM è comunemente usata. In un RNN, ogni cella accetta dati sequenziali come input e output al livello successivo o alla cella successiva nel livello ricorrente.

L'output di una cella può essere indirizzato in diversi modi. Può andare al livello successivo o alla cella successiva in modo unidirezionale o bidirezionale. In questo tutorial, ci concentreremo su un RNN unidirezionale di base. Per illustrare questo, immagina una casella verde che rappresenta una cella ricorrente. I dati della cella precedente entrano nella cella corrente, che esegue operazioni come dimenticare informazioni irrilevanti dal nodo precedente, incorporare nuovi dati di input e decidere quali informazioni inviare al livello o nodo successivo.

Per visualizzare meglio questo processo, consideriamo una cella specifica nel livello. La casella verde rappresenta la cella corrente. I dati fluiscono dalla cella precedente, vanno a capo ed entrano nella cella LSTM. All'interno della cella, ci sono operazioni per dimenticare le informazioni dal nodo precedente, incorporare nuovi dati di input e determinare l'output da passare al livello o nodo successivo. Queste operazioni consentono collettivamente alla cella LSTM di conservare informazioni importanti e di trasmetterle a livelli o nodi successivi.

L'implementazione di un RNN può essere complessa, soprattutto quando si tratta di valori scalari. Se sei interessato a una spiegazione dettagliata di come funzionano le celle LSTM, ti consiglio di consultare una guida completa che le spieghi in modo approfondito. Ho incluso un collegamento a questa guida nella versione testuale del tutorial come riferimento.

Passiamo ora alla costruzione di una rete neurale ricorrente di base. In questo tutorial, inizieremo con un semplice esempio utilizzando il set di dati M-NIST. Nel prossimo tutorial lavoreremo con dati di serie temporali più realistici, concentrandoci in particolare sui prezzi delle criptovalute.

Per iniziare, importiamo le librerie necessarie. Importeremo TensorFlow come tf, il modello Sequential da tensorflow.keras.models, il layer Dense da tensorflow.keras.layers, così come le celle Dropout e LSTM. Si noti che se si utilizza la versione GPU di TensorFlow, esiste anche una cella LSTM ottimizzata chiamata cella KU DNN LSTM. Tuttavia, per questo tutorial, ci atterremo alla normale cella LSTM. Se utilizzi la versione CPU di TensorFlow, il calcolo potrebbe richiedere molto tempo.

Successivamente, dobbiamo caricare il set di dati. Per questo esempio, utilizzeremo il set di dati M-NIST. Possiamo caricarlo facilmente usando la funzione tf.keras.datasets.mnist.load_data(), che restituisce i dati di addestramento e test. Decomprimiamo i dati in variabili: X_train, Y_train, X_test e Y_test.

Per prima cosa, normalizziamo i dati di input dividendo ogni valore di pixel per 255. In questo modo i valori dei pixel verranno ridimensionati in un intervallo compreso tra 0 e 1, adatto per l'addestramento della rete neurale. Possiamo raggiungere questo obiettivo dividendo sia i dati di addestramento che quelli di test per 255.

X_train = X_train / 255.0 X_test = X_test / 255.0

Successivamente, dobbiamo convertire le etichette target in vettori codificati one-hot. Nel set di dati M-NIST, le etichette sono numeri interi compresi tra 0 e 9, che rappresentano le cifre. La codifica one-hot converte ogni etichetta in un vettore binario di lunghezza 10, dove l'indice corrispondente alla cifra è impostato su 1 e tutti gli altri indici sono impostati su 0. Possiamo utilizzare la funzione to_categorical da tensorflow.keras.utils per eseguire una -codifica a caldo.

from tensorflow.keras.utils import to_categorical

Y_train = to_categorical(Y_train, num_classes=10)
Y_test = to_categorical(Y_test, num_classes=10)


Ora definiamo l'architettura della nostra rete neurale ricorrente. Useremo il modello sequenziale da tensorflow.keras.models e vi aggiungeremo dei livelli.

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense

model = Sequential()
model.add(LSTM(128, input_shape=(X_train.shape[1:]), activation='relu', return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(128, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(10, activation='softmax'))


Nel codice sopra, definiamo un modello sequenziale e aggiungiamo due livelli LSTM con 128 unità ciascuno. Il parametro input_shape del primo layer LSTM è impostato sulla forma di un singolo campione di dati nel training set (X_train.shape[1:]). Specifichiamo anche la funzione di attivazione per i layer LSTM come 'relu'. L'argomento return_sequences=True nel primo livello LSTM assicura che restituisca la sequenza di output, che è richiesta per collegarla al livello LSTM successivo. Aggiungiamo anche strati di abbandono con un tasso di abbandono di 0,2 dopo ogni strato LSTM per evitare l'overfitting. Infine, aggiungiamo uno strato denso con 10 unità e la funzione di attivazione softmax, che produrrà le probabilità delle 10 classi.

Ora, compiliamo il modello specificando la funzione di perdita, l'ottimizzatore e la metrica di valutazione.

model. compile (loss= 'categorical_crossentropy' , optimizer= 'adam' , metrics=[ 'accuracy' ])

In questo esempio, usiamo l'entropia incrociata categoriale come funzione di perdita, adatta per problemi di classificazione multiclasse. Utilizziamo l'ottimizzatore Adam, che è una scelta popolare per l'addestramento delle reti neurali. Specifichiamo anche "accuratezza" come metrica di valutazione per monitorare le prestazioni del modello durante l'addestramento.

Infine, addestriamo il modello utilizzando i dati di addestramento e valutiamolo sui dati di test.

model.fit(X_train, Y_train, batch_size= 32 , epochs= 10 , validation_data=(X_test, Y_test))

Nella funzione di adattamento, forniamo i dati e le etichette di addestramento (X_train e Y_train), specifichiamo la dimensione del batch e il numero di epoche per l'addestramento e forniamo anche i dati di test e le etichette per la convalida durante l'addestramento (validation_data=(X_test, Y_test)) .

Questo è tutto! Ora hai creato una rete neurale ricorrente utilizzando celle LSTM per il set di dati M-NIST. Puoi sperimentare diverse architetture, iperparametri e set di dati per esplorare ulteriormente le capacità degli RNN.

Recurrent Neural Networks (RNN) - Deep Learning w/ Python, TensorFlow & Keras p.7
Recurrent Neural Networks (RNN) - Deep Learning w/ Python, TensorFlow & Keras p.7
  • 2018.09.07
  • www.youtube.com
In this part we're going to be covering recurrent neural networks. The idea of a recurrent neural network is that sequences and order matters. For many opera...
 

Introduzione all'RNN per la previsione delle criptovalute - Deep Learning con Python, TensorFlow e Keras p.8



Introduzione all'RNN per la previsione delle criptovalute - Deep Learning con Python, TensorFlow e Keras p.8

Ciao a tutti e benvenuti a un altro video tutorial di deep learning con Python. In questo video e in quelli successivi, parleremo di come applicare una rete neurale ricorrente (RNN) a un esempio più realistico di utilizzo di dati sequenziali. Nello specifico, lavoreremo con un set di dati di serie temporali costituito da prezzi e volumi per le criptovalute.

Prima di entrare nei dettagli, voglio chiarire che è possibile applicare gli stessi concetti ad altri tipi di dati sequenziali, come i prezzi delle azioni o i dati dei sensori. Quindi, anche se non sei interessato alla finanza, puoi comunque seguire e comprendere i concetti.

L'obiettivo di questo tutorial è utilizzare una rete neurale ricorrente per prevedere il prezzo futuro di una criptovaluta in base al prezzo e al volume passati. Ci concentreremo su quattro principali criptovalute: Bitcoin, Litecoin, Ethereum e Bitcoin Cash. L'idea è di prendere gli ultimi 60 minuti di dati di prezzo e volume per ciascuna di queste criptovalute e usarli come input per prevedere il prezzo di Litecoin, ad esempio, tre minuti nel futuro.

Questo tipo di problema di previsione può essere applicato anche ad altri domini, come la previsione dei guasti del server o del traffico del sito Web in base all'ora e ai dati di utilizzo. L'obiettivo finale è prevedere una classificazione (ad esempio, se il prezzo aumenterà o diminuirà) o eseguire una regressione (ad esempio, prevedere il prezzo effettivo o la variazione percentuale).

Lavorare con dati sequenziali presenta sfide uniche. In primo luogo, dobbiamo preelaborare i dati e convertirli in sequenze che la rete neurale ricorrente può gestire. Inoltre, dobbiamo bilanciare e normalizzare i dati, considerando che i prezzi e i volumi delle diverse criptovalute possono avere scale diverse. Il ridimensionamento dei dati è più complesso che in altri domini, come i dati delle immagini, dove dividiamo semplicemente per 255.

Inoltre, valutare le prestazioni del modello utilizzando dati fuori campione è una sfida diversa quando si lavora con dati sequenziali. Ci sono diversi aspetti che dobbiamo coprire, tra cui la preparazione dei dati, la normalizzazione e la valutazione.

Per iniziare, ti ho fornito un set di dati da scaricare. Puoi trovare il link per il download nella descrizione del tutorial. Una volta estratto il file zip scaricato, troverai quattro file, ciascuno corrispondente ai dati di prezzo e volume di una criptovaluta.

Useremo la libreria pandas in Python per leggere e manipolare il set di dati. Se non hai installato pandas, puoi farlo eseguendo il comando pip install pandas nel tuo terminale o prompt dei comandi.

Successivamente, leggeremo il set di dati utilizzando i panda ed esamineremo i dati. Ci concentreremo sulle colonne del prezzo e del volume di "chiusura" per ogni criptovaluta. Per unire i dati da file diversi, imposteremo la colonna "time" come indice per ogni dataframe. Quindi, uniremo i dataframe in base al loro indice condiviso.

Una volta che abbiamo il dataframe unito, dobbiamo definire alcuni parametri. Questi includono la lunghezza della sequenza (il numero di periodi passati da considerare), il periodo futuro (il numero di periodi nel futuro da prevedere) e il rapporto da prevedere (la criptovaluta che vogliamo prevedere).

Nel nostro caso, ci concentreremo sulla previsione del prezzo futuro di Litecoin (LTC) sulla base degli ultimi 60 minuti di dati e prediremo tre minuti nel futuro. Definiremo anche una regola di classificazione, in cui classifichiamo la previsione come aumento o diminuzione del prezzo in base ai prezzi attuali e futuri.

Una volta completati questi passaggi iniziali, siamo ora pronti per preelaborare i dati, creare sequenze e addestrare la rete neurale ricorrente. Tratteremo questi argomenti nei prossimi video, quindi rimanete sintonizzati.

Se vuoi continuare, assicurati di scaricare il set di dati e configurare le librerie richieste. Puoi trovare il codice completo e le istruzioni nella versione testuale del tutorial, disponibile nella descrizione.

Abbiamo molto da coprire, quindi lo classificheremo come 1, che indica un aumento del prezzo. Altrimenti, se il prezzo futuro è inferiore al prezzo attuale, lo classificheremo come 0, indicando un calo del prezzo. Questa è una semplice regola che utilizziamo per la classificazione, ma puoi sperimentare regole diverse o persino utilizzare la regressione per prevedere l'effettiva variazione di prezzo.

Ora, creiamo la colonna di destinazione nel nostro DataFrame principale. Useremo la funzione di spostamento da panda per spostare i valori della colonna "LTCUSD_close" entro il periodo futuro. Questo ci darà i prezzi futuri che confronteremo con i prezzi attuali per determinare la classificazione. Assegneremo il risultato a una nuova colonna chiamata "target".

main_df[ 'target' ] = main_df[ 'LTCUSD_close' ].shift(-future_period)

Poiché abbiamo spostato i valori in senso negativo, le ultime righe della colonna "target" avranno valori NaN (non un numero) poiché non sono disponibili dati sui prezzi futuri. Rimuoveremo quelle righe dal DataFrame.

main_df.dropna(inplace= True )

Successivamente, creiamo le sequenze di input. Itereremo il DataFrame e creeremo sequenze di lunghezza sequence_length, costituite dai prezzi e dai volumi precedenti di Bitcoin, Litecoin, Ethereum e Bitcoin Cash. Memorizzeremo queste sequenze in un elenco chiamato "sequenze".

sequences = []
for i in range(len(main_df) - sequence_length + 1):
    sequence = main_df.iloc[i:i+sequence_length, 1:-1].values.flatten()
    sequences.append(sequence)


Nel codice precedente, main_df.iloc[i:i+sequence_length, 1:-1] seleziona le righe e le colonne per la sequenza, escludendo la prima (ora) e l'ultima (target) colonne. Quindi usiamo .values.flatten() per convertire i dati selezionati in un array 1D.

Infine, convertiremo le sequenze e gli obiettivi in array numpy per una manipolazione e un addestramento più semplici.

import numpy as np

sequences = np.array(sequences)
targets = np.array(main_df['target'])


Ora abbiamo le nostre sequenze di input e gli obiettivi corrispondenti pronti per l'addestramento di una rete neurale ricorrente. Possiamo procedere alla costruzione e al training del modello utilizzando librerie come TensorFlow o PyTorch.

Tieni presente che il codice qui fornito è un'implementazione parziale e si concentra sulle fasi di pre-elaborazione dei dati. Sarà necessario sviluppare ulteriormente l'architettura del modello, addestrare il modello e valutarne le prestazioni. Inoltre, potrebbe essere necessario regolare gli iperparametri e sperimentare tecniche diverse per migliorare la precisione del modello.

Ricordarsi di importare le librerie necessarie, gestire i dati mancanti, preelaborare le funzionalità (normalizzazione, ridimensionamento e così via) e suddividere i dati in set di addestramento e test prima di addestrare il modello.

Spero che questo ti aiuti a capire il processo di lavoro con dati sequenziali e l'applicazione di reti neurali ricorrenti per prevedere i prezzi futuri. Buona fortuna con il tuo progetto di deep learning!

Cryptocurrency-predicting RNN intro - Deep Learning w/ Python, TensorFlow and Keras p.8
Cryptocurrency-predicting RNN intro - Deep Learning w/ Python, TensorFlow and Keras p.8
  • 2018.09.15
  • www.youtube.com
Welcome to part 8 of the Deep Learning with Python, Keras, and Tensorflow series. In this tutorial, we're going to work on using a recurrent neural network t...
Motivazione: