DLAI 2017 Team 2
This project is based on NeuralKart, which has been extended to use the minimap as input into a separate convolutional neural network as well as the introcution of LSTM layers to make current predictions based not only on the current input, but also on the past.
The following Python dependencies need to be installed.
- /Lua contains all lua and python scripts needed
- /Lua/lualibs contains necessary helper methods for the main lua scripts
- /Lua/weights contains the weight files for the NN for different tracks we’ve trained it on
- searchAIbeam_new.lua is a script searching for the optimal path given the three best starting points of the previous iteration. Once a track has been completed, you’ve obtained the initial labeled dataset for a track.
- PalyAndSearch_new.lua is used to let the NN play for 130 frames before the AI searches for the optimal path again, providing new frames for training. Before this script can be run, the predict server has to be up and running.
- Play.lua is used to let the NN play all by itself, once again the prediction server needs to be up and running.
- train.py the original training script from NeuralKart which we’ll use to compare our implementation against it.
- train_original_NN.py is the original NeuralKart implementation.
- train_with_map.py is our two tower architecture which also considers the minimap
- train_consecutive.py is our two tower architecture that considers two consecutive frames
- train_original_with_lstm.py is the original NN which has an LSTM layer inserted below the Conv layers
- predict_server-*.py are the predict servers for the corresponding implementations, which is used to play in combination with the corresponding lua scripts.
The neural networks
Overall we have tested/built 4 different structures, which a breively shown in the following.
Frame and Map based NN (two towers)
Consecutive NN (two consecutive frames are input to the two tower architecture)
Original NN with LSTM layer after the convolutional layers
For the performance evaluation all 4 implementations were trained on the same dataset, which is composed of a mixture of the play and search AI playing with all 4 implementations. The average and best times have been obtained from 5 consecutive runs on the same track.
|Implementation||Best lap||Best time||Avg. Lap||Avg. Time|
|Orig. + LSTM||DNF||DNF||DNF||DNF|