使用Caffe库恢复快照培训时,培训/验证丢失不一致

2024-09-30 14:33:37 发布

您现在位置:Python中文网/ 问答频道 /正文

如我们所知,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。他们和以前不一样了。有什么想法吗?谢谢


Tags: 文件testhere方案snapshottrain快照caffe