python - 根据 Keras 示例记录每个批次的 Keras 指标以了解损失
问题描述
在 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
推荐阅读
- c# - C# - 如何从 http 请求中获取 HTTP 状态代码
- ipython - 如何在 Python mixin 中实现 _repr_pretty?
- node.js - npm 错误!提取@agm/core@1.0.0-beta.3 时验证失败:
- java - java.sql.SQLException:超过锁定等待超时;尝试重启事务
- reactjs - 函数式反应:从导入的组件调用函数
- r - 附加到数据框中的条目
- javascript - 如何知道 PayPal Smart Payment Button 是否已完成渲染
- python - 通过 value_counts() 创建箱线图 [发生的事件数]
- php - 使用存储库模式创建具有 HasMany 关系的模型
- azure - Azure DevOps 自定义 ServiceHook