配置了两天,终于跑通了tensorflow版本的faster rcnn的demo,现记录如下:
1.安装虚拟环境
创建一个XT_FRcnn的python2.7的虚拟环境
conda create -n XT_FRcnn python=2.7
进入此虚拟环境
source activate XT_FRcnn
备注:
a. 如果需要退出此虚拟系统,执行以下命令
source deactivate
b. 在虚拟环境中安装的东西会放在此根目录下/home/USERNAME/.conda/envs/XT_FRcnn(创建的虚拟环境名字)
2.查看cuda版本
cat /usr/local/cuda/version.txt
3.查看cuddn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
根据cuda 和 cudnn版本,到tensorflow 的官网上查对应的TF版本。我的cuda是8.0,cudnn是6的,找到对应的TF版本:
Linux
Version: |
CPU/GPU: |
Python Version: |
Compiler: |
Build Tools: |
cuDNN: |
CUDA: |
tensorflow-1.6.0 |
CPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.9.0 |
N/A |
N/A |
tensorflow_gpu-1.6.0 |
GPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.9.0 |
7 |
9 |
tensorflow-1.5.0 |
CPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.8.0 |
N/A |
N/A |
tensorflow_gpu-1.5.0 |
GPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.8.0 |
7 |
9 |
tensorflow-1.4.0 |
CPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.5.4 |
N/A |
N/A |
tensorflow_gpu-1.4.0 |
GPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.5.4 |
6 |
8 |
tensorflow-1.3.0 |
CPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.4.5 |
N/A |
N/A |
tensorflow_gpu-1.3.0 |
GPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.4.5 |
6 |
8 |
tensorflow-1.2.0 |
CPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.4.5 |
N/A |
N/A |
tensorflow_gpu-1.2.0 |
GPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.4.5 |
5.1 |
8 |
tensorflow-1.1.0 |
CPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.4.2 |
N/A |
N/A |
tensorflow_gpu-1.1.0 |
GPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.4.2 |
5.1 |
8 |
tensorflow-1.0.0 |
CPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.4.2 |
N/A |
N/A |
tensorflow_gpu-1.0.0 |
GPU |
2.7, 3.3-3.6 |
GCC 4.8 |
Bazel 0.4.2 |
5.1 |
8 |
4.安装TensorFlow
1) 执行如下命令,搜索适合的安装地址(注意要装gpu;我这里装的是tensorflow1.4.1)
anaconda search -t conda tensorflow
2) 然后执行如下命令:
anaconda show cjj3779/tensorflow-gpu (anaconda+show+搜索到的TensorFlow安装名)
3) 根据命令行提示,执行如下命令:
conda install --channel https://conda.anaconda.org/cjj3779 tensorflow-gpu
4) 验证安装结果,执行如下命令:
conda list
然后可以运行python代码,验证TensorFlow安装成功与否。
5.安装其他依赖包
还需要安装一些依赖包:cython, opencv-python,easydict
安装cython
conda install cython
安装opencv-python
(不能直接用 conda install opencv-python)
而且也没有linux平台下的
所以需要使用命令:
conda install -c menpo opencv3=3.1.0 (若环境是py3.5的,则会自动识别装3.1.0-py3.5的)
安装 easydict
同理,不能用condainstall easydict=1.6
使用命令anaconda search-t conda easydict 查找版本
使用命令 anaconda show verydeep/easydict 查找安装地址
使用命令 conda install --channel https://conda.anaconda.org/verydeepeasydict 安装
5.下载Faster-rcnn代码
git源代码:git clone --recursive https://github.com/smallcorgi/Faster-RCNN_TF.git。
然后进入Fater-RCNN/lib目录,执行make,正常情况下,会在roi_pooling_layer和utils目录下面生成.so文件,然后下载模型,再执行python tools/demo.py --model model_path,就可以进行目标检测了。(不过这一步一般会出各种问题,问题记录在第6点,折腾了好久。。)
6.遇到的问题
这个问题查了好久,详见链接:https://blog.csdn.net/a694262054/article/details/79645093
删除家目录下面的隐藏文件夹 .nv 即可。sudo rm -rf ~/.nv
在建立的虚拟环境中输入命令conda install pyyaml,然后按照提示安装就行
这个问题网上都说,没有打开GPU或者显存不够等,但是我明明都打开了对应的GPU,并且显存足够,也还是报错,后来换了个版本的tensorflow重新配置,就没有这个问题了。(不是很清楚~,欢迎赐教!)
这个是cuddn版本不匹配的问题,通过navigator换了个版本的cuddn,错误消失,运行成功
7.demo运行结果
Loaded network /home/lab1008/Faster-RCNN_TF/VGGnet_fast_rcnn_iter_70000.ckpt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/000456.jpg
Detection took 0.260s for 300 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/000542.jpg
Detection took 0.058s for 261 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/001150.jpg
Detection took 0.053s for 242 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/001763.jpg
Detection took 0.060s for 260 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/004545.jpg
Detection took 0.055s for 300 object proposals
参考的博客:https://blog.csdn.net/Angela_qin/article/details/80921688