有人可以帮助说明Tensorflow Estimator的早期停止如何工作吗?
我使用的是早期停止钩子(请参见下文),但似乎并没有做太多-它不会停止,即使模型明显过拟合,也只训练给定的纪元。
我想知道如何准确设置 max_steps_without_decrease 和 min_steps 。我习惯于设置耐心参数,该参数指示如果评估集的损失(或其他指标)对于x个纪元数没有改善,则停止训练。我不确定如何将其映射到这些新参数-我对如何设置它们没有直觉。
early_stop = tf.contrib.estimator.stop_if_no_decrease_hook(estimator, 'loss', 1000)
train_spec = tf.estimator.TrainSpec(input_fn=train_input_fn, max_steps=2000, hooks=[early_stop])
eval_spec = tf.estimator.EvalSpec(input_fn=eval_input_fn, steps=1, exporters=exporter)
exporter = tf.estimator.BestExporter(
name="best_exporter",
serving_input_receiver_fn=serving_fn,
exports_to_keep=5
)
tf.estimator.train_and_evaluate(
estimator,
train_spec=train_spec,
eval_spec=eval_spec)