Docker использует контейнеры для создания виртуальных сред, изолирующих установку TensorFlow от остальной системы. Программы TensorFlow запускаются в этой виртуальной среде, которая может совместно использовать ресурсы со своим хост-компьютером (доступ к каталогам, использование графического процессора, подключение к Интернету и т. д.). Образы TensorFlow Docker тестируются для каждой версии.
Docker — это самый простой способ включить поддержку графического процессора TensorFlow в Linux, поскольку на хост- компьютере требуется только драйвер графического процессора NVIDIA® ( инструментарий NVIDIA® CUDA® устанавливать не нужно).
Требования TensorFlow Docker
- Установите Docker на локальный хост- компьютер.
- Для поддержки графического процессора в Linux установите поддержку NVIDIA Docker .
- Обратите внимание на свою версию Docker с помощью
docker -v
. Для версий до 19.03 требуется nvidia-docker2 и флаг--runtime=nvidia
. В версиях , включая и после 19.03, вы будете использовать пакетnvidia-container-toolkit
и флаг--gpus all
. Оба варианта описаны на странице, указанной выше.
- Обратите внимание на свою версию Docker с помощью
Загрузите образ Docker TensorFlow
Официальные образы TensorFlow Docker находятся в репозитории tensorflow/tensorflow Docker Hub. Выпуски изображений помечаются в следующем формате:
Ярлык | Описание |
---|---|
latest | Последняя версия двоичного образа процессора TensorFlow. По умолчанию. |
nightly | Ночные сборки образа TensorFlow. (Нестабильно.) |
version | Укажите версию бинарного образа TensorFlow, например: 2.8.3 . |
У каждого базового тега есть варианты, которые добавляют или изменяют функциональность:
Варианты тегов | Описание |
---|---|
tag -gpu | Указанный тег выпуска с поддержкой графического процессора. ( См. ниже ) |
tag -jupyter | Указанный выпуск тега с Jupyter (включая учебные блокноты TensorFlow) |
Вы можете использовать несколько вариантов одновременно. Например, на ваш компьютер загружаются образы выпуска TensorFlow:
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
Запустите Docker-контейнер TensorFlow.
Чтобы запустить контейнер, настроенный с помощью TensorFlow, используйте следующую форму команды:
docker run [-it] [--rm] [-p hostPort:containerPort] tensorflow/tensorflow[:tag] [command]
Подробности смотрите в справочнике по запуску Docker .
Примеры использования изображений только для ЦП
Давайте проверим установку TensorFlow, используя latest
изображение с тегами. Docker загружает новый образ TensorFlow при первом запуске:
docker run -it --rm tensorflow/tensorflow \ python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
Давайте продемонстрируем еще несколько рецептов TensorFlow Docker. Запустите сеанс оболочки bash
в контейнере, настроенном TensorFlow:
docker run -it tensorflow/tensorflow bash
Внутри контейнера вы можете запустить сеанс python
и импортировать TensorFlow.
Чтобы запустить программу TensorFlow, разработанную на хост- компьютере внутри контейнера, смонтируйте каталог хоста и измените рабочий каталог контейнера ( -v hostDir:containerDir -w workDir
):
docker run -it --rm -v $PWD:/tmp -w /tmp tensorflow/tensorflow python ./script.py
Проблемы с разрешениями могут возникнуть, когда файлы, созданные в контейнере, доступны хосту. Обычно лучше всего редактировать файлы в хост-системе.
Запустите сервер Jupyter Notebook, используя ночную сборку TensorFlow:
docker run -it -p 8888:8888 tensorflow/tensorflow:nightly-jupyter
Следуйте инструкциям и откройте URL-адрес в веб-браузере вашего хоста: http://127.0.0.1:8888/?token=...
Поддержка графического процессора
Docker — это самый простой способ запустить TensorFlow на графическом процессоре, поскольку для хост -компьютера требуется только драйвер NVIDIA® ( набор инструментов NVIDIA® CUDA® не требуется).
Установите Nvidia Container Toolkit , чтобы добавить поддержку графических процессоров NVIDIA® в Docker. nvidia-container-runtime
доступен только для Linux. Подробности см. в разделе часто задаваемых вопросов о поддержке платформы nvidia-container-runtime
.
Проверьте, доступен ли графический процессор:
lspci | grep -i nvidia
Проверьте установку nvidia-docker
:
docker run --gpus all --rm nvidia/cuda nvidia-smi
Примеры использования изображений с поддержкой графического процессора
Загрузите и запустите образ TensorFlow с поддержкой графического процессора (это может занять несколько минут):
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])))"
Настройка образа с поддержкой графического процессора может занять некоторое время. Если вы неоднократно запускаете сценарии на основе графического процессора, вы можете использовать docker exec
для повторного использования контейнера.
Используйте последний образ графического процессора TensorFlow, чтобы запустить сеанс оболочки bash
в контейнере:
docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash