Сохранение моделей оценщика с наименьшей ошибкой проверки и восстановление для обучения - PullRequest
0 голосов
/ 02 мая 2018

Я хотел бы иметь возможность сохранять модель оценщика во время обучения всякий раз, когда ошибка уменьшается в наборе проверки, и сохранять определенное количество этих наиболее эффективных моделей на случай, если во время обучения что-то пойдет не так (например, переоснащение).

Доступные опции, по-видимому, включают реализацию Hook, Exporter или использование EstimatorSpecs, возвращаемых Estimator.evaluate. Тем не менее:

  • Я не могу использовать крюк, так как мне нужны средние потери во всем наборе проверки, и крюки вызываются после каждого шага.

  • С помощью экспортера я могу экспортировать модель в формат SavedModel, но я не могу найти ничего о восстановлении модели из этого формата и продолжении обучения с помощью Оценщика. Хотя, кажется, это возможно с сеансом.

  • Возвращенные EstimatorSpecs также нельзя использовать, поскольку я не могу сохранить модель с помощью tf.train.Saver без сеанса оценщика.

Кроме того, я считаю, что лучшая ошибка проверки, найденная до сих пор, должна быть каким-то образом сериализована на диске. Таким образом, всякий раз, когда я восстанавливаю модель и возобновляю обучение, компонент, ответственный за сохранение лучших моделей, знает лучшую ошибку проверки, найденную до сих пор, так что вместо того, чтобы начинать со значения флага и сохранять первую модель как «лучшую», он продолжается с того места, где остановился.

Есть ли способ, которым я могу этого достичь?

...