【发布时间】:2017-09-24 06:09:37
【问题描述】:
我有一个 Keras 神经网络,每当模型超过之前的验证分数时,我就使用 checkpoint 回调来保存模型。
我可以很容易地使用
重新加载模型model = keras.models.load_model("savedcheckpointfilename.h5")
然后我想从保存模型之前的最后一个 epoch 中提取 loss 和 val_loss 值。
我该怎么做?
我已尝试运行另一个训练阶段,但我想这会改变权重。我不确切知道使用了什么验证集,因为 Keras 在训练期间会自动执行此操作,因此看不到我如何运行显式预测与验证数据(因为训练集的哪一部分保留用于验证没有暴露 AFAICS )。
【问题讨论】:
-
经过一番挖掘,看起来我可以保存从 fit 函数返回的历史记录以至少查看历史记录,但我仍然希望能够重新评估验证。看起来历史对象也将验证数据存储在验证字段中,但不清楚如何将其传递给预测/评估。
-
不知道验证数据是什么;我将一个训练集和一个 validation_split (0.1) 传递给 Keras 的 fit() 函数。从理论上讲,我可以使用 fit 的 validation_data 参数传入我自己的 validation_data ,但是在 Windows 上有一个错误,这不起作用,因此使用 validation_data 而不是 validation_split 对我来说不是一个可行的解决方法。我将尝试挖掘该错误的参考,无论哪种方式,在使用 validation_split 方法时如何重新评估验证损失都是一个合法问题。
标签: validation neural-network keras