openai gym env.P, AttributeError 'TimeLimit' объект не имеет атрибута 'P' - PullRequest
0 голосов
/ 27 августа 2018

В настоящее время я читаю Практическое обучение усилению с 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 года, а инкриминированный код написан на python3), так как я могу заменить ее?

Ответы [ 3 ]

0 голосов
/ 05 октября 2018

Попробуйте это,

for next_sr in env.env.P[state][action]:

Обратите внимание на дополнительную 'env' при запуске

Для общего использования, попробуйте

>>> dir(class_name)

это даст список функций-членов.

0 голосов
/ 20 января 2019

Если вы используете последнюю версию OpenAI Gym, решение, предложенное в по этой ссылке на выпуск github , сработало для меня.

Как объяснено в проблеме с github, мониторинг в последней версии тренажерного зала заменен оболочками, поэтому мониторинг не будет работать с последним тренажерным залом. Чтобы переопределить мониторинг в последней версии Gym, измените код, похожий на:

    env.monitor.start('cartpole-hill/', force=True)

до

    env = gym.wrappers.Monitor(env,directory='cartpole-hill/',force=True,write_upon_reset=True)
0 голосов
/ 08 сентября 2018

Попробуйте сначала развернуть env, добавив

env = env.unwrapped

...