Я хочу использовать несколько (OpenAI) тренажерных залов параллельно, чтобы ускорить мою модель RL. На мой взгляд, vec_env ( github repo ) - это решение, используемое в OpenAI, чтобы сделать именно это. Документация ( документация OpenAI для базовых показателей ) до сих пор кажется мне полу-полезной. В частности, у меня есть набор вопросов:
Из репозитория я вижу, что конструктор vec_env:
def init (self, num_envs, наблюдения_пространства, действия_пространства):
...
Это кажется странным, не должно ли оно содержать спецификацию, какие envs я использую?
Документация как-то меня смущает еще больше: похоже, как пользователь, я, может быть, лучше использовать SubProcVecEnv, чтобы получить многопроцессорную обработку envs? Если да, то конструктор снова не понятен:
класс stable_baselines.common.vec_env.SubprocVecEnv (env_fns, start_method = Нет)
...
env_fns объясняется как: env_fns - ([Gym Environment]) Среды для запуска в подпроцессах
Это: список строк, определяющих соответствующие среды, или список спортивных залов (возвращается из gym.make (env_name)), или что-то еще?
Если SubProcVecEnv - это путь, как он используется: как я его вижу, я просто использую:
step_async (действия)
step_wait ()
везде, где я использовал
step(action)
раньше, просто с действием размера (batch_size, action_size) вместо размера (action_size).
Может кто-нибудь подтвердить?
- Откуда импортировать? Я знаю о них из базовых версий OpenAI, которые не являются той библиотекой, которую можно было бы использовать, это скорее инструмент обучения. Есть ли более профессиональная вещь, откуда можно их импортировать?