Struttura del corso
Introduzione
- Introduzione a TensorFlow e al deep learning
- Casi d'uso e applicazioni di TensorFlow
- Ecosistema e strumenti di TensorFlow
- Flussi di lavoro per il machine learning e il deep learning
- Panoramica sugli obiettivi del corso e sugli esercizi pratici
TensorFlow 2.x rispetto alle versioni precedenti — Novità
- Principali differenze tra TensorFlow 1.x e 2.x
- Esecuzione eager
- API semplificate e maggiore usabilità
- Cambiamenti nella costruzione e nell'addestramento dei modelli
- Introduzione a Keras come API di alto livello
- Considerazioni sulla migrazione per le applicazioni esistenti in TensorFlow
- Best practice per TensorFlow 2.x
Configurazione di TensorFlow 2.x
- Installazione di TensorFlow
- Configurazione di un ambiente Python
- Verifica dell'installazione di TensorFlow
- Installazione e gestione delle dipendenze richieste
- Configurazione degli ambienti CPU e GPU
- Utilizzo di TensorFlow con notebook Jupyter
- Comandi e operazioni base di TensorFlow
- Risoluzione dei problemi di installazione e configurazione
Panoramica su funzionalità e architettura di TensorFlow 2.x
- Architettura e componenti principali di TensorFlow
- Tensor e operazioni sui tensori
- Variabili e costanti
- Grafi computazionali ed esecuzione eager
- Derivazione automatica
- API e moduli di TensorFlow
- Integrazione con Keras
- Pipeline dati con
tf.data - Serializzazione dei modelli e TensorFlow SavedModel
- Ecosistema di TensorFlow e flusso di sviluppo
Funzionamento delle reti neurali
- Fondamenti delle reti neurali artificiali
- Neuroni, layer e architetture di rete
- Funzioni di attivazione
- Propagazione in avanti (forward propagation)
- Funzioni di perdita (loss functions)
- Backpropagation
- Discesa del gradiente e ottimizzazione
- Tassi di apprendimento e strategie di ottimizzazione
- Overfitting e underfitting
- Tecniche di regularizzazione
- Dataset di addestramento, validazione e test
Utilizzo di TensorFlow 2.x per la creazione di modelli di deep learning
- Creazione di tensori e variabili
- Costruzione di reti neurali con Keras
- API dei modelli sequenziali e funzionali
- Definizione di modelli e layer personalizzati
- Configurazione degli ottimizzatori
- Selezione delle appropriate funzioni di perdita
- Addestramento dei modelli con
fit() - Loop di addestramento personalizzati
- Callbacks e monitoraggio dell'addestramento
- Gestione dei checkpoint dei modelli
Analisi dei dati
- Comprendere i dataset per il machine learning
- Esplorazione di dati strutturati e non strutturati
- Visualizzazione dei dati
- Identificazione di pattern e anomalie
- Gestione di dati mancanti e incoerenti
- Divisione dei dati in set di addestramento, validazione e test
- Selezione delle funzionalità rilevanti
- Preparazione dei dataset per i modelli TensorFlow
Prelavorazione dei dati
- Normalizzazione e standardizzazione dei dati
- Codifica di dati categorici
- Gestione dei valori mancanti
- Scalatura delle funzionalità (feature scaling)
- Prelavorazione delle immagini
- Prelavorazione del testo
- Augmentazione dei dati
- Costruzione di pipeline di input efficienti
- Utilizzo di
tf.data - Batching, shuffling, caching e prefetching
- Preparazione dei dati per l'addestramento del modello
Costruzione di un modello
- Selezione di un'architettura di rete neurale appropriata
- Definizione degli input e delle output del modello
- Creazione di reti neurali dense
- Scelta delle funzioni di attivazione
- Configurazione del modello per l'addestramento
- Selezione di ottimizzatori e funzioni di perdita
- Addestramento e validazione del modello
- Monitoraggio delle metriche di addestramento
- Miglioramento delle prestazioni del modello
- Prevenzione dell'overfitting
- Implementazione di regularizzazione e dropout
Implementazione di un classificatore di immagini all'avanguardia
- Fondamenti della classificazione delle immagini
- Preparazione dei dataset di immagini
- Normalizzazione e augmentazione delle immagini
- Reti neurali convoluzionali
- Layer di convoluzione e pooling
- Progettazione di un'architettura per la classificazione delle immagini
- Transfer learning
- Utilizzo di modelli preaddestrati
- Fine-tuning di reti preaddestrate
- Costruzione di un classificatore di immagini avanzato
- Valutazione delle prestazioni di classificazione
Addestramento del modello
- Configurazione dei parametri di addestramento
- Dimensione del batch e epoche
- Selezione dell'ottimizzatore
- Agendamento del tasso di apprendimento (learning-rate scheduling)
- Callbacks di addestramento
- Arresto anticipato (early stopping)
- Creazione di checkpoint dei modelli
- Monitoraggio dei progressi di addestramento
- Rilevamento dell'overfitting
- Miglioramento delle prestazioni di addestramento
- Considerazioni per l'addestramento distribuito
Addestramento su GPU o TPU
- Architetture CPU, GPU e TPU
- Vantaggi dell'accelerazione hardware
- Configurazione di TensorFlow per l'addestramento su GPU
- Comprensione dell'addestramento basato su TPU
- Selezione dell'hardware per carichi di lavoro diversi
- Spostamento dei calcoli tra dispositivi
- Gestione della memoria e delle risorse computazionali
- Confronto delle prestazioni di addestramento
- Strategie di addestramento distribuito e accelerato
Valutazione del modello
- Selezione di metriche di valutazione appropriate
- Accuratezza, precisione, recall e F1 score
- Metriche di valutazione per la regressione
- Matrici di confusione
- Strategie di validazione
- Valutazione dei modelli di classificazione
- Valutazione della generalizzazione del modello
- Identificazione dei punti deboli del modello
- Confronto tra diverse configurazioni del modello
Esecuzione di previsioni
- Utilizzo di modelli addestrati per l'inferenza
- Preparazione di nuovi dati di input
- Esecuzione di previsioni in batch e individuali
- Interpretazione delle output del modello
- Probabilità di classificazione
- Previsioni di regressione
- Costruzione di un flusso di lavoro per l'inferenza
- Gestione di dati non visti
- Gestione delle pipeline di previsione
Valutazione delle previsioni
- Analisi della qualità delle previsioni
- Confronto tra previsioni e risultati attesi
- Identificazione di falsi positivi e falsi negativi
- Analisi degli errori
- Valutazione della confidenza del modello
- Visualizzazione dei risultati delle previsioni
- Rilevamento di bias nei dati e nelle previsioni
- Miglioramento delle prestazioni del modello in base all'analisi delle previsioni
Debug del modello
- Identificazione di problemi comuni di addestramento
- Diagnosi di previsioni errate
- Debug delle pipeline di dati
- Indagine sul comportamento di perdita e metriche
- Rilevamento di gradienti esplodenti o svanenti
- Diagnosi di overfitting e underfitting
- Ispettazione dei layer e delle output del modello
- Utilizzo di strumenti di debug e profiling di TensorFlow
- Miglioramento della stabilità e delle prestazioni del modello
Salvataggio di un modello
- Salvataggio dei modelli addestrati
- Formato TensorFlow SavedModel
- Salvataggio e ripristino dei pesi del modello
- Salvataggio dell'architettura e della configurazione del modello
- Caricamento dei modelli per l'inferenza
- Versioning dei modelli
- Esportazione dei modelli per la distribuzione
- Gestione degli artifact del modello
- Preparazione dei modelli per ambienti di produzione
Distribuzione di un modello sul cloud
- Introduzione alla distribuzione di modelli basata sul cloud
- Preparazione dei modelli TensorFlow per la produzione
- Serving dei modelli tramite API
- Concetti di model serving
- Containerizzazione delle applicazioni TensorFlow
- Inferenza basata sul cloud
- Scalabilità dei carichi di lavoro per il model serving
- Monitoraggio dei modelli distribuiti
- Gestione delle versioni dei modelli
- Considerazioni per la distribuzione in produzione
Distribuzione di un modello su un dispositivo mobile
- Sfide del machine learning su dispositivo mobile
- TensorFlow Lite
- Conversione dei modelli TensorFlow per la distribuzione mobile
- Ottimizzazione del modello e riduzione della dimensione
- Quantizzazione
- Esecuzione dell'inferenza su dispositivi mobili
- Gestione delle risorse del dispositivo mobile
- Integrazione dei modelli nelle applicazioni mobili
- Test delle prestazioni di inferenza mobile
Distribuzione di un modello su un sistema embedded (IoT)
- Machine learning su dispositivi embedded
- TensorFlow Lite per applicazioni embedded
- Vincoli di risorse e ottimizzazione
- Riduzione della dimensione del modello e dei requisiti computazionali
- Inferenza al bordo (edge inference)
- Elaborazione di dati di sensori e in tempo reale
- Esecuzione locale delle previsioni
- Considerazioni su potenza e memoria
- Integrazione dei modelli TensorFlow nei flussi di lavoro IoT
- Test e monitoraggio delle distribuzioni edge
Integrazione di un modello con diversi linguaggi
- Interoperabilità dei modelli TensorFlow
- Serving dei modelli tramite API
- Utilizzo dei modelli TensorFlow da diversi ambienti di programmazione
- Integrazione di modelli basati su Python
- Integrazione dei modelli nelle applicazioni web
- Inferenza del modello tramite servizi basati su REST
- Integrazione di TensorFlow nelle applicazioni esistenti
- Scambio dati e serializzazione
- Considerazioni per l'integrazione in produzione
Risoluzione dei problemi (Troubleshooting)
- Diagnosi di problemi di installazione di TensorFlow
- Risoluzione di errori nella costruzione dei modelli
- Debug di problemi di prelavorazione dei dati
- Risoluzione di fallimenti nell'addestramento
- Indagine su problemi di configurazione GPU e TPU
- Diagnosi di problemi di memoria e prestazioni
- Risoluzione di problemi nel caricamento e salvataggio dei modelli
- Debug di problemi di distribuzione
- Esercizi pratici di troubleshooting
Sintesi e conclusione
- Ricapitolazione dei concetti di TensorFlow 2.x
- Ricapitolazione dei flussi di lavoro per reti neurali e deep learning
- Ricapitolazione della preparazione dei dati e dello sviluppo del modello
- Ricapitolazione della classificazione delle immagini
- Ricapitolazione delle tecniche di addestramento e valutazione
- Ricapitolazione del debug e dell'ottimizzazione del modello
- Ricapitolazione della distribuzione su cloud, mobile e IoT
- Best practice per lo sviluppo con TensorFlow
- Esercizio pratico finale
- Domande e discussione
Requisiti
- Esperienza di programmazione in Python.
- Esperienza con la riga di comando Linux.
Target di riferimento
- Sviluppatori
- Data Scientist
Recensioni (4)
Il corso di formazione era organizzato e ben pianificato, ed è stato un'occasione per acquisire conoscenze sistematiche e una panoramica approfondita dei temi trattati.
Magdalena - Samsung Electronics Polska Sp. z o.o.
Corso - Deep Learning with TensorFlow 2
Traduzione automatica
La conoscenza del formatore e il fatto che fossero molto disponibili. Erano in grado di trasmettere facilmente nozioni importanti.
Mateusz Stachyra - Samsung Electronics Polska Sp. z o.o.
Corso - Deep Learning with TensorFlow 2
Traduzione automatica
Mi è piaciuto che abbiamo affrontato anche i concetti di base
Tomasz - Samsung Electronics Polska Sp. z o.o.
Corso - Deep Learning with TensorFlow 2
Traduzione automatica
L'istruttore ha spiegato bene il contenuto e è stato coinvolgente per tutto il tempo. Si è fermato per fare domande e ci ha lasciato trovare le nostre soluzioni in alcune sessioni pratiche. Ha anche adattato bene il corso alle nostre esigenze.
Robert Baker
Corso - Deep Learning with TensorFlow 2.0
Traduzione automatica