如何使用 Docker 构建 YOLACT++?

Posted

技术标签:

【中文标题】如何使用 Docker 构建 YOLACT++?【英文标题】:How to build YOLACT++ using Docker? 【发布时间】:2021-08-06 18:35:47 【问题描述】:

我必须在 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。有谁知道问题出在哪里?

谢谢。

【问题讨论】:

错误信息表明 CUDA 未被认为是 python 编译器安装的。您是否尝试检查 CUDA 安装的存在(和路径)? 我检查了 cuda 是否可用它返回 False,但是当我检查 cuda 的版本返回我 10.1 时,我将 CUDA_PATH 设置为 CUDA_HOME="/usr/local/cuda-10.1"。跨度> 好的,如果它仍然显示using CUDA_HOME='/usr/local/cuda',那么您的CUDA_HOME 设置不起作用。 我该如何解决这个问题? 【参考方案1】:

您应该尝试在 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编译器是否看到它。

【讨论】:

它仍然说:没有找到 CUDA 运行时,使用 CUDA_HOME='/usr/local/cuda-10.1' 所以路径没有问题。你说cuda.is_available() 返回假......那么你必须找出原因。也许你可以检查***.com/questions/48152674/…【参考方案2】:

解决方案:

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


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

然后我重新启动 docker daemon:

sudo system restart docker

它解决了我的问题。

【讨论】:

以上是关于如何使用 Docker 构建 YOLACT++?的主要内容,如果未能解决你的问题,请参考以下文章

当我使用 YOLACT 运行 train.py 时,我收到错误 KeyError: 0

yolact_edge在Jetson Xavier NX上部署yolact_edge(附资源)

yolact_edge训练自己的yolact_edge模型(并部署在Jetson Xavier上)

docker镜像构建

如何定义使用 docker-compose 构建的图像的名称

如何在谷歌云构建中将参数传递给 docker run