«Есть некоторые функции, которые могут вам помочь, но не может быть универсального по умолчанию, потому что input_shape вашей модели неизвестен.
оложим, вы обучаетеtf.estimator.Estimator
с участиемtf.estimator.train_and_evaluate
с использованием набора данных проверки в настройке, аналогичной@ simlmx-х:
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
)