Как передать тензоры PyTorch в базовый метод OpenAI SubprocVecEnv Step Method? - PullRequest
0 голосов
/ 08 января 2020

Базовые линии OpenAI имеют хороший класс SubprocVecEnv для распараллеливания сред с использованием подпроцессов. Однако, если я создаю параллельные среды envs и вызываю envs.step(actions), где actions - это тензор PyTorch, я получаю следующую ошибку:

RuntimeError: Can't call numpy() on Variable that requires grad. Use var.detach().numpy() instead.

Причиной является step_async код функции, которая распределяет действия: actions = np.array_split(actions, self.nremotes)

https://github.com/openai/baselines/blob/master/baselines/common/vec_env/subproc_vec_env.py#L77

Как я могу передать тензоры PyTorch в функцию шага, чтобы иметь возможность дифференцировать награды за действия?

...