強化学習を使用してトレーニングされ、TensorFlow Liteを使用してデプロイされた、エージェントとのボードゲームをプレイします。
始めましょう
TensorFlow Liteを初めて使用し、Androidを使用している場合は、開始に役立つ次のサンプルアプリケーションを調べることをお勧めします。
Android以外のプラットフォームを使用している場合、またはTensorFlow Lite APIに既に精通している場合は、トレーニング済みモデルをダウンロードできます。
使い方
このモデルは、ゲームエージェントが「プレーンストライク」と呼ばれる小さなボードゲームをプレイするために構築されています。このゲームとそのルールの簡単な紹介については、このREADMEを参照してください。
アプリのUIの下に、人間のプレーヤーと対戦するエージェントを構築しました。エージェントは、ボードの状態を入力として受け取り、64個の可能なボードセルのそれぞれの予測スコアを出力する3層のMLPです。モデルはポリシー勾配(REINFORCE)を使用してトレーニングされ、トレーニングコードはここにあります。エージェントをトレーニングした後、モデルをTFLiteに変換し、Androidアプリにデプロイします。
Androidアプリでの実際のゲームプレイ中に、エージェントがアクションを実行する番になると、エージェントは人間のプレーヤーのボードの状態(下部のボード)を確認します。これには、以前の成功および失敗したストライク(ヒットとミス)に関する情報が含まれます。 、そして訓練されたモデルを使用して、次に攻撃する場所を予測します。これにより、人間のプレーヤーよりも先にゲームを終了できます。
パフォーマンスベンチマーク
パフォーマンスベンチマークの数値は、ここで説明するツールを使用して生成されます。
モデル名 | モデルサイズ | デバイス | CPU |
---|---|---|---|
ポリシー勾配 | 84 Kb | Pixel 3(Android 10) | 0.01ms * |
Pixel 4(Android 10) | 0.01ms * |
*1つのスレッドが使用されます。
入力
モデルは、ボードの状態として(1、8、8)の3次元float32
テンソルを受け入れます。
出力
モデルは、64の可能なストライク位置のそれぞれの予測スコアとして、形状(1,64)の2次元float32
テンソルを返します。
独自のモデルをトレーニングする
トレーニングコードのBOARD_SIZE
パラメータを変更することで、より大きな/より小さなボード用に独自のモデルをトレーニングできます。