Addestramento con TensorFlow 2

Addestrare un modello di machine learning con TensorFlow 2 in AI Platform Training utilizzando la versione di runtime 2.1 o successiva. TensorFlow 2 semplifica molte API di TensorFlow 1. La documentazione di TensorFlow fornisce una guida alla migrazione del codice di TensorFlow 1 a TensorFlow 2.

L'esecuzione di un job di addestramento con TensorFlow 2 su AI Platform Training segue la stessa procedura di esecuzione di altri job di addestramento con codice personalizzato. Tuttavia, alcune funzionalità di AI Platform Training funzionano in modo diverso con TensorFlow 2 rispetto a come funzionano con TensorFlow 1. Questo documento fornisce un riepilogo di queste differenze.

Supporto delle versioni di Python

Le versioni di runtime 2.1 e successive supportano solo l'addestramento con Python 3.7. Pertanto, devi utilizzare Python 3.7 per l'addestramento con TensorFlow 2.

La Python Software Foundation ha interrotto il supporto di Python 2.7 il 1° gennaio 2020. Nessuna versione del runtime di AI Platform rilasciata dopo il 1° gennaio 2020 supporta Python 2.7.

Addestramento distribuito

TensorFlow 2 fornisce un'API aggiornata per l'addestramento distribuito. Inoltre, AI Platform Training imposta la variabile di ambiente TF_CONFIG in modo diverso in fase di runtime nelle versioni 2.1 e successive. Questa sezione descrive entrambe le modifiche.

Strategie di distribuzione

Per eseguire l'addestramento distribuito con più istanze di macchine virtuali (VM) in TensorFlow 2, utilizza l'tf.distribute.Strategy API. In particolare, ti consigliamo di utilizzare l'API Keras insieme a MultiWorkerMirroredStrategy o, se specifichi i server di parametri per il tuo job, con ParameterServerStrategy. Tuttavia, tieni presente che al momento TensorFlow fornisce solo supporto sperimentale per queste strategie.

TF_CONFIG

TensorFlow si aspetta che una TF_CONFIG variabile di ambiente sia impostata su ogni VM utilizzata per l'addestramento. AI Platform Training imposta automaticamente questa variabile di ambiente su ogni VM utilizzata nel job di addestramento. In questo modo, ogni VM si comporta in modo diverso a seconda del tipo e le VM possono comunicare tra loro.

Nella versione di runtime 2.1 e successive, AI Platform Training non utilizza più il tipo di compito master in nessuna variabile di ambiente TF_CONFIG. Il worker master del job di addestramento è invece etichettato con il tipo chief nella variabile di ambiente TF_CONFIG. Scopri di più su come AI Platform Training imposta la variabile di ambienteTF_CONFIG.

Acceleratori per l'addestramento

AI Platform Training ti consente di accelerare i job di addestramento con GPU e TPU.

GPU

Per scoprire come utilizzare le GPU per l'addestramento, leggi la guida di AI Platform Training alla configurazione delle GPU e la guida di TensorFlow all'utilizzo delle GPU.

Se vuoi eseguire l'addestramento su una singola VM con più GPU, la best practice è utilizzare MirroredStrategy di TensorFlow. Se vuoi eseguire l'addestramento utilizzando più VM con GPU, la best practice è utilizzare MultiWorkerMirroredStrategy di TensorFlow.

TPU

Per scoprire come utilizzare le TPU per l'addestramento, leggi la guida all'addestramento con le TPU.

Ottimizzazione degli iperparametri

Se stai eseguendo un job di ottimizzazione degli iperparametri con TensorFlow 2, potresti dover modificare il modo in cui il codice di addestramento registra la metrica di ottimizzazione degli iperparametri al servizio AI Platform Training.

Se esegui l'addestramento con un estimatore, puoi scrivere la metrica in un riepilogo allo stesso modo in cui faresti in TensorFlow 1. Se esegui l'addestramento con Keras, ti consigliamo di utilizzare tf.summary.scalar per scrivere un riepilogo.

Scopri di più su come generare report sulla metrica dell'iperparametro e guarda esempi di come farlo in TensorFlow 2.

Passaggi successivi