caffe的solver参数调优--caffe学习(17)

先看在python里面写solver文件需要有哪些参数:
这里写图片描述

其中主要的几个参数区别test_interval,test_iter,max_iter,在这里已经介绍过caffe的solver文件参数详解–caffe学习(2)

接下来看自己跑实验室这些参数应该怎么设置,这里都以SGD为例:
这里写图片描述

[1] L. Bottou. Stochastic Gradient Descent Tricks. Neural Networks: Tricks of
the Trade: Springer, 2012.

设定学习率 α 和动量 μ 的经验法则:

base_lr: 0.01 # 开始学习速率为: α = 0.01=1e-2
lr_policy: "step" # 学习策略: 每 stepsize 次迭代之后,将 α 乘以 gamma
gamma: 0.1 # 学习速率变化因子
stepsize: 100000 # 每 100K 次迭代,降低学习速率
max_iter: 350000 # 训练的最大迭代次数 350K
momentum: 0.9 # 动量 momentum 为: μ = 0.9

这里写图片描述

[1] A. Krizhevsky, I. Sutskever, and G. Hinton. ImageNet Classification
with Deep Convolutional Neural Networks Advances in Neural Information
Processing Systems, 2012.

有了上面的理论基础,我们现在可以设计自己的SGD slover文件参数了:
首先明白有几个参数是需要计算的而不是随便多少:
这里假设你的训练集样本有9000个,val集有1000个,
batch_size:训练集16,val:32
那么这里你的

test_iter=1000/32=32
test_interval=9000/16=263
一般还要设计另一个参数使得每次估计的梯度更准确:
iter_size:每次取iter_size个batch_size数据来估计当前的梯度
iter_size=8

接下来要设计的重要参数是max_iter,他决定了你的样本一共训练多少次,一般取test_interval的3倍到6倍。

max_iter=1000

然后SGD的其他参数就用上文caffe官网推荐 的参数:

base_lr: 0.01 # 开始学习速率为: α = 0.01=1e-2
lr_policy: "step" # 学习策略: 每 stepsize 次迭代之后,将 α 乘以 gamma
gamma: 0.1 # 学习速率变化因子
stepsize: 100000 # 每 100K 次迭代,降低学习速率
momentum: 0.9 # 动量 momentum 为: μ = 0.9

但是这里的stepsize不能取这么大,一般让一个epoch用一个学习率,因此一般让stepsize=test_interval=9000/16=263
其他的参数就无关紧要了。

    s.display = 20              # 屏幕日志显示间隔
    s.snapshot = s.max_iter         # 保存model间隔
    #注意deploy的时候是不需要snapshot_prefix的
    s.snapshot_prefix = save_model_prefix   # 保存的model前缀
    s.type = 'SGD'                  # 优化算法

然后就让程序跑起来,就看着loss降低吧

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值