Ubuntu + pytorch + cuda (opcional)
Para usar esta imagem, você deve ter o mecanismo do Docker instalado. As instruções para configurar o Docker Engine estão disponíveis no site do Docker.
Se você possui uma placa gráfica NVIDIA compatível com CUDA, poderá usar uma versão habilitada para CUDA da imagem Pytorch para ativar a aceleração do hardware. Eu só testei isso no Ubuntu Linux.
Em primeiro lugar, verifique se você instala os drivers NVIDIA apropriados. No Ubuntu, descobri que a maneira mais fácil de garantir que você tenha a versão certa dos drivers configurada é instalando uma versão do CUDA pelo menos tão nova quanto a imagem que você pretende usar na página oficial da NVIDIA CUDA. Como exemplo, se você pretende usar a imagem cuda-10.1 , configure o CUDA 10.1 ou o CUDA 10.2, deve garantir que você tenha os drivers de gráficos corretos.
Você também precisará instalar o NVIDIA Container Toolkit para ativar o acesso ao dispositivo GPU nos contêineres do Docker. Isso pode ser encontrado no NVIDIA/NVIDIA-DOCKER.
As imagens pré -construídas estão disponíveis no Docker Hub sob o nome Anibali/Pytorch.
Por exemplo, você pode puxar uma imagem com Pytorch 2.0.1 e CUDA 11.8 usando:
$ docker pull anibali/pytorch:2.0.1-cuda11.8 É possível executar programas Pytorch dentro de um contêiner usando o comando python3 . Por exemplo, se você estiver dentro de um diretório que contém algum projeto Pytorch com a entrada main.py , poderá executá -lo com o seguinte comando:
docker run --rm -it --init
--gpus=all
--ipc=host
--user= " $( id -u ) : $( id -g ) "
--volume= " $PWD :/app "
anibali/pytorch python3 main.pyAqui está uma descrição das opções da linha de comando do docker mostradas acima:
--gpus=all : necessário se estiver usando CUDA, opcional de outra forma. Passa as placas gráficas do host para o contêiner. Você também pode controlar com mais precisão quais placas gráficas estão expostas usando esta opção (consulte a documentação em https://github.com/nvidia/nvidia-docker).--ipc=host : exigido se estiver usando multiprocessamento, conforme explicado em https://github.com/pytorch/pytorch#docker-image.--user="$(id -u):$(id -g)" : define o usuário dentro do contêiner para corresponder ao seu usuário e ID do grupo. Opcional, mas é útil para escrever arquivos com propriedade correta.--volume="$PWD:/app" : monta o diretório de trabalho atual no contêiner. O diretório de trabalho padrão dentro do contêiner é /app . Opcional.Se você estiver executando em um host Linux, poderá executar o código dentro do contêiner do Docker para exibir gráficos usando o servidor X do host (isso permite que você use o IMSHOW do OpenCV, por exemplo). Aqui descrevemos uma maneira rápida e suja (mas insegura) de fazer isso. Para um guia mais abrangente sobre o GUIS e o Docker, consulte http://wiki.ros.org/docker/tutorials/gui.
Na corrida do host:
sudo xhost +local:root Você pode revogar essas permissões de acesso posteriormente com sudo xhost -local:root . Agora, quando você executa um contêiner, adicione as opções -e "DISPLAY" e --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" . Isso fornecerá ao contêiner seu soquete X11 para comunicação e seu ID de exibição. Aqui está um exemplo:
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() "A maneira recomendada de adicionar dependências adicionais a uma imagem é criar seu próprio dockerfile usando uma das imagens Pytorch deste projeto como base.
Por exemplo, digamos que você precisa de OpenCV e deseja trabalhar com o Pytorch 2.0.1. Você pode criar seu próprio Dockerfile usando anibali/pytorch:2.0.1-cuda11.8-ubuntu22.04 como a imagem base e instalar o OpenCV usando etapas adicionais de construção:
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 Os DockerFiles no dockerfiles/ Diretório são gerados automaticamente pelo script manager.py usando detalhes no images.yml e os modelos nos templates/ .
Aqui está um exemplo de fluxo de trabalho que ilustra como criar um novo Dockerfile.
templates/ se nenhum dos existentes for apropriado.images.yml (consulte as entradas existentes para exemplos).python manager.py . Um novo diretório que contém o Dockerfile será criado no dockerfiles/ .