Почему трек Ray Tune не сохраняет все точки данных?

Следующий блок кода предназначен для сохранения нескольких показателей из моего текущего прогона:

track.log(pgd_loss=pgd_loss)
track.log(pgd_acc=pgd_acc)
track.log(test_loss=test_loss)
track.log(test_acc=test_acc)

Однако работает только последняя строка track.log(test_acc=test_acc). Что я делаю неправильно?


person Tom Dörr    schedule 11.09.2020    source источник


Ответы (1)


Попытайтесь сохранить все свои метрики одним вызовом:

track.log(pgd_loss=pgd_loss, pgd_acc=pgd_acc, test_loss=test_loss, test_acc=test_acc)

Я подозреваю, что track.log сохраняет значения асинхронно и случайно перезаписывает значения, которые предыдущий вызов track.log еще не завершил. Возможно, поэтому работает только последний звонок.

person Tom Dörr    schedule 11.09.2020
comment
Отлично! На какой версии Рэя вы находитесь? Это должно быть исправлено в последних нескольких выпусках. - person richliaw; 11.09.2020
comment
Я использую самую последнюю версию. Я опубликовал этот ответ, прежде чем проверять, действительно ли мое решение работает, поскольку для запуска моего скрипта требуется много времени, и я был довольно уверен в своем исправлении. Другие скаляры регистрируются и могли быть зарегистрированы до моих изменений, но только test_acc отображается в разделе hparams тензорной доски, поэтому я подумал, что регистрируется только test_acc. У меня все еще та же проблема, что и раньше, и я не могу отобразить другие значения в hparams. - person Tom Dörr; 12.09.2020
comment
Вот как я получил другие значения для отображения: stackoverflow.com/questions/63855334/ Я не думаю, что должен добавлять это как еще один ответ, поскольку он, похоже, не имеет никакого отношения к Ray Tune. - person Tom Dörr; 12.09.2020