tensorflow - 保存验证错误最少的 Estimator 模型并恢复训练
问题描述
我希望能够在训练期间保存 Estimator 模型,只要验证集上的错误减少,并保留一定数量的这些性能最佳的模型,以防在训练期间出现问题(如过度拟合)。
可用的选项似乎是实现 Hook、Exporter 或使用 Estimator.evaluate 返回的 EstimatorSpecs。然而:
我不能使用 Hook,因为我需要整个验证集的平均损失,并且在每一步之后都会调用 Hook。
使用导出器,我可以将模型导出为 SavedModel 格式,但我似乎找不到任何关于从这种格式恢复模型并使用 Estimator 继续训练的信息。不过,会话似乎是可能的。
返回的 EstimatorSpecs 也无法使用,因为没有估计器的会话,我无法使用 tf.train.Saver 保存模型。
另外,我相信到目前为止发现的最佳验证错误应该以某种方式在磁盘上序列化。这样,每当我恢复模型并恢复训练时,负责保存最佳模型的组件都知道迄今为止发现的最佳验证错误,因此不是从标志值开始并将第一个模型保存为“最佳”,它从中断的地方继续。
有没有办法可以做到这一点?
解决方案
推荐阅读
- java - Android Studio OpenCV 中的颜色检测
- javascript - 使用 Javascript 传递选定的复选框值
- regex - 正则表达式查找相同字符的多次出现并排除行中的单词
- c - 如何使用 OpenMP 在其他 for 循环中并行化 for 循环
- java - FFmpegFrameGrabber 仅使用关键帧更快的 SetTimestamp
- r - 如何为自定义 S3 类实现提取/子集([、[<-、[[、[[<-)] 函数?
- wordpress - 如何在我的 codeigniter 控制器中从 wordpress DB 获取最近的帖子?
- r - 如何计算向量中的重复条目?
- extjs - Sencha 6.5.2(现代)带小数分隔符的数字字段
- cassandra - Nosql之类的bigtable是如何存储Image数据的?