繁体   English   中英

根据损失的 Keras 示例记录每个批次的 Keras 指标

[英]Log Keras metrics for each batch as per Keras example for the loss

在 Keras 文档中,有一个示例,其中创建了一个自定义回调来记录每个批次的损失 这对我来说效果很好,但是我也想记录我添加的指标。

例如对于此代码:

optimizer = Adam()
loss = losses.categorical_crossentropy
metric = ["accuracy"]

model.compile(optimizer=optimizer,
              loss=loss,
              metrics=metric)


class LossHistory(Callback):
    def on_train_begin(self, logs={}):
        self.losses = []

    def on_batch_end(self, batch, logs={}):
        self.losses.append(logs.get('loss'))

loss_history = LossHistory()

history = model.fit(training_data, training_labels,
                    batch_size=batch_size,
                    epochs=epochs,
                    verbose=2,
                    validation_data=(val_data, val_labels),
                    callbacks=[loss_history])

我不知道如何访问指标。

指标历史存储在loss_history.losses

def on_batch_end(self, batch, logs={}):
  self.losses.append(logs.get('loss'))

此方法将在每批结束时调用,并将损失指标附加到self.losses因此一旦训练完成,您就可以直接使用loss_history.losses访问此列表。

我还应该补充一点,例如,如果您想包括准确性,您还可以执行以下操作:

class LossHistory(Callback):
    def on_train_begin(self, logs={}):
        self.losses = []
        self.accuracy= []

    def on_batch_end(self, batch, logs={}):
        self.losses.append(logs.get('loss'))
        self.accuracy.append(logs.get('accuracy'))

然后随后访问它:

loss_history.accuracy

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM