Как использовать vec_env или SubProcVecEnv для параллельного запуска нескольких спортивных залов? - PullRequest
0 голосов
/ 21 апреля 2019

Я хочу использовать несколько (OpenAI) тренажерных залов параллельно, чтобы ускорить мою модель RL. На мой взгляд, vec_env ( github repo ) - это решение, используемое в OpenAI, чтобы сделать именно это. Документация ( документация OpenAI для базовых показателей ) до сих пор кажется мне полу-полезной. В частности, у меня есть набор вопросов:

  1. Из репозитория я вижу, что конструктор vec_env:

    def init (self, num_envs, наблюдения_пространства, действия_пространства): ...

Это кажется странным, не должно ли оно содержать спецификацию, какие envs я использую?

  1. Документация как-то меня смущает еще больше: похоже, как пользователь, я, может быть, лучше использовать SubProcVecEnv, чтобы получить многопроцессорную обработку envs? Если да, то конструктор снова не понятен:

    класс stable_baselines.common.vec_env.SubprocVecEnv (env_fns, start_method = Нет) ...

env_fns объясняется как: env_fns - ([Gym Environment]) Среды для запуска в подпроцессах

Это: список строк, определяющих соответствующие среды, или список спортивных залов (возвращается из gym.make (env_name)), или что-то еще?

  1. Если SubProcVecEnv - это путь, как он используется: как я его вижу, я просто использую:

    step_async (действия) step_wait ()

везде, где я использовал

step(action)

раньше, просто с действием размера (batch_size, action_size) вместо размера (action_size).

Может кто-нибудь подтвердить?

  1. Откуда импортировать? Я знаю о них из базовых версий OpenAI, которые не являются той библиотекой, которую можно было бы использовать, это скорее инструмент обучения. Есть ли более профессиональная вещь, откуда можно их импортировать?
...