Caffe 中 Fine-Tuning 和 Resuming 的训练有什么区别?

What is the difference between Fine-Tuning and Resuming of training in Caffe?

我已经对我的网络进行了 100,000 次迭代训练。之后我想继续训练。但基本上有两种选择,我不明白它们之间的区别:

第一个:

$SOLVER=...
$WEIGHTS=...
$LOGGGING=...

caffe train -solver $SOLVER -weights $WEIGHTS 2>&1 | tee $LOGGING

第二个:

$SOLVER=...
$SNAPSHOT=...
$LOGGGING=...

caffe train -solver $SOLVER -snapshot $SNAPSHOT 2>&1 | tee $LOGGING

第一种和第二种方法区别大吗?我一直在使用第一种方法,称为微调。但是我并没有真正理解第一个和第二个之间的区别。

微调:通常在训练过的不同数据集模型上完成。训练参数可能不同。在没有任何求解器状态的情况下保存权重。

正在恢复:使用的可能原因是程序因某种原因停止。 Snapshot 包括权重和 solverstate,Solverstate 有关于训练参数的信息,如 LR,max_iter 等。当您恢复(快照)时,求解器恢复之前的状态并继续训练。

如果训练参数相同,则两者相同。通常,我们会更改学习率、动量和 max_iterations 以进行微调。

希望对您有所帮助。