一 深入浅出强化学习原理入门(模型问题)

机器人找金币

问题:Traceback (most recent call last):
  File "", line 1, in
  File "/home/tofugan/gym/gym/envs/registration.py", line 167, in make
    return registry.make(id)
  File "/home/tofugan/gym/gym/envs/registration.py", line 125, in make
    patch_deprecated_methods(env)
  File "/home/tofugan/gym/gym/envs/registration.py", line 185, in patch_deprecated_methods
    env.seed  = env._seed
AttributeError: 'GridEnv' object has no attribute '_seed'

问题分析:

在registration.py文件中找到如下代码:

   env.reset = env._reset
    env.step  = env._step
    env.seed  = env._seed

对比其他的模型(如:CartPole-v0)我们发现书中的代码不存在seed函数。

解决方法:

1、注释掉(不推荐)

#env.seed  = env._seed

之所以不推荐是因为其他模型会用到这个,每次都要改很麻烦。

env = gym.make('GridWorld-v0')

WARN: Environment '' has deprecated methods '_step' and '_reset' rather than 'step' and 'reset'. Compatibility code invoked. Set _gym_disable_underscore_compat = True to disable this behavior.
可以忽略

出现新的问题:

Traceback (most recent call last):
  File "", line 1, in
  File "/home/tofugan/gym/gym/core.py", line 275, in render
    return self.env.render(mode, **kwargs)
  File "/home/tofugan/gym/gym/envs/registration.py", line 187, in render
    return env._render(mode, close=False)
AttributeError: 'GridEnv' object has no attribute '_render'
根据提示将render改为_render即可

结果:

一 深入浅出强化学习原理入门(模型问题)_第1张图片

 

2、添加_seed方法

取消前面的注释

添加

def _seed(self, seed=None):
        self.np_random, seed = seeding.np_random(seed)
        return [seed]

结果:

一 深入浅出强化学习原理入门(模型问题)_第2张图片

你可能感兴趣的:(机器学习,强化学习)