假设你正在训练的自定义tf.estimator.Estimator与tf.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函数)如何在评估损失没有改善的情况下指定终止训练n(n * steps),然后将“最佳”模型/检查点(由验证数据集确定)保存到唯一的文件名(例如best_validation.checkpoint)
添加回答
举报
0/150
提交
取消