刚开始入门强化学习,买了好几本书,从最薄的《深入潜出强化学习原理入门》开始看起!
废话少说,第二章马尔科夫决策过程的实例出了问题,还是好几个,整了一下午终于解决,在此记录一下供有此类问题的同学们参考。
第一个问题终端执行程序时,进入python环境后直接运行下面代码报错
env = gym.make('GridWorld-v0')
查了以后发现没有import gym,这个简单!
接下来继续,结果运行这句代码还是报错!
完全按照书上的实例操作,居然连运行环境都没建好,反复操作了几次都没有解决问题,感觉不是代码的问题。知道看到这篇OpenAI Gym构建自定义强化学习环境,发现原来我使用的是自己建的gymlab虚拟环境,需要把代码拷贝到这个环境中才能运行,就是把书里的路径从/gym/gym/envs/classic_control换成/anaconda3/envs/gymlab/lib/python3.5/site-packages/gym/envs/classic_control,然后也两个__init__文件也同样在这个文件夹修改。
在运行,还是出错,不过这次错误变了,说明环境已经OK了!
这个问题网上遇到的人很多,也给了不少解决方法,不过很多不好用,给大家提供一个我找的好用的方法:
将下面的代码加入到grid_mdp.py文件的最后
def _seed(self, seed=None):
self.np_random, seed = seeding.np_random(seed)
return [seed]
继续运行书中代码 ,OK,成功运行到下一步(忽略警告)!
运行到env.render()又出问题了!
这个问题好解决,亲测好用的方法:
将grid_mdp.py中的render()函数名字修改为_render()
def _render(self,mode='human',close=False):
...
大功告成!