是否可以在训练前和训练期间修改 OpenAI 健身房状态?
Is it possible to modify an OpenAI gym state before and during training?
我想做的是修改一个环境,比如超级马里奥兄弟健身房环境,把agent训练的图像模糊,看看强化学习agent是否仍然有能力在这些上学习“模糊”状态。
OpenAI 可以做这样的事情吗?我将如何添加健身房环境预处理步骤?
我建议您为您的健身房环境制作一个包装器,在 step()
和 reset()
函数中添加一个处理程序
这里有一些代码来说明这个想法:
class EnvWrapper(gym.Env):
def __init__(self, config):
self.env = gym.make("Your-Env-Name") # The wrapper encapsulates the gym env
def step(self, action):
obs, reward, done, info = self.env.step(action) # calls the gym env methods
obs = self._blur(obs) # applies your specific treatment
return obs, reward, done, info
def reset(self):
obs = self.env.reset() # same for reset
return self._blur(obs)
def _blur(self):
do_whatever_you_need
使用此方法不需要对原有环境做任何改动,一般来说是个好主意
我想做的是修改一个环境,比如超级马里奥兄弟健身房环境,把agent训练的图像模糊,看看强化学习agent是否仍然有能力在这些上学习“模糊”状态。
OpenAI 可以做这样的事情吗?我将如何添加健身房环境预处理步骤?
我建议您为您的健身房环境制作一个包装器,在 step()
和 reset()
函数中添加一个处理程序
这里有一些代码来说明这个想法:
class EnvWrapper(gym.Env):
def __init__(self, config):
self.env = gym.make("Your-Env-Name") # The wrapper encapsulates the gym env
def step(self, action):
obs, reward, done, info = self.env.step(action) # calls the gym env methods
obs = self._blur(obs) # applies your specific treatment
return obs, reward, done, info
def reset(self):
obs = self.env.reset() # same for reset
return self._blur(obs)
def _blur(self):
do_whatever_you_need
使用此方法不需要对原有环境做任何改动,一般来说是个好主意