OpenAI Gym Atari Baseline deepq train.py не работает

Я пытался обучить игру Frostbite для Atari 2600 на базе DQN OpenAI. Я использую Linux и Python 3. Потратив некоторое время на попытки запустить его, я заметил пару проблем:

  1. from baselines.common.atari_wrappers_deprecated import wrap_dqn Не распознавался. После поиска в Интернете я обнаружил, что это быстрое решение: from baselines.common.atari_wrappers import wrap_deepmind

  2. Когда я запускаю код после этого, я получаю следующую ошибку в строке 246 Experiments/atari/train.py:

start_time, start_steps = time.time(), info["шаги"] KeyError: 'шаги'

Я заметил, что у пары других людей возникла эта проблема в течение последних 15 дней или около того, и пока не было ответов. Я новичок в RL, поэтому не имею большого представления. У кого-нибудь есть мысли?


person user1913810    schedule 06.12.2017    source источник
comment
Та же проблема. Просмотрел несколько других близлежащих файлов, и кажется, что способ использования информации [шаги] здесь используется по-другому в других местах, поэтому я исправил это. Позже есть информация [награды], с которой возникает та же проблема. Это также сделано по-другому в других местах. Я подозреваю, что эти файлы train.py и enjoy.py устарели.   -  person Jesse Pangburn    schedule 12.12.2017


Ответы (1)


Существует довольно большой коммит "bb40378", вызвавший эту проблему, так как некоторые вещи были изменены в этом коммите, что нарушило baselines/deepq/experiments/atari/train.py и Enjoy.py. Я заставил их работать со следующими шагами:

  1. Замените baselines/common/misc_util.py версией из коммита «8822518». Все, что произошло в коммите «bb40378», — это удаление SimpleMonitor, который устанавливает эти необходимые ключи «шаги» и «вознаграждения», необходимые для train.py, поэтому получение старой версии возвращает это.
  2. Измените train.py, чтобы импортировать этот SimpleMonitor и использовать его, а также исправить эту проблему с оболочкой env (я считаю, что wrap_atari_dqn является правильным)

Я разветвил их репозиторий для этого исправления. Коммит можно увидеть здесь. клонируйте их репо или просто клонируйте мое репо, как вам удобнее.

Пока я этим занимался, я включил параметр Enjoy.py, чтобы отображать наблюдение так, как показано на модели (чтобы вы могли увидеть, потеряла ли масштабирование или преобразование в градациях серого важную информацию для игры).

Обновлять

Вероятно, стоит отметить, что я пробовал это на Pong и Breakout с небольшим успехом. С Breakout он просто идет и садится в дальний левый угол экрана, поскольку подача всегда кажется там, что неизбежно приносит некоторые очки, но на самом деле это не игра. С Pong он просто перемещается в нижнюю часть экрана и остается там. Так что, по крайней мере, учебный материал по умолчанию в рамках этого эксперимента / atari, похоже, не слишком хорошо изучает материал atari, возможно, есть некоторые настройки, которые необходимо изменить, и он взлетит, но имейте в виду, что он не удивит и ошеломит вас. друзья из коробки.

person Jesse Pangburn    schedule 05.01.2018