solve_train.prototxt
中的训练超参数含义:
- 训练的网络文件
train_net: "example/MobileNetSSD_train.prototxt"
- 测试的网络文件
test_net: "example/MobileNetSSD_test.prototxt"
- 要与test layer中的batch_size结合起来理解。数据中测试样本总数为67300,一次性执行全部数据效率很低,因此我们将测试数据分成几个批次来执行,每个批次的数量就是batch_size。假设我们设置batch_size为100,则需要迭代673次才能将67300个数据全部执行完。因此test_iter设置为100。执行完一次全部数据,称之为一个epoch
test_iter: 673
- 测试间隔,每训练1000才进行1次测试
test_interval: 1000
- 基础学习率
base_lr: 0.0005
- 每进行10次迭代,屏幕显示信息
display: 10
- 最大迭代次数
max_iter: 12000
-
学习率调整策略,lr_policy可以设置为下面这些值,相应的学习率的计算为:
- - 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是均匀等间隔变化,multiste则是根据stepvalue值变化
- - poly: 学习率进行多项式误差, 返回 base_lr (1 - iter/max_iter) ^ (power)
- - sigmoid: 学习率进行sigmod衰减,返回 base_lr ( 1/(1 + exp(-gamma * (iter - stepsize))))
lr_policy: "multistep"
- 学习率变化指数
gamma: 0.5
- 权重衰减项,防止过拟合
weight_decay: 0.00005
- 将训练出来的model和solver状态进行保存,snapshot用于设置训练多少次后进行保存,默认为0,不保存
snapshot: 1000
-
设置快照保存路径
snapshot_prefix: "snapshot/mobilenet"
-
设置运行模式。默认为GPU,如果你没有GPU,则需要改成CPU,否则会出错。
solver_mode: GPU
- 调试信息,默认为false关闭
debug_info: false
- 在训练之后保存快照
snapshot_after_train: true
- 测试初始化
test_initialization: false
- 每经过10次迭代,计算平均loss
average_loss: 10
- 学习率在该迭代次数时进行调整
stepvalue: 2000
stepvalue: 4000
- 每次循环iter_size次一计算loss,然后更新loss时使用loss /= param_.iter_size();
iter_size: 1
- 优化算法
- Stochastic Gradient Descent (
type: "SGD"
) - AdaDelta (
type: "AdaDelta"
) - Adaptive Gradient (
type: "AdaGrad"
) - Adam (
type: "Adam"
) - Nesterov’s Accelerated Gradient (
type: "Nesterov"
) - RMSprop (
type: "RMSProp"
)
type: "RMSProp"
- 这里一定要写检测,默认为classification
eval_type: "detection"
- mAP的计算方式,十一点插值
ap_version: "11point"
计算caffe中model的整个net以及各个layer的向前、向后传播时间
可以使用下面的命令格式:
/home/xxx/caffe-ssd/build/tools/caffe time --model=examples/yy.prototxt -iterations 100 -gpu 0
- -/home/xxx/caffe-ssd/build/tools/caffe为caffe的根目录
- -model为待测model的prototxt文件
- -iterations后面的100表示迭代100次
- -gpu 0 表示使用第一张显卡来计算时间,若使用CPU计算,将solver.prototxt的GPU改成CPU,并将-gpu 0去掉就行