TensorFlow 1.10+ estimador personalizado parando cedo com train_and_evaluate

Suponha que você esteja treinando umtf.estimator.Estimator comtf.estimator.train_and_evaluate usando um conjunto de dados de validação em uma configuração semelhante à de@ simlmx's:

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
)

Freqüentemente, usa-se um conjunto de dados de validação para interromper o treinamento e evitar ajustes excessivos quando a perda continua a melhorar no conjunto de dados de treinamento, mas não no conjunto de dados de validaçã

Atualmente, otf.estimator.EvalSpec permite especificar depois de quantossteps (o padrão é 100) para avaliar o model

Como se pode (se possível, não usartf.contrib funções) designar para terminar o treinamento apósn número de chamadas de avaliação n * steps) onde a perda de avaliação não melhora e salva o "melhor" modelo / ponto de verificação (determinado pelo conjunto de dados de validação) em um nome de arquivo exclusivo (por exemplo,best_validation.checkpoint)

questionAnswers(1)

yourAnswerToTheQuestion