Я прочитал ответы здесь и пытаясь понять, как training
, validation
и testing
карта для Tensorflow оценщик API и Keras API.
A: Тензорный поток
Функция tf.estimator.train_and_evaluate
принимает train_spec
и eval_spec
.
Здесь, evaluate
средняя validation
или testing
в вышеуказанной терминологии? Если он testing
, где я могу указать validation set
?
B: Keras
В Keras это кажется более ясным, model.fit
принимает аргумент validation_data
, который предназначен для validation set
. Существует отдельная функция model.evaluate
, которой мы предоставляем test set
. Это правильно?
На практике термины "набор тестов" и "набор проверки" используются взаимозаменяемо (перевернуты от того, как они описаны выше). В результате становится общепринятым ссылаться на тот, который используется во время обучения, чтобы называться либо набором тестов/валидации. Чтобы устранить неоднозначность, набор, который откладывается для настройки гиперпараметра (здесь описывается как набор валидации), обычно упоминается как набор ограничений (источник)
Основываясь на этом определении, вы можете сделать одну простую вещь. Например, предположим, что первым набором данных является "поезд", второй - "валидация" (как в keras) для оценки модели в режиме реального времени на каждом шаге, а конечный набор данных - это "тест". вы можете просто проверить модель, как только закончите обучение, запустив model.predict в тестовом наборе данных, чтобы увидеть, как ваша модель работает с невидимыми данными.