我正在尝试解决因模型过度拟合导致的问题。不幸的是,我不知道如何增加model.cpk
在训练期间输出的legacy/train.py
的间隔。有没有一种方法可以减少每次保存model.cpk
和禁用其删除之间的时间。我正在训练小型模型,并且可以承受增加的存储需求。
答案 0 :(得分:1)
有关保存间隔和要保留的检查点数量,请在此处查看: https://www.tensorflow.org/api_docs/python/tf/train/Saver
通过上面的链接
-> max_to_keep
-> keep_checkpoint_every_n_hours
此外,Saver()构造函数的可选参数使您可以 控制磁盘上检查点文件的扩散:
max_to_keep表示最近要检查的检查点文件的最大数量 保持。创建新文件时,将删除旧文件。如果为None或0, 没有检查点从文件系统中删除,只有最后一个 保留在检查点文件中。默认为5(即5个最 最近的检查点文件被保留。)
keep_checkpoint_every_n_hours:除了保持最新 max_to_keep检查点文件,您可能想要保留一个检查点 每N个小时的训练一次。如果您想这样做会很有用 稍后分析模型在长时间的培训过程中如何发展。 例如,传递keep_checkpoint_every_n_hours = 2可以确保您 每2个小时的训练应保留一个检查点文件。默认值 值10,000小时有效地禁用了该功能。
我相信,如果您使用的是一个,则可以在培训配置中参考。在同一旧目录中检出trainer.py文件。在375行附近,它引用keep_checkpoint_every_n_hours->
# Save checkpoints regularly.
keep_checkpoint_every_n_hours = train_config.keep_checkpoint_every_n_hours
saver = tf.train.Saver(keep_checkpoint_every_n_hours=keep_checkpoint_every_n_hours)
它没有引用的是可能需要添加到该脚本的max_to_keep行。就是说,最后,虽然很难确定没有所有信息,但是我不禁要以为您正在以错误的方式前进。收集每个检查点并进行审核似乎不是解决过度拟合的正确方法。运行tensorboard并在此处检查训练结果。此外,使用带有评估数据的模型进行评估也将提供有关模型执行情况的大量见解。
祝您一切顺利!