Этот репозиторий предоставляет код для алгоритмов машинного обучения для Edge Devices, разработанных в Microsoft Research India.
Модели машинного обучения для Edge Devices должны иметь небольшую площадь с точки зрения хранения, задержки прогноза и энергии. Одним из экземпляров того, где такие модели желательны, являются устройства и датчики для ресурсов и датчики в настройке Интернета вещей (IoT). Прогнозирование в режиме реального времени локально на устройствах IoT без подключения к облаку требует моделей, которые соответствуют нескольким килобитам.
Алгоритмы, которые сияют в этом настройке как с точки зрения размера модели, так и вычисления, а именно:
Эти алгоритмы могут обучать модели для классических контролируемых проблем обучения с требованиями к памяти, которые на порядки ниже, чем другие современные алгоритмы ML. Обученные модели могут быть загружены на крайние устройства, такие как устройства/датчики IoT, и используются для того, чтобы сделать быстрые и точные прогнозы полностью в автономном режиме.
Инструмент, который адаптирует модели, обученные вышеупомянутым алгоритмам, которые должны быть выведены по арифметике с фиксированной точкой.
Приложения, демонстрирующие использование этих алгоритмов:
tf содержит пакет edgeml_tf , который указывает эти архитектуры в TensorFlow, а examples/tf содержит процедуры обучения образцам для этих алгоритмов.pytorch содержит пакет edgeml_pytorch , который указывает эти архитектуры в Pytorch, а examples/pytorch содержит процедуры обучения образцов для этих алгоритмов.cpp имеет код обучения и вывода для алгоритмов Bonsai и ProtoNN в C ++.applications есть код/демонстрации приложений алгоритмов EDGEML.tools/SeeDot имеет инструмент квантования для создания кода вывода с фиксированной точкой.c_reference содержит код вывода (с плавающей точкой или квантованной) для различных алгоритмов в C.См. Инструкции по установке/запуск на страницах Readme в этих каталогах.
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, публикация ICML '20 по DROCC и публикация Neurips '20 на RNNPOOL.
Также проверьте проект ELL, который может предоставить оптимизированные двоичные файлы для некоторых моделей ONNX, обученных этой библиотекой.
Код для алгоритмов, приложений и инструментов, внесенных в систему:
Вкладчики этого проекта. Приглашаются новые участники.
Пожалуйста, напишите нам свои комментарии, критику и вопросы.
Если вы используете программное обеспечение из этой библиотеки в своей работе, используйте запись 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},
}
Microsoft открытый код поведения. Для получения дополнительной информации см. Кодекс поведения FAQ или свяжитесь с [email protected] с любыми дополнительными вопросами или комментариями.