如何在 tf.keras 中填写 ModelCheckPoint 类的文件路径参数? (无法理解纪元值和日志概念)

Posted

技术标签:

【中文标题】如何在 tf.keras 中填写 ModelCheckPoint 类的文件路径参数? (无法理解纪元值和日志概念)【英文标题】:How can I fill out filepath argument of ModelCheckPoint class in tf.keras? (having trouble understanding epoch values and logs concept) 【发布时间】:2020-11-05 17:58:00 【问题描述】:

我发现在 ModelCheckPoint 的文件路径参数中,我可以使用 epoch 值和日志键保存检查点。但是,由于我是新手,我很难理解日志的概念以及 tensorboard 如何使用它。 我只知道日志是保存的数据,告诉 tensorflow 中发生了什么事件(我说的对吗?)

    那么如果我的文件路径有“weights.epoch:02d-val_loss:.4f.hdf5”这种格式, '.4f' 是 val_loss 的日志吗? 02d 也是纪元的对数还是纪元值? 以及如何找到'02d'、'.4f'(=日志和纪元值)信息?我假设我可能需要这些值来定义文件路径 我的最后一个问题是,如果我只是将文件路径设置为“weights.hdf5”,那么与上述格式有何不同

提前感谢那些愿意回答问题的人! (你是天使)

【问题讨论】:

【参考方案1】:
    .4f.02d 用于字符串格式化。具体epoch:.02d 表示“插入纪元号,它是一个整数(d 部分),宽度至少为 2 个字符,必要时使用前导零(例如,纪元为 1,那么这将输出 01)” . val_loss:.4f 表示“插入 val_loss,它是一个浮点数(f 部分),小数点后有 4 个数字”。因此,输出将包含以某种方式格式化的当前 epochval_loss 值。 由于这些是用于字符串格式化的,您不需要知道这些,它们是在将值插入字符串时自动生成的。此外,epochval_loss 将从 ModelCheckPoint 获得正确的值。 使用第一种格式的优点是您的检查点不会在每个时期相互覆盖(因为当前时期编号在文件路径中)。相反,文件夹中会有多个检查点,您可以稍后使用您喜欢的任何一个进行测试或微调等。

【讨论】:

以上是关于如何在 tf.keras 中填写 ModelCheckPoint 类的文件路径参数? (无法理解纪元值和日志概念)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Tensorflow-2.0 中绘制 tf.keras 模型?

如何在具有使用@tf.keras.utils.register_keras_serializable 注册的自定义函数的 Tensorflow Serving 中提供模型?

在TF 2.0中使用tf.keras,如何定义依赖于学习阶段的自定义层?

如何在 Tensorflow 中从 tf.keras 导入 keras?

tf.keras 如何保存 ModelCheckPoint 对象

如何在 tf.keras 自定义损失函数中触发 python 函数?