# majianjia/nnom

A higher-level Neural Network library for microcontrollers.

Repository: https://github.com/majianjia/nnom
Canonical: https://ross.abutalabs.com/products/nnom
Language: C
License: Apache-2.0
License Family: permissive
Topics: microcontroller, mcu, nnom, neural-networks, machine-learning, embedded, iot, ml
Last push: 2024-04-08T03:15:10+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 2781, "days_push": 877, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1164, forks 281 (observed 2026-08-28T04:03:49.923264+00:00)

## What it is
NNoM is a high-level neural network inference library written in C for microcontrollers. It converts Keras models into optimized on-device models with one line of code, supporting complex architectures like ResNet and LSTM with per-channel quantization.

## Use cases
- run neural network inference on a microcontroller
- deploy a keras model to an embedded mcu
- do tinyml keyword spotting on an arm cortex-m
- run cnn image classification on an iot sensor node
- quantize a model for low-memory embedded inference
- evaluate model accuracy onboard with confusion matrix and top-k

## When to choose
- you need to run neural network inference directly on a microcontroller in C
- you want a one-line conversion from Keras models to embedded inference code
- you need support for complex architectures like ResNet, Inception, or LSTM on MCUs
- you want onboard evaluation tools like runtime analysis and confusion matrix

## When to avoid
- you need to train models on-device rather than only run inference
- your target is a full OS device like a phone or server where TensorFlow Lite or PyTorch is more appropriate
- you need a framework with broad community tooling beyond Keras model conversion

## Facets
- artifact type: library
- maturity: stable
- function: machine-learning, deep-learning, embedded
- domain: machine-learning, embedded-systems, iot, deep-learning
- platform: embedded, c, iot
- tags: neural-network-inference, microcontroller, keras-deployment, quantization, tinyml, mcu

## Member repositories
- majianjia/nnom (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:49.923264+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:31:29.973238+00:00, confidence not recorded.
  - readme: https://github.com/majianjia/nnom (fetched 2026-08-28T04:03:49.923264+00:00, sha daf2ce07312d)
- Data as of 2026-08-30T08:39:29.467469+00:00.
