以前、openai/baselinesをインストールして実行する記事を書きました。
ここではopenai/gymのEnvを実行する方法について記述します。
(virtualenv内で実行したほうが良いかもしれない)
openai/gymインストール
$ git clone https://github.com/openai/gym.git $ cd gym $ pip install -e .
実行
実行用のスクリプトを作成
$ gedit test.py
test.py
は以下の内容を記述します。
import gym env = gym.make('CartPole-v0') env.reset() for _ in range(1000): env.render() env.step(env.action_space.sample())
実行
$ python test.py
gymにEnvを登録
上記のgym.makeはgymに登録されている環境を呼び出すことができます。
gymに登録するにはgym.envs.registration.register関数を使用します。
それはenv配下の__init.py__内に記述されていて、envモジュールをインポートする時に登録されるようになっています。
現在opnai/gymで登録されているenvはこちら https://github.com/openai/gym/blob/master/gym/envs/__init__.py
その他のEnvを実行
gymに登録されていて、他のモジュールに依存しないToy Text等の単純な環境であれば、上記のid(CartPole-v0)を書き換えるだけで実行ができます。
import gym env = gym.make('Taxi-v2') env.reset() for _ in range(1000): env.render() env.step(env.action_space.sample())
それぞれのEnvの基底クラスは https://github.com/openai/gym/blob/master/gym/core.py にあり、独自に実装する場合はこれを継承してオーバーライドします。
Envを独自に実装する場合
大雑把に各々のEnvの実装を見てみると
【初期化→処理→判定→終了処理 】
↑ ↵
となる。
大雑把すぎるので、
とりあえず繰り返しの処理に相当する_step(self, action)に視点を置いてみる。