Gioca a un gioco da tavolo contro un agente addestrato utilizzando l'apprendimento per rinforzo e distribuito con TensorFlow Lite.
Iniziare
Se non conosci TensorFlow Lite e lavori con Android, ti consigliamo di esplorare la seguente applicazione di esempio che può aiutarti a iniziare.
Se utilizzi una piattaforma diversa da Android o hai già familiarità con le API TensorFlow Lite , puoi scaricare il nostro modello addestrato.
Come funziona
Il modello è costruito per consentire a un agente di gioco di giocare a un piccolo gioco da tavolo chiamato "Plane Strike". Per una rapida introduzione a questo gioco e alle sue regole, fare riferimento a questo README .
Sotto l'interfaccia utente dell'app abbiamo creato un agente che gioca contro il giocatore umano. L'agente è un MLP a 3 strati che prende lo stato della scheda come input e restituisce il punteggio previsto per ciascuna delle 64 possibili celle della scheda. Il modello viene addestrato utilizzando il gradiente di policy (REINFORCE) e puoi trovare il codice di addestramento qui . Dopo aver addestrato l'agente, convertiamo il modello in TFLite e lo distribuiamo nell'app Android.
Durante il gioco vero e proprio nell'app Android, quando è il turno dell'agente di agire, l'agente guarda lo stato del tabellone del giocatore umano (il tabellone in basso), che contiene informazioni sui precedenti attacchi riusciti e falliti (successi e mancati) e utilizza il modello addestrato per prevedere dove colpire successivamente, in modo che possa finire il gioco prima che lo faccia il giocatore umano.
Benchmark delle prestazioni
I numeri dei benchmark delle prestazioni vengono generati con lo strumento qui descritto.
Nome del modello | Dimensioni del modello | Dispositivo | processore |
---|---|---|---|
Gradiente politico | 84 Kb | Pixel 3 (Android 10) | 0,01 ms* |
Pixel 4 (Android 10) | 0,01 ms* |
* 1 thread utilizzato.
Ingressi
Il modello accetta un tensore float32
3-D di (1, 8, 8) come stato della scheda.
Uscite
Il modello restituisce un tensore di forma 2-D float32
(1,64) come punteggi previsti per ciascuna delle 64 possibili posizioni di attacco.
Addestra il tuo modello
Puoi addestrare il tuo modello per una scheda più grande/più piccola modificando il parametro BOARD_SIZE
nel codice di addestramento .