Getting started
Introduction
What pymlkit is, and what it deliberately is not.
pymlkit is a small multi-layer perceptron library. The numerical work, forward pass, backpropagation and mini-batch SGD, is written in C. Python only marshals your lists into C arrays through ctypes.
Design goals
- Small. One class, seven methods. The entire Python wrapper is a few dozen lines.
- Dependency-free. No NumPy. Inputs and outputs are plain Python lists of floats.
- Fast enough. Training loops run in compiled C with
-Ofast. - Portable. Wheels exist for Windows, macOS, Linux, and WebAssembly (Pyodide).
What it is not
pymlkit supports dense feed-forward networks trained on the CPU. There are no convolutions, no GPU support and no automatic differentiation. It is a library for learning, prototyping and small problems, not production-hardened. That is where it is today, not where it is headed.
Want to see it work first? Open the playground. It installs pymlkit from PyPI into your browser.
Where it is going
pymlkit is young and I plan to keep improving it. The goal is an easy-as-hell machine learning library: the least possible code between an idea and a trained model, without hiding how any of it works. Planned next:
- Convolutional networks (CNN) for images.
- Recurrent networks (RNN) for sequences.
- Transformers, further down the road.
These are plans, not features you can use today, and none of them has a date. The dense network API documented here is what ships now.
