Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Docker

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

Docker è il modo più semplice per abilitare il supporto della 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 della GPU su Linux, installa il supporto NVIDIA Docker .
    • Prendi nota della tua versione Docker con docker -v . Le versioni precedenti alla 19.03 richiedono nvidia-docker2 e il --runtime=nvidia . Nelle versioni che includono e dopo la 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 di TensorFlow

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

Etichetta Descrizione
latest L'ultima versione dell'immagine binaria della CPU TensorFlow. Predefinito.
nightly Build notturne dell'immagine TensorFlow. (Instabile.)
version Specificare la versione dell'immagine binaria TensorFlow, ad esempio: 2.1.0
devel Build notturne di un ambiente di sviluppo master TensorFlow. Include il codice sorgente di TensorFlow.
custom-op Immagine sperimentale speciale per lo sviluppo di operazioni personalizzate TF. Maggiori info qui .

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

Varianti di tag Descrizione
tag -gpu La versione del tag specificata con supporto GPU. ( Vedi sotto )
tag -jupyter La versione del tag specificata con Jupyter (include i taccuini 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, utilizza il seguente modulo di comando:

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

Per i dettagli, vedere il riferimento alla corsa docker .

Esempi di utilizzo di immagini solo CPU

Verifichiamo l'installazione di TensorFlow utilizzando l' latest immagine contrassegnata. 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 container, montare la directory host e modificare la directory di lavoro del container ( -v hostDir:containerDir -w workDir ):

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

Possono sorgere 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 browser web del tuo 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® (il toolkit NVIDIA® CUDA® non è richiesto).

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 di utilizzo di 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])))"

Potrebbe essere necessario un po 'di tempo per configurare l'immagine abilitata per GPU. Se si eseguono ripetutamente script basati su GPU, è possibile utilizzare docker exec per riutilizzare un contenitore.

Utilizza l'ultima immagine della GPU TensorFlow per avviare una sessione di shell bash nel contenitore:

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