openai gym env.P, объект AttributeError 'TimeLimit' не имеет атрибута 'P'

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


person giuliov    schedule 27.08.2018    source источник


Ответы (3)


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

env = env.unwrapped

person Ryan    schedule 07.09.2018

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

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

Обратите внимание на дополнительный "env" в начале

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

>>> dir(class_name)

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

person Kumar Aman    schedule 05.10.2018

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

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

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

to

    env = gym.wrappers.Monitor(env,directory='cartpole-hill/',force=True,write_upon_reset=True)
person Arsene Lupin    schedule 20.01.2019