Pytorch版Faster R-CNN配置运行填坑记录

Pytorch Faster R-CNN配置运行填坑记录

  • 系统环境配置
    • 项目地址
    • 运行环境
  • 问题汇总
  • 运行测试

系统环境配置

之前一直在用Nvidia GTX1080Ti做实验,用到的代码及整套开发环境的版本都较老(Python2.7+Pytorch0.4.0+CUDA8.0),由于20系列显卡或30系列显卡都不再支持CUDA8.0,所以需要进行一次整体升级,在此做一个升级配置环境的填坑记录。

项目地址

https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0
注意是pytorch-1.0分支不是master分支,仔细阅读 README.md 文件,准备好需要的数据集和预训练模型,安装好相关依赖包,一定要记得执行以下命令:

cd lib
python setup.py build develop

运行环境

源项目推荐环境为:

  • Python 2.7 or 3.6
  • Pytorch 1.0 (for Pytorch 0.4.0 go to master branch)
  • CUDA 8.0 or higher

我的配置环境:

  • Python3.7
  • Pytorch1.4.0
  • CUDA10.1
  • Nvidia RTX2080Ti
  • Ubuntu16.04

(亲测Windows环境下问题更多,最后卡在一个问题上果断放弃,选择了Ubuntu)

问题汇总

1. 问题:ImportError: cannot import name ‘_mask’ from 'pycocotools’
解决:由于作者应该是用python2.7编译的,若确认已执行 python setup.py build develop,参考:
https://github.com/jwyang/faster-rcnn.pytorch/issues/410#issuecomment-450709668
尝试安装coco API,还不行的话参考:
https://github.com/cocodataset/cocoapi/issues/59#issuecomment-469859646
将coco/PythonAPI/pycocotools里的文件复制到lib/pycocotools中,然后重新执行:
python setup.py build develop
注意:重新执行前最好先删除之前执行产生的build文件夹和_egg文件夹。

2. 问题:ImportError: cannot import name ‘imread’ from 'scipy.misc’
解决:根据提示找到lib/roi_data_layer/minibatch.py等对应文件,更改为:

# from scipy.misc import imread
from imageio import imread

3. 问题:RuntimeError: CUDA error: invalid device function
解决:这是由于大环境CUDA版本和Conda虚拟环境的cudatoolkit版本不匹配导致的。Conda虚拟环境只能安装cudatoolkit,cudatoolkit并不是完整的CUDA,缺少nvcc文件,而这个项目需要nvcc gcc g++混合编译,所以会导致编译的结果和实际运行的环境版本冲突。我大环境的CUDA版本是10.0,虚拟环境的cudatoolkit版本是10.1,将大环境CUDA版本升级为10.1后,重新执行问题1的步骤,问题解决。

运行测试

1. 训练模型

CUDA_VISIBLE_DEVICES=$GPU_ID python trainval_net.py \
                    --dataset pascal_voc --net res101 \
                    --bs $BATCH_SIZE --nw $WORKER_NUMBER \
                    --lr $LEARNING_RATE --lr_decay_step $DECAY_STEP \
                    --cuda

Pytorch版Faster R-CNN配置运行填坑记录_第1张图片

2. 测试

 python test_net.py --dataset pascal_voc --net res101 \
                   --checksession $SESSION --checkepoch $EPOCH --checkpoint $CHECKPOINT \
                   --cuda

Pytorch版Faster R-CNN配置运行填坑记录_第2张图片

3. 测试自己的数据集

python demo.py --net res101\
               --checksession $SESSION --checkepoch $EPOCH --checkpoint $CHECKPOINT \
               --cuda --load_dir path/to/model/directoy

Pytorch版Faster R-CNN配置运行填坑记录_第3张图片
4. 测试自己的视频(实时检测)

python demo.py --net res101 \
               --checksession $SESSION --checkepoch $EPOCH --checkpoint $CHECKPOINT \
               --cuda --load_dir path/to/model/directoy \
               --webcam $WEBCAM_ID

Faster R-CNN目标检测测试

你可能感兴趣的:(机器学习,深度学习,pytorch)