【问题标题】:caffe: How to save the best model while training?caffe:如何在训练时保存最好的模型?
【发布时间】:2017-03-28 08:44:19
【问题描述】:

我们在Caffe框架中训练一个模型时可能会测试多次,所以我想根据测试精度保存最好的模型,我该怎么办?谢谢!

【问题讨论】:

  • 使快照迭代次数和测试迭代次数相同。
  • 我想想,每个测试阶段我们保存模型,训练后我们选择最好的。但是我觉得不方便,所以我希望CAFFE只保存最好的。如果当前精度不高于以前的精度,我们不保存模型。我觉得应该修改源代码,但是我不清楚该怎么做。

标签: caffe


【解决方案1】:

您的求解器文件应包含诸如

之类的行
snapshot: 10000
snapshot_prefix: "models/bvlc_alexnet/caffe_alexnet_train"

第一个告诉 Caffe 多久检查一次(保存)模型参数和训练权重。第二个告诉存储它们的位置。请注意,您还将在训练结束时获得保存。文件显示为

caffe_alexnet_train_iter_50000.caffemodel
caffe_alexnet_train_iter_50000.solverstate

...对于在迭代 50,000 处保存的对。欢迎您重命名您认为合适的最佳集合,以便以后运行不会覆盖它们。我通常通过创建一个子目录 best 来做到这一点,并将最新的结果移到那里。

【讨论】:

  • 谢谢,我也考虑过这个,但是我想如果可以做caffe 只保存最好的吗?
  • 当然。你有一个完整的程序界面;您可以在操作系统的能力范围内做任何您喜欢的事情。它只是不是 Caffe 工具的一部分。您必须自己编写它作为一个独立的扩展。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 2020-02-27
  • 2021-10-06
  • 2019-09-30
  • 1970-01-01
相关资源
最近更新 更多