为每个步骤保存 TensorFlow 检查点
Posted
技术标签:
【中文标题】为每个步骤保存 TensorFlow 检查点【英文标题】:Tensorflow Checkpoints saving for each step 【发布时间】:2021-10-24 11:50:41 【问题描述】:我正在使用 Tensorflow 对象检测来训练一个两类模型。训练时,训练从 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
【问题讨论】:
【参考方案1】:我不确定在 1000 之后的每一步是否保存权重。
如果你使用的是基于 slim 的 trainer.py。 如果您想更改 .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 是以秒为单位的频率
【讨论】:
【参考方案2】:我找到了解决方法,但没有深入了解。
在“python3.6/site-packages/tensorflow_estimator/python/estimator/run_config.py”下的python文件“run_config.py”中,有一个名为“save_checkpoints_steps”的变量被赋值为“_USE_DEFAULT” ,将其更改为1000后,没有问题,并且仅每1000个检查点保存检查点。
我仍然不知道为什么“_USE_DEFAULT”会为每一步保存检查点
【讨论】:
以上是关于为每个步骤保存 TensorFlow 检查点的主要内容,如果未能解决你的问题,请参考以下文章
如何保存使用Tensorflow 1.xx中的.meta检查点模型作为部分的Tensorflow 2.0模型?
Tensorflow 在每个 epoch 结束时卡住了几秒钟
TensorFlow,缺少检查点文件。 saver 是不是只允许保留 5 个检查点?
tensorflow Tensorboard可视化-老鱼学tensorflow