Jouez à un jeu de société contre un agent formé à l'aide de l'apprentissage par renforcement et déployé avec TensorFlow Lite.
Commencer
Si vous êtes nouveau sur TensorFlow Lite et que vous travaillez avec Android, nous vous recommandons d'explorer l'exemple d'application suivant qui peut vous aider à démarrer.
Si vous utilisez une plateforme autre qu'Android, ou si vous connaissez déjà les API TensorFlow Lite , vous pouvez télécharger notre modèle entraîné.
Comment ça fonctionne
Le modèle est conçu pour qu'un agent de jeu puisse jouer à un petit jeu de société appelé « Plane Strike ». Pour une introduction rapide de ce jeu et de ses règles, veuillez vous référer à ce README .
Sous l'interface utilisateur de l'application, nous avons créé un agent qui joue contre le joueur humain. L'agent est un MLP à 3 couches qui prend l'état de la carte en entrée et génère le score prédit pour chacune des 64 cellules possibles de la carte. Le modèle est formé à l'aide d'un gradient de politique (REINFORCE) et vous pouvez trouver le code de formation ici . Après avoir formé l'agent, nous convertissons le modèle en TFLite et le déployons dans l'application Android.
Pendant le jeu réel dans l'application Android, lorsque c'est au tour de l'agent d'agir, l'agent regarde l'état du plateau du joueur humain (le plateau en bas), qui contient des informations sur les précédentes frappes réussies et infructueuses (touchés et ratés). , et utilise le modèle entraîné pour prédire où frapper ensuite, afin qu'il puisse terminer le jeu avant le joueur humain.
Repères de performances
Les numéros de référence de performance sont générés avec l'outil décrit ici .
Nom du modèle | Taille du modèle | Appareil | CPU |
---|---|---|---|
Dégradé politique | 84 Ko | Pixel 3 (Android 10) | 0,01 ms* |
Pixel 4 (Android 10) | 0,01 ms* |
* 1 fils utilisés.
Contributions
Le modèle accepte un tenseur float32
3D de (1, 8, 8) comme état de la carte.
Les sorties
Le modèle renvoie un tenseur float32
2D de forme (1,64) comme scores prédits pour chacune des 64 positions de frappe possibles.
Entraînez votre propre modèle
Vous pouvez entraîner votre propre modèle pour une carte plus grande/plus petite en modifiant le paramètre BOARD_SIZE
dans le code de formation .