Tensorflow Checkpoints 为每个步骤保存

Tensorflow Checkpoints saving for each step

我正在使用 Tensorflow 对象检测来训练两个 class 模型。训练时,训练从 0 开始,并以 100 步进行(每 100 步查看一次日志),当步数达到 1000(按 100、200、300、400、500 ....步)时,它会执行评估,我可以在 tensorboard 中查看结果。在 1000 步之后,检​​查点会为每一步保存,例如 1001、1002、1003……,并且每一步都会进行评估。 为什么会这样?

Tensorflow 版本:nvidia-tensorflow 1.15

培训基于:https://colab.research.google.com/github/google-coral/tutorials/blob/master/retrain_ssdlite_mobiledet_qat_tf1.ipynb

我不确定在 1000 之后的每一步是否保存权重。

在trainer.py,如果你使用的是slim based。 如果您想更改 .ckpt 模型的数量以保留您必须将第 370 行更改为:

saver = tf.train.Saver(
keep_checkpoint_every_n_hours=keep_checkpoint_every_n_hours, max_to_keep=10)

在这种情况下,您将保留最后 10 个 .ckpt

如果你想改变 .ckpt 的频率,你必须在 slim.learning.train (第 397 行)

save_interval_secs=X

其中 X 是以秒为单位的频率

我找到了一个修复程序,但没有深入理解它。

在“python3.6/site-packages/tensorflow_estimator/python/estimator/run_config.py”下的 python 文件“run_config.py”中,有一个名为“save_checkpoints_steps”的变量”,它被分配了一个值“_USE_DEFAULT”,在将其更改为 1000 后,没有问题,并且检查点只为每 1000 个检查点保存一次。

我仍然不知道为什么“_USE_DEFAULT”为每一步保存检查点