深度学习—— caffe下进行微调finetune

一、引言

一直以来就很纠结finetune,其意思就是已知别人已经训练好的的模型和网络结构,自己的数据较小,而任务基本相同,想在其基础之上进行训练成自己的模型,这样,弥补了自己数据量小的缺点,也即是微调。这样,要应用已训练好的模型进行初始化进行训练,并且应用其网络结构。

 

二、步骤

 1.准备数据,我们还用上面博客所提提供的五类数据,不过,要将32×32,修改成256×256以满足我们下面要使用的网络结构。

 

2.下载model参数

 可以直接在浏览器里输入地址下载,也可以运行脚本文件下载。下载地址为:http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel

文件名称为:bvlc_reference_caffenet.caffemodel,文件大小为230M左右

将该模型保存于caffe/examples/下面新建立一目录testFinetune

 

,为了代码的统一,将这个caffemodel文件

 

3.下载均值文件

在终端执行下面脚本:

./data/ilsvrc12/get_ilsvrc_aux.sh

获得到均值文件:imagenet_mean.binaryproto

将其文件COPYcaffe/examples/下面新建立一目录testFinetune

 

4.COPY和修改网络配置文件和超参数文件,还有预测所使用文件

caffe/models/bvlc_reference_caffenet下面的deploy.prototxtsolver.prototxttrain_val.prototxt三个文件COPYcaffe/examples/下面新建立一目录testFinetune,并修改

这个 和前面博客基本思想是一致的

 

这里就不再详述了。

 

5.训练,微调finetune

这一步重要

caffe目录下执行:

./build/tools/caffe train -solver examples/testFinetune/solver.prototxt -weights examples/testFinetune/bvlc_reference_caffenet.caffemodel -gpu 0

关键是-weights参数,是训练好的模型作参数进行初始化

训练效果非常好


6.预测

 

a.终端测试

在终端的caffe目录下执行:

python python/classify.py --print_results --model_def examples/testFinetune/deploy.prototxt --pretrained_model examples/testFinetune/my_mode_iter_5000.caffemodel.h5 --labels_file examples/testFinetune/mylabel.txt --center_only  examples/testFinetune/329.jpg foo


b.python代码测试



小结:

finetune效果确实极好!




  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值