Dieses Repository bietet Code für Algorithmen für maschinelles Lernen für Edge -Geräte, die bei Microsoft Research India entwickelt wurden.
Maschinenlernende Modelle für Edge -Geräte müssen in Bezug auf Speicher, Vorhersagelatenz und Energie einen kleinen Fußabdruck haben. Ein Beispiel dafür, wo solche Modelle wünschenswert sind, sind Ressourcen-Scarce-Geräte und -sensoren im Internet der Dinge (IoT). Echtzeit-Vorhersagen vor Ort auf IoT-Geräten ohne eine Verbindung zur Cloud zu erstellen, sind Modelle erforderlich, die in wenigen Kilobyten passen.
Algorithmen, die in dieser Einstellung sowohl in Bezug auf die Modellgröße als auch in Bezug auf den Berechnen leuchten, nämlich:
Diese Algorithmen können Modelle für klassische beaufsichtigte Lernprobleme mit Gedächtnisanforderungen trainieren, die Größenordnungen sind, die niedriger sind als andere moderne ML -Algorithmen. Die trainierten Modelle können auf Kantengeräte wie IoT -Geräte/-sensoren geladen werden und werden verwendet, um schnelle und genaue Vorhersagen vollständig offline zu machen.
Ein Werkzeug, das Modelle anpasst, die von oben geschulten Algorithmen geschult werden, um durch feste Punktarithmetik abgeleitet zu werden.
Anwendungen, die die Verwendung dieser Algorithmen nachweisen:
tf -Verzeichnis enthält das Paket edgeml_tf , das diese Architekturen in Tensorflow angibt, und examples/tf enthält Beispieltraining -Routinen für diese Algorithmen.pytorch -Verzeichnis enthält das edgeml_pytorch -Paket, das diese Architekturen in Pytorch angibt, und examples/pytorch enthält Beispieltrainingsroutinen für diese Algorithmen.cpp -Verzeichnis verfügt über Trainings- und Inferenzcode für Bonsai und ProtoNN -Algorithmen in C ++.applications enthält Code/Demonstrationen von Anwendungen der Edgeeml -Algorithmen.tools/SeeDot -Verzeichnis verfügt über das Quantisierungstool, um Fixpunkt-Inferenzcode zu generieren.c_reference enthält den Inferenzcode (Floating-Punkt oder quantisiert) für verschiedene Algorithmen in C.Weitere Informationen finden Sie in diesen Verzeichnissen installieren/ausführen.
For details, please see our project page, Microsoft Research page, the ICML '17 publications on Bonsai and ProtoNN algorithms, the NeurIPS '18 publications on EMI-RNN and FastGRNN, the PLDI '19 publication on SeeDot compiler, the UIST '19 publication on Gesturepod, the BuildSys '19 publication on MSC-RNN, the NeurIPS '19 publication on Shallow RNNS, die ICML '20 -Veröffentlichung auf Drocc und die Veröffentlichung der Neurips '20 auf RNNPool.
Auch das ELL -Projekt, das optimierte Binärdateien für einige der von dieser Bibliothek ausgebildeten ONNX -Modelle liefern kann.
Code für Algorithmen, Anwendungen und Tools, die beigegeben werden von:
Mitwirkende zu diesem Projekt. Neue Mitwirkende Willkommen.
Bitte senden Sie uns Ihre Kommentare, Kritik und Fragen per E -Mail.
Wenn Sie in Ihrer Arbeit Software aus dieser Bibliothek verwenden, verwenden Sie bitte den folgenden Bibtex -Eintrag, um Zitat zu erhalten.
@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},
}
Microsoft Open Source -Verhaltenscode. Weitere Informationen finden Sie im FAQ oder wenden Sie sich an [email protected] mit zusätzlichen Fragen oder Kommentaren.