初めに
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
おまけ
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