【问题标题】:Object Detection Tensorflow 2.6- How to save all checkpoints and run eval for all checkpoints对象检测 Tensorflow 2.6-如何保存所有检查点并为所有检查点运行 eval
【发布时间】:2021-09-15 05:39:30
【问题描述】:

对象检测 TensorFlow 2.6 -

在训练模型时,仅保存最后 7 个检查点。旧的被覆盖。如何保存所有检查点 以及如何为所有这些检查点运行评估模型。只取最后一个检查点值进行评估

我尝试同时运行 train 和 eval,出现 Out of Memory 错误。

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python tensorflow tensorflow2.0


【解决方案1】:

tf.train.Saver() 构造函数接受一个名为 max_to_keep 的可选参数,它默认保留模型的 5 个最新检查点。要保存更多模型,只需为该参数指定一个值:

要保留所有检查点,请将参数 ma​​x_to_keep=None 传递给保护程序构造函数。

ma​​x_to_keep - 表示要保留的最近检查点文件的最大数量。创建新文件时,会删除旧文件。如果为 None 或 0,则不会从文件系统中删除检查点,但只有最后一个保留在检查点文件中。默认为 5(即保留最近的 5 个检查点文件。)

keep_checkpoint_every_n_hours - 除了保留最新的 max_to_keep 检查点文件外,您可能还希望为每 N 小时的训练保留一个检查点文件。如果您想稍后分析模型在长时间训练期间的进展情况,这将很有用。例如,传递 keep_checkpoint_every_n_hours=2 可确保您为每 2 小时的训练保留一个检查点文件。默认值 10,000 小时有效地禁用了该功能。

【讨论】:

  • 嗨莫汉,谢谢。我在哪里可以找到 TF2 对象检测模型中的 tf.train.Saver() 构造函数
  • 您可以修改(在您的 fork 中硬编码或打开拉取请求并将选项添加到 protos)传递给 tf.train.Saver 的参数:object_detection 您可能想要设置:max_to_keep :要保留的最近检查点的最大数量。默认为 5。 keep_checkpoint_every_n_hours:保持检查点的频率。默认为 10,000 小时。这些链接可以帮助你,github.com/tensorflow/models/issues/4636github.com/tensorflow/models/issues/8930
猜你喜欢
  • 2018-11-17
  • 1970-01-01
  • 1970-01-01
  • 2018-02-19
  • 2018-01-17
  • 1970-01-01
  • 2020-11-07
  • 1970-01-01
  • 2017-11-14
相关资源
最近更新 更多