Версия Ray и другая системная информация (Python версия, версия TensorFlow, ОС): У меня Debian 8.7, python 3.7.4, Tensorflow 2.0.1.
У меня есть пользовательская многоагентная среда, которая использует spaces
из gym
для определения observaion_space
и дискретные action_space
, и включает в себя reset
и step
функции. В этой среде могут быть любые агенты больше одного. Я собираюсь использовать эту среду в ray
и запускать различные реализованные мультиагентные алгоритмы там. Теперь, чтобы использовать его с ray
, я попробовал свою текущую среду и не работал с какой-то странной ошибкой из-за невозможности прочитать состояние. Итак, я обнаружил, что на самом деле я не знаю, как определить для них в моей среде соответствие с ray.
Итак, у меня есть несколько вопросов по этому поводу:
- Каким должен быть
action_space
? Например, можно думать о list
из gym.spaces.Discrete(.)
как [gym.spaces.Discrete(.), gym.spaces.Discrete(.), ...]
, или это может быть словарь таких пробелов, как {0: gym.spaces.Discrete(.), 1: gym.spaces.Discrete(.), ...}
, или может быть gym.spaces.Multidiscrete(.)
. Какой из них предпочитает ray
? - Тот же вопрос действителен для
observation_space
. - Когда мы вызываем
env.reset()
, он возвращает состояние и может быть списком или словарем. Это состояние должно быть предоставлено ray
для запуска алгоритма RL
. Опять же, как это должно быть? список или словарь? например [s^0_0, s^0_1, s^0_2, ....]
или {0: s^0_0, 1: s^0_1, 2: s^0_2, ....}
или что-то еще? - Тот же вопрос действителен для действия, награды и выполнено.
Пожалуйста, дайте мне знать, если мне нужно добавить больше деталей для каждого вопроса.
Заранее спасибо, Афшин