为了使用facebook 的detectron不得装caffe2,但是现在caffe2被整合到pytorch中安装并不容易。在ubuntu上经过一个星期的caffe2煎熬之后,终于做了一个决定,不装了。
所以就出了这篇博客。。。。。
在被大神无数次推荐之后,终于打算在Ubuntu上装一个docker版的detectron。
什么是docker?我不解释,请看Docker 教程。我花了一个下午把docker熟悉了一边。
docker的镜像就是把软件和环境一起打包发布。必要的时候可以更改里面的代码。反正我是要改detectron上一些代码的。。。。。。
因为要用docker的detectron进行训练,需要用到GPU。就必须要安装一个nvidia-docker。docker-ce和nvidia-docker两个都要装,而且两个的镜像文件是共享的。。
这里的docker和nvidia-docker不是每台机器都适用,毕竟我按照别人的教程来装,出了很多问题。。
docker-ce
- 首先,卸载旧版的docker
sudo apt-get remove docker docker-engine docker.io docker-ce
2.开始安装
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
- 测试
sudo docker run hello-world
验证docker是否安装成功。如果安装完成会有以下提示
nvidia-docker
1.下载安装:
wget -P /tmp [https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb](https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb)
sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb
这里的deb被下载到tmp文件下。。
之后怎么加速下载镜像参考这里.
- 安装之后发现我的nvidia-docker使用不了。需要安装nvidia-modprobe
看这里
执行如下:
wget -P /tmp http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/nvidia-modprobe_390.30-0ubuntu1_amd64.deb
sudo dpkg -i /tmp/nvidia-modprobe*.deb && rm /tmp/nvidia-docker*.deb
3.测试
其实没必要测试。。。。。
nvidia-docker run –rm nvidia/cuda nvidia-smi
安装detectron
- 下载 detectron镜像
sudo docker pull housebw/detectron:latest
- 测试
运行即可
sudo nvidia-docker run -it -v $PWD:/work housebw/detectron:latest /bin/bash
- 检测caff2是否安装成功
python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
- 检测能否调用cuda
python -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'
检测能否使用这个api
python detectron/tests/test_spatial_narrow_as_op.py
安装结束了