OptiML
Train neural networks via global mathematical optimisation (MINLP) instead of gradient descent.
OptiML translates a neural network architecture into a system of constraints and decision variables, then uses a MINLP solver (e.g. Couenne, SCIP) to find the weights that provably minimise the training loss. After solving, the model can be exported to PyTorch for inference.
Installation
pip install -e . # core (numpy + pyomo)
pip install -e ".[pytorch]" # with PyTorch export support
pip install -e ".[all]" # everything
You also need a MINLP solver accessible to Pyomo, for example Couenne or SCIP.
Quick start
import optiml
from optiml.losses import MSELoss
# Ultra-small Edge AI classifier — only 9 parameters
model = optiml.Sequential(
optiml.Linear(2, 2),
optiml.ReLU(M=10),
optiml.Linear(2, 1),
)
model.fit(X_train, y_train, loss=MSELoss(reduction='sum'), solver='couenne')
# Export to PyTorch for inference / deployment
pytorch_model = model.export('pytorch')
Available layers
| Layer | Description |
|---|---|
Linear(in, out) |
Fully-connected layer |
Conv1D(in_ch, out_ch, kernel) |
1-D convolution |
Conv2D(in_ch, out_ch, kernel) |
2-D convolution |
ReLU(M) |
ReLU via big-M formulation |
AvgPool2D(kernel) |
2-D average pooling |
Flatten() |
Flatten spatial dimensions |
Available losses
| Loss | Description |
|---|---|
MSELoss(reduction) |
Mean / sum of squared errors |
SSELoss() |
Sum of squared errors |
MAELoss(reduction) |
Mean / sum of absolute errors |
HuberLoss(delta) |
Smooth L1 loss |
Export
After fitting, call model.export('pytorch') to get a torch.nn.Sequential
with the optimal weights loaded.
Example
See examples/binary_classification.py for a full working example.
It trains a 9-parameter Iris flower classifier (versicolor vs virginica
from petal measurements) and compares OptiML with PyTorch + Adam:
- OptiML finds the mathematically optimal weights in ~7 s, achieving 93.3 % test accuracy on 90 unseen samples.
- PyTorch Adam has a 30 % failure rate (stuck at 50 % accuracy) and even the best restart (selected by training loss) only reaches 91.1 %.
Metadata
Release files for globoptiml 1.0.14
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| globoptiml-1.0.14.tar.gz | 20.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| globoptiml-1.0.14-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.9 kB
Release files / globoptiml-1.0.14.tar.gz
| Download URL | globoptiml-1.0.14.tar.gz |
|---|---|
| Size | 20.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dddb9fbe7a0fda49ef543ee0c3f32bee0c4fa976514fe985cc32f3294baa7106
|
|
BLAKE2b-256 checksum How to use checksums |
7a0fad31a56afd56422a761b0f43e9ed8c7c2db458487d7976bb44babda990ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 13, 2026.
Transparency logRelease files / globoptiml-1.0.14-py3-none-any.whl
| Download URL | globoptiml-1.0.14-py3-none-any.whl |
|---|---|
| Size | 21.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6e7aa7959cd2368a3b3cb699f36dbf02aaa8ccdc6a962ec3526592862c6243b2
|
|
BLAKE2b-256 checksum How to use checksums |
cb97ffa6b64b4c7c8a16bbeedafa71f82245510ce75ac8cae4a3cac7d845e1a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 13, 2026.
Transparency log