Согласно моему пониманию машинного обучения (хотя я очень плохо знаком с ним), оценка модели должна проводиться в процессе обучения. Это позволит избежать переоснащения или уменьшить вероятность неправильных прогнозов.
Я попытался изменить пример официальных сайтов Tensorflow, предоставленных в соответствии с моим проектом, и обнаружил, что код выполняет оценку только ОДИН РАЗ после завершения обучения модели.
Это очень странно для меня, потому что только одна оценка, кажется, делает "фазу оценки" бесполезной. Другими словами, какая польза от оценки, если обучение уже сделано? Это не может помочь создать лучшую модель, не так ли?
Вот часть моего кода:
nn = tf.estimator.Estimator(model_fn=model_fn, params=model_params, model_dir='/tmp/nmos_self_define')
train_input_fn = tf.estimator.inputs.numpy_input_fn(
x={"x": train_features_numpy},
y=train_labels_numpy,
batch_size = 1,
num_epochs= 1,
shuffle=True)
# Train
nn.train(input_fn=train_input_fn)
test_input_fn = tf.estimator.inputs.numpy_input_fn(
x={"x": test_features_numpy},
y=test_labels_numpy,
batch_size = 1,
num_epochs= 1,
shuffle=False)
ev = nn.evaluate(input_fn=test_input_fn)
print("Loss: %s" % ev["loss"])
print("Root Mean Squared Error: %s" % ev["rmse"])
И результаты тренировок, визуализируемые через Tensorboard:

Как видите, в конце тренировки произошла только одна оценка (синяя точка)
Хотя я не уверен, что потери не уменьшены из-за отсутствия оценки, я хотел бы знать, как манипулировать кодом, чтобы процесс оценки мог выполняться во время обучения.
Спасибо, что уделили время на чтение этого вопроса, и я хотел бы обсудить этот вопрос как концептуально, так и в плане кода