该存储库为印度Microsoft Research开发的Edge设备提供了机器学习算法的代码。
边缘设备的机器学习模型在存储,预测延迟和能源方面需要具有较小的占地面积。此类模型的一个实例是物联网(IoT)设置中的资源筛选设备和传感器。在IoT设备上本地进行实时预测而不连接到云的情况需要适合几千字节的型号。
以模型大小和计算的方式在这种情况下发光的算法,即:
这些算法可以训练模型,以了解与其他现代ML算法低的记忆要求的经典监督学习问题。训练有素的型号可以加载到物联网设备/传感器等边缘设备上,并用于使快速准确的预测完全离线。
一种适用于以上算法训练的模型的工具,可通过固定点算术推断。
展示这些算法用途的应用程序:
tf目录包含edgeml_tf软件包,该软件包在Tensorflow中指定这些架构, examples/tf包含这些算法的示例训练例程。pytorch目录包含edgeml_pytorch软件包,该软件包在Pytorch中指定了这些架构, examples/pytorch包含这些算法的样本训练例程。cpp目录具有C ++中Bonsai和ProtoNN算法的培训和推理代码。applications目录具有EDGEML算法应用程序的代码/演示。tools/SeeDot目录具有生成定点推理代码的量化工具。c_reference目录包含C中各种算法的推理代码(浮点或量化)。请参阅这些目录中的读数页面中的安装/运行说明。
有关详细信息,请参阅我们的项目页面,Microsoft研究页面,ICML '17关于盆景和Protonn算法的出版物,关于EMI-RNN和FastGrnn的Neurips '18 PLDI '19 Seedot Compiler上的PLDI '19出版物,《 uist '19》,《 uist '19的《 uist '19》,《 uists'on Buildersy on buildsys'buildersys'buildsys'on buildsys '19》。 RNNS,ICML '20 DROCC的出版物以及RNNPOOL的Neurips '20出版物。
还要查看ELL项目,该项目可以为该库训练的某些ONX模型提供优化的二进制文件。
算法,应用程序和工具的代码:
该项目的贡献者。欢迎新贡献者。
请给我们发送您的评论,批评和问题。
如果您在工作中使用此库中的软件,请使用下面的Bibtex条目进行引用。
@misc{edgeml04,
author = {{Dennis, Don Kurian and Gaurkar, Yash and Gopinath, Sridhar and Goyal, Sachin
and Gupta, Chirag and Jain, Moksh and Jaiswal, Shikhar and Kumar, Ashish and
Kusupati, Aditya and Lovett, Chris and Patil, Shishir G and Saha, Oindrila and
Simhadri, Harsha Vardhan}},
title = {{EdgeML: Machine Learning for resource-constrained edge devices}},
url = {https://github.com/Microsoft/EdgeML},
version = {0.4},
}
微软开源行为代码。有关更多信息,请参见《行为守则常见问题守则》或与其他问题或评论联系[email protected]。