conda下在Ubuntu 16.04+CUDA9.0+cudNN7环境中配置detectron
前言
最近在学习3D人体姿态检测,3dVideoPose效果不错,想跟着官方的代码说明尝试一下,但是发现环境配置就折腾了很久。主要是因为Human3.6m数据集下载起来比较麻烦,所以想先尝试下in the wild版本,然而这个需要安装detectron,而detectron又要依赖Caffe2和COCOAPI,Caffe2实际上配置还是比较麻烦的,网上的踩坑大法尝试了很多都没用,好在最后解决了,这里专门记录一下。
1. 概述
由于Caffe2已经集成到了pytorch1.0中,所以直接安装pytorch即可,但是有个问题要注意,一定要判断自己的cuda和cadnn的版本,安装对应的pytorch才行。不能完全按照官方或者别的参考链接中的来安装,否则会出现安装之后无法使用GPU的情况。具体过程如下(针对已经安装好cuda/cadnn/nccl的情况):
2. 创建虚拟环境
//创建虚拟环境
conda create -n detectron python=3.6.0
//激活环境
conda activate detectron
3. 安装Caffe2(pytorch1.0)
(1)查看本机环境
- 查看CUDA版本
cat /usr/local/cuda/version.txt
- 查看cudnn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
(2)官网查找具体安装语句
链接:https://github.com/pytorch/pytorch
ReadMe中讲得很详细,注意从源码安装,注意直接安装的Caffe2版本不够新,无法安装detectron
这个链接打开后会发现需要cuda9.2版本以上,cuDNNv7以上,如果自己的版本低于这两个就要下载以前的版本:从上面这幅图中的“Previous Version”进入PyTorch.org,找到自己版本对应的安装语句:
找到和自己配置匹配的最新版本,复制语句执行即可:
(我的配置是cuda 9.0,Linux系统anaconda环境,所以选择划线命令)
conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=9.0 -c pytorch
(3)检验Caffe2是否可用(漫长等待后)
- 检验Caffe2是否安装成功
python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
- 检验是否能使用GPU(需要大于0)
python -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'
- 注意
验证过程显示Failure,terminal重新输入 python -c ‘from caffe2.python import core’,可以显示错误信息
错误1: No module named google.protobuf.internal 解决方法:pip install protobuf
错误2: no moudle named past.builtins 解决方法:pip install future
4. 安装COCO API
# COCOAPI=/path/to/clone/cocoapi
git clone https://github.com/cocodataset/cocoapi.git $COCOAPI
cd $COCOAPI/PythonAPI
# Install into global site-packages
make install
# Alternatively, if you do not have permissions or prefer
# not to install the COCO API into global site-packages
python setup.py install --user
几种错误方式:
- 在make install 如出现错误
解决方法:error: pycocotools/_mask.c: No such file or directory:
pip install cython
- 如果是conda环境中失败,可以换成
主要还是要看错误提示,一般都是有依赖没装才会失败,没有那么多网络问题,例如make install后出现下图信息,是缺少matplotlib,安装上就好了(conda install matplotlib)conda install cython
5. 安装detectron
(1)官网clone源码
# DETECTRON=/path/to/clone/detectron
git clone https://github.com/facebookresearch/detectron $DETECTRON
(2)安装依赖
pip install -r $DETECTRON/requirements.txt
注意:conda下这一步可能会出问题,pip改成conda也不行——解决方法,到项目网站https://github.com/facebookresearch/detectron,
打开requirements.txt文件(里面是需要的依赖项和版本号),然后“conda list”查看已经安装的软件和版本,没有的用“conda install xxx=x.x”手动安装。
(3)安装detectron
cd $DETECTRON #安装路径
make
(4)测试detectron是否安装成功
python $DETECTRON/detectron/tests/test_spatial_narrow_as_op.py
注意路径:打开项目文件后还有一个detectron文件。
结果是OK即可。