如何解决Keras 在历史上的损失究竟是什么?
朋友,
我使用回调函数在每个时期结束后通过调用 model.evaluate() 来计算训练和测试错误。但是,如果我比较从 model.evaluate(x_train,y_train) 计算出的火车损失,它与 history.history['loss'] 中保存的损失不同。我的回调计算的测试损失与 history.history['val_loss'] 相同。
所以我想知道 Keras 如何计算火车损失以及在 history.history['loss'] 中究竟保存了什么?
我必须计算不同数据集在每个 epoch 之后的损失,因为我想评估多个数据集顺序训练的损失性能。
任何人都知道为什么这些训练数据的损失不相同。有没有更好的方法?
这是我的代码:
class MyCustomCallback(keras.callbacks.Callback):
def __init__(self):
self.results = {
'eval_train' : {},'eval_test' : {}
}
def on_epoch_end(self,epoch,logs=None):
eval_train = self.model.evaluatex_train,y_train,verbose=1)
eval_test = self.model.evaluate(x_test,y_test,verbose=1)
self.results['eval_train'].append(eval_train)
self.results]['eval_test'].append(eval_test)
myCallback = MyCustomCallback()
history = model.fit(x_train,epochs=10,batch_size=256,verbose=1,callbacks=[myCallback]),validation_data=(x_test,y_test)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。