Thanks for tuning in to Google I/O. View all sessions on demandWatch on demand

Docker

Docker utilizza i container per creare ambienti virtuali che isolano un'installazione TensorFlow dal resto del sistema. I programmi TensorFlow vengono eseguiti all'interno di questo ambiente virtuale che può condividere le risorse con la sua macchina host (accesso alle directory, utilizzo della GPU, connessione a Internet, ecc.). Le immagini TensorFlow Docker vengono testate per ogni versione.

Docker è il modo più semplice per abilitare il supporto GPU TensorFlow su Linux, poiché sul computer host è richiesto solo il driver GPU NVIDIA® (non è necessario installare NVIDIA® CUDA® Toolkit ).

Requisiti di TensorFlow Docker

  1. Installa Docker sul tuo computer host locale.
  2. Per il supporto GPU su Linux, installa il supporto NVIDIA Docker .
    • Prendi nota della tua versione di Docker con docker -v . Le versioni precedenti alla 19.03 richiedono nvidia-docker2 e il flag --runtime=nvidia . Nelle versioni che includono e successive alla 19.03, utilizzerai il pacchetto nvidia-container-toolkit e il flag --gpus all . Entrambe le opzioni sono documentate nella pagina collegata sopra.

Scarica un'immagine Docker TensorFlow

Le immagini ufficiali di TensorFlow Docker si trovano nel repository tensorflow/tensorflow Docker Hub. Le liberatorie di immagini sono contrassegnate utilizzando il seguente formato:

Etichetta Descrizione
latest L'ultima versione dell'immagine binaria della CPU TensorFlow. Predefinito.
nightly Build notturni dell'immagine TensorFlow. (Instabile.)
version Specificare la versione dell'immagine binaria TensorFlow, ad esempio: 2.8.3

Ogni tag di base ha varianti che aggiungono o modificano funzionalità:

Tag Varianti Descrizione
tag -gpu La versione del tag specificata con supporto GPU. ( Vedi sotto )
tag -jupyter La versione del tag specificata con Jupyter (include i notebook del tutorial TensorFlow)

Puoi utilizzare più varianti contemporaneamente. Ad esempio, quanto segue scarica le immagini della versione di TensorFlow sul tuo computer:

docker pull tensorflow/tensorflow                     # latest stable release
docker pull tensorflow/tensorflow:devel-gpu           # nightly dev release w/ GPU support
docker pull tensorflow/tensorflow:latest-gpu-jupyter  # latest release w/ GPU support and Jupyter

Avvia un contenitore Docker TensorFlow

Per avviare un contenitore configurato con TensorFlow, utilizzare il seguente modulo di comando:

docker run [-it] [--rm] [-p hostPort:containerPort] tensorflow/tensorflow[:tag] [command]

Per i dettagli, vedere il riferimento all'esecuzione docker .

Esempi che utilizzano immagini solo CPU

Verifichiamo l'installazione di TensorFlow utilizzando l' latest immagine con tag. Docker scarica una nuova immagine TensorFlow la prima volta che viene eseguita:

docker run -it --rm tensorflow/tensorflow \
   python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

Dimostriamo alcune altre ricette di TensorFlow Docker. Avvia una sessione di shell bash all'interno di un contenitore configurato con TensorFlow:

docker run -it tensorflow/tensorflow bash

All'interno del contenitore, puoi avviare una sessione python e importare TensorFlow.

Per eseguire un programma TensorFlow sviluppato sulla macchina host all'interno di un contenitore, montare la directory host e modificare la directory di lavoro del contenitore ( -v hostDir:containerDir -w workDir ):

docker run -it --rm -v $PWD:/tmp -w /tmp tensorflow/tensorflow python ./script.py

Possono verificarsi problemi di autorizzazione quando i file creati all'interno di un contenitore vengono esposti all'host. Di solito è meglio modificare i file sul sistema host.

Avvia un server Jupyter Notebook utilizzando la build notturna di TensorFlow:

docker run -it -p 8888:8888 tensorflow/tensorflow:nightly-jupyter

Segui le istruzioni e apri l'URL nel tuo browser host: http://127.0.0.1:8888/?token=...

Supporto GPU

Docker è il modo più semplice per eseguire TensorFlow su una GPU poiché la macchina host richiede solo il driver NVIDIA® (non è richiesto NVIDIA® CUDA® Toolkit ).

Installa Nvidia Container Toolkit per aggiungere il supporto GPU NVIDIA® a Docker. nvidia-container-runtime è disponibile solo per Linux. Consulta le domande frequenti sul supporto della piattaforma nvidia-container-runtime per i dettagli.

Controlla se è disponibile una GPU:

lspci | grep -i nvidia

Verifica l'installazione di nvidia-docker :

docker run --gpus all --rm nvidia/cuda nvidia-smi

Esempi che utilizzano immagini abilitate per GPU

Scarica ed esegui un'immagine TensorFlow abilitata per GPU (potrebbero essere necessari alcuni minuti):

docker run --gpus all -it --rm tensorflow/tensorflow:latest-gpu \
   python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

La configurazione dell'immagine abilitata per GPU può richiedere del tempo. Se si eseguono ripetutamente script basati su GPU, è possibile utilizzare docker exec per riutilizzare un contenitore.

Utilizza l'immagine GPU TensorFlow più recente per avviare una sessione shell bash nel contenitore:

docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash