我在TensorFlow 1.4中使用tf.estimator,但tf.estimator.train_and_evaluate很好,但我需要尽早停止。首选的添加方式是什么?

我假设为此有一些tf.train.SessionRunHook。我看到有一个旧的contrib程序包,它的ValidationMonitor似乎早已停止,但在1.4中似乎不再存在。还是将来首选的方法是依靠tf.keras(使用它的确很容易尽早停止)而不是tf.estimator/tf.layers/tf.data

最佳答案

好消息! tf.estimator现在在master上具有早期停止支持,并且看起来将在1.10中。

estimator = tf.estimator.Estimator(model_fn, model_dir)

os.makedirs(estimator.eval_dir())  # TODO This should not be expected IMO.

early_stopping = tf.contrib.estimator.stop_if_no_decrease_hook(
    estimator,
    metric_name='loss',
    max_steps_without_decrease=1000,
    min_steps=100)

tf.estimator.train_and_evaluate(
    estimator,
    train_spec=tf.estimator.TrainSpec(train_input_fn, hooks=[early_stopping]),
    eval_spec=tf.estimator.EvalSpec(eval_input_fn))

关于python - 提前停止使用tf.estimator,怎么办?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47137061/

10-12 18:21