pytorch1.3运行faster-rcnn
配置详情:
python3.7
pytorch1.3
RTX2080TI SLI
CUDA 10.0
项目地址:
https://pypi.tuna.tsinghua.edu.cn/simple/ (应该是github上pytorch版本的faster-rcnn stars最多的了,且支持pytorch1.0 +)
参考了国内博客:
https://www.cnblogs.com/FZfangzheng/p/10852141.html
<>
一般配置参考README文件,简单说下:
1、克隆项目
git clone https://github.com/jwyang/faster-rcnn.pytorch.gi
2、创建data文件夹
cd faster-rcnn.pytorch && mkdir data
3、准备数据(创建软连接,方便数据在多个项目中复用)
以VOC2007为例 先下载数据集,解压缩,最后应在VOCdevkit目录下有VOC2007/Annotations等文件夹
cd 之前创建的data文件夹,创建软连接 ln -s $VOCdevkit(自己的VOC路径) VOCdevkit2007
删除软连接方式:在软连接所在路径下 rm -rf VOCdevkit2007
4、下载预训练模型(国外,比较慢,有VGG和ResNet101的Caffe版本,项目作者说经过对比后caffe版的比pytorch的要高几个点)
5、安装所需依赖
pip install -r requirements.txt
6、编译依赖
cd lib
python setup.py build develo
7、Train
CUDA_VISIBLE_DEVICES=$GPU_ID python trainval_net.py \
--dataset pascal_voc --net vgg16 \
--bs $BATCH_SIZE --nw $WORKER_NUMBER \
--lr $LEARNING_RATE --lr_decay_step $DECAY_STEP \
--cuda
(GPU_ID :哪块GPU、
BATCH_SIZE :batch size大小、
WORKER_NUMBER :取决于你的Gpu能力,我用的是2080ti,所以选择4。差点的gpu可以选小一点的值、 LEARNING_RATE 、DECAY_STEP 学习率设置,可不调整)
训练好的模型会默认保存在项目的model文件夹下,可以新建这个文件夹
因为本文所用的环境比较新,遇到了不少坑,下面一个一个说:
1、直接clone下来的是master分支,是基于pytorch-0.4的
所以要使用pytorch-1.0的branch,在faster-rcnn.pytorch下打开终端,
git branch -a # 先查看当前远端分支情况
git checkout origin/pytorch-1.0 # 选择远端pytorch-1.0分支

或者也可以直接clone分支:
git clone -b pytorch-1.0 https://github.com/jwyang/faster-rcnn.pytorch.git
2、编译依赖
cd lib
python setup.py build develop
此时会进行项目依赖的各种编译,耐心等待
3、此时按照README文件应该是可以运行了,但还是那个原因,版本太高,报错了
ImportError: cannot import name '_mask' from 'pycocotools'
原因应该是项目中/lib/pycocotools里的文件过于老旧,将https://github.com/cocodataset/cocoapi/tree/master/PythonAPI/pycocotools中的文件复制到/lib/pycocotools文件中,然后进入lib目录下,执行下列代码
python setup.py build develop
也可以:
git clone https://github.com/pdollar/coco
在coco/PythonAPI下make,将pycocotools文件替换faster-rcnn/lib下的pycocotools文件夹
4、本文还遇到
ImportError: cannot import name imread
将scipy降级
pip install scipy==1.2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/
最后成功运行:

