LSTM Implementation
TODO:
- Vectorize the code across training examples.
- Clean up the matrix dimension nonsense (ex. 8x2x1 matrices).
- Clean up the weights_array nonsense
Phone application (Android App) to collect IMU data and point to the ip address and port the client is running on. Call run_test.sh from a bash terminal.
The demo requires a pre-trained LSTM network to run - more details coming soon, client_test.py was used to record training data, and train_lstm.py was used to train a network. The result would be saved as a pickle, and is then used in demo_lstm.py.
Data from the phone's IMU includes Acceleration on 2 axes. For the demo, data is streamed from phone to client application. From demo_lstm.py, a snippet of data is recorded by the user and then is classified by the LSTM network. Depending on the training of the network, the result will be the best guess and second best guess for the class of the letter that the user attempted to write in the air while holding the phone.