如何复制健身房环境?

How to copy gym environment?

信息: 我正在使用 OpenAI Gym 创建 RL 环境,但我正在做的事情需要一个环境的多个副本。我不想做任何类似 [gym.make(...) for i in range(2)] 的事情来创建一个新环境。

问题:给定一个健身房环境,复制它的最佳方法是什么,以便您有 2 个重复但断开连接的环境?

这是一个例子:

import gym

env = gym.make("CartPole-v0")
new_env = # NEED COPY OF ENV HERE

env.reset() # Should not alter new_env

:

他们的回答是:

import copy 
env_2 = copy.deepcopy(env)

有关 'copy.deepcopy' 和副本库的更多信息

Link to copy library documentation

可以使用copy.deepcopy()复制当前环境:

import gym
import copy

env = gym.make("CartPole-v0")
env.reset()

env_2 = copy.deepcopy(env)

env.step() # Stepping through `env` will not alter `env_2`

但是请注意,如果自定义环境包含无法深度复制的内容(如生成器),此解决方案可能不适用于自定义环境。