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

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

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

cd $FRCN_ROOT/libmake

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

  #20171115 添加百度云下载地址: https://pan.baidu.com/s/1i5cRduX 密码:tm1r

     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,使用python虚拟环境会存在该问题。

/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

转载于:https://www.cnblogs.com/caffeaoto/p/8653724.html

[转]调试 smallcorgi/Faster-RCNN_TF 的demo过程遇到的问题相关推荐

  1. 使用NDB调试Linux内核的线程切换过程

    使用NDB调试Linux内核的线程切换过程 cpu_switch_to 因为要调试Linux内核的线程切换过程,所以需要在`cpu_switch_to`处设置断点. 注意:ARM无法设置软件断点,只能 ...

  2. android eclipse services,Eclipse中调试Android Framework本地代码模块部分过程记录

    环境:Amlogic S905M2 + ubunt12.04 + win7 + adt_bundle_linux + Android SDK 过程: 1. 为避免用Eclipse基础版本(Luna)后 ...

  3. 通过gdb调试分析Linux内核的启动过程

    作者:吴乐 山东师范大学 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验流程 1.打开环境 执 ...

  4. (转)Faster R-CNN的训练过程的理解

    转载链接:http://blog.csdn.net/weixin_40449426/article/details/78141635 我才刚刚学习Faster R-CNN,看了好多博客,觉得对知识点讲 ...

  5. 计算机连接投影仪后黑屏咋调试,电脑连接投影机播放电影过程中经常性黑屏一秒故障解决一例-投影仪怎么连接电脑...

    图片来自于网络 一.故障描述 最近帮助亲属解决一例投影仪播放过程中,经常性不规则时间黑屏一秒故障,在网上检索后,发现此类故障发生几率很高,但是多数的回贴答复均判断为以下几种原因:灯炮到寿: 显卡驱动没 ...

  6. Visual Stidio(VS)调试中,逐语句、逐过程、跳出分别是什么意思

    逐语句,就是每次执行一行语句,如果碰到函数调用,它就会进入到函数里面. 逐过程,碰到函数时,不进入函数,把函数调用当成一条语句执行.注意:并不会把for循环之类的循环体当一条语句执行,此时逐过程和逐语 ...

  7. faster R-CNN模型实现过程

    faster R-CNN=RPN+fast R-CNN ①将fm送入RPN(region proposal network),RPN也是一个卷积神经网络,它对于input feature map的每个 ...

  8. 使用Faster R-CNN(linux-pytorch)训练自己的数据集过程记录

    目录 准备工作 源码下载 配置环境 制作VOC数据集 data目录结构 训练 编译CUDA依赖环境 预训练模型 修改pascal_voc.py文件 进行训练 遇到的问题 主要参考文章 准备工作 源码下 ...

  9. 堆内存破坏检测实战--附完整调试过程

    首先解释一下,什么是堆内存? 堆是一种常见的内存管理器,应用程序通过堆来动态地分配和释放内存,通常使用堆的情况是无法预先知道所需要的内存大小,或者申请内存太大,无法通过栈内存来自动分配,下面让我们再来 ...

最新文章

  1. 圆头像 微信小程序 绘图_小程序canvas绘制圆形微信头像
  2. 过河卒(Noip2002)
  3. android6.0源码分析之Activity启动过程
  4. 【Docker】在Docker中安装redis、rabbitmq
  5. 获取当前按钮所在行的input_form表单的input上传文件
  6. html中文字描边效果代码,css如何设置文字描边效果?
  7. C#LeetCode刷题之#575-分糖果​​​​​​​(Distribute Candies)
  8. react hooks使用_何时使用React Suspense和React Hooks
  9. redis介绍与使用
  10. python 3.8.0安卓_Python 3.8.0 正式版发布,新特性初体验
  11. POJ 1183 反正切函数的应用
  12. 时间对象与字符串对象之间相互转换
  13. paip.网站接入QQ登录总结
  14. RedHat Linux 企业5 oracle 10g
  15. Messenger Group Redesign - 缓解群组社交压力设计思考
  16. 免费PDF阅读器都是坑?这些开源神器我可是恨不得所有人都知道
  17. 计算机一级可以积分入深户吗,怎样积分入深户2019年深户办理条件
  18. python爬取皮肤_如何用Python爬取LOL官网全英雄皮肤
  19. jQuery下载及基本使用
  20. 在手机端访问pc服务器的方法

热门文章

  1. win10 VScode配置GCC(MinGW)
  2. vh,vw单位你知道多少?
  3. C# WinForm 中Label自动换行 解决方法
  4. 前端学习(3224):字符串形式
  5. 前端学习(3196):虚拟dom和真实dom
  6. 工作342:消除平时环境的console
  7. 工作335:uni-增加表单验证
  8. 前端学习(2756):condition模拟启动配置
  9. 工作177:表单重置项目处理
  10. 前端学习(1734):前端系列javascript之添加动画