如何使用 Docker 构建 YOLACT++?

How to build YOLACT++ using Docker?

我必须在 docker 环境中构建 yolact++(我使用的是 sagemaker notebook)。像这样

ARG PYTORCH="1.3"
ARG CUDA="10.1"
ARG CUDNN="7"
 
FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel

我想 运行 这个

COPY yolact/external/DCNv2/setup.py /opt/ml/code/external/DCNv2/setup.py
RUN cd /opt/ml/code/external/DCNv2 && \
python setup.py build develop

但是我得到了这个错误:

No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda'
Traceback (most recent call last):
File "setup.py", line 64, in <module>
ext_modules=get_extensions(),
File "setup.py", line 41, in get_extensions
raise NotImplementedError('Cuda is not available')
NotImplementedError: Cuda is not available

但是环境支持CUDA。任何人都知道问题出在哪里?

谢谢。

您应该尝试像这样在 dockerfile 中设置 CUDA_HOME 变量:

ARG PYTORCH="1.3"
ARG CUDA="10.1"
ARG CUDNN="7"

FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel
ARG CUDA_HOME="/usr/local/cuda-10.1"

...然后看看 python 编译器是否看到它。

解决方案:

我编辑 /etc/docker/daemon.json 内容为:

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

然后我重新启动 docker 守护程序:

sudo system restart docker

它解决了我的问题。