tensorflow faster rcnn 编译问题总结

全网流行的faster rcnn 的TensorFlow 的开源版本是

https://github.com/smallcorgi/Faster-RCNN_TF

但是在Ubuntu下配置的过程中可能会出现一些问题

第一个是要安装完全所有的Python依赖

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib==2.2.3  numpy scipy pillow opencv-python easydict cython tensorFlow-gpu pyyaml

第二个是gcc g++ 的版本要配合好

如果是Ubuntu 18.04 默认的是gcc 7.0 那么与Cuda 9.0 有冲突,而TensorFlow目前默认的是9.0

所以需要gcc 降级。简单的方法是使用软连接。

第二个是这个代码很多是Python 2.7的版本写的,如果改3.5 3.6 很麻烦,但是Python 2.7 马上就要停止支持了,matplotlib最新版 都不支持2.7 了。所以我们上面安装了matplotlib==2.2.3 。所以姑且这个代码还是用2.7 比较快些。

在Cuda 9.0, gcc g++ tensorflow等都安装好的基础上,还要修改 Faster-RCNN_TF/lib/make.sh 的内容。修改内容如下。

然后应该编译应该就通过了,不会出现什么问题了。

TF_INC=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_include())')
TF_LIB=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_lib())')
 
CUDA_PATH=/usr/local/cuda/
CXXFLAGS=''
 
if [[ "$OSTYPE" =~ ^darwin ]]; then
    CXXFLAGS+='-undefined dynamic_lookup'
fi
 
cd roi_pooling_layer
 
if [ -d "$CUDA_PATH" ]; then
    nvcc -std=c++11 -c -o roi_pooling_op.cu.o roi_pooling_op_gpu.cu.cc \
        -I $TF_INC -D GOOGLE_CUDA=1 -x cu -Xcompiler -fPIC $CXXFLAGS \
        -arch=sm_37 --expt-relaxed-constexpr \
 
    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 -D_GLIBCXX_USE_CXX11_ABI=1 \
        -lcudart -L $CUDA_PATH/lib64 \
        -L$TF_LIB -ltensorflow_framework \
 
else
    g++ -std=c++11 -shared -o roi_pooling.so roi_pooling_op.cc \
        -I $TF_INC -fPIC $CXXFLAGS
fi
 
cd ..
 

猜你喜欢

转载自blog.csdn.net/ewqapple/article/details/86646924
今日推荐