caffe solver参数详解

caffe solver参数详解

参考网址:https://blog.csdn.net/u013786021/article/details/80185694

1,epoch                      :一个epoch就是所有训练图片的一次传播,一次传播=一次前线传播+一次后项传播

2,batch size              :batch_size的值就是一次迭代输入多少张图片,test阶段的batch_size=50,则一次迭代输入50张测试图片;train的batch_size=100,则一次迭代输入100张训练图片。batch_size越高,所需的内存越大

3,迭代次数                     :迭代=传播=前向传播+后向传播

4,如果有10000个训练图片,2000张测试图片。训练的batch_size为100,测试的为50,test_iter为40,tese_interval=100;则每迭代100次(每次迭代输入100张训练图片),进行一次测试,一次测试输入50张图片,共进行40次测试。这样说的话意味着:max_iter/迭代次数==test_iter?也就是说max_iter>=10000/100*40=4000次?至少把训练集循环一遍

5,test_iter: 250             :和test_batch_size结合,test的batch_size * test_iter=test images

6,test_interval: 1000    :每1000次迭代进行一次测试

7,momentum: 0.9           :上一次梯度更新的权重

8,weight_decay: 0.0005   :权重衰减项,防止过拟合

9,base_lr: 0.0001             :基础学习率

10,lr_policy: "inv"             :学习策略:‘’inv“,

学习率有以下几种:

    • - fixed:   保持base_lr不变.
    • - step:    如果设置为step,则还需要设置一个stepsize,  返回 base_lr * gamma ^ (floor(iter / stepsize)),其中iter表示当前的迭代次数
    • - exp:     返回base_lr * gamma ^ iter, iter为当前迭代次数
    • - inv:      如果设置为inv,还需要设置一个power, 返回base_lr * (1 + gamma * iter) ^ (- power)
    • - multistep: 如果设置为multistep,则还需要设置一个stepvalue。这个参数和step很相似,step是均匀等间隔变化,而multistep则是根据                                 stepvalue值变化
    • - poly:     学习率进行多项式误差, 返回 base_lr (1 - iter/max_iter) ^ (power)
    • - sigmoid: 学习率进行sigmod衰减,返回 base_lr ( 1/(1 + exp(-gamma * (iter - stepsize))))

(1)gamma: 0.0001              :inv学习策略的参数

(2)power: 0.75                     :inv学习率的参数

11,display: 100                     :每训练100次,在屏幕上显示一次


# The maximum number of iterations
12,max_iter: 500                    :训练的最大迭代次数,max_iter * train_batch_zise(train images;设置太小,会不收敛,精确度很低;太大会振荡,浪费时间


# snapshot intermediate results
13,snapshot: 1000                  :进行1000次迭代后进行保存solver和caffemodel
14,snapshot_prefix: "examples/cell/cell_model_lmdb"  :保存的位置


# solver mode: CPU or GPU
15,solver_mode: GPU        :使用Gpu进行训练

猜你喜欢

转载自blog.csdn.net/a1809032425/article/details/81158521