Tensorflow - настройка EvalSpec - PullRequest
       11

Tensorflow - настройка EvalSpec

0 голосов
/ 25 июня 2019

Я новичок в tenorflow и плохо понимаю EvalSpec.Я не понимаю концепцию этапов оценки.Я думал, что как только мы изучим (или частично изучим) модель, мы оцениваем каждый пункт данных в наборе данных проверки / оценки.Означает ли это, что если у нас есть x количество строк оценки, то мы должны указать eval steps = x?

Есть ли руководство для выбора значений для шагов оценки?Зависит ли это от количества рабочих экземпляров или количества строк в наборе оценки?

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Один шаг оценки аналогичен использованию одного элемента из вашей оценки input_fn, который должен выводить пакеты данных. Так что в этом случае количество шагов должно быть примерно num_eval_rows/batch_size.

Если вы тренируетесь локально, вы можете просто установить для параметра шага значение None и просто сделать так, чтобы ваш input_fn не повторялся над вашими данными, чтобы он заканчивался в одну эпоху. В распределенном случае это поведение не обязательно поддерживается, поэтому вам нужно будет соответствующим образом установить количество шагов.

1 голос
/ 26 июня 2019

К сожалению, документация по API для этого класса очень плохая.Более подробная информация содержится в комментариях к коду :

steps: Int.Положительное количество шагов для оценки модели.Если None, вычисляется до тех пор, пока input_fn не вызовет исключение конца ввода.Подробнее см. Estimator.evaluate.

Звучит так, будто вы проводите какое-то распределенное обучение.В комментариях к коду функции train_and_evaluate содержится много информации, но, в частности, вам следует прочитать эту часть о распределенных средах.

...