Skip to content

constantpi/tetris-rl

Repository files navigation

tetris-rl

テトリスを強化学習します。

Requirement

Dockerがインストールされていて、とdocker-composeコマンドが使える必要があります。

Usage

Dockerコンテナに入る

まず、./BUILD-DOCKER-IMAGE.shでDockerイメージをビルドします。

次に ./RUN-DOCKER-CONTAINER.shで、Dockerコンテナを作り、そのコンテナの中に入ります。コンテナの中に入っている間は<root>~/src$というように表示されています。

学習を始める

<root>~/src$python train.pyで学習を開始します。

初回はuse learned model? (y/n):でnを入力してください。

そしてInput the number of Ojama Blocks to stack in advance:では最初に積み上げておくお邪魔ブロックの段数を入力してください。0~3程度がおすすめです。

1000epochごとにモデルを/root/saved_models/my_modelに保存します。

学習を途中から再開する場合はuse learned model? (y/n):でyを入力してからInput model suffix:で何epochのときのモデルから再開するか入力してください。 1000epochのときのモデルを選ぶなら1000と入力します。 また前回学習を中断させていなく更に追加学習させる場合には何も入力せずにエンターを押してください。

モデルを試す

学習済みのモデルを実際に動かしてみたいときは<root>~/src$python test.pyを実行してください。 1000epochのときのモデルを試したければ、Input model suffix:で1000と入力する必要があります。学習し終わったときのモデルを試すなら何も入力せずにエンターを押してください。

学習の際と同様にInput the number of Ojama Blocks to stack in advance:では最初に積み上げておくお邪魔ブロックの段数を入力してください。

Note

nvidia-smiコマンドが使えるかどうかで、PCにGPUが乗っているか判断しています。このコマンドが使える場合のみ、GPUを使って学習を回します。

<root>~/src$python train.py --helpでオプションの付け方の説明がでてきます。 lrは学習率(デフォルト0.001)、gammaは割引率(デフォルト0.8)、num_epochsは何epoch学習を回すか(デフォルト3000)です

学習の様子は/root/saved_models/my_model/mean_scores.pngに保存されます。 image image

縦軸は直近の100epochにおけるゲームオーバーまでのスコアの平均で、横軸の1が100epochを表しています。

Author

constantpi(https://github.com/constantpi/)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published