为了账号安全,请及时绑定邮箱和手机立即绑定

站在巨人的肩膀上:Caffe finetune

标签:
人工智能


  所谓的finetune,就是利用别人训练好的模型,进行少量修改,再输入自己的数据进行训练,对参数进行微调,从而达到事半功倍的效果。

    基本的步骤如下:

       

    1. 准备数据、计算均值

    与上一篇文章的步骤相同

    2.修改配置文件

    把原模型的配置文件solver.prototxt和train_val.prototxt拷贝过来,并进行修改

    (1)solver.prototxt

    原文件是用来训练的,而我们的目的是finetune,所以学习速率、步长、迭代次数都要进行适当的调整。具体可参考caffe自带的finetune的example(caffe/model/finetune_flickr_style,是在caffe/models/bvlc_reference_caffenet的caffenet的基础上进行训练的)。具体对比如下    

    (2)train_val.prototxt

    网络的主体是一样的,主要修改有两部分:输入模块和输出模块

    输入模块:修改mean_file和source等参数

    输出模块:   

    把最后的全连接层的name改掉,让训练不加载原模型的参数。

    把两个lr_mult和decay_mult增大10倍,因为该层的参数是重头开始训练,因此需要比其他参数的学习速率更快

    把最后一个连接层的output参数修改为我们的数据集的类别数量

    (3)开始训练

    首先,把原模型的caffemodel文件下载好,放到本地文件夹,然后执行如下命令,进行finetune:

  1. ./build/tools/caffe train -solver path/to/your/file/solver.prototxt -weights path/to/your/caffemodel/XXX.caffemodel  

    至此,finetune训练完毕

原文出处

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消