Docker wykorzystuje kontenery 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 procesora graficznego, łączenie się z Internetem itp.). Obrazy Dockera TensorFlow są testowane dla każdej wersji.
Docker to najprostszy sposób na włączenie obsługi procesora graficznego TensorFlow w systemie Linux, ponieważ na komputerze hosta wymagany jest jedynie sterownik procesora graficznego NVIDIA® (nie trzeba instalować zestawu narzędzi NVIDIA® CUDA® Toolkit ).
Wymagania dotyczące platformy Docker TensorFlow
- Zainstaluj Docker na lokalnym komputerze -hoście .
- Aby uzyskać obsługę procesora graficznego w systemie Linux, zainstaluj obsługę 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 zawierających 19.03 i nowszych będziesz używać pakietunvidia-container-toolkit
i flagi--gpus all
. Obie opcje są udokumentowane na stronie, do której link znajduje się powyżej.
- Zanotuj swoją wersję Dockera za pomocą
Pobierz obraz okna dokowanego TensorFlow
Oficjalne obrazy Dockera TensorFlow znajdują się w repozytorium tensorflow/tensorflow Docker Hub. Publikacje obrazów są oznaczane w następującym formacie:
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 (zawiera notesy z samouczkami TensorFlow) |
Możesz używać wielu wariantów jednocześnie. Na przykład następujące pliki do pobrania obrazów wydania TensorFlow na Twój 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 Docker TensorFlow
Aby uruchomić kontener skonfigurowany za pomocą TensorFlow, użyj następującego formularza polecenia:
docker run [-it] [--rm] [-p hostPort:containerPort] tensorflow/tensorflow[:tag] [command]
Szczegółowe informacje można znaleźć w dokumentacji dotyczącej uruchamiania okna dokowanego .
Przykłady wykorzystujące obrazy tylko dla procesora
Sprawdźmy instalację TensorFlow przy użyciu latest
oznaczonego 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 Docker TensorFlow. Rozpocznij sesję powłoki bash
w kontenerze skonfigurowanym za pomocą 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 zostaną udostępnione hostowi. Zwykle najlepiej jest edytować pliki w systemie hosta.
Uruchom serwer Jupyter Notebook, korzystając z 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 uruchomienia TensorFlow na GPU, ponieważ maszyna hosta wymaga jedynie sterownika NVIDIA® (zestaw narzędzi NVIDIA® CUDA® Toolkit nie jest wymagany).
Zainstaluj zestaw narzędzi Nvidia Container Toolkit , aby dodać obsługę procesorów graficznych NVIDIA® do platformy Docker. nvidia-container-runtime
jest dostępny tylko dla systemu Linux. Aby uzyskać szczegółowe informacje, zobacz często zadawane pytania dotyczące wsparcia platformy nvidia-container-runtime
.
Sprawdź, czy procesor graficzny jest dostępny:
lspci | grep -i nvidia
Sprawdź instalację nvidia-docker
:
docker run --gpus all --rm nvidia/cuda nvidia-smi
Przykłady wykorzystania obrazów z obsługą GPU
Pobierz i uruchom obraz TensorFlow z obsługą procesora graficznego (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])))"
Konfiguracja obrazu obsługującego procesor graficzny może zająć trochę czasu. Jeśli wielokrotnie uruchamiasz skrypty oparte na GPU, możesz użyć docker exec
, aby ponownie wykorzystać kontener.
Użyj najnowszego obrazu GPU TensorFlow, aby rozpocząć sesję powłoki bash
w kontenerze:
docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash