我尝试执行所有这些步骤,因为我想在linux上使用不同版本的python 3.5来运行此示例中的代码https://docs.microsoft.com/en-us/cognitive-toolkit/Object-Detection-using-Fast-R-CNN
如果您需要不同的版本,可以按照以下步骤进行编译:
git clone --recursive https://github.com/rbgirshick/fast-rcnn.git
cd $FRCN_ROOT/lib
make
python setup.py build_ext --inplace.
copy the generated cython_bbox and cython_nms binaries from
$FRCN_ROOT/lib/utils to $CNTK_ROOT/Examples/Image/Detection/FastRCNN/fastRCNN/utils
**Error**
Traceback (most recent call last):
File "C1_DrawBboxesOnImages.py", line 10, in <module>
from cntk_helpers import *
File "/home/tftuts/Desktop/tensorflow/CNTK-master/Examples/Image/Detection/FastRCNN/cntk_helpers.py", line 13, in <module>
from fastRCNN.nms import nms as nmsPython
File "/home/tftuts/Desktop/tensorflow/CNTK-master/Examples/Image/Detection/FastRCNN/fastRCNN/__init__.py", line 7, in <module>
from .imdb import imdb
File "/home/tftuts/Desktop/tensorflow/CNTK-master/Examples/Image/Detection/FastRCNN/fastRCNN/imdb.py", line 16, in <module>
from .utils.cython_bbox import bbox_overlaps
ImportError: /home/tftuts/Desktop/tensorflow/CNTK-master/Examples/Image/Detection/FastRCNN/fastRCNN/utils/cython_bbox.so: undefined symbol: _Py_ZeroStruct
请任何人都可以帮助我。是什么意思
cython_bbox.so: undefined symbol: _Py_ZeroStruct
以及如何解决这个问题。
答案 0 :(得分:4)
当Python模块中的版本不匹配时,此错误消息是典型的。它可能像cython_bbox.so
一样被编译并链接到Python 2.7并且CNTK是针对Python 3.5编译的。很难确切地说出原因是什么,但是您可以尝试在与您的CNTK版本匹配的python环境中执行make
,看看是否有效。
答案 1 :(得分:0)
尝试使用python3进行编译。
Linux中的默认python版本可能是2.x
答案 2 :(得分:0)
这是因为python版本不匹配。默认情况下,它是使用python 2.7编译的。
编辑make.sh文件以与python3兼容并再次编译。
例如,
将python setup.py
更改为python3 setup.py
这为我解决了这个问题。