Сохранение модели tenorflow-slim с использованием интервалов шагов вместо интервала времени (в секундах)

Я использую обнаружение объекта в tenorflow API. В моей предыдущей работе я проверял текущий шаг и сохранял свою модель каждые n шагов, что-то вроде подхода, упомянутого здесь.

В этом случае, хотя авторы используют TensorFlow-Slim для проведения обучения. Итак, они используют tf.train.Saver который передается фактической функции, которая выполняет обучение: slim.learning.train(), В то время как эта функция имеет некоторые параметры, касающиеся интервала для записи модели обучения с использованием параметра save_interval_secs это зависит от времени и не зависит от шага.

Итак, с tf.train.Saver это "пассивная" утилита, как упомянуто здесь, и она просто сохраняет модель с предоставленными параметрами, то есть не учитывает понятия времени или шага, а также в коде обнаружения объекта управление передается в TensorFlow-Slim, передавая заставку как параметр, в этом случае, как я могу добиться, чтобы сохранить мою модель step-ward (каждые n шагов вместо каждых x секунд)?

Единственное решение - копаться в тонком коде и редактировать его (со всеми вытекающими отсюда рисками)? Или есть другой вариант, с которым я не знаком?

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

PS2
Глядя в slim.learning код, который я узнал, что в train() после передачи параметров он просто передает управление supervisor.Supervisor что относится к tf.train.Supervisor что немного странно, так как этот класс считается устаревшим. Использование supervisor также упоминается в документах slim.learning,

0 ответов

Другие вопросы по тегам