Advertisement

faster rcnn tensorflow版本遇到的问题记录

阅读量:

1. fatal error: nsync_cv.h: No such file or directory

定位指定路径中的mutex头文件

#include "nsync_cv.h"
#include "nsync_mu.h"

改为

#include "external/nsync/public/nsync_cv.h"
#include "external/n-sync/public/nu.h"

b. 修改faster rcnn文件夹中lib文件夹下的make.sh文件为(注意空格):

TF_INC=(python -c 'import tensorflow as tf; echo "get_include()" | python -c "1"')
TF_LIB=(python -c 'import tensorflow as tf; echo "get_lib()" | python -c "1"')
NSYNC_INC=TF_INC + /external/nsync/public TF_INC + /home/lbz/.conda/envs/py2/lib/python2.7/site-packages/tensorflow/contrib/makefile/downloads/nsync/public

CUDA_PATH=/usr/local/cuda/
CXXFLAGS=''

if [[ "$OSTYPE" =~ ^darwin ]]; then
CXXFLAGS+='-undefined dynamic_lookup'
fi

cd roi_pooling_layer

如果 CUDA_PATH 存储有值,则执行以下操作:
编译 CU 文件至 roi_pooling_op.cu.o,并将其放置于 roi_pooling_op_gpu.cu.cc 中。
使用 nvcc 编译器,在 --std=c++11 选项下进行编译。
包含头文件库 $TF_INC。
定义预处理指令 GOOGLE_CUDA=1。
采用 cu 核心并配置为并行计算模式。
指定目标架构为 sm_37。

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

roi_pooling_op.cu.o -I TF_INC -D GOOGLE_CUDA=1 -fPIC CXXFLAGS \

-lcudart -L $CUDA_PATH/lib64

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
else
g++ -std=c++11 -shared -o roi_pooling.so roi_pooling_op.cc \
-I TF_INC -fPIC CXXFLAGS
fi

cd ..

#cd feature_extrapolating_layer

#g++ -std::c++11 -shared -o \feature_extrapolating.so \feature_extrapolating_op.cc
\ feature_extrapolating_op.cu.o -I $TF_INC -fPIC -lcudart -L $CUDA_PATH/lib64
cd

2. undefined symbol: _ZTIN10tensorflow8OpKernelE

解决:在每个 g++ 中加入 -L $TF_LIB

参考链接

fatal error: nsync_cv.h: 无法找到该文件夹

  1. tensorflow版的fasterRCNN的应用问题分析与总结(链接)

全部评论 (0)

还没有任何评论哟~