Join TensorFlow at Google I/O, May 11-12 Register now

Докер

Docker использует контейнеры для создания виртуальных сред, которые изолируют установку TensorFlow от остальной системы. Программы TensorFlow запускаются в этой виртуальной среде, которая может совместно использовать ресурсы со своим хост-компьютером (получать доступ к каталогам, использовать графический процессор, подключаться к Интернету и т. Д.). Образы TensorFlow Docker тестируются для каждого выпуска.

Docker - это самый простой способ включить поддержку TensorFlow GPU в Linux, поскольку на хост- машине требуется только драйвер NVIDIA® GPU ( NVIDIA® CUDA® Toolkit устанавливать не требуется).

Требования к TensorFlow Docker

  1. Установите Docker на свой локальный хост- компьютер.
  2. Для поддержки графического процессора в Linux установите поддержку NVIDIA Docker .
    • Обратите внимание на свою версию Docker с помощью docker -v . Версии до 19.03 требуют nvidia-docker2 и флаг --runtime=nvidia . В версиях, включая и после 19.03, вы будете использовать пакет nvidia-container-toolkit и флаг --gpus all . Оба варианта задокументированы на указанной выше странице.

Загрузите образ TensorFlow Docker

Официальные образы TensorFlow Docker находятся в репозитории Tenorflow / tensorflow Docker Hub. Релизы изображений помечаются в следующем формате:

Тег Описание
latest Последний выпуск двоичного образа процессора TensorFlow. По умолчанию.
nightly Ночные сборки образа TensorFlow. (Нестабильно.)
version Укажите версию двоичного образа TensorFlow, например: 2.1.0
devel Ночные сборки master среды разработки TensorFlow. Включает исходный код TensorFlow.
custom-op Специальный экспериментальный образ для разработки пользовательских операций TF. Больше информации здесь .

У каждого базового тега есть варианты, которые добавляют или изменяют функциональность:

Варианты тегов Описание
tag -gpu Указанный выпуск тега с поддержкой 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

Запустите контейнер TensorFlow Docker

Чтобы запустить контейнер, сконфигурированный с помощью TensorFlow, используйте следующую форму команды:

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

Подробнее см. В справочнике по запуску докеров .

Примеры использования изображений только для ЦП

Давайте проверим установку 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=...

Поддержка GPU

Docker - это самый простой способ запустить TensorFlow на графическом процессоре, поскольку для хост- машины требуется только драйвер NVIDIA® ( NVIDIA® CUDA® Toolkit не требуется).

УстановитеNvidia Container Toolkit, чтобы добавить поддержку NVIDIA® GPU в 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])))"

Настройка образа с поддержкой графического процессора может занять некоторое время. При многократном запуске скриптов на базе GPU вы можете использовать docker exec для повторного использования контейнера.

Используйте последний образ графического процессора TensorFlow, чтобы запустить сеанс оболочки bash в контейнере:

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