我在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/