说明:本文主要记录,自己在跑取Faster R-CNN tensorflow版本中遇到的各种问题,以及对终端命令行的一些学习记录。
Xinlei Chen的tensorflow版本的faster rcnn代码
总结遇到问题
1. 本机环境
- ubuntu16.04
- tensorflow 1.2.0(原版本为0.1.1r出现问题1)
- python 2.7.5
- CUDA 8.0.61
- CUDNN 5.1.10
2. 配置
2.1 clone github仓库
git clone https://github.com/endernewton/tf-faster-rcnn.git
2.2 修改GPU architecture
cd tf-faster-rcnn/lib
# 修改 GPU architecture (找到setup.py中 '-arch' 改成自己对应的就可以)
vim setup.py
2.3 更改USE_GPU_NMS(位置:lib->model->config.py)
更改USE_GPU_NMS2.4 构建Cython模块
make clean
make
cd ..
<font color=gray size=5>
make 遇到问题
问题一:
from tensorflow.contrib.slim.python.slim.nets import resnet_v1
ImportError: cannot import name resnet_v1
这个问题在githup中提到:https://github.com/endernewton/tf-faster-rcnn/issues/224
原本tensorflow版本为 0.1.1r 之后更新版本为1.2+就可以解决此问题啦。
EnvironmentError: The CUDA lib64 path could not be located in /usr/lib64
CUDA PATH
解决方法,更改setup.py文件
更改setup.py
make clean
make
cd ..
执行cd ..
之后,跳转至文件根目录
cd data
git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
make
cd ../../..
现在数据百度网盘地址:。。。。
下载的数据放在 data文件夹中,上一步运行之后,在根目录,因为需要解压数据文件,所以进入data目录
#解压得到voc_2007_trainval+voc_2012_trainval文件夹
tar xvf voc_0712_80k-110k.tgz
仍在data目录问夹下运行
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
点击创建的default文件发现报错,如下图所示:
软链接创建失败
删除生成的default文件,更改第5句创建软链接的语句
ln -s ../../../voc_2007_trainval+voc_2012_trainval ./default
运行之后,生成default文件夹点击,可以看到链接到的四个模型文件。
软链接文件夹
补充说明,创建软连接的规则以及目的
# 切换回根目录文件夹
cd ../.../../..
GPU_ID=0
CUDA_VISIBLE_DEVICES=${GPU_ID} ./tools/demo.py
运行之后出现错误:
IOError: output/res101/voc_2007_trainval+voc_2012_trainval/default/res101_faster_rcnn_iter_110000.ckpt.meta not found.
在出现此错误时,想到两种尝试解决的方法
- 更改tools/demo.py文件中涉及此文件路径的代码;
- 是不是软链接文件夹的问题,如果是的话,就直接使用解压后的文件夹里的模型文件。
解决方法一:
- 是不是软链接文件夹的问题,如果是的话,就直接使用解压后的文件夹里的模型文件。
- 修改tools/demo.py文件。打印输出具体详细路径,是否存在/是否正确?
tools/demo.py
打印路径存在
这时,我一时没有反映过来,问题是出在哪里,因为文件在相应路径是存在的,折腾了一段时间,突然意识到,我是在根目录运行,output文件夹是在data文件夹下的,所以最后更改tools/demo.py文件
tfmodel = os.path.join('output', demonet,DATASETS[dataset][0], 'default',NETS[demonet][0])
更改为:
更改路径
最后最后终于出来啦
结果图show一下:
结果图
在第一种方法出来后,我想尝试一下第二种想法是否可行,所以我仍要修改tools/demo.py文件(即使用解压文件夹中的内容)
解压文件夹
网友评论