2017-12-06 5 views
2

나는 Atari 2600 게임 서리 물기를 훈련하려고 시도했습니다 OpenAI의 DQN 기준선. 나는 몇 가지 문제를 발견 그것을 실행하려고 시간을 소비 한 후 리눅스와 파이썬 3을 사용하고 있습니다 : OpenAI 체육관 Atari Baseline deepq train.py가 실패했습니다

  1. from baselines.common.atari_wrappers_deprecated import wrap_dqn

    을 인정 받고되지 않았습니다. 온라인 검색 후 나는이 빠른 수정 것을 발견 : 나는 그 후 코드를 실행 from baselines.common.atari_wrappers import wrap_deepmind

  2. I 얻을 실험의 라인 (246)에 다음과 같은 오류/아타리/train.py :

start_time, start_steps = time.time(), info["steps"] KeyError: 'steps'

나는이 문제가 지난 15 일 이내에 팝업으로 나타나서 몇 명의 다른 사람들이 나타 났으며 아직 응답이 없었습니다. 나는 RL에 익숙하지 않아서 많은 아이디어를 가지고 있지 않습니다. 누구든지 어떤 생각을 가지고 있습니까?

+0

같은 문제가 있습니다. 근처에있는 다른 파일 몇 개를 살펴 보니 여기에서 정보 [ "steps"]를 사용하는 방법이 다른 곳에서 다르게 수행되므로이를 수정했습니다. 그런 다음 나중에 동일한 문제를 일으키는 정보 [ "보상"]가 있습니다. 다른 곳에서도 다르게 수행됩니다. train.py 및 enjoy.py 파일이 오래되었다고 생각합니다. –

답변

0

baseline/deepq/experiments/atari/train.py 및 enjoy.py를 위반하는 커밋에서 변경된 사항이 있으므로이 문제를 일으키는 상당히 큰 커밋 "bb40378"이 있습니다. 나는 다음과 같은 단계로 작업하게했다 :

  1. 기준선/common/misc_util.py를 커밋 "8822518"의 버전으로 바꾼다. 커밋 "bb40378"에서 일어난 모든 일은 train.py가 필요로하는 필요한 "steps"과 "rewards"를 설정하는 SimpleMonitor를 삭제 한 것이므로 오래된 버전을 얻는 것이 그 것을 되찾아줍니다.
  2. 수정 train.py 내가이 수정 프로그램에 대한 자신의 저장소를 포크

(wrap_atari_dqn 내가 생각 올바른입니다) SimpleMonitor에이 그것을 사용하고, 그 ENV 래퍼 문제를 해결할 수 있음을 가져옵니다. 당신은 커밋을 볼 수 있습니다 here. 그래서 자신의 repo의 복제본을 변경하거나 원하는대로 내 repo를 복제하도록 선택할 수 있습니다.

필자는 enjoy.py에서 관찰 결과를 모델에 표시하는 옵션을 두었습니다 (스케일링 또는 회색 음영 변환이 게임의 중요한 정보를 잃어버린 지 알 수 있도록).

업데이트

그것은 내가 작은 성공 퐁 (Pong) 및 브레이크 아웃에이 일을 시도했습니다 지적 아마 가치가있다. 탈주로 화면의 맨 왼쪽에 앉아서 서브가 항상 저기에있는 것처럼 보이기 때문에 필연적으로 점수를 얻지 만 실제로 플레이하지는 않습니다. Pong을 사용하면 화면 맨 아래로 들어가서 거기에 앉습니다. 그래서이 실험/아타리 밑의 기본 학습 내용은 실제로 atari 자료를 너무 잘 배우는 것 같지 않습니다. 아마도 변경해야 할 설정이있을 것입니다. 그러나 이륙 할 것이지만 놀라지 않을 것이고 무언가를 어리둥절하게 만들 것이라고 경고하십시오. 상자 밖에서 친구.