TensorFlow未保存100-400次迭代模型问题求助
问题根源:Saver默认仅保留最新5个模型文件
你遇到的问题其实是TensorFlow的Saver类默认行为导致的——默认情况下,Saver只会保留最近的5个模型 checkpoint。你的训练在第一个epoch里一共触发了9次模型保存(step100到step900),超过了默认的保留数量,所以最早的4个(step100、200、300、400)被自动删除了,只留下了最后5个。
解决方案:修改Saver的max_to_keep参数
你只需要在初始化Saver的时候,显式设置max_to_keep参数,指定你想要保留的模型数量,或者设置为None来保存所有生成的模型文件。
举个例子,如果你想保存所有迭代的模型:
# 在定义模型之后,初始化Saver时设置max_to_keep=None saver = tf.train.Saver(max_to_keep=None)
如果你只想保留最近20个模型:
saver = tf.train.Saver(max_to_keep=20)
验证修改效果
修改后重新训练,你会发现step100、200、300、400的模型文件都会被保留下来,不会再被自动清理。
另外补充一点:你的global_step计算是(i+1)*k,在第一个epoch(i=0)时就是k,所以每个保存点的global_step都是唯一的,不会出现覆盖的情况,问题完全来自于默认的保留数量限制。
内容的提问来源于stack exchange,提问作者jing
相关产品推荐
相关产品推荐

