Thanks for tuning in to Google I/O. View all sessions on demandWatch on demand

强化学习

与使用强化学习进行训练,并使用 TensorFlow Lite 进行部署的代理进行棋盘游戏对战。

开始

如果您是 TensorFlow Lite 新用户,并且使用的是 Android 平台,我们建议您研究以下可以帮助您入门的示例应用。

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 参数来针对较大/较小的棋盘来训练您自己的模型。