如何复制健身房环境



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

问题:给定一个健身房环境,复制它的最佳方法是什么,这样你就有两个重复但断开连接的环境?

这里有一个例子:

import gym
env = gym.make("CartPole-v0")
new_env = # NEED COPY OF ENV HERE
env.reset() # Should not alter new_env

Astariul有一个更新的答案::

他们的回答是:

import copy 
env_2 = copy.deepcopy(env)

有关"复制.深度复制"和复制库的更多信息

复制库文档的链接

您可以使用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`

但是,请注意,如果该解决方案包含无法深度复制的内容(如生成器(,那么它可能在自定义环境中不起作用。

最新更新