参考:https://blog.csdn.net/wjx2012yt/article/details/52197698
1:下载VOC2007数据集:
上一次我们安装好了环境,并给出数据集下载的方式,在终端下将数据集下载了放到~/py-faster-rcnn/data/下
2:下载ImageNet数据集下预训练得到的模型参数(用来初始化)
提供一个百度云地址:http://pan.baidu.com/s/1hsxx8OW
解压,然后将该文件放在py-faster-rcnn/data下
3:检查--训练前把output文件夹删除(或改个其他名),还要把py-faster-rcnn/data/cache中的文件删除
4:可在py-faster-rcnn\tools的train_faster_rcnn_alt_opt.py中修改迭代次数
max_iters = [80000, 40000, 80000, 40000]
分别为4个阶段(rpn第1阶段,fast rcnn第1阶段,rpn第2阶段,fast rcnn第2阶段)的迭代次数。可改成你希望的迭代次数。如果改了这些数值,把py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt里对应的solver文件(有4个)也修改,stepsize小于上面修改的数值。并将这四个文件中的base_lr由0.001调小一点,调节成0.0001。将四个solver文件夹里里面涉及路径的改到绝对路径。
5 :打开train_faster_rcnn_alt_opt.py,可以看到定义输入参数的函数,把第34,35,36定以GPU模式训练的部分注释掉,gpu_id会出现错误,所以把train_faster_rcnn_alt_opt.py第213行注释掉,将train_faster_rcnn_alt_opt.py文件第103行caffe.set_mode_gpu()改为caffe.set_mode_cpu(),才能进行训练。
6 :下载CPU版本的roi_pooling_layer和smooth_L1_loss_layer,见:
https://blog.csdn.net/qq_14975217/article/details/51495844
将CPU版本的roi_pooling_layer和smooth_L1_loss_layer替换py-fast-rcnn/caffe-fast-rcnn/src/caffe/layers
下的这两个文件,进入到caffe-fast-rcnn下重新make一下才有效果,输入make clean 、make和make pycaffe。
7:进入py-faster-rcnn/tools目录,打开终端,运行:
python train_faster_rcnn_alt_opt.py --net_name ZF --weights /home/qf/VOC2007/py-faster-rcnn/data/imagenet_models/ZF.v2.caffemodel --cfg /home/qf/VOC2007/py-faster-rcnn/experiments/cfgs/faster_rcnn_alt_opt.yml --imdb voc_2007_trainval
进行训练。
错误1:
AttributeError: 'module' object has no attribute 'text_format'
参考:https://blog.csdn.net/qq_33202928/article/details/72526710
在文件./lib/fast_rcnn/train.py中增加一行import google.protobuf.text_format
问题:至此可以训练了,但是出现loss=-nan的情况,还未解决~~~
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
后续工作,给出几个学习链接:
https://blog.csdn.net/CV_adventurer/article/details/72805852#3-%E8%AE%AD%E7%BB%83PASCAL-VOC-2007%E7%9A%84%E6%95%B0%E6%8D%AE%E9%9B%86
https://blog.csdn.net/sinat_30071459/article/details/50546891
https://blog.csdn.net/sinat_30071459/article/details/51332084