猿问

TensorFlow 1.10+ 自定义估算器使用 train_and_evaluate 提前停止

假设你正在训练的自定义tf.estimator.Estimatortf.estimator.train_and_evaluate在类似的设置使用验证数据集

classifier = tf.estimator.Estimator(

    model_fn=model_fn,

    model_dir=model_dir,

    params=params)


train_spec = tf.estimator.TrainSpec(

    input_fn = training_data_input_fn,

)


eval_spec = tf.estimator.EvalSpec(

    input_fn = validation_data_input_fn,

)


tf.estimator.train_and_evaluate(

    classifier,

    train_spec,

    eval_spec

)

通常,当训练数据集的损失继续改善而不是验证数据集的损失继续改善时,人们会使用验证数据集来切断训练以防止过度拟合。

目前tf.estimator.EvalSpec允许指定多少steps(默认为 100)来评估模型。

一个人(如果可能的话不使用tf.contrib函数)如何在评估损失没有改善的情况下指定终止训练nn * steps),然后将“最佳”模型/检查点(由验证数据集确定)保存到唯一的文件名(例如best_validation.checkpoint


Helenr
浏览 154回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答