Как регистрировать чаще, чем оценивать с помощью `ray.tune.Trainable`

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

Судя по документации, похоже, что метод _train возвращает словарь, который используется как для логирования, так и для настройки гиперпараметров. Можно ли чаще вести журнал в рамках метода _train? В качестве альтернативы, могу ли я возвращать значения, которые я хочу регистрировать, из метода _train, но в некоторых случаях опускать метрику, требующую больших затрат, из словаря?


ray
person ethanabrooks    schedule 13.08.2019    source источник


Ответы (1)


Один из вариантов — использовать собственный механизм ведения журнала в Trainable. Вы можете войти в каталог пробной версии (Trainable.logdir). Если это противоречит встроенному ведению журнала Tensorboard, вы можете удалить его, установив tune.run(loggers=None).

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

Надеюсь, это поможет!

person richliaw    schedule 14.08.2019
comment
Посмотрите, например, на github. com/ray-project/ray/blob/, похоже, планировщики ожидают, что выбранная метрика будет присутствовать в results dict и быть скалярным значением. - person ethanabrooks; 14.08.2019
comment
Ах я вижу; вы хотите использовать этот показатель для оптимизации. Одним из вариантов здесь является использование фиктивного значения (т. е. последнего увиденного значения) и предоставление наиболее часто вычисляемых значений. - person richliaw; 15.08.2019
comment
Это блестящая идея! Вот что я сделаю. - person ethanabrooks; 15.08.2019