Сохраните награды за эпизод в ray.tune
Я обучаю несколько агентов алгоритмам PPO в многоагентной среде с использованием rllib/ray. Я использую
ray.tune()
команда для обучения агентов, а затем загрузка данных обучения из
~/ray_results
. Эти данные содержат действия, выбранные агентами в каждом обучающем эпизоде, но мне также нужны соответствующие награды агента. Я просмотрел документацию, но, похоже, нет аргумента конфигурации, позволяющего сохранять награды за эпизоды. Есть ли у кого-нибудь обходной путь?
3 ответа
Вам нужно добавить эти значения в info dict, затем они будут собраны настройкой лучей.
Ты проверил
progress.csv
а также
result.json
? Подробную информацию о награде для каждого агента в каждом эпизоде можно найти там.
Награда за эпизод
result.json
по умолчанию является суммой среднего значения всех вознаграждений агента за эпизод, а вознаграждение политики будет средним значением всех вознаграждений агента, назначенных этой политике. Пример для 2 агентов:
"hist_stats": {
"episode_reward": [527.0, 399.0, 165.0, 8.0, 268.0, 138.0, 154.0, 846.0],
"episode_lengths": [50, 50, 50, 50, 50, 50, 50, 50],
"policy_0_reward": [0.0, 0.0, 0.0, 8.0, 240.0, 138.0, 0.0, 0.0],
"policy_1_reward": [527.0, 399.0, 165.0, 0.0, 28.0, 0.0, 154.0, 846.0]
},
Но вы могли бы изменить функцию summarize_episodes соответствующим образом в
metrics.py