【问题标题】:How to get true y_true and y_pred inside on_epoch_end?如何在 on_epoch_end 中获得真正的 y_true 和 y_pred?
【发布时间】:2019-11-20 20:17:17
【问题描述】:

我试图在每个时期结束时获得 y_true 和 y_pred。我使用 fit_generator 来训练我的模型。我试图在每个时代之后找到特异性。

class LossHistory(keras.callbacks.Callback):
    def on_epoch_end(self, epoch, logs={}):
      y_true = ?
      y_pred = ?

loss_history = LossHistory

fit_generator(train_data, .. callbacks=[loss_history])

【问题讨论】:

标签: python python-3.x tensorflow machine-learning keras


【解决方案1】:

默认情况下您无权访问此信息,但您可以通过将它们传递给构造函数来提供Callback 任何您想要的属性。例如,如果您使用的是生成器(数据存储在 generator.y 属性中):

class LossHistory(keras.callbacks.Callback):

    def __init__(self, data_generator, **kwargs):
        self.generator = data_generator
        Super(LossHistory, self).__init__(**kwargs)

    def on_epoch_end(self, epoch, logs={}):
        y_true = self.generator.y
        y_pred = self.model.predict_generator(self.generator)


loss_history = LossHistory(train_data_generator)

【讨论】:

  • 它的 train_data_generator 不是 validation_data_generator 对吗?
  • 通过这个实现,你可以使用任何你喜欢的生成器。 (从您的问题中不清楚您是否需要培训或验证损失信息。)
猜你喜欢
  • 1970-01-01
  • 2019-08-19
  • 2019-03-06
  • 2019-07-04
  • 2021-07-30
  • 2020-03-07
  • 2020-02-23
  • 2020-01-04
  • 2016-11-12
相关资源
最近更新 更多