Сохраните награды за эпизод в 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

Другие вопросы по тегам