编程语言
首页 > 编程语言> > python – 早期停止使用tf.estimator,怎么样?

python – 早期停止使用tf.estimator,怎么样?

作者:互联网

我在TensorFlow 1.4中使用tf.estimator而且tf.estimator.train_and_evaluate非常棒,但我需要提前停止.添加它的首选方法是什么?

我假设在某处有一些tf.train.SessionRunHook.我看到有一个带有ValidationMonitor的旧的contrib包似乎已经提前停止了,但它似乎不再存在于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,tensorflow,keras,neural-network,tensorflow-estimator
来源: https://codeday.me/bug/20191004/1851439.html