Faster R-CNN填坑记录
本文弃置,坑填失败了,准备换个框架
记录一下FasterRCNN使用的填坑记录,用的是github上的项目,项目地址如下
安装环境
换了个工作区,环境从零开始配,先安装一个python
因为wget太慢了,所以选择先下下来再传到服务器上安装
我下的是python-3.3.3.tar.xz
解压: tar xJf Python-3.6.6.tar.xz
然后进入到对应的文件夹里安装python
1 | $ cd Python-3.6.6/ |
安装完python之后装一下包管理工具pip
1 | $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本 |
然后安装pytorch 0.4.0版本,安装指令如下
1 | sudo pip install torch==0.4.0 -f https://download.pytorch.org/whl/cu90/stable |
下载速度巨慢无比,换了一下豆瓣源之后就快多了
1 | sudo pip3 install -i http://pypi.douban.com/simple/ torch==1.0.0 -f https://download.pytorch.org/whl/cu90/stable --trusted-host pypi.douban.com |
也可以用其它源:
项目依赖
然后我们按照git项目上的指示进行相应的操作
1 | $ pip install -r requirements.txt |
1 | $ cd lib |
然后尝试跑一下
1 | CUDA_VISIBLE_DEVICES=$GPU_ID python trainval_net.py \ |
把各种需要的包都装上之后碰到了一个奇怪的Error
ModuleNotFoundError: No module named ‘model.utils.cython_bbox’
最后的解决方案是
1 | $ cd lib |
但是git项目里也没写这个,就离谱
又装了一堆包之后喜提新错误
ImportError: cannot import name ‘imread’
这里问题就比较神奇了,查阅资料得到出现这个问题的原因可能有两种
我对scipy库降版本之后解决了这个问题
1 | pip install scipy==1.2.1 |
又是一通缺啥装啥之后,遇到了一个不一样的错误
ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead.
没找到靠谱的解决方案,弃疗,换个1.0版本的代码从头再来
环境安装同0.4.0版本
在Git项目页面从master分支切换到1.0.0分支下载项目
然后安装依赖并下载cocoapi
1 | sudo pip install -r requirements.txt |
尝试运行一下
1 | CUDA_VISIBLE_DEVICES=$GPU_ID python trainval_net.py \ |
报错虽然会迟到,但是从不会缺席
ImportError: cannot import name ‘_mask’
解决方案参考
大概意思就是原项目中lib/pycocotools
已经不行了,得换最新的
那我们下一个最新的
1 | cd cocoapi/PythonAPI |
然后把lib/pycocotools
删掉,把PythonAPI里面生成的pycocotools装进去,就可以解决这个问题
ImportError: cannot import name ‘_C’
新的问题又出现了
是因为在lib中使用setup.py的时候用的是旧的pycocotools,所以得重新再build一遍
1 | python setup.py build develop |
然后,错误是越来越奇怪了
ImportError: /home/dl/forever97/fasterRCNN/lib/model/_C.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN2at19UndefinedTensorImpl10_singletonE