Skip to main content

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)

Source distribution for globoptiml 1.0.14
File Size Uploaded
globoptiml-1.0.14.tar.gz 20.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for globoptiml 1.0.14
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

1.0.14 This release

2 release files

1.0.13

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page