Доступ к результатам оценки Оценщика через SessionRunHooks - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь изменить программу, которая использует класс Estimator в TensorFlow (v1.10), и я хотел бы получить доступ к результатам оценки оценки каждый раз, когда происходит оценка, чтобы я мог копировать файлы контрольных точек только при новом максимумебыла достигнута.

Одна из моих идей заключалась в создании класса, унаследованного от SessionRunHook, выполняющего работу, которую я хочу, в методе after_run.В соответствии с документацией я могу указать, что передается в after_run, используя before_run.Однако я не могу найти способ получить результаты оценки, которые мне нужны, из информации, переданной в before_run.

Я посмотрел на код Estimator, и оказалось, что он записывает результаты в сводный файл , поэтому у меня была другая идея - прочитать это обратно в методе after_run,но сводный API , по-видимому, не обеспечивает каких-либо операций чтения.

Существуют ли другие способы достижения того, что я хочу сделать?Не использовать класс Estimator не вариант, так как это повлечет за собой радикальные изменения в коде, с которым я работаю.

1 Ответ

0 голосов
/ 15 октября 2018

Контрольные точки не совпадают с экспортом.Контрольные точки предназначены для устранения неисправностей и включают сохранение полного состояния обучения (весов, общего номера шага и т. Д.).

В вашем случае я бы рекомендовал экспортировать.Экспортированная модель будет записана в каталог с именем «экспортер», а обслуживающая функция ввода указывает, что конечный пользователь должен будет предоставлять службе прогнозирования.

Вы можете использовать класс «Лучший экспортер», чтобы просто экспортировать модели, которые работают лучше всего:

https://www.tensorflow.org/api_docs/python/tf/estimator/BestExporter

Этот класс экспортируетобслуживающий график и контрольные точки лучших моделей.

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

...