Ubuntu + Pytorch + CUDA(可选)
为了使用此图像,您必须安装Docker引擎。设置Docker Engine的说明可在Docker网站上找到。
如果您拥有与CUDA兼容的NVIDIA图形卡,则可以使用启用CUDA的Pytorch图像的版本来启用硬件加速度。我只在Ubuntu Linux中对此进行了测试。
首先,确保安装合适的NVIDIA驱动程序。在Ubuntu上,我发现确保您拥有正确版本的驱动程序的最简单方法是通过安装CUDA版本,至少与打算通过官方NVIDIA CUDA下载页面使用的图像一样新。例如,如果您打算使用cuda-10.1图像,则设置CUDA 10.1或CUDA 10.2应确保您具有正确的图形驱动程序。
您还需要安装NVIDIA容器工具包,以在Docker容器中启用GPU设备访问。这可以在NVIDIA/NVIDIA-DOCKER上找到。
预先构建的图像可在Docker Hub上以Anibali/Pytorch的名义获得。
例如,您可以使用Pytorch 2.0.1和CUDA 11.8使用:
$ docker pull anibali/pytorch:2.0.1-cuda11.8可以使用python3命令在容器内运行Pytorch程序。例如,如果您在一个包含entrypoint main.py的Pytorch项目的目录中,则可以使用以下命令运行:
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)" :将用户设置在容器内,以匹配您的用户和组ID。可选,但对于编写具有正确所有权的文件很有用。--volume="$PWD:/app" :将当前的工作目录安装到容器中。容器中的默认工作目录IS /app 。选修的。如果您在Linux主机上运行,则可以在Docker容器内部运行代码,以使用主机X服务器显示图形(例如,您可以使用OpenCV的IMShow)。在这里,我们描述了一种快速(但不安全的)方式。有关GUIS和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插座,以进行通信和显示ID。这是一个例子:
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() "向图像添加其他依赖关系的推荐方法是,使用该项目的Pytorch图像之一创建自己的Dockerfile。
例如,假设您需要OpenCV并希望与Pytorch 2.0.1合作。您可以使用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.48dockerfiles/ Directory中的Dockerfiles是由manager.py脚本自动生成images.yml templates/
这是一个示例工作流,说明了如何创建新的Dockerfile。
templates/如果所有现有模板都不合适。images.yml中创建一个新条目(有关示例,请参见现有条目)。python manager.py来生成Dockerfile。将在dockerfiles/中创建一个包含Dockerfile的新目录。