Сыграйте в настольную игру против агента, который обучен с помощью обучения с подкреплением и развернут с помощью TensorFlow Lite.
Начать
Если вы новичок в TensorFlow Lite и работаете с Android, мы рекомендуем изучить следующий пример приложения, который поможет вам начать работу.
Если вы используете платформу, отличную от Android, или уже знакомы с API TensorFlow Lite , вы можете скачать нашу обученную модель.
Как это работает
Модель создана для того, чтобы игровой агент мог играть в небольшую настольную игру под названием «Удар самолета». Для краткого ознакомления с этой игрой и ее правилами обратитесь к этому README .
Под пользовательским интерфейсом приложения мы создали агента, который играет против игрока-человека. Агент представляет собой трехуровневый MLP, который принимает состояние доски в качестве входных данных и выводит прогнозируемый счет для каждой из 64 возможных ячеек доски. Модель обучается с использованием политик градиента (REINFORCE), код обучения вы можете найти здесь . После обучения агента мы конвертируем модель в TFLite и развертываем ее в приложении для Android.
Во время реальной игры в Android-приложении, когда наступает очередь агента действовать, агент смотрит на состояние доски игрока-человека (доска внизу), которая содержит информацию о предыдущих успешных и неудачных ударах (попаданиях и промахах). , и использует обученную модель, чтобы предсказать, куда нанести следующий удар, чтобы она могла закончить игру раньше, чем это сделает игрок-человек.
Тесты производительности
Цифры эталонных показателей производительности генерируются с помощью описанного здесь инструмента.
Название модели | Размер модели | Устройство | Процессор |
---|---|---|---|
Градиент политики | 84 Кб | Пиксель 3 (Андроид 10) | 0,01 мс* |
Пиксель 4 (Андроид 10) | 0,01 мс* |
* 1 использованная нить.
Входы
Модель принимает трехмерный тензор float32
(1, 8, 8) в качестве состояния доски.
Выходы
Модель возвращает двумерный тензор с float32
формы (1,64) в качестве прогнозируемых оценок для каждой из 64 возможных позиций удара.
Тренируйте свою собственную модель
Вы можете обучить свою модель для платы большего/меньшего размера, изменив параметр BOARD_SIZE
в обучающем коде .