如我们所知,Caffe支持在给出快照后恢复训练。Caffe的训练延续方案的解释可以在here中找到。但是,我发现训练损失和验证损失是不一致的。我举下面的例子来说明我的观点。假设我在训练一个最大迭代次数为1000次的神经网络,每训练100次,它就会有一个快照。这是使用以下命令完成的:
caffe train -solver solver.prototxt
其中批大小选择为64,在solver.prototxt中我们有:
test_iter: 4
max_iter: 1000
snapshot: 100
display: 100
test_interval: 100
我们仔细选择test_iter=4
,这样它几乎可以对所有的验证数据集进行测试(有284个验证样本,比4*64稍大一些)
这将为我们提供.caffemodel和.solverstate文件的列表。例如,我们可能有solver\u iter\u 300.solverstate和solver\u iter\u 300.caffemodel。在生成这两个文件时,我们还可以看到训练损失(13.7466)和验证损失(2.9385)
现在,如果我们使用snapshot solver\u iter\u 300.solverstate继续培训:
caffe train -solver solver.prototxt -snapshot solver_iter_300.solverstate
我们可以看到训练损失和验证损失分别为12.6和2.99。他们和以前不一样了。有什么想法吗?谢谢
目前没有回答
相关问题 更多 >
编程相关推荐