我希望能够在训练期间保存Estimator模型,只要验证集上的错误减少并保留一定数量的这些性能最佳的模型,以防在训练过程中出现问题(如过度拟合)。
可用选项似乎是实现Hook,Exporter或使用Estimator.evaluate返回的EstimatorSpecs。但是:
我不能使用Hook,因为我需要整个验证集的平均损失,并在每一步后调用Hook。
使用导出器,我可以将模型导出为SavedModel格式,但我似乎无法找到有关从此格式恢复模型以及使用Estimator继续培训的任何信息。虽然,似乎可以通过会话。
返回的EstimatorSpecs也无法使用,因为我无法使用tf.train.Saver保存模型,而无需使用估算工具会话。
另外,我相信到目前为止发现的最佳验证错误应该以某种方式在磁盘上序列化。这样,每当我恢复模型并恢复训练时,负责保存最佳模型的组件都知道到目前为止发现的最佳验证错误,因此不是以标志值开始并将第一个模型保存为“#”;最好的',它从它停止的地方继续。
有没有办法实现这个目标?