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 以进行微调。
希望对您有所帮助。
我已经对我的网络进行了 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 以进行微调。
希望对您有所帮助。