[Python][OpenAI Gym] OpenAI GymとAsciinema環境の整備


OpenAI Gymを使う場合,atariなどの環境だとMonitorしているときに mp4が保存されますが,text系の環境(論文でよく出てくるTaxiや,三目並べなどです)を使う場合Jsonファイルで出力されます. これをOpenAI Gymへ公開すれば(おそらく)再生して見ることができるのですが,これをローカル環境で 再現するためにasciinema環境を整備しました.

asciinemaのインストール

環境

  • Ubuntu 16.04 LTS

公式サイトに書いてある通りにapt-getでインストールします.

sudo apt-add-repository ppa:zanchey/asciinema  
sudo apt-get update  
sudo apt-get install asciinema

OpenAI GymでAsciinemaファイルの作成(例)

論文でよく見るTaxi Domainを使ってみます.中身は最低限にしてあります.Taxi-v2(コメント: 最近のgymをgitからインストールすると,v1が使えなくなってv2にアップデートされている)の環境を作り,適当に10ステップだけランダム行動します.結果taxi_simpleのディレクトリにファイルが出力されます(これをアップロードすると,記録される)

import gym
from gym.wrappers import Monitor

def main():
    GAME    = "Taxi-v2"
    env     = gym.make(GAME)
    n_state = env.observation_space.n
    n_action = env.action_space.n
    env = Monitor(env, "taxi_simple", force=True)

    s = env.reset()
    steps = 10
    for step in range(steps):
        env.render()
        action = env.action_space.sample()
        s, r, done, info = env.step(action)

    # close environment and monitor
    env.close()

if __name__ == '__main__':
    main()

Asciinema Playを利用して出力を再生する

単純にasciinema playで再生可能です.例を公開しました.これでいつでもローカルでエージェントの行動を見ることができますね.