caffe参数理解

solver.prototxt

net: "vggface_mycmd/vggface_train_test.prototxt" 
test_iter: 365 
test_interval: 500  
iter_size: 4
test_initialization: false 
display: 40  
verage_loss: 40 
base_lr: 0.00005 
lr_policy: "step" 
stepsize: 2000 
gamma: 0.96 
max_iter: 10000 
momentum: 0.9  
weight_decay: 0.0002 
snapshot: 20 
snapshot_prefix: "vggface_mycmd/mymodel" 
solver_mode: CPU 

首先说明一个概念:在caffe中的一次迭代iterration指的是一个batch,而不是一张图片。

test_iter: 在测试的时候,需要迭代的次数,即test_iter* batchsize(测试集的)=测试集的大小,测试集batchsize可以在prototx文件里设置


test_interval:interval是区间的意思,所有该参数表示:训练的时候,每迭代500次就进行一次测试。


caffe在训练的过程是边训练边测试的。训练过程中每500次迭代(也就是32000个训练样本参与了计算,batchsize为64),计算一次测试误差。计算一次测试误差就需要包含所有的测试图片(这里为10000),这样可以认为在一个epoch里,训练集中的所有样本都遍历以一遍,但测试集的所有样本至少要遍历一次,至于具体要多少次,也许不是整数次,这就要看max iter。


iter_size:iter_size*train batch size=实际的batch size,为什么这么说。深度学习为了加快运算速度将数据分成小的batch,但是参与batch太小,代价函数进行权重衰减太快,加上iter size之后,取iter size次的平均在进行权重衰减,比较具有代表性。注意的是,我觉得iter size的加入并不会影响前面两个参数与batch size的关系。


lr policy:是指权重衰减的规律,有几种,百度一下就知道了,这个的不同大概不怎么影响最终的准确度,可能会影响收敛速度


lr base:开始时候的学习速率,会在此基础上进行衰减,注意train net中的lr mult*lr base 代表那一层的实际学习速率。在旧版net参数中lr mult写作blobs lr 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值