如何在 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 个数字”。因此,输出将包含以某种方式格式化的当前 epoch
和 val_loss
值。
由于这些是用于字符串格式化的,您不需要知道这些,它们是在将值插入字符串时自动生成的。此外,epoch
和 val_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?