TensorFlow 1.15目标检测训练1000步后每步存Checkpoint及评估原因问询
异常现象根因说明
你遇到的步数超过1000后每步保存Checkpoint、触发评估的问题,是TensorFlow 1.x目标检测API搭配nvidia-tensorflow 1.15版本的常见配置/脚本逻辑问题,具体原因分为三类:
1. pipeline配置参数冲突
- 检查
pipeline.config中train_config字段的save_checkpoints_steps参数,若被误设为1会直接触发单步保存;由于评估流程默认监听新Checkpoint生成事件,会同步触发单步评估 - 若配置中同时填写了
save_checkpoints_steps和save_checkpoints_secs两个参数,nvidia-tensorflow 1.15的参数解析逻辑会出现优先级错误,自动触发步长为1的保存逻辑,建议删除save_checkpoints_secs配置,仅保留save_checkpoints_steps - 检查
eval_config字段的eval_interval_secs参数,若设为0或极小值,评估进程会高频轮询新Checkpoint,放大单步保存的异常表现
2. 官方QAT训练脚本的内置逻辑
你参考的SSDLite MobileDet量化训练脚本内置了特殊逻辑:当训练步数达到总训练步数num_steps的90%时,会自动开启高频Checkpoint保存,捕获最终量化精度。如果你在train_config中设置的num_steps恰好为1000左右,就会触发超过1000步后每步保存的逻辑,修改脚本中高频保存的触发阈值,或把num_steps调整为实际需要的总训练步长(如20000)即可解决。
3. Estimator运行配置异常
如果使用多GPU分布式训练,tf.estimator.RunConfig的keep_checkpoint_max参数若设为≤0的数值,nvidia-tensorflow 1.15会触发单步保存的兜底逻辑,建议将该参数设为5~10的正整数,同时在初始化RunConfig时显式传入save_checkpoints_steps参数,覆盖pipeline配置避免冲突。
内容的提问来源于stack exchange,提问作者Vignesh Kathirkamar
相关产品推荐
相关产品推荐

