Train Neural Network on mobile devices
- Amount of data is small: Pretrained model + few shot learning: the training data in devices is small.
- Explore more data types: Currently only using images as input. Support machine translation etc.
- Moving from algorithm to application: Write a mobile application with on device training.
- Customization: Customized model weights for each device
- Economy: No data transmission overhead.
- Privacy: Data does not leave devices
- Memory Limit: Total Memory = Parameter Memory + Gradient Memory + Layer Activations Memory.
- Speed Limit (FLOPS): Not a hard limit. We don’t need training to be finished in real-time.
- Energy/Battery Limit: Not a hard limit. We can limit training to be only executed during charging.
-
The library deeplearning4j: https://github.com/deeplearning4j/deeplearning4j
-
PyTorch code for i-revnet: https://github.com/jhjacobsen/pytorch-i-revnet
-
Tensorflow code for revnet: https://github.com/renmengye/revnet-public
-
Deep neural networks for voice conversion (voice style transfer) in Tensorflow: https://github.com/andabi/deep-voice-conversion
-
Surface Inspection defect detection dataset: https://github.com/abin24/Surface-Inspection-defect-detection-dataset
-
Lumber grading dataset (image tagging): http://www.ee.oulu.fi/~olli/Projects/Lumber.Grading.html
-
A blog about Training on the device: https://machinethink.net/blog/training-on-device/