Keras 在历史上的损失究竟是什么?

时间:2020-12-19 12:01:42

标签: tensorflow keras callback history loss

朋友,

我使用回调函数在每个时期结束后通过调用 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, y_train,
                                  epochs=10, batch_size=256, verbose=1, 
                                  callbacks=[myCallback]),validation_data=(x_test, y_test) 

0 个答案:

没有答案