Nauka wzmacniania

Zagraj w grę planszową przeciwko agentowi, który jest przeszkolony za pomocą uczenia się przez wzmacnianie i wdrożony za pomocą TensorFlow Lite.

Zaczynaj

Jeśli jesteś nowy w TensorFlow Lite i pracujesz z systemem Android, zalecamy zapoznanie się z poniższą przykładową aplikacją, która może pomóc w rozpoczęciu pracy.

Przykład Androida

Jeśli korzystasz z platformy innej niż Android lub znasz już interfejsy API TensorFlow Lite , możesz pobrać nasz wyszkolony model.

Pobierz model

Jak to działa

Model został stworzony dla agenta gry, który może grać w małą grę planszową o nazwie „Plane Strike”. Krótkie wprowadzenie do tej gry i jej zasad znajduje się w tym README .

Pod interfejsem aplikacji zbudowaliśmy agenta, który gra przeciwko człowiekowi. Agent jest trójwarstwowym MLP, który przyjmuje stan tablicy jako dane wejściowe i wyprowadza przewidywany wynik dla każdej z 64 możliwych komórek tablicy. Model jest szkolony przy użyciu gradientu zasad (REINFORCE), a kod szkoleniowy można znaleźć tutaj . Po przeszkoleniu agenta konwertujemy model do TFLite i wdrażamy go w aplikacji na Androida.

Podczas rzeczywistej rozgrywki w aplikacji na Androida, gdy przychodzi kolej agenta na podjęcie działań, agent patrzy na stan planszy gracza (tablicy na dole), która zawiera informacje o poprzednich udanych i nieudanych uderzeniach (trafienia i chybienia). i używa wytrenowanego modelu, aby przewidzieć, gdzie należy uderzyć w następnej kolejności, aby mógł zakończyć grę, zanim zrobi to człowiek.

Testy wydajności

Liczby testów wydajności są generowane za pomocą narzędzia opisanego tutaj .

Nazwa modelu Rozmiar modelu Urządzenie procesor
Gradient zasad 84 KB Piksel 3 (Android 10) 0,01ms*
Piksel 4 (Android 10) 0,01ms*

* 1 wątki użyte.

Wejścia

Model akceptuje tensor 3-D float32 (1, 8, 8) jako stan deski.

Wyjścia

Model zwraca tensor kształtu 2-D float32 (1,64) jako przewidywane wyniki dla każdej z 64 możliwych pozycji uderzenia.

Trenuj swój własny model

Możesz wytrenować własny model dla większej/mniejszej tablicy, zmieniając parametr BOARD_SIZE w kodzie uczącym.