您的位置:首页 > Web前端

使用caffe训练faster-rcnn时遇到的问题总结

2017-08-28 08:55 435 查看
经过今天一天的实验,充分了解了在深度学习领域,显存大的重要性。

不得不承认,有了N卡以后,效率提高了很多,当然这也得益于纠缠于cpu训练faster rcnn的日子....

(1)今天早上,主要解决了faster rcnn 下的caffe不能编译的问题。

问题产生的原因是faster rcnn下的caffe不支持cudnn5.1,当时就单纯的把Makefile.config下的 USE_CUDNN:=1 注释掉了 #USE_CUDNN:=1。编译成功,感觉距离成功又近了一步。

(2)编译接下来开始尝试训练数据。

训练数据的教程是Python-faster-rcnn的官方教程。
https://github.com/rbgirshick/py-faster-rcnn#beyond-the-demo-installation-for-training-and-testing-models
任何事情都没有一帆风顺的时候....基础不够就会出现很多难以预料的问题。那就是按照步骤来,下载的资源还好,baidu都有,依照教程操作,最后训练的命令为:

cd $FRCN_ROOT
./experiments/scripts/faster_rcnn_alt_opt.sh [GPU_ID] [NET] [--set ...]
# GPU_ID is the GPU you want to train on
# NET in {ZF, VGG_CNN_M_1024, VGG16} is the network arch to use
# --set ... allows you to specify fast_rcnn.config options, e.g.
#   --set EXP_DIR seed_rng1701 RNG_SEED 1701


因此需要输入:

./experiments/scripts/faster_rcnn_alt_opt.sh 0 ZF pascal_voc

我遇到的问题:

× ZF大写

× imagenet_models 不能放在model文件夹下,要放在data文件夹下,下载比较简单

(3)AttributeError: 'module' object has no attribute 'text_format'

需要再lib/fast_rcnn/train.py中添加:

import google.protobuf.text_format

(4)解决了这个问题,又出现了另一个问题,如图:

Check failed: error == cudaSuccess (2 vs. 0) out of memory



显存不足...经过查阅资料,有两种解决办法:

1. 安装cudnn

解决办法看之前的博文:
http://blog.csdn href="http://lib.csdn.net/base/dotnet" target=_blank>.NET/u012283902/article/details/63254906

由于是2G显存,还是不够用。可能这种方法比较适用于4G显存的情况下。
2. 修改配置文件

/lib/fast_rcnn/config.py

(1)首先修改

# Minibatch size (number of regions of interest [ROIs])

__C.TRAIN.BATCH_SIZE = 128

将这个值调小,比如64,32,16,8.....

进行训练看是否可行

(2)还可以修改

# Scales to use during training (can list multiple scales)

# Each scale is the pixel size of an image's shortest side

__C.TRAIN.SCALES = (600,)

将600改为,如500,400,300....等

查看效果

注意:不一定全更改,更改后可运行即可。

然后神奇的事情就发生啦!!!!



至此可以使用图像进行训练了,接下来就要深入的理解这些步骤,可以往下进行了,在这里纠结了好久,比如是否要显卡,是否要N卡,是否装双系统,是否用caffe,好多坑,希望大家可以少走弯路,以下几点在我看来是必须的:

1. 纯净的Linux系统,14.04,16.04均可

2. 需要显卡,需要N卡,最好大于2G显存。(我有RX480,在opencl环境下 训练 faster-rcnn还没有出现,坑一定非常多,我这种新手也纠结在这里好几天)

3. caffe或者tensorflow都可以,熟悉其中一个就可以,这里行动比选择更重要,无需纠结太多。

如果单纯分类也许用不到这么大显存,只怪我接触的是faster rcnn,可能对显卡显存要求比较高,坑也多,这一系列的文件记录下来,以备时常回顾走过的路,提醒自己,遇到任何事情不抛弃,不放弃,勇敢前行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: