我目前正在阅读Sudharsan Ravichandiran的使用Python进行动手强化学习,在第一个示例中,我遇到了AttributeError:
AttributeError 'TimeLimit' object has no attribute 'P'
由以下行引发:
for next_sr in env.P[state][action]:
我找不到有关 env.P 的任何文档,但是我在这里找到了用python2编写的类似示例:https://gym.openai.com/evaluations/eval_48sirBRSRAapMjotYzjb6w/
我想 env.P 是一个过时的库的一部分(即使该书于2018年6月出版,并且隐含的代码在python3中),那么如何替换它?
答案 0 :(得分:5)
尝试通过添加此内容来先打开环境
env = env.unwrapped
答案 1 :(得分:0)
尝试一下
for next_sr in env.env.P[state][action]:
在开始时注意额外的“ env”
一般使用,请尝试
>>> dir(class_name)
这将列出成员函数。
答案 2 :(得分:0)
如果您使用的是OpenAI Gym的最新版本,则this github issue link中提出的解决方案对我有用。
正如github问题中所述,最新版本的Gym的监视已被包装程序取代,因此,监视不适用于最新的Gym。要在最新版本的Gym中重新实现监视,请更改类似于以下代码:
env.monitor.start('cartpole-hill/', force=True)
到
env = gym.wrappers.Monitor(env,directory='cartpole-hill/',force=True,write_upon_reset=True)