代码指南:Faster-RCNN pytorch-1.0 避雷指南

越旧的代码往往越难跑通。在配置对应的环境时,可能遇到许许多多的困难:

  • conda已经不支持需要的旧版本框架,则需要手动安装
  • 框架版本太旧,和本机cuda不适配,编译报错
  • 某些包需要降级
  • 基于caffe源码,需要进行c编译的步骤

在运行Faster-RCNN pytorch时,我就踩到了上面的这些坑,最终在cuda版本不对应上被卡住了(重装cuda太不划算了,而且我也没有实验室服务器的权限)。

但是,我发现此项目下还有 Faster-RCNN pytorch-1.0 分支。尽管还是遇到了困难,一番尝试后终于跑通。个人认为 1.0 版本比 0.4 版本观感好太多了,此处推荐直接使用 1.0 版本。

README补充

环境配置

README中对环境要求的阐述没有十分详尽,现做一些补充:

这里pytorch并不一定是1.0,也可以是更高的版本。

在这里插入图片描述

附上我跑通的环境,可以直接照用:

python==3.6.9

pytorch==1.1.0

CUDA 10.0

编译过程

编译cuda依赖:

cd lib
python setup.py build develop

README中提到,编译的默认python版本是2.7,如果版本不同要自己编译。(吓了我一跳)实际上我用3.6.9,也成功用此语句编译完成。(后面lib又报了错,应该与此无关。)

报错汇总

汇总一下各种报错。

cannot import name ‘_mask’

参考https://github.com/cocodataset/cocoapi/issues/59#issuecomment-469859646。

下载最新的cocoapi,并进入对应路径make。

git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
make

可以看到编译得到的文件中有一个pycocotools文件夹,将原来的faster-rcnn.pytorch/lib/pycocotools文件夹中全部内容进行替换,即可。

Illegal instruction (core dumped)

命令行缺少参数–cuda,加上即可

python demo.py --net res101 --checksession 1 --checkepoch 10 --checkpoint 2504 --cuda

ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead.

忘记切换到 pytorch-1.0 分支

git checkout pytorch-1.0

undefined symbol: __cudaRegisterFatBinaryEnd

这个错误我在Faster-RCNN pytorch-0.4 版本一直无法解决。所以改用 1.0 分支。

ImportError: cannot import name imread

将scipy的版本降低

pip install scipy==1.2.1

fasterRCNN.load_state_dict(checkpoint[model"]) KeyError:‘model’

下载项目README中提供的模型。我当时是将用于train的预训练vgg或resnet网络错放进了test过程,导致了这个错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值