gpt4 book ai didi

python - 如何在 Keras 中的每批之后更新训练日志输出?

转载 作者:太空宇宙 更新时间:2023-11-03 14:44:05 25 4
gpt4 key购买 nike

我正在使用 tensorflow 后端和 Jupyter-Notebook 在 Keras 中训练我的模型。虽然 MNIST 示例会在每个批处理后更新训练日志的输出,但我在不同数据集上的新模型会为每个批处理输出一个新值。现在,我不想使用 verbose=2,而是希望看到每个批处理后更新该值。

我的拟合函数如下所示:

model.fit(X, y_train, validation_split=0.33, epochs=1, batch_size=200, verbose=1)

输出如下所示:

    Train on 16415 samples, validate on 8085 samples
Epoch 1/1
16415/16415 [==============================] -
ETA: 73s - loss: 9.0281 -acc: 0.44 - ETA: 49s - loss: 9.0271 - acc: 0.44 -
ETA: 36s - loss: 8.7043 - acc: 0.46 - ETA: 33s - loss: 8.3979 - acc: 0.47 -
ETA: 31s - loss: 8.3549 - acc: 0.48 - ETA: 29s - loss: 8.3011 - acc: 0.48 -
ETA: 28s - loss: 8.1802 - acc: 0.49 - ETA: 27s - loss: 8.1220 - acc: 0.49 -
ETA: 26s - loss: 8.0995 - acc: 0.49 - ETA: 26s - loss: 8.1178 - acc: 0.49 -
ETA: 25s - loss: 8.1264 - acc: 0.49 - ETA: 24s - loss: 8.1274 - acc: 0.49 -
ETA: 24s - loss: 8.0880 - acc: 0.49 - ETA: 23s - loss: 8.0860 - acc: 0.49 -
ETA: 23s - loss: 8.0894 - acc: 0.49 - ETA: 22s - loss: 8.1303 - acc: 0.49 -
...

但是,我只想看到在每批之后更新的一行,如下所示:

Epoch 1/1
16415/16415 [==============================] -
ETA: 23s - loss: 9.0281 -acc: 0.44 - ETA: 22s - loss: 9.0271 - acc: 0.49

除了设置 verbose=2 之外,我在 keras 文档中找不到任何选项,但这不会在训练期间更新日志。

最佳答案

您可以使用 LambdaCallback在批处理和纪元之间调用自定义函数。

使用on_batch_end参数传递要调用的函数:

from keras.callbacks import LambdaCallback

def batchOutput(batch, logs):

print("Finished batch: " + str(batch))
print(logs)

batchLogCallback = LambdaCallback(on_batch_end=batchOutput)

model.fit(x,y,....,callbacks=[batchLogCallback])

关于python - 如何在 Keras 中的每批之后更新训练日志输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46391053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com