我是强化学习的新手,一直在寻找一个框架/模块来轻松驾驭这个险恶的地形。在我的搜索中,我遇到了两个模块 keras-rl 和 OpenAI GYM。
我可以让他们两个都在他们在 WIKI 上共享的示例上工作,但是它们带有预定义的环境,并且很少或根本没有关于如何设置我自己的自定义环境的信息。
如果有人能给我指点教程或只是向我解释如何设置非游戏环境,我将非常感激?
我是强化学习的新手,一直在寻找一个框架/模块来轻松驾驭这个险恶的地形。在我的搜索中,我遇到了两个模块 keras-rl 和 OpenAI GYM。
我可以让他们两个都在他们在 WIKI 上共享的示例上工作,但是它们带有预定义的环境,并且很少或根本没有关于如何设置我自己的自定义环境的信息。
如果有人能给我指点教程或只是向我解释如何设置非游戏环境,我将非常感激?
我已经在这些库上工作了一段时间,可以分享我的一些实验。
让我们首先考虑一个文本环境作为自定义环境的示例,https://github.com/openai/gym/blob/master/gym/envs/toy_text/hotter_colder.py
对于自定义环境,应该定义几件事。
或者,您可以使用类似的东西创建一个 _render 方法
def _render(self, mode='human', **kwargs):
outfile = StringIO() if mode == 'ansi' else sys.stdout
outfile.write('State: ' + repr(self.state) + ' Action: ' + repr(self.action_taken) + '\n')
return outfile
此外,为了更好的代码灵活性,您可以在 _get_reward 方法中定义奖励的逻辑,并在 _take_action 方法中通过采取行动来更改观察空间。