tensorflow修改每次训练保存模型数量和间隔时间

最近使用tensorflow object detection api,发现训练只保存最新的五次模型,而且是每隔十分钟保存一次,于是就想怎么才能改掉这个默认值,找了好久最后终于找到了,记录一下。

关于多长时间保存一次,可以通过model_main.py里的最后这行tf.estimator.RunConfig来修改。

def main(unused_argv):
  flags.mark_flag_as_required('model_dir')
  flags.mark_flag_as_required('pipeline_config_path')
  config = tf.estimator.RunConfig(model_dir=FLAGS.model_dir, keep_checkpoint_max=0,  save_checkpoints_steps=300) # save_checkpoints_secs=500,

注意这里有两个参数,save_checkpoints_steps和save_checkpoints_secs,从名字就可以看出来,一个是多少step保存一次,一个是多少秒保存一次,这两个是不能同时使用的,如果这两个都不定义,会默认使用save_checkpoints_secs=600,也就是十分钟保存一次训练的模型。

以及这里我以为改变keep_checkpoint_max就可以更改保存模型的数目,结果试验多次甚至去run_config.py里修改都没有变化,又找了好久,发现可以通过更改E:\Anaconda3\envs\gtf36\Lib\site-packages\tensorflow_core\python\training\saver.py(这里是自己环境中tensorflow的路径)中的max_to_keep来改变保存模型的数目。

 

这个问题困扰了好久,tensorflow太复杂不知道从哪里找起,总算是解决了^ ^

 

你可能感兴趣的:(菜鸟日记)