调试 smallcorgi/Faster-RCNN_TF 的demo过程遇到的问题
#2018年7月14日 目前,若需训练Faster R-CNN模型请使用其他GitHub项目,可以获得更好的效果。
如tensorflow版的https://github.com/endernewton/tf-faster-rcnn
或者使用facebook ai出品的Detectron https://github.com/facebookresearch/Detectron
最近在调试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,使用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
调试 smallcorgi/Faster-RCNN_TF 的demo过程遇到的问题的更多相关文章
- ubuntu14.04上实现faster rcnn_TF的demo程序及训练过程
安装环境:Ubuntu14.04.显卡Tesla K40C+GeForce GT 705.tensorflow1.0.0.pycharm5.0 说明:原文见博客园,有问题原文下留言,不定期回复.本文作 ...
- faster rcnn test demo ---repaired for video input and save the image, label, score et al. into .mat format
faster rcnn test demo ---repaired for video input and save the image, label, score et al. into .mat ...
- Faster RCNN算法demo代码解析
一. Faster-RCNN代码解释 先看看代码结构: Data: This directory holds (after you download them): Caffe models pre-t ...
- iOS 真机调试不能连接网络的排错过程
开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 gSOAP 2.8 iPhone 6S+iOS 10.1.1 问题: 使用 Qt Quick 写了一个跨平台的应用,在Wi ...
- 通过gdb调试分析Linux内核的启动过程
作者:吴乐 山东师范大学 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验流程 1.打开环境 执 ...
- 在at91sam9260处理器上调试linux2.6.33.7的过程
本文脉络: 1.SAM9260处理器介绍,单板机配置. 2.SAM-BA的运行机制与applets的修改. 3.修改bootstrap. 4.内核源码获取与打补丁. 5.基于ubuntu的开发环境搭建 ...
- 写一个小demo过程中遇到的各种问题 学生管理考勤系统(网页模拟)
添加与新增一些小玩意的1.0.3版本:传送门 各位带哥,这不是你们要的c++.java.c#作业哈 课上要求做个小作业,学生管理考勤系统,原本想着是个练手的好机会,结果只证实了我还是个弟中弟. 设想的 ...
- 开源项目asmjit——调用自定义方法demo以及windbg调试
asmjit是一个开源项目,使用它可以将代码即时的编译成机器码,也就是所谓的jit技术. 初次接触这个项目,编写了一个demo,学习它的使用方法. 现将编写的demo以及调试jit生成的机器码的过程总 ...
- faster rcnn 源码学习-------数据读入及RoIDataLayer相关模块解读
参考博客:::https://www.cnblogs.com/Dzhen/p/6845852.html 非常全面的解读参考:::https://blog.csdn.net/DaVinciL/artic ...
随机推荐
- Java入门篇(六)——类和对象
写到这里终于写到了入门篇的最后一个知识点了.类和对象是Java中经常被提到的两个词汇,实际上可以将类看作对象的载体,它定义了对象所具有的功能.Java是面向对象的语言,因此掌握类与对象是学习Java语 ...
- php artisan 命令报错,什么命令都是这个错误,cmd下运行也不行,又没看到语法错误
Laravel 5.1 以上的版本的框架需求PHP的版本是5.5以上的版本.如果你的PHP版本等级太低,将会出现上述的问题. 估计你要升级你的PHP版本了.
- zTree中父节点禁用,子节点可以用
参考学习网址:http://www.treejs.cn/v3/main.php#_zTreeInfo zTree中父节点禁用,子节点可以用 axios.get('/base/unit/unittree ...
- P1144 最短路计数
P1144 最短路计数 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M,为图的顶 ...
- javascript函数之arguments
function foo(x,y,z){ console.info (arguments.length); //2 实际的参数个数 console.info(arguments[0]); //传入的第 ...
- [转]js 正则表达式
一.正则表达式中包括的元素 1.原子(普通字符:a-z A-Z 0-9 .原子表. 转义字符) 2.元字符 (有特殊功能的字符) 3.模式修正符 (系统内置部分字符 i .m.S.U…) 二.正则表达 ...
- [转]如何使用PHP实现javascript的escape和unescape函数
前端开发工程师都知道javascript有编码函数escape()和对应的解码函数unescape(),而php中只有个urlencode和urldecode,这个编码和解码函数对encodeURI和 ...
- ECLIPS-S测井系统下的仪器挂接 [TCC模块]
1. 环境 HPUX版本:11.23 Complete Image ECLIPS版本:Rel 5.1i 2. 效果图 3. 用途 为以后在此系统中挂接新仪器打下坚实的基础. 4. 参考资料 ECLIP ...
- SQL Server错误严重性级别和异常处理
关于SQL Server的错误严重性级别的说明,强烈认真看一下下面的两个链接 脱机帮助 ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/sqlerrm9/html/ ...
- Unity3d 基本设计开发 原则(提高代码可读性)
参考:http://blog.csdn.net/qq_34134078/article/details/51780356 1.单一原则 即:明确类的定义.通俗来讲,让他们只做一件事,而不是多件事. 提 ...