利用Faster-RCNN_TF训练自己的数据

因为之前工作的原因用到了faster-rcnn,所以去GitHub上找了一个tensorflow版本的Faster-RCNN。但是在编译和训练阶段都遇到了一些问题,也参考了很多博客的帮助。现在将问题记录下来方便下次查阅。
需要的软件:

Requirements for Tensorflow  
Python packages you might not have: cython, python-opencv, easydict

这里使用的Python版本是2.7,tensorflow版本也是比较老的,因此我重新安装了tensorflow1.5.0-gpu。1.5.0是支持CUDA9.0的最低版本,如果再高的话就不知道能不能兼容这个faster-rcnn了。

遇到的问题
  1. g++: error: roi_pooling_op.cu.o: No such file or directory
    解决:按如下步骤设置
    (1) export PATH= P A T H : / u s r / l o c a l / c u d a − 8.0 / b i n / ( 你 的 C U D A 路 径 ) f o r y o u r t e r m i n a l ( 2 ) 在 PATH:/usr/local/cuda-8.0/bin/ (你的CUDA路径) for your terminal (2) 在 PATH:/usr/local/cuda8.0/bin/(CUDA)foryourterminal(2)FRCN_ROOT/lib/ make.sh文件中,将 CXXFLAGS+=’-undefined dynamic_lookup’改为 CXXFLAGS=’-D_MWAITXINTRIN_H_INCLUDED’
  2. 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,然后运行
    可以参考这里
利用自己的数据进行训练

这里主要有两个部分。1)准备自己的数据集,要按照VOC数据集的格式来。2)修改训练代码。这部分主要参考一片博文 https://blog.csdn.net/zcy0xy/article/details/79614862
数据集之前已经准备好,不过在main文件夹下缺少几个文件(test.txt, val.txt, train.txt, trainval.txt)需要补上。。训练时程序也报过错,后来经过修改正常了(具体的错误及修改忘记了。。。看起来要及时记录啊)。
训练了大约20000步,训练的结果还不错。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值