TensorFlow+Faster-RCNN+Ubuntu 环境配置&代码运行过程
代码链接:
https://github.com/endernewton/tf-faster-rcnn
1. 前期准备
- 安装虚拟环境
创建一个tf-faster-rcnn的python2.7的虚拟环境
conda create –n tf-faster-rcnn python=2.7
进入此虚拟环境
source activate tf-faster-rcnn
备注:
a. 如果需要退出此虚拟系统,执行以下命令
source deactivate
b. 在虚拟环境中安装的东西会放在此根目录下/home/USERNAME/.conda/envs/tf-faster-rcnn(创建的虚拟环境名字)
查看cuda的版本
cat /usr/local/cuda/version.txt
查看cudnn版本
cat /usr/local/cuda/include/cudnn.h | grepCUDNN_MAJOR -A 2
根据cuda 和 cudnn版本,到tensorflow 的官网上查对应的TF版本。我的cuda是8.0,cudnn是5.1的,所以要安装1.2.0
https://www.tensorflow.org/install/install_sources#common_installation_problems
2. 环境配置
- 安装TensorFlow
1) 执行如下命令,搜索适合的安装地址(注意要装gpu;装1.2.0;装linux-64的)
anaconda search -t conda tensorflow
2) 然后执行如下命令:
anaconda show marta-sd/tensorflow-gpu (anaconda+show+搜索到的TensorFlow安装名)3) 根据命令行提示,执行如下命令:
conda install --channel https://conda.anaconda.org/marta-sd tensorflow-gpu
4) 验证安装结果,执行如下命令:
conda list
运行python代码,验证TensorFlow安装成功与否。
- 安装其他依赖包
还需要安装一些依赖包: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 查找版本
使用命令 conda install --channel https://conda.anaconda.org/verydeepeasydict 安装
3. 下载代码和数据
clone github的仓库
git clone https://github.com/endernewton/tf-faster-rcnn.git
更新GPU的架构配置,到setup.py中找到 -arch 这个参数,改成自己的GPU架构就行了
cd tf-faster-rcnn/lib
vim setup.py
对应的配置如下图,github里面可能会对一些其他的显卡更新参数(本服务器是Titanx,所以是sm_52,所以不用更改了)
链接cython 模块,注意这也是在上一步那个lib 文件夹中进行的
make clean
make
cd ..
voc2007下载地址
https://pjreddie.com/projects/pascal-voc-dataset-mirror/
voc2012下载地址
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/#devkit
4. 运行Demo 和测试预训练模型
- 下载预训练模型
https://pan.baidu.com/s/1kWkF3fT
下载之后放到 data文件夹即可。
- 建立预训练模型的软连接 (在tf-faster-rcnn根目录下操作)
NET=res101
TRAIN_IMDB=voc_2007_trainval+voc_2012_trainval
mkdir -p output/${NET}/${TRAIN_IMDB}
cd output/${NET}/${TRAIN_IMDB}
ln -s ../../../data/voc_2007_trainval+voc_2012_trainval ./default
cd ../../..
- 运行以下代码就能测试demo了,注意是在tf-faster-rcnn 这个根文件夹中运行
GPU_ID=0
CUDA_VISIBLE_DEVICES=${GPU_ID} ./tools/demo.py
- 接着测试预训练模型
在tf-faster-rcnn根目录下执行以下两个命令:
GPU_ID=0
./experiments/scripts/test_faster_rcnn.sh $GPU_ID pascal_voc_0712 res101
最后跑出来的结果:
相关链接: