首页 文章

Eval仅在训练开始时发布,训练在CloudML上结束

提问于
浏览
0

使用下面的代码 - 在使用CloudML进行培训时,eval仅运行两次(开始和结束) . 我希望这个评估至少每10秒一次 .

如果我在本地运行相同的代码,则表现如预期 .

eval_spec = tf.estimator.EvalSpec(input_fn = read_dataset('{} / test *' . format(OUTPUT_GCS),mode = tf.estimator.ModeKeys.EVAL),steps = 5,start_delay_secs = 2,throttle_secs = 10,exporters =出口商)

我的批量大小是64,而--scale-tier = BASIC .

1 回答

  • 1

    我想通了 . 在CloudML中运行时,底层检查点配置的覆盖方式与在Datalab中本地运行时的覆盖方式不同 .

    设置:my_checkpointing_config = tf.estimator.RunConfig(save_checkpoints_secs = 1 * 60,keep_checkpoint_max = 3)

    在你的estimator的congfig属性修复问题 .

    具有讽刺意味的是,文档说明了这一点,但在两个不同的部分:

    1)throttle_secs:Int . 除非最近的评估至少在很多秒前开始,否则不要重新评估 . 当然,如果没有新的检查点可以进行评估,因此,这是最小的(link) .

    2)默认情况下,Estimator根据以下计划(link)在model_dir中保存检查点:

    每10分钟(600秒)写一个检查点 . 在列车方法开始(第一次迭代)并完成(最终迭代)时写入检查点 . 仅保留目录中最近的5个检查点 .

    这与执行环境的默认设置有关 .

相关问题