Skip to content
This repository provides code for machine learning algorithms for edge devices developed at Microsoft Research India.
Branch: master
Clone or download
lovettchris and harsha-simhadri more windows fixes (#78)
* more windows fixes.

* remove tensorflow save code because the saved tensorflow model is not useful (it is internally unrolled which makes it a huge mess).  Improved saved folder name so the date format is more standard which sorts better.  Add a "settings.json" output file which captures training details like number epochs, hidden dimensions, etc.
Latest commit 9f88f4a Mar 20, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
Applications/GesturePod Update Dec 10, 2018
cpp Dumping Sigma in Bonsai for SeeDot Dec 28, 2018
.gitignore fix python code so it runs on windows. (#77) Mar 16, 2019
License.txt Fix typo in (#65) Mar 16, 2019

Edge Machine Learning

This repository provides code for machine learning algorithms for edge devices developed at Microsoft Research India.

Machine learning models for edge devices need to have a small footprint in terms of storage, prediction latency, and energy. One example of a ubiquitous real-world application where such models are desirable is resource-scarce devices and sensors in the Internet of Things (IoT) setting. Making real-time predictions locally on IoT devices without connecting to the cloud requires models that fit in a few kilobytes.

This repository contains algorithms that shine in this setting in terms of both model size and compute, namely:

  • Bonsai: Strong and shallow non-linear tree based classifier.
  • ProtoNN: Prototype based k-nearest neighbors (kNN) classifier.
  • EMI-RNN: Training routine to recover the critical signature from time series data for faster and accurate RNN predictions.
  • FastRNN & FastGRNN - FastCells: Fast, Accurate, Stable and Tiny (Gated) RNN cells.

These algorithms can train models for classical supervised learning problems with memory requirements that are orders of magnitude lower than other modern ML algorithms. The trained models can be loaded onto edge devices such as IoT devices/sensors, and used to make fast and accurate predictions completely offline.

The tf directory contains code, examples and scripts for all these algorithms in TensorFlow. The cpp directory has training and inference code for Bonsai and ProtoNN algorithms in C++. Please see install/run instruction in the Readme pages within these directories. The applications directory has code/demonstrations of applications of the EdgeML algorithms.

For details, please see our wiki page and our ICML'17 publications on Bonsai and ProtoNN algorithms, NIPS'18 publications on EMI-RNN and FastGRNN.

Core Contributors:

We welcome contributions, comments, and criticism. For questions, please email Harsha.

People who have contributed to this project.

Microsoft Open Source Code of Conduct This project has adopted the

Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.