A lightweight multilayer perceptron neural network library for MicroPython, designed for embedded systems like ESP32 and Pycom modules.
MicroMLP is a lightweight multilayer perceptron neural network library designed for MicroPython, enabling machine learning on embedded systems like ESP32 and Pycom modules. It provides a full-featured neural network implementation with support for supervised learning, reinforcement learning, and multiple activation functions, all optimized for resource-constrained environments.
Embedded systems developers and IoT engineers who need to implement neural networks directly on MicroPython-based microcontrollers for tasks like signal processing, control systems, or classification.
Developers choose MicroMLP for its simplicity, single-file deployment, and comprehensive neural network features tailored for MicroPython, making it one of the few options for bringing ML to low-power embedded devices without heavy dependencies.
A micro neural network multilayer perceptron for MicroPython (used on ESP32 and Pycom modules)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The library is implemented in a single `microMLP.py` file, making integration and deployment on resource-constrained microcontrollers straightforward without complex dependencies.
Supports six activation functions including Heaviside, Sigmoid, TanH, and ReLU per layer, providing flexibility for different neural network designs as shown in the README tables.
Includes supervised learning with example management and Q-learning for reinforcement learning, specifically optimized for edge AI on devices like ESP32 and Pycom modules.
Enables saving and loading entire neural network structures to/from JSON files, facilitating portability and offline use, as demonstrated in the XOR example code.
Only implements multilayer perceptrons, missing support for other neural network types like CNNs or RNNs, which restricts its use in domains requiring more complex architectures.
Designed exclusively for MicroPython environments, so it cannot be used in standard Python projects, limiting its applicability to embedded systems only.
Lacks modern neural network techniques such as dropout, batch normalization, or advanced optimizers, which are standard in full-scale machine learning libraries.