假設你正在訓練的自定義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
提交
取消