search
LoginSignup
1

More than 1 year has passed since last update.

posted at

MontezumaRevengeを動かす。

初めに

pip install gym
だけではMontezumaRevengeは動かないので最低限動かして
サンプル行動を取るレベルを確認する。

作業内容

1 最低限必要なものをインストールする。

pip install gym==0.18.3
atari-py==0.2.9
pip install gym[atari]

2 MontezumaRevengeのROMをインストールする。

https://github.com/openai/atari-py#roms
http://www.atarimania.com/rom_collection_archive_atari_2600_roms.html
にアクセスして、Roms.rarをDLする。
Roms.rarを解凍する。
Roms.rarの中には

  • HC ROMS.zip
  • ROMS.zip

があるので、ROMS.zipを解凍する。

以下のコマンドでMontezumaRevengeなどのROMをインストールする。
python -m atari_py.import_roms Roms/ROMS

3 簡単なプログラムでMontezumaRevengeを動かす。

check_obs.py

import gym

#環境の作成
env = gym.make('MontezumaRevengeNoFrameskip-v4') 

#環境のリセット
    env.reset()
    #ゲームオーバーになるまで実行する。
    while True:
        #ゲーム環境を表示する。
        env.render()
        #行動を選択する。
        action = env.action_space.sample()
        #現在の状況に対して行動を行って次の状態、報酬、ゲーム状態などを受け取る
        obs, reward, done, _ = env.step(action)
        #done=True ゲームが終了になったら環境を終わらせる。
        if done:
            break

サンプル行動を行うゲームを出力した
Montezuma.gif

おまけ

OpenAIGymのrender()をgifとして保存する方法

import imageio
import gym

env = gym.make('MontezumaRevengeNoFrameskip-v4') 

# 画像配列の準備
images = []

env.reset()
while True:
    #配列に現在の状態をrgbデータで保存する。
    images.append(env.render(mode='rgb_array')) # 画像の追加
    env.render()
    action = env.action_space.sample()
    obs, reward, done, _ = env.step(action)

    if done:
        break
#保存されたrgbデータを保存するメソッドを使って保存する。
imageio.mimsave('./Montezuma.gif', images, 'GIF', **{'duration': 1.0/30.0})
print('gif_animation_saved')


render()のGIFの保存の仕方について参考。
https://note.com/npaka/n/n22e2f37953bc

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1