关于solver文件中test_iter和test_interval设置问题

本文详细解析了Caffe框架中的solver.prototxt配置文件各项参数的意义及作用,包括迭代次数、学习率策略、测试频率等关键设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

solver.prototxt文件

et: "models/bvlc_reference_caffenet/train_val.prototxt"  
test_iter: 100  
test_interval: 1000  
base_lr: 0.01  
lr_policy: "step"  
gamma: 0.1  
stepsize: 100000  
display: 20  
max_iter: 450000  
momentum: 0.9  
weight_decay: 0.0005  
snapshot: 10000  
snapshot_prefix: "models/bvlc_reference_caffenet/caffenet_train"  
solver_mode: GPU  
在caffe中的一次迭代iterration指的是一个batch,而不是一张图片。

test_iter: 

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

    layer {  
      name: "data"  
      type: "Data"  
      top: "data"  
      top: "label"  
      include {  
        phase: TEST  
      }  
      transform_param {  
        mirror: false  
        crop_size: 227  
        mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"  
      }  
      data_param {  
        source: "examples/imagenet/ilsvrc12_val_lmdb"  
        batch_size: 50  ##这里  
        backend: LMDB  
      }  
    }  

test_interval:

interval是区间的意思,该参数表示:训练的时候,每迭代1000次(上面设置的是1000)就进行一次测试。

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值