Docker używa kontenerów do tworzenia środowisk wirtualnych, które izolują instalację TensorFlow od reszty systemu. Programy TensorFlow są uruchamiane w tym wirtualnym środowisku, które może udostępniać zasoby swojej maszynie hosta (dostęp do katalogów, korzystanie z GPU, łączenie się z Internetem itp.). Obrazy TensorFlow Docker są testowane dla każdej wersji.
Docker to najłatwiejszy sposób na włączenie obsługi procesora graficznego TensorFlow w systemie Linux, ponieważ na komputerze hosta wymagany jest tylko sterownik procesora graficznego NVIDIA® ( zestaw narzędzi NVIDIA® CUDA® nie musi być instalowany).
Wymagania Dockera TensorFlow
- Zainstaluj Dockera na lokalnym hoście .
- Aby uzyskać obsługę GPU w systemie Linux, zainstaluj obsługę platformy NVIDIA Docker .
- Zanotuj swoją wersję Dockera za pomocą
docker -v
. Wersje wcześniejsze niż 19.03 wymagają nvidia-docker2 i flagi--runtime=nvidia
. W wersjach włącznie i późniejszych będziesz używać pakietunvidia-container-toolkit
i flagi--gpus all
. Obie opcje są udokumentowane na stronie, do której prowadzi link powyżej.
- Zanotuj swoją wersję Dockera za pomocą
Pobierz obraz Dockera TensorFlow
Oficjalne obrazy TensorFlow Docker znajdują się w repozytorium tensorflow/tensorflow Docker Hub. Zwolnienia graficzne są oznaczane przy użyciu następującego formatu:
Etykietka | Opis |
---|---|
latest | Najnowsza wersja obrazu binarnego procesora TensorFlow. Domyślny. |
nightly | Nocne kompilacje obrazu TensorFlow. (Nietrwały.) |
version | Określ wersję obrazu binarnego TensorFlow, na przykład: 2.8.3 |
Każdy tag podstawowy ma warianty, które dodają lub zmieniają funkcjonalność:
Warianty tagów | Opis |
---|---|
tag -gpu | Określona wersja tagu z obsługą GPU. ( Patrz poniżej ) |
tag -jupyter | Określona wersja tagu z Jupyter (obejmuje notesy samouczków TensorFlow) |
Możesz używać wielu wariantów jednocześnie. Na przykład następujące pliki do pobrania obrazów wersji TensorFlow na Twoją maszynę:
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 w 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 informacje o uruchamianiu platformy Docker .
Przykłady użycia obrazów tylko dla procesora
Sprawdźmy instalację TensorFlow przy użyciu latest
oznakowanego 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])))"
Zademonstrujmy więcej przepisów TensorFlow Docker. Rozpocznij 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 opracowany na komputerze 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ą udostępniane hostowi. Zwykle najlepiej jest 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 hosta: http://127.0.0.1:8888/?token=...
Wsparcie GPU
Docker to najłatwiejszy sposób na uruchomienie TensorFlow na GPU, ponieważ host wymaga tylko sterownika NVIDIA® ( zestaw narzędzi NVIDIA® CUDA® nie jest wymagany).
Zainstaluj zestaw narzędzi Nvidia Container Toolkit , aby dodać obsługę GPU NVIDIA® do platformy Docker. nvidia-container-runtime
jest dostępna tylko dla systemu Linux. Aby uzyskać szczegółowe informacje, zobacz często zadawane pytania dotyczące obsługi platformy nvidia-container-runtime
.
Sprawdź, czy karta graficzna jest dostępna:
lspci | grep -i nvidia
Sprawdź swoją instalację nvidia-docker
:
docker run --gpus all --rm nvidia/cuda nvidia-smi
Przykłady użycia obrazów obsługujących GPU
Pobierz i uruchom obraz TensorFlow z obsługą GPU (może to potrwać 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])))"
Konfiguracja obrazu obsługującego GPU może chwilę 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