Ubuntu + pytorch + cuda (необязательно)
Чтобы использовать это изображение, у вас должен быть установлен Docker Engine. Инструкции по настройке Docker Engine доступны на веб -сайте Docker.
Если у вас есть графическая карта NVIDIA, совместимая с CUDA, вы можете использовать версию Pytorch с поддержкой CUDA для обеспечения ускорения аппаратного обеспечения. Я только проверил это в Ubuntu Linux.
Во -первых, убедитесь, что вы установите соответствующие драйверы Nvidia. На Ubuntu я обнаружил, что самый простой способ обеспечить правильную версию настроек драйверов - это установить версию CUDA , по крайней мере, столь же новым, как и изображение, которое вы собираетесь использовать через официальную страницу загрузки NVIDIA CUDA. В качестве примера, если вы намерены использовать изображение cuda-10.1 , настройка CUDA 10.1 или CUDA 10.2 должно убедиться, что у вас есть правильные драйверы графики.
Вам также необходимо будет установить инструментарий NVIDIA Container Toolkit, чтобы включить доступ к устройству графического процессора в контейнерах Docker. Это можно найти в Nvidia/Nvidia-Docker.
Предварительные изображения доступны на Docker Hub под именем Anibali/Pytorch.
Например, вы можете вытащить изображение с Pytorch 2.0.1 и Cuda 11.8, используя:
$ docker pull anibali/pytorch:2.0.1-cuda11.8 Можно запустить программы Pytorch внутри контейнера, используя команду python3 . Например, если вы находитесь в каталоге, содержащем какой -то проект Pytorch с entrypoint main.py , вы можете запустить его со следующей командой:
docker run --rm -it --init
--gpus=all
--ipc=host
--user= " $( id -u ) : $( id -g ) "
--volume= " $PWD :/app "
anibali/pytorch python3 main.pyВот описание параметров командной строки Docker, показанных выше:
--gpus=all : требуется, если использование CUDA, необязательно в противном случае. Передает видеокарты от хоста в контейнер. Вы также можете более точно контролировать, какие видеокарты выставлены с использованием этой опции (см. Документацию по адресу https://github.com/nvidia/nvidia-docker).--ipc=host : требуется, если использование многопроцессы, как объяснено по адресу https://github.com/pytorch/pytorch#docker-image.--user="$(id -u):$(id -g)" : устанавливает пользователя внутри контейнера, чтобы соответствовать вашему пользователю и идентификатору группы. Необязательно, но полезен для написания файлов с правильным владением.--volume="$PWD:/app" : текущий рабочий каталог в контейнер. Рабочий каталог по умолчанию внутри контейнера IS /app . Необязательный.Если вы работаете на хосте Linux, вы можете получить код, работающий внутри контейнера Docker для отображения графики с использованием сервера host x (это позволяет использовать, например, Imshow OpenCV). Здесь мы описываем быстрый (но неуверенный) способ сделать это. Для более полного руководства по GUI и Docker проверить http://wiki.ros.org/docker/tutorials/gui.
На хосте забегает:
sudo xhost +local:root Вы можете отозвать эти разрешения на доступ позже с sudo xhost -local:root . Теперь, когда вы запускаете контейнер, убедитесь, что вы добавляете параметры -e "DISPLAY" и --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" . Это предоставит контейнер с вашим розеткой X11 для связи и идентификатором дисплея. Вот пример:
docker run --rm -it --init
--gpus=all
-e " DISPLAY " --volume= " /tmp/.X11-unix:/tmp/.X11-unix:rw "
anibali/pytorch python3 -c " import tkinter; tkinter.Tk().mainloop() "Рекомендуемый способ добавления дополнительных зависимостей к изображению состоит в том, чтобы создать свой собственный Dockerfile, используя одно из изображений Pytorch из этого проекта в качестве базы.
Например, допустим, что вам требуется OpenCV и хотите работать с Pytorch 2.0.1. Вы можете создать свой собственный DockerFile, используя anibali/pytorch:2.0.1-cuda11.8-ubuntu22.04 в качестве базового изображения и установить OpenCV, используя дополнительные шаги сборки:
FROM anibali/pytorch:2.0.1-cuda11.8-ubuntu22.04
# Set up time zone.
ENV TZ=UTC
RUN sudo ln -snf /usr/share/zoneinfo/$TZ /etc/localtime
# Install system libraries required by OpenCV.
RUN sudo apt-get update
&& sudo apt-get install -y libgl1-mesa-glx libgtk2.0-0 libsm6 libxext6
&& sudo rm -rf /var/lib/apt/lists/*
# Install OpenCV from PyPI.
RUN pip install opencv-python==4.5.1.48 Dockerfiles в dockerfiles/ Directory автоматически генерируется сценарием manager.py , используя детали в images.yml и шаблоны в templates/ .
Вот пример рабочий процесс, иллюстрирующий, как создать новый Dockerfile.
templates/ Если ни один из существующих не подходит.images.yml (см. Существующие записи для примеров).python manager.py . Новый каталог, содержащий Dockerfile, будет создан в dockerfiles/ .