如何复制健身房环境?
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' 和副本库的更多信息
可以使用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`
但是请注意,如果自定义环境包含无法深度复制的内容(如生成器),此解决方案可能不适用于自定义环境。
信息: 我正在使用 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' 和副本库的更多信息
可以使用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`
但是请注意,如果自定义环境包含无法深度复制的内容(如生成器),此解决方案可能不适用于自定义环境。