Únase a TensorFlow en Google I/O, del 11 al 12 de mayo Regístrese ahora

Aprendizaje reforzado

Juega un juego de mesa contra un agente, que se entrena mediante el aprendizaje por refuerzo y se implementa con TensorFlow Lite.

Empezar

Si es nuevo en TensorFlow Lite y está trabajando con Android, le recomendamos que explore la siguiente aplicación de ejemplo que puede ayudarlo a comenzar.

Ejemplo de Android

Si está utilizando una plataforma que no sea Android, o si ya está familiarizado con las APIs TensorFlow Lite , puede descargar nuestro modelo entrenado.

Descargar modelo

Cómo funciona

El modelo está diseñado para que un agente de juegos juegue un pequeño juego de mesa llamado "Plane Strike". Para una rápida introducción de este juego y sus reglas, por favor refiérase a esta README .

Debajo de la interfaz de usuario de la aplicación, hemos creado un agente que juega contra el jugador humano. El agente es un MLP de 3 capas que toma el estado de la placa como entrada y genera la puntuación prevista para cada una de las 64 posibles celdas de la placa. El modelo está entrenado usando gradiente de la política (REFORZAR) y se puede encontrar el código de entrenamiento aquí . Después de entrenar al agente, convertimos el modelo a TFLite y lo implementamos en la aplicación de Android.

Durante el juego real en la aplicación de Android, cuando es el turno del agente de actuar, el agente mira el estado del tablero del jugador humano (el tablero en la parte inferior), que contiene información sobre golpes anteriores exitosos y fallidos (golpes y fallas) , y usa el modelo entrenado para predecir dónde golpear a continuación, de modo que pueda terminar el juego antes de que lo haga el jugador humano.

Benchmarks de desempeño

Números de referencia de rendimiento son generados con la herramienta descrita aquí .

Nombre del modelo Tamaño del modelo Dispositivo UPC
Gradiente de política 84 Kb Pixel 3 (Android 10) 0,01 ms *
Pixel 4 (Android 10) 0,01 ms *

* 1 hilos utilizados.

Entradas

El modelo acepta un 3-D float32 Tensor de (1, 8, 8) como el estado del tablero.

Salidas

El modelo devuelve un 2-D float32 Tensor de forma (1,64) como las puntuaciones predichos para cada una de las 64 posibles posiciones de ataque.

Entrena tu propio modelo

Se podría entrenar a su propio modelo para un tablero más grande / más pequeño por el cambio del BOARD_SIZE parámetro en el código de la formación .