Google jest zaangażowany w promowanie równości rasowej dla społeczności czarnych. Zobacz jak.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Doker

Docker używa kontenerów do tworzenia środowisk wirtualnych, które izolują instalację TensorFlow od reszty systemu. Programy TensorFlow są uruchamiane w tym środowisku wirtualnym, które może współdzielić zasoby z maszyną hosta (uzyskiwać dostęp do katalogów, korzystać z GPU, łączyć się z Internetem itp.). Obrazy TensorFlow Docker są testowane dla każdej wersji.

Docker to najłatwiejszy sposób na włączenie obsługi GPU TensorFlow w systemie Linux, ponieważ na komputerze głównym wymagany jest tylko sterownik GPU NVIDIA® (nie ma potrzeby instalowania zestawu narzędzi NVIDIA® CUDA® ).

Wymagania TensorFlow Docker

  1. Zainstaluj Docker na lokalnym komputerze hosta .
  2. Aby uzyskać obsługę GPU w systemie Linux, zainstaluj obsługę NVIDIA Docker .
    • Zwróć uwagę na swoją wersję docker -v pomocą docker -v . Wersje wcześniejsze niż 19.03 wymagają nvidia-docker2 i flagi --runtime=nvidia . W wersjach obejmujących 19.03 i --gpus all pakietu nvidia-container-toolkit i flagi --gpus all . Obie opcje są udokumentowane na stronie, do której link znajduje się powyżej.

Pobierz obraz platformy Docker TensorFlow

Oficjalne obrazy TensorFlow Docker znajdują się w repozytorium tensorflow / tensorflow Docker Hub. Zwolnienia obrazów są oznaczone przy użyciu następującego formatu:

Etykietka Opis
latest Najnowsza wersja obrazu binarnego procesora TensorFlow. Domyślna.
nightly Nocne kompilacje obrazu TensorFlow. (nietrwały)
version Określ wersję obrazu binarnego TensorFlow, na przykład: 2.1.0
devel Nocne kompilacje master środowiska programistycznego TensorFlow. Zawiera kod źródłowy TensorFlow.
custom-op Specjalny eksperymentalny obraz do tworzenia własnych operacji TF.

:: Więcej informacji tutaj: https://github.com/tensorflow/custom-op :

Każdy tag podstawowy ma warianty, które dodają lub zmieniają funkcjonalność:

Oznacz warianty Opis
tag -gpu Określone wydanie tagu z obsługą GPU. ( Patrz poniżej )
tag -jupyter Określone wydanie tagu z Jupyter (obejmuje zeszyty samouczków TensorFlow)

Możesz używać wielu wariantów jednocześnie. Na przykład poniższe pliki do pobrania obrazów wersji TensorFlow na komputer:

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

Uruchom kontener TensorFlow Docker

Aby uruchomić kontener skonfigurowany przez TensorFlow, użyj następującego formularza polecenia:

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

Aby uzyskać szczegółowe informacje, zobacz dokumentację dotyczącą uruchamiania platformy Docker .

Przykłady wykorzystujące obrazy tylko z procesorem

Zweryfikujmy instalację TensorFlow przy użyciu latest otagowanego obrazu. Docker pobiera nowy obraz TensorFlow przy pierwszym uruchomieniu:

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

Pokażmy więcej przepisów na TensorFlow Docker. Uruchom sesję powłoki bash w kontenerze skonfigurowanym przez TensorFlow:

docker run -it tensorflow/tensorflow bash

W kontenerze możesz rozpocząć sesję python i zaimportować TensorFlow.

Aby uruchomić program TensorFlow utworzony na maszynie hosta w kontenerze, zamontuj katalog hosta i zmień katalog roboczy kontenera ( -v hostDir:containerDir -w workDir ):

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

Problemy z uprawnieniami mogą wystąpić, gdy pliki utworzone w kontenerze są ujawniane hostowi. Zwykle najlepiej edytować pliki w systemie hosta.

Uruchom serwer Jupyter Notebook przy użyciu nocnej kompilacji TensorFlow:

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

Postępuj zgodnie z instrukcjami i otwórz adres URL w przeglądarce internetowej hosta: http://127.0.0.1:8888/?token=...

Obsługa GPU

Docker to najłatwiejszy sposób na uruchomienie TensorFlow na GPU, ponieważ maszyna hosta wymaga tylko sterownika NVIDIA® (nie jest wymagany pakiet NVIDIA® CUDA® Toolkit ).

Zainstaluj Nvidia Container Toolkit, aby dodać obsługę procesorów graficznych NVIDIA® do platformy Docker. nvidia-container-runtime jest dostępne tylko dla systemu Linux. Szczegółowe informacje można znaleźć w często zadawanych pytaniach dotyczących obsługi platformy nvidia-container-runtime .

Sprawdź, czy GPU jest dostępny:

lspci | grep -i nvidia

Zweryfikuj instalację nvidia-docker :

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

Przykłady używania obrazów obsługujących GPU

Pobierz i uruchom obraz TensorFlow z obsługą GPU (może to zająć kilka minut):

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

Skonfigurowanie obrazu obsługującego GPU może trochę potrwać. Jeśli wielokrotnie uruchamiasz skrypty oparte na GPU, możesz użyć docker exec aby ponownie użyć kontenera.

Użyj najnowszego obrazu GPU TensorFlow, aby rozpocząć sesję powłoki bash w kontenerze:

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