【问题描述】:
saver = tf.train.Saver(max_to_keep=2)
saver.save(sess, args.model_save_dir + '/lm_pretrain.ckpt', global_step=global_step)
训练过程中发现max_to_keep=2无效,即,./models/checkpoint 中仅保留了两个模型的名字,但是./models/下却保留了训练过程中所有checkpoint文件。
【解决办法】:出现这一现象的原因是我的 args.model_save_dir=“.\models\” 导致,正确的路径应为 args.model_save_dir=".\models"。
【原因如下】:
上述错误导致saver的save_path被设置为“.\models\lm_pretrain.ckpt”,虽然在saver的保存模型阶段能够正确的保存到路径“.\models\lm_pretrain.ckpt”,然而, 为保证仅保存2个checkpoint,需要删除旧的checkpoint(…\saver.py 第960行),也就是在这个过程中,因路径错误,导致无法正产删除旧的checkpoint。