Докер строит алхимическую печь глубокого обучения
В каких сценариях это необходимо?
В алхимическом процессе глубокого обучения TensorFlow и Pytorch, которые обычно используются в отрасли, часто нуждаются в ускорении с помощью графического процессора NVIDIA для обучения моделей. Его самая важная зависимость для параллельного ускорения разработана NVIDIA.cuda-toolkitупаковка
Версии TensorFlow и Pytorch, на которые опирается соответствующий код академических работ, часто бывают запутанными и сложными.Хотя виртуальная среда Anaconda может решить проблему разных версий TensorFlow и Pytorch, решить ее непросто.cuda-toolkitПроблемы с разными версиями, если несколько документов воспроизводят или реализуют зависимостиcuda-toolkitПри наличии конфликтующих версий часто приходится переустанавливать систему, что занимает много времени и сил.
В этой статье метод создания алхимической печи глубокого обучения в Linux, такой как Ubuntu, с помощью докера может хорошо решить вышеуказанные проблемы, позволяя исследователям тратить время на более важные алгоритмы и оптимизацию моделей.
принцип
Пользователям нужно только установить драйвер видеокарты в системе Linux, не нужно устанавливатьcuda-toolkit,cuda-toolkit, TensorFlow и Pytorch находятся в док-контейнере.
Принципиальная схема алхимической печи докера
Системные Требования
Версия 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
Приведенная выше конфигурация предназначена для монтирования локальной папки в каталог докера, чтобы обученные данные сохранялись локально, а не в докере.
После точки останова можно отлаживать