首页 > 解决方案 > 是否可以更改 Keras 中训练输出的格式?

问题描述

在训练 Keras 模型时,Keras 会打印出一行,显示例如损失和度量值。例如,像这样的东西。

39/1000 [>.............................] - ETA: 4:39 - loss: 63694.8726 - metric_0: 0.0000e+00 - metric_1: 0.0000e+00 - metric_2: 0.0000e+00T - ...

问题是,如果您有很多指标,这条线可能会很长。有没有办法格式化这条线?如果我们能以类似的方式格式化这一行,那就太好了,我们可以用例如format方法在 Python 中格式化字符串。

这是一个相关的 Github 问题

标签: tensorflowkerasformattensorflow2.0

解决方案


您可以verbose=0在回调中使用和打印自己的结果。

例子:

from keras.callbacks import LambdaCallback

def printLog(epoch, logs):
    #get the metrics inside the `logs` variable
    #print whatever you want the way you want

printerCallback = LambdaCallback(on_epoch_end=printLog)

model.fit(........, callbacks = [printerCallback], verbose=0)

缺点是你不能有一个更新栏,你每个时代只有一个打印。


推荐阅读