Докер строит алхимическую печь глубокого обучения

искусственный интеллект
Докер строит алхимическую печь глубокого обучения

Докер строит алхимическую печь глубокого обучения

В каких сценариях это необходимо?

В алхимическом процессе глубокого обучения TensorFlow и Pytorch, которые обычно используются в отрасли, часто нуждаются в ускорении с помощью графического процессора NVIDIA для обучения моделей. Его самая важная зависимость для параллельного ускорения разработана NVIDIA.cuda-toolkitупаковка

Версии TensorFlow и Pytorch, на которые опирается соответствующий код академических работ, часто бывают запутанными и сложными.Хотя виртуальная среда Anaconda может решить проблему разных версий TensorFlow и Pytorch, решить ее непросто.cuda-toolkitПроблемы с разными версиями, если несколько документов воспроизводят или реализуют зависимостиcuda-toolkitПри наличии конфликтующих версий часто приходится переустанавливать систему, что занимает много времени и сил.

В этой статье метод создания алхимической печи глубокого обучения в Linux, такой как Ubuntu, с помощью докера может хорошо решить вышеуказанные проблемы, позволяя исследователям тратить время на более важные алгоритмы и оптимизацию моделей.

принцип

Пользователям нужно только установить драйвер видеокарты в системе Linux, не нужно устанавливатьcuda-toolkit,cuda-toolkit, TensorFlow и Pytorch находятся в док-контейнере.

NVIDIA Container Toolkit

Принципиальная схема алхимической печи докера

Системные Требования

Версия gpu docker alchemy печи поддерживает следующие ОС, в основном поддерживает только Linux

установка докера

Более подробное описание процесса

Способ установки скрипта

curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun

запустить докер

sudo systemctl enable docker
sudo systemctl start docker

Создайте группу пользователей докера

По умолчанию команда docker взаимодействует с механизмом Docker с помощью сокета Unix. Только пользователь root и пользователи группы docker могут получить доступ к сокету Unix механизма Docker. Из соображений безопасности пользователь root обычно не используется напрямую в системах Linux. Поэтому рекомендуется добавлять пользователей, которым необходимо использовать docker, в группу пользователей docker.

Создайте группу докеров:

sudo groupadd docker

Добавьте текущего пользователя в группу докеров:

sudo usermod -aG docker ${USER}
sudo systemctl restart docker
su root
su ${USER}

Проверьте правильность установки Docker

docker run --rm hello-world

Зеркальное ускорение

NVIDIA Container Toolkit

Контейнерная архитектура NVIDIA, не поддерживается для пользователей Windows

Установка Ubuntu

Setup the stable repository and the GPG key:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

Install the nvidia-docker2 package (and dependencies) after updating the package listing:

sudo apt-get update
sudo apt-get install -y nvidia-docker2

/etc/docker/daemon.json необходимо следующее содержимое

Установите среду выполнения по умолчанию на nvidia

{
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

Restart the Docker daemon to complete the installation after setting the default runtime:

sudo systemctl restart docker

At this point, a working setup can be tested by running a base CUDA container:

sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

tensorflow-docker

Установка TensorFlow

dockerhubСуществуют различные версии tensorflow, при воспроизведении кода просто выберите соответствующую версию, а затем вытащите докер.

Установлены другие зависимости

Создайте новый Dockerfile, запишите другие зависимости, такие как OpenCV, в Dockerfile и используйте его после того, как docker создаст образ.

FROM tensorflow/tensorflow:1.4.0-gpu-py3
RUN pip install Keras==2.1.2 \
    && pip install numpy==1.13.3 \
    && pip install opencv-python==3.3.0.10 \
    && pip install h5py==2.7.1

RUN apt-get update \
    && apt-get install -y libsm6 \
    && apt-get install -y libxrender1 \
    && apt-get install -y libxext-dev

Если в Dockerfile есть apt и другие команды для установки зависимостей из чужих источников, процесс будет очень медленным или даже зависшим.Решением может быть монтирование агента (продолжение статьи о копании дыр) или сборка на зарубежной машине с помощью Alibaba Cloud Mirror Service (дополнительная статья Dig pit)

docker build -t dockerImageName:version .

pytorch-docker

pytorch похож на TensorFlow

Hubei.docker.com/Day/py torch/Боюсь…

pycharm отладить докер и запустить докер

Настройка зеркала среды Python

установить конфигурацию запуска отладки

--entrypoint -v /home/tml/vansin/paper/pix2code:/opt/project --rm

Приведенная выше конфигурация предназначена для монтирования локальной папки в каталог докера, чтобы обученные данные сохранялись локально, а не в докере.

После точки останова можно отлаживать

Reference

docs.NVIDIA.com/центр обработки данных/…

woohoo.tensorflow.org/install/doc…