OpenAI Gym に用意されている環境の1つブロック崩し(breakout)を実行してみます。
まずbreakout-v0を実行するために、次のコマンドを実行します。
1 | pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py |
使用するパッケージをインポートします。
1 | # パッケージのimport |
ブロック崩し(Breakout-v0)を指定して環境を作成します。
1 | # ゲームの開始 |
ゲームの状態と行動を把握するためのコードを実行します。
1 | # ゲームの状態と行動を把握 |
- 状態 env.observation_space は縦210ピクセル、横160のRGB情報です。
CartPoleのような物理情報ではなく画面そのものが状態となっているのがポイントです。 - 行動 env.unwrapped.get_action_meanings() は次の4種類となります。
- NOOP : 何もしない
- FIRE : 玉を発射
- RIGHT : 右へ移動
- LEFT : 左へ移動
試しに初期状態の画面を表示してみます。
1 | # 初期状態を描画してみる |
画面上部に表示される数字の意味は下記の通りです。
- 左の数字 : 得点
- 中央の数字 : ライフ(残機)
- 右の数字 : プレイヤー数/チーム数(今回は無視)
動画ファイルを保存する関数を定義します。
1 | # 動画の描画関数の宣言 |
ランダムに行動し、その様子を動画ファイルで保存します。
1 | frames = [] # 画像を格納していく変数 |
出力される動画ファイル 7_1breakout.mp4 は下記のようになります。
以上で、ブロック崩し(Breakout)をランダムに動かすことができました。
次回はこの環境に強化学習を適用します。
参考 > つくりながら学ぶ!深層強化学習 サポートページ