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 stai lavorando con Android, ti consigliamo di esplorare la seguente applicazione di esempio che può aiutarti a iniziare.
Se stai utilizzando una piattaforma diversa da Android o hai già familiarità con le API di TensorFlow Lite , puoi scaricare il nostro modello addestrato.
Come funziona
Il modello è stato creato per un agente di gioco per giocare a un piccolo gioco da tavolo chiamato "Plane Strike". Per una rapida introduzione di questo gioco e delle sue regole, fai 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 formazione qui . Dopo aver addestrato l'agente, convertiamo il modello in TFLite e lo distribuiamo nell'app Android.
Durante il gioco effettivo nell'app Android, quando è il turno dell'agente di agire, l'agente osserva lo stato della scacchiera del giocatore umano (la scacchiera in basso), che contiene informazioni sui precedenti attacchi riusciti e falliti (colpi e mancati) e utilizza il modello addestrato per prevedere dove colpire dopo, 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 di politica | 84 Kb | Pixel 3 (Android 10) | 0,01 ms* |
Pixel 4 (Android 10) | 0,01 ms* |
* 1 filo utilizzato.
Ingressi
Il modello accetta un tensore 3-D float32
di (1, 8, 8) come stato della scheda.
Uscite
Il modello restituisce un tensore di forma float32
2-D (1,64) come punteggio previsto per ciascuna delle 64 possibili posizioni di strike.
Allena il tuo modello
Puoi addestrare il tuo modello per una scheda più grande/più piccola modificando il parametro BOARD_SIZE
nel codice di addestramento .