You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于TensorFlow Supervisor仅保留最新5个模型的技术求助

解决TensorFlow Supervisor仅保留5个模型的问题

嘿,这个问题我之前也碰到过!其实问题不在Supervisor本身的删除逻辑里,而是藏在它默认使用的Saver配置里——你没看错,Supervisor如果没有收到自定义的Saver实例,会自动创建一个默认的tf.train.Saver(),而这个默认Saver的max_to_keep参数值就是5,这就是旧模型被自动清理的原因。

给你几个具体的解决思路:

  • 自定义Saver并修改max_to_keep:
    在初始化Supervisor之前,手动创建一个Saver实例,把max_to_keep设置成你想要的值——比如设为None就能保留所有模型,或者设置一个更大的数字(比如20)。然后把这个自定义的Saver传给Supervisor的saver参数。示例代码如下:

    import tensorflow as tf
    
    # 假设你已经定义好了模型的计算图...
    
    # 创建自定义Saver,设置保留所有模型
    saver = tf.train.Saver(max_to_keep=None)
    # 初始化Supervisor时传入这个saver
    sv = tf.train.Supervisor(
        saver=saver,
        log_dir="./your_log_dir",
        save_model_secs=600
    )
    
    # 后续的训练逻辑...
    
  • 检查是否有外部清理逻辑:
    虽然概率较低,但可以排查一下:你的训练脚本里有没有自己写的删除旧模型的代码?或者操作系统有没有定时任务在清理log_dir目录?还有,有些TensorFlow的辅助工具或者容器环境也可能会自动清理旧文件,这部分也可以确认下。

  • 验证Supervisor的Saver创建逻辑:
    你可以再去翻supervisor.py的__init__方法,里面有一段逻辑是如果saver参数为None,就会调用tf.train.Saver(),而这个默认构造的Saver确实会使用max_to_keep=5的默认值——这就是问题的核心啦。

希望这个思路能帮你解决问题!

内容的提问来源于stack exchange,提问作者Yuhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:22:36