Сохранение модели 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
,