Merge branch 'master' into master

This commit is contained in:
Don Dennis 2018-10-23 12:08:28 +05:30 коммит произвёл GitHub
Родитель 3b8e8976f8 ed8e11f46b
Коммит c875f5959a
4 изменённых файлов: 46 добавлений и 13 удалений

Просмотреть файл

@ -1,8 +1,15 @@
## Edge Machine Learning
This repository provides code for machine learning algorithms for edge devices developed at [Microsoft Research India](https://www.microsoft.com/en-us/research/project/resource-efficient-ml-for-the-edge-and-endpoint-iot-devices/).
This repository provides code for machine learning algorithms for edge devices
developed at [Microsoft Research
India](https://www.microsoft.com/en-us/research/project/resource-efficient-ml-for-the-edge-and-endpoint-iot-devices/).
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.
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.
@ -10,11 +17,25 @@ This repository contains algorithms that shine in this setting in terms of both
- **EMI-RNN**: Training routine to recover the critical signature from time series data for faster and accurate RNN predictions.
- **Fast(G)RNN**: **F**ast, **A**ccurate, **S**table and **T**iny (**G**ated) 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.
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 directrory 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 contains the code for the GesturePod - a gesture recognition system.
The `tf` directrory 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](https://github.com/Microsoft/EdgeML/wiki/) and our ICML'17 publications
on [Bonsai](docs/publications/Bonsai.pdf) and
[ProtoNN](docs/publications/ProtoNN.pdf) algorithms, NIPS'18 publications on
[EMI-RNN](docs/publications/emi-rnn-preprint-01.pdf) and
[Fast(G)RNN](docs/publications/FastGRNN.pdf).
For details, please see our [wiki page](https://github.com/Microsoft/EdgeML/wiki/) and our ICML'17 publications on [Bonsai](docs/publications/Bonsai.pdf) and [ProtoNN](docs/publications/ProtoNN.pdf) algorithms, NIPS'18 publications on [EMI-RNN](docs/publications/EMI-RNN.pdf) and [Fast(G)RNN](docs/publications/FastGRNN.pdf).
Core Contributors:
- [Aditya Kusupati](https://adityakusupati.github.io/)
@ -23,10 +44,18 @@ Core Contributors:
- [Don Dennis](https://dkdennis.xyz)
- [Harsha Vardhan Simhadri](http://harsha-simhadri.org)
We welcome contributions, comments, and criticism. For questions, please [email Harsha](mailto:harshasi@microsoft.com).
We welcome contributions, comments, and criticism. For questions, please [email
Harsha](mailto:harshasi@microsoft.com).
[People](https://github.com/Microsoft/EdgeML/wiki/People/) who have contributed to this [project](https://www.microsoft.com/en-us/research/project/resource-efficient-ml-for-the-edge-and-endpoint-iot-devices/).
[People](https://github.com/Microsoft/EdgeML/wiki/People/) who have contributed
to this
[project](https://www.microsoft.com/en-us/research/project/resource-efficient-ml-for-the-edge-and-endpoint-iot-devices/).
### Microsoft Open Source Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
### Microsoft Open Source Code of Conduct This project has adopted the
[Microsoft Open Source Code of
Conduct](https://opensource.microsoft.com/codeofconduct/). For more information
see the [Code of Conduct
FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact
[opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional
questions or comments.

Просмотреть файл

@ -6,8 +6,8 @@
test_file="-I usps10/test.txt"
model_file="-M usps10/ProtoNNResults/ProtoNNTrainer_pd_15_protPerClass_0_prot_200_spW_1.000000_spZ_1.000000_spB_1.000000_gammaNumer_1.000000_normal_3_seed_42_bs_1024_it_2_ep_20/model"
normalization_file="-n usps10/ProtoNNResults/ProtoNNTrainer_pd_15_protPerClass_0_prot_200_spW_1.000000_spZ_1.000000_spB_1.000000_gammaNumer_1.000000_normal_3_seed_42_bs_1024_it_2_ep_20/minMaxParams"
model_file="-M usps10/ProtoNNResults/ProtoNNTrainer_pd_15_protPerClass_0_prot_200_spW_1.000000_spZ_1.000000_spB_1.000000_gammaNumer_1.000000_normal_3_seed_42_bs_1024_it_20_ep_20/model"
normalization_file="-n usps10/ProtoNNResults/ProtoNNTrainer_pd_15_protPerClass_0_prot_200_spW_1.000000_spZ_1.000000_spB_1.000000_gammaNumer_1.000000_normal_3_seed_42_bs_1024_it_20_ep_20/minMaxParams"
output_dir="-O usps10/ProtoNNResults"
input_format="-F 0"
ntest="-e 2007"

Двоичные данные
docs/publications/emi-rnn-preprint-01.pdf Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -5,11 +5,15 @@ algorithms developed as part of EdgeML. Currently, the following algorithms are
available in Tensorflow:
1. [Bonsai](../docs/publications/Bonsai.pdf)
2. [EMI-RNN](../docs/publications/EMI-RNN.pdf)
2. [EMI-RNN](../docs/publications/emi-rnn-preprint-01.pdf)
3. [Fast(G)RNN](../docs/publications/FastGRNN.pdf)
4. [ProtoNN](../docs/publications/ProtoNN.pdf)
The TensorFlow compute graphs for these algoriths are packaged as `edgeml.graph`. Trainers for these algorithms are in `edgeml.trainer`. Usage directions and examples for these algorithms are provided in `examples` directory. To get started with any of the provided algorithms, please follow the notebooks in the the `examples` directory.
The TensorFlow compute graphs for these algoriths are packaged as
`edgeml.graph`. Trainers for these algorithms are in `edgeml.trainer`. Usage
directions and examples for these algorithms are provided in `examples`
directory. To get started with any of the provided algorithms, please follow
the notebooks in the the `examples` directory.
## Dependencies