Как контролировать частоту сообщений регистрации потерь при использовании tf.Estimator

Я использую ТФ 1.4. Мой вопрос касается tf.estimator.Estimator.

Я хотел бы контролировать частоту информационных сообщений «потеря и шаг», например:

INFO:tensorflow:loss = 0.00896569, step = 14901 (14.937 sec)

Я передаю tf.estimator.RunConfig конструктору Estimator. Но я не думаю, что есть параметр для управления сообщениями «потеря и шаг».

Я думаю, что параметр жестко запрограммирован в estimator.py, в методе _train_model:

      worker_hooks.extend([
      training.NanTensorHook(estimator_spec.loss),
      training.LoggingTensorHook(
          {
              'loss': estimator_spec.loss,
              'step': global_step_tensor
          },
          every_n_iter=100)
  ])

person Michael Rubinstein    schedule 26.11.2017    source источник


Ответы (2)


log_step_count_steps поддерживается в tensorflow v1.8: https://www.tensorflow.org/api_docs/python/tf/estimator/RunConfig

person Lucien Wang    schedule 14.05.2018
comment
Чтобы уточнить, вы должны передать пользовательское RunConfig с этим свойством, установленным в конструктор Estimator, tf.estimator.Estimator(...config=tf.estimator.RunConfig(log_step_count_steps=500)). - person kennysong; 07.07.2018

попробуйте вернуть logging_hook как параметр training_hook в возвращенном estimator_spec для режима == 'train' Printing дополнительные показатели обучения с помощью Tensorflow Estimator

https://github.com/tensorflow/tensorflow/pull/619/commits/48603b7faed85753ab905f177cbf4e0c8d1dcb64

https://www.tensorflow.org/install/install_sources#clone_the_tensorflow_repository

источник: https://stackoverflow.com/a/38097276/2218905

person Jason    schedule 22.12.2017
comment
Я попробовал ваше предложение. Он добавляет новый журнал к существующим обработчикам журналов. К сожалению, это не позволяет мне заменить или настроить частоту перехватчика журнала по умолчанию, который безоговорочно добавляется в estimator.py. - person Michael Rubinstein; 24.12.2017
comment
Ну, ведение журнала находится на C++, поэтому требуется пересборка из исходного кода. поэтому просто отключите ведение журнала (установите «ПРЕДУПРЕЖДЕНИЕ» или возрастающую серьезность) и зарегистрируйтесь другим способом. - person Jason; 22.03.2018
comment
Я ценю вашу помощь. Однако это не достигает моей цели. - person Michael Rubinstein; 23.03.2018
comment
см. обновление с исправлением С++ при сборке из исходного кода, я не пробовал это - person Jason; 28.03.2018
comment
Я не думаю, что это связано с реализацией С++. Как видно из исходного вопроса, LoggingTensorHook добавлен в estimator.py. Я жалуюсь на то, что пользователь Estimators не может контролировать наличие или частоту ведения журнала. - person Michael Rubinstein; 30.03.2018