gpt4 book ai didi

keras - 如何在每个纪元后保存 mlflow 中的损失和准确性指标?

转载 作者:行者123 更新时间:2023-12-05 03:23:38 25 4
gpt4 key购买 nike

我希望通过在 keras 模型的训练/测试阶段的每个时期之后存储相应指标的每个值,将损失和准确性等指标视为图表。

PS:我知道我们可以通过使用 mlflow for keras 的自动日志功能来做到这一点,如下所示,但我不想使用它。

mlflow.keras.autolog()

最佳答案

通过互联网搜索并结合一些概念后,我能够解决我提出的问题。在 Keras 中,我们可以创建自定义回调,可以在模型的训练、测试和预测阶段的不同时间点(周期的开始/结束、批处理等)调用。

因此,我创建了一个 Keras 自定义回调来将每个时期之后的损失/准确度值存储为 mlflow 指标,如下所示。

class CustomCallback(keras.callbacks.Callback):
def on_epoch_end(self, epoch, logs=None):
mlflow.log_metrics({
"loss": logs["loss"],
"sparse_categorical_accuracy":
logs["sparse_categorical_accuracy"],
"val_loss": logs["val_loss"],
"val_sparse_categorical_accuracy":
logs["val_sparse_categorical_accuracy"],
})

我在训练我的模型时调用了上面的回调,如下所示。

history = model.fit(
features_train,
labels_train,
batch_size=BATCH_SIZE,
epochs=EPOCHS,
callbacks=[CustomCallback()],
validation_split=0.2
)

keras 自定义回调在每个纪元之后的训练期间存储了所有值,我可以在 mlflow UI 中将其视为图表,如下所示。 loss and val_loss graph

关于keras - 如何在每个纪元后保存 mlflow 中的损失和准确性指标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72473317/

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