机器人找金币

问题:Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  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 '<class 'gym.envs.classic_control.grid_mdp.GridEnv'>' 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 "<stdin>", line 1, in <module>
  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即可

结果:

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

 

2、添加_seed方法

取消前面的注释

添加

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

结果:

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

相关文章:

  • 2021-12-13
  • 2021-11-21
  • 2021-07-10
  • 2021-10-16
  • 2021-05-09
  • 2021-06-27
  • 2021-07-27
  • 2021-06-16
猜你喜欢
  • 2021-04-18
  • 2021-06-13
  • 2021-05-15
  • 2021-06-13
  • 2021-07-27
  • 2021-12-02
  • 2021-07-19
相关资源
相似解决方案