All Projects → Bisonai → Awesome Edge Machine Learning

Bisonai / Awesome Edge Machine Learning

Licence: other
A curated list of awesome edge machine learning resources, including research papers, inference engines, challenges, books, meetups and others.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Awesome Edge Machine Learning

Aimet
AIMET is a library that provides advanced quantization and compression techniques for trained neural network models.
Stars: ✭ 453 (+225.9%)
Mutual labels:  quantization, pruning
Sai
SDK for TEE AI Stick (includes model training script, inference library, examples)
Stars: ✭ 28 (-79.86%)
Mutual labels:  quantization, iot
Iot Edge V1
Azure IoT Edge
Stars: ✭ 522 (+275.54%)
Mutual labels:  iot, edge
Keylime
A CNCF Project to Bootstrap & Maintain Trust on the Edge / Cloud and IoT
Stars: ✭ 128 (-7.91%)
Mutual labels:  iot, edge
Neardb
Simple document db made for infinitely scalable globally distributed reads.
Stars: ✭ 92 (-33.81%)
Mutual labels:  iot, edge
Distiller
Neural Network Distiller by Intel AI Lab: a Python package for neural network compression research. https://intellabs.github.io/distiller
Stars: ✭ 3,760 (+2605.04%)
Mutual labels:  quantization, pruning
Paddleslim
PaddleSlim is an open-source library for deep model compression and architecture search.
Stars: ✭ 677 (+387.05%)
Mutual labels:  quantization, pruning
SSD-Pruning-and-quantization
Pruning and quantization for SSD. Model compression.
Stars: ✭ 19 (-86.33%)
Mutual labels:  pruning, quantization
Micronet
micronet, a model compression and deploy lib. compression: 1、quantization: quantization-aware-training(QAT), High-Bit(>2b)(DoReFa/Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference)、Low-Bit(≤2b)/Ternary and Binary(TWN/BNN/XNOR-Net); post-training-quantization(PTQ), 8-bit(tensorrt); 2、 pruning: normal、regular and group convolutional channel pruning; 3、 group convolution structure; 4、batch-normalization fuse for quantization. deploy: tensorrt, fp32/fp16/int8(ptq-calibration)、op-adapt(upsample)、dynamic_shape
Stars: ✭ 1,232 (+786.33%)
Mutual labels:  quantization, pruning
Ntagger
reference pytorch code for named entity tagging
Stars: ✭ 58 (-58.27%)
Mutual labels:  quantization, pruning
Kuiper
A lightweight IoT edge analytics software
Stars: ✭ 327 (+135.25%)
Mutual labels:  iot, edge
Baetyl
Extend cloud computing, data and service seamlessly to edge devices.
Stars: ✭ 1,655 (+1090.65%)
Mutual labels:  iot, edge
Eve
EVE is Edge Virtualization Engine
Stars: ✭ 266 (+91.37%)
Mutual labels:  iot, edge
Macchina.io
macchina.io IoT Edge Device SDK is a powerful C++ and JavaScript SDK for edge devices, IoT gateways and connected embedded systems.
Stars: ✭ 437 (+214.39%)
Mutual labels:  iot, edge
sparsify
Easy-to-use UI for automatically sparsifying neural networks and creating sparsification recipes for better inference performance and a smaller footprint
Stars: ✭ 138 (-0.72%)
Mutual labels:  pruning, quantization
Awesome Emdl
Embedded and mobile deep learning research resources
Stars: ✭ 554 (+298.56%)
Mutual labels:  quantization, pruning
ATMC
[NeurIPS'2019] Shupeng Gui, Haotao Wang, Haichuan Yang, Chen Yu, Zhangyang Wang, Ji Liu, “Model Compression with Adversarial Robustness: A Unified Optimization Framework”
Stars: ✭ 41 (-70.5%)
Mutual labels:  pruning, quantization
bert-squeeze
🛠️ Tools for Transformers compression using PyTorch Lightning ⚡
Stars: ✭ 56 (-59.71%)
Mutual labels:  pruning, quantization
Model Optimization
A toolkit to optimize ML models for deployment for Keras and TensorFlow, including quantization and pruning.
Stars: ✭ 992 (+613.67%)
Mutual labels:  quantization, pruning
Mainflux
Industrial IoT Messaging and Device Management Platform
Stars: ✭ 1,341 (+864.75%)
Mutual labels:  iot, edge

Awesome Edge Machine Learning

Awesome

A curated list of awesome edge machine learning resources, including research papers, inference engines, challenges, books, meetups and others.

Table of Contents

Papers

Applications

There is a countless number of possible edge machine learning applications. Here, we collect papers that describe specific solutions.

AutoML

Automated machine learning (AutoML) is the process of automating the end-to-end process of applying machine learning to real-world problems.Wikipedia AutoML is for example used to design new efficient neural architectures with a constraint on a computational budget (defined either as a number of FLOPS or as an inference time measured on real device) or a size of the architecture.

Efficient Architectures

Efficient architectures represent neural networks with small memory footprint and fast inference time when measured on edge devices.

Federated Learning

Federated Learning enables mobile phones to collaboratively learn a shared prediction model while keeping all the training data on device, decoupling the ability to do machine learning from the need to store the data in the cloud.Google AI blog: Federated Learning

ML Algorithms For Edge

Standard machine learning algorithms are not always able to run on edge devices due to large computational requirements and space complexity. This section introduces optimized machine learning algorithms.

Network Pruning

Pruning is a common method to derive a compact network – after training, some structural portion of the parameters is removed, along with its associated computations.Importance Estimation for Neural Network Pruning

Others

This section contains papers that are related to edge machine learning but are not part of any major group. These papers often deal with deployment issues (i.e. optimizing inference on target platform).

Quantization

Quantization is the process of reducing a precision (from 32 bit floating point into lower bit depth representations) of weights and/or activations in a neural network. The advantages of this method are reduced model size and faster model inference on hardware that support arithmetic operations in lower precision.

Datasets

Visual Wake Words Dataset

Visual Wake Words represents a common microcontroller vision use-case of identifying whether a person is present in the image or not, and provides a realistic benchmark for tiny vision models. Within a limited memory footprint of 250 KB, several state-of-the-art mobile models achieve accuracy of 85-90% on the Visual Wake Words dataset.

Inference Engines

List of machine learning inference engines and APIs that are optimized for execution and/or training on edge devices.

Arm Compute Library

Bender

Caffe 2

CoreML

Deeplearning4j

Embedded Learning Library

Feather CNN

MACE

MNN

MXNet

NCNN

Neural Networks API

Paddle Mobile

Qualcomm Neural Processing SDK for AI

Tengine

TensorFlow Lite

dabnn

MCU and MPU Software Packages

List of software packages for AI development on MCU and MPU

FP-AI-Sensing

STM32Cube function pack for ultra-low power IoT node with artificial intelligence (AI) application based on audio and motion sensing

FP-AI-VISION1

FP-AI-VISION1 is an STM32Cube function pack featuring examples of computer vision applications based on Convolutional Neural Network (CNN)

Processor SDK Linux for AM57x

TIDL software framework leverages a highly optimized neural network implementation on TI’s Sitara AM57x processors, making use of hardware acceleration on the device

X-LINUX-AI-CV

X-LINUX-AI-CV is an STM32 MPU OpenSTLinux Expansion Package that targets Artificial Intelligence for computer vision applications based on Convolutional Neural Network (CNN)

e-AI Checker

Based on the output result from the translator, the ROM/RAM mounting size and the inference execution processing time are calculated while referring to the information of the selected MCU/MPU

e-AI Translator

Tool for converting Caffe and TensorFlow models to MCU/MPU development environment

eIQ Auto deep learning (DL) toolkit

The NXP eIQ™ Auto deep learning (DL) toolkit enables developers to introduce DL algorithms into their applications and to continue satisfying automotive standards

eIQ ML Software Development Environment

The NXP® eIQ™ machine learning software development environment enables the use of ML algorithms on NXP MCUs, i.MX RT crossover MCUs, and i.MX family SoCs. eIQ software includes inference engines, neural network compilers and optimized libraries

eIQ™ Software for Arm® NN Inference Engine

eIQ™ for Arm® CMSIS-NN

eIQ™ for Glow Neural Network Compiler

eIQ™ for TensorFlow Lite

AI Chips

List of resources about AI Chips

AI Chip (ICs and IPs)

A list of ICs and IPs for AI, Machine Learning and Deep Learning

Books

List of books with focus on on-device (e.g., edge or mobile) machine learning.

TinyML: Machine Learning with TensorFlow on Arduino, and Ultra-Low Power Micro-Controllers

  • Authors: Pete Warden, Daniel Situnayake
  • Published: 2020

Machine Learning by Tutorials: Beginning machine learning for Apple and iOS

  • Author: Matthijs Hollemans
  • Published: 2019

Core ML Survival Guide

  • Author: Matthijs Hollemans
  • Published: 2018

Building Mobile Applications with TensorFlow

  • Author: Pete Warden
  • Published: 2017

Challenges

Low Power Recognition Challenge (LPIRC)

Competition with focus on the best vision solutions that can simultaneously achieve high accuracy in computer vision and energy efficiency. LPIRC is regularly held during computer vision conferences (CVPR, ICCV and others) since 2015 and the winners’ solutions have already improved 24 times in the ratio of accuracy divided by energy.

Other Resources

Awesome EMDL

Embedded and mobile deep learning research resources

Awesome Mobile Machine Learning

A curated list of awesome mobile machine learning resources for iOS, Android, and edge devices

Awesome Pruning

A curated list of neural network pruning resources

Efficient DNNs

Collection of recent methods on DNN compression and acceleration

Machine Think

Machine learning tutorials targeted for iOS devices

Pete Warden's blog

Contribute

Unlike other awesome list, we are storing data in YAML format and markdown files are generated with awesome.py script.

Every directory contains data.yaml which stores data we want to display and config.yaml which stores its metadata (e.g. way of sorting data). The way how data will be presented is defined in renderer.py.

License

CC0

To the extent possible under law, Bisonai has waived all copyright and related or neighboring rights to this work.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].