与使用强化学习进行训练,并使用 TensorFlow Lite 进行部署的代理进行棋盘游戏对战。
开始
如果您是 TensorFlow Lite 新用户,并且使用的是 Android 平台,我们建议您研究以下可以帮助您入门的示例应用。
如果您使用的不是 Android 平台,或者您已经熟悉 TensorFlow Lite API,则可以下载我们训练好的模型。
工作原理
该模型是为一个游戏代理构建的,用于游玩一款名为 'Plane Strike' 的小型棋盘游戏。有关此游戏及其规则的快速介绍,请参阅此自述文件。
在该应用的用户界面底层,我们构建了一个与人类玩家对战的代理。该代理是一个 3 层 MLP,将棋盘状态作为输入,并输出每个棋盘格(共 64 个)的预测分数。该模型使用策略梯度(加强)进行训练,您可以在此处找到训练代码。在对代理进行训练后,我们将模型转换为 TFLite 并将其部署在 Android 应用中。
在 Android 应用的实际游戏中,当轮到代理采取行动时,代理会查看人类玩家的棋盘状态(底部的棋盘),其中包含有关之前成功和不成功的攻击(命中和未命中)的信息,并使用训练好的模型预测下一次攻击的位置,这样它就可以在人类玩家之前完成游戏。
性能基准
性能基准数值使用此处所述工具生成。
模型名称 | 模型大小 | 设备 | CPU |
---|---|---|---|
策略梯度 | 84 Kb | Pixel 3 (Android 10) | 0.01ms* |
Pixel 4 (Android 10) | 0.01ms* |
- 使用 1 个线程。
输入
该模型接受形状为 (1, 8, 8) 的三维 float32
张量作为输入。
输出
该模型返回形状为 (1,64) 的二维 float32
张量,作为 64 个可能的打击位置中每个位置的预测分数。
训练您自己的模型
您可以通过更改训练代码 中的 BOARD_SIZE
参数来针对较大/较小的棋盘来训练您自己的模型。