使用nvidia/cuda docker blendMask

过程

1)在本机上安装docker,我使用的是aws ec2的ubuntu版本的云服务器,该服务器已经有docker。
2)从github上pull相关的镜像,参考github上的readme
3)使用此镜像生成容器,同时本地的myblendmask文件夹作为数据卷,方便给容器添加数据

docker run -it --name=adet_server --gpus all -v /home/ubuntu/myblendmask:/root/code/adet/input myadet:v2

使用,在终端使用pwd获得绝对路径
myblendmask被上锁了,不方便从本地上传到服务器(ec2),使用该命令解锁

sudo chown ubuntu myblendmask/ -R

4)使用 docker commit 命令将此容器打包为一个镜像,作为1.0版本

docker commit -a "cui" -m "have nvidia volume" a404c6c174a2  myadet:v1 
#a是作者,m为描述,a404c6c174a2为容器id,myadet:v1 为生成的镜像名

5)使用此容器运行demo

python demo/demo.py --config-file configs/BlendMask/R_101_dcni3_5x.yaml --input ./input/input1.png --output ./input/result --opts MODEL.WEIGHTS ./input/R_101_dcni3_5x.pth
遇到的问题

1)运行的时候报 没有v2模块
需要为容器安装opencv

pip install opencv-python==3.4.10.35 -i https://pypi.doubanio.com/simple

也可使用 conda install,不过最好事先更换conda的镜像源为清华源。

2)没有nvidia 驱动

  1. 解决办法

需要安装 nvidia-container-toolkit

sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit

重启

sudo systemctl restart dockerd
  1. 验证gpu是否可用
    在终端输入
python
import torch
print(torch.cuda.is_available())

如果显示true,证明可用了。
使用查看nvidia驱动

nvidia-smi

3)RuntimeError: Not compiled with GPU support
运行nvcc --version查看你的cuda编译器版本,pytorch-gpu也建议安装对应版本。
如果安装的pytorch版本和nvcc版本一致,可看一下CUDA路径是否在~/.bashrc中设置正确,参考的配置路径如下:

# vim ~/.bashrc
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/lib
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64

之后source ~/.bashrc,然后删除detectron2/build文件夹(如果你之前已经编译过一遍了),

rm -rf build

然后重新编译dete2tron2

python3 -m pip install -e .

(重要的是删除build,并重新编译)

使用ubuntu16.04运行

(好用的容器:fd5481103521

创建nvidia/cuda的镜像

1 更改官网下载的dockerfile
更改了git的链接,加上模型,数据链接;更改pytorch的版本,nvidia/cuda的版本。如下:

FROM nvidia/cuda:10.2-devel-ubuntu16.04

RUN apt-get update && apt-get install -y libglib2.0-0 && apt-get clean

RUN apt-get install -y wget htop byobu git gcc g++ vim libsm6 libxext6 libxrender-dev lsb-core

RUN cd /root && wget https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh

RUN cd /root && bash Anaconda3-2020.07-Linux-x86_64.sh -b -p ./anaconda3

RUN bash -c "source /root/anaconda3/etc/profile.d/conda.sh && conda install -y pytorch==1.9.0 torchvision cudatoolkit=10.2 -c pytorch"

RUN bash -c "/root/anaconda3/bin/conda init bash"

WORKDIR /root
RUN mkdir code
WORKDIR code

RUN git clone https://gitee.com/cuicui7/detectron2.git
RUN bash -c "source /root/anaconda3/etc/profile.d/conda.sh && conda activate base && cd detectron2 && python setup.py build develop"

RUN git clone https://gitee.com/cuicui7/AdelaiDet.git adet

WORKDIR adet
RUN bash -c "source /root/anaconda3/etc/profile.d/conda.sh && conda activate base && python setup.py build develop"

RUN git clone https://gitee.com/cuicui7/data.git
RUN wget https://cloudstor.aarnet.edu.au/plus/s/glqFc13cCoEyHYy/download -O fcos_R_50_1x.pth

RUN rm /root/Anaconda3-2020.07-Linux-x86_64.sh

2 进入容器

docker run -it --runtime=nvidia --privileged --name "myblendmask" -v $PWD:/home/share --gpus all mymask:v1 bash

1)验证环境

(base) root@fd5481103521:~/code/adet# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89

(base) root@fd5481103521:~/code/adet# python
Python 3.8.3 (default, Jul  2 2020, 16:21:59)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.backends.cudnn.version())
7605
>>> print(torch.cuda.is_available())
True
>>> import cv2
>>> cv2.__version__
'3.4.10'

(这是安装cv2之后记录的)
2)安装cv2

pip install opencv-python==3.4.10.35 -i https://pypi.doubanio.com/simple

3)运行

python demo/demo.py --config-file configs/FCOS-Detection/R_50_1x.yaml --input data/000050.png --output ./result --opts MODEL.WEIGHTS fcos_R_50_1x.pth

运行结果为当前目录下的result.png,cp到/home/share,这样在宿主机就能看到了。也可以如下,在生成容器的时候多挂载一个文件:

--volume "${PWD}/input:/input" \
--volume "${PWD}/output:/output"

4)更改文件
复制本地文件到/home/share,cp到adet文件夹下,直接运行

python demo/demo1.py
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值