Efficient Neural Network Deployment for Microcontroller
원문 초록
Edge computing for neural networks is getting important especially for low power applications and offline devices. TensorFlow Lite and PyTorch Mobile were released for this purpose. But they mainly support mobile devices instead of microcontroller level yet. Microcontroller support is an emerging area now. There are many approaches to reduce network size and compute load like pruning, binarization and layer manipulation i.e. operator reordering. This paper is going to explore and generalize convolution neural network deployment for microcontrollers with two novel optimization proposals offering memory saving and compute efficiency in 2D convolutions as well as fully connected layers. The first one is in-place max-pooling, if the stride is greater than or equal to pooling kernel size. The second optimization is to use ping-pong buffers between layers to reduce memory consumption significantly. The memory savings and performance will be compared with CMSIS-NN framework developed for ARM Cortex-M CPUs. The final purpose is to develop a tool consuming PyTorch model with trained network weights, and it turns into an optimized inference engine(forward pass) in C/C++ for low memory(kilobyte level) and limited computing capable microcontrollers.
함께 살펴볼 논문
공통 태그를 근거로 연결했습니다. 실제 인용 관계나 논문의 우수성을 뜻하지 않습니다.
A Sample Efficient Conditional Independence Test in the Presence of Discretization
Agile Reinforcement Learning for Real-Time Task Scheduling in Edge Computing
Edge-Enabled Collaborative Object Detection for Real-Time Multi-Vehicle Perception
RoBiS: Robust Binary Segmentation for High-Resolution Industrial Images
FedSKC: Federated Learning with Non-IID Data via Structural Knowledge Collaboration
Addition is almost all you need: Compressing neural networks with double binary factorization
토론
이 논문과 연결된 포럼 글이 아직 없습니다.