LoginSignup
1
1

More than 1 year has passed since last update.

MontezumaRevengeを動かす。

Posted at

初めに

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

1
1
0

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
  3. You can use dark theme
What you can do with signing up
1
1