调试 smallcorgi/Faster-RCNN_TF 的demo过程遇到的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调试 smallcorgi/Faster-RCNN_TF 的demo过程遇到的问题相关的知识,希望对你有一定的参考价值。

  最近在调试faster R-CNN时,遇到了各种各样的问题。使用的算法库为https://github.com/smallcorgi/Faster-RCNN_TF

 

  注:本文使用的是通过virtualenv 创建python虚拟环境进行调试,python 版本2.7,tensorflow 版本为tensorflow1.4-gpu版。


  1.首先要对它的库进行编译,


cd $FRCN_ROOT/lib

make
  2.下载其提供的测试模型,由于墙的缘故,下载需要费一番功夫。以下是下载地址:

     https://drive.google.com/open?id=0ByuDEGFYmWsbZ0EzeUlHcGFIVWM

  或者
    https://www.dropbox.com/s/cfz3blmtmwj6bdh/VGGnet_fast_rcnn_iter_70000.ckpt?dl=0
  
  3.下载好之后就可以运行了。
cd $FRCN_ROOT
python ./tools/demo.py --model model_path

附:运行结果

 

技术分享

 

遇到的难题


1. 编译过程中 nsync_cv.h: No such file or directory

/home/xxx/tensorflow/local/lib/python2.7/site-packages/tensorflow/include/tensorflow/core/platform/default/mutex.h:25:22: fatal error: nsync_cv.h: No such file or directory

解决:编译的时候老是找不到该文件,最后直接把全路径填上了,编译通过,算一个笨方法吧。我的nsync_cv.h 文件的路径为:

/home/xxx/tensorflow/lib/python2.7/site-packages/external/nsync/public/nsync_cv.h

 

2. 运行demo过程中遇到的错误

g++: error: roi_pooling_op.cu.o: No such file or directory

解决:按如下步骤设置
(1) export PATH=$PATH:/usr/local/cuda-8.0/bin/ (
你的CUDA路径) for your terminal
(2)
$FRCN_ROOT/lib/ make.sh 文件中,将 CXXFLAGS+=‘-undefined dynamic_lookup‘

改为 CXXFLAGS=‘-D_MWAITXINTRIN_H_INCLUDED‘

 

3. undefined symbol: _ZTIN10tensorflow8OpKernelE

这个问题卡得最久,因为make.sh 文件中缺少了TF_LIB 编译参数,还需要添加 -D_GLIBCXX_USE_CXX11_ABI=0

解决:

(1)修改make.sh 添加TF_LIB,并修改相应的编译参数

TF_LIB=$(python -c ‘import tensorflow as tf; print(tf.sysconfig.get_lib())‘)

  ......

g++ -std=c++11 -shared -o roi_pooling.so roi_pooling_op.cc -D_GLIBCXX_USE_CXX11_ABI=0 \\

roi_pooling_op.cu.o -I $TF_INC -L $TF_LIB -ltensorflow_framework -D GOOGLE_CUDA=1 \\

-fPIC $CXXFLAGS -lcudart -L $CUDA_PATH/lib64

  ......

(2)重新make,然后运行

 

4. 缺少yaml

查了网上的方法,都是这样的

sudo apt-get install python-yaml

我试了,但是在虚拟环境中还是无法import,最后直接下载库,手动安装。注意,是在虚拟环境中,通过python setup.py install 进行安装。

yaml 下载地址 http://pyyaml.org/download/pyyaml/PyYAML-3.12.tar.gz
















以上是关于调试 smallcorgi/Faster-RCNN_TF 的demo过程遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

【调试】Android WebView调试

php异步调试和线上调试网站程序

软件调试的方方面面

为啥我要在不调试的情况下开始调试构建?

内核调试之双机调试环境的搭建

机械设备调试的“调试”英文用啥单词