原因
在使用Faster RCNN有时会遇到如下错误
_mask.so: undefined symbol: _Py_ZeroStruct
或者
cython_bbox.so: undefined symbol: _Py_ZeroStruct
这个主要原因可能是原生成so的python环境与你的python环境不一致。(生成cython_bbox.so的环境是python2而你的环境是python3这样的化就会报错)。
解决方法
在自己的环境中重新生成对应的so文件
生成步骤
以我生成so的步骤说下,可能不同
1、克隆fast-rnn
git clone https://github.com/jwyang/faster-rcnn.pytorch.git
2、修改make.sh
修改lib中的make.sh,主要是把里面的python 换成你环境中使用的python(如:我的环境要想使用python3.7 就需要把文件中的python换成python3),即可
3、执行make.sh
./make.sh
4、注意一点
在执行的时候可能由于源代码的里面有些库在你先有版本的环境中没有了,修改一下就行。
注意只要生成相应的so就行了其实不需要报出执行成功信息。
生成好的so文件
环境
ubuntu 16.4
python3.7
cuda10.1