Skip to main content

Unconstrained monotonic neural networks for PyTorch, JAX, and Keras

Project description

mononet — Unconstrained Monotonic Neural Networks

PyPI version Python versions Docs Build

Reference implementation of the unconstrained monotonic neural network construction from:

Runje, D., Shankaranarayana, S. M. (2023). Constrained Monotonic Neural Networks. ICML 2023. https://arxiv.org/abs/2205.11775

First-class support for PyTorch, JAX (Flax NNX), and Keras 3.

Install

pip install "mononet[torch]"      # PyTorch
pip install "mononet[jax]"        # JAX + Flax NNX
pip install "mononet[keras]"      # Keras 3
pip install "mononet[all]"        # all three

Quick start

A 60-second tour will appear here once the algorithm implementation lands. Each backend exposes the same composed model (MonoMLP) and the framework-idiomatic layer name (MonoLinear for PyTorch and JAX, MonoDense for Keras).

# PyTorch
from mononet.torch import MonoMLP

# JAX
from mononet.jax import MonoMLP

# Keras 3
from mononet.keras import MonoMLP

License

Apache License 2.0 — see LICENSE and NOTICE.md. Commercial use is permitted. The technique is described in U.S. Patent 11,551,063 (assignee: AIRT Technologies Ltd.); the Apache-2.0 license grants the patent rights needed to use this code. For academic use, please cite the paper (see NOTICE.md).

Formal proofs

Every theorem in the paper is mechanized in Lean 4 + mathlib4 under proofs/. See the cross-reference page for the paper-claim ↔ Lean-theorem ↔ Python-test mapping.

Documentation

Full docs at https://davorrunje.github.io/mononet/. Source for guides and benchmarks lives in docs/docs/.

Contributing

See CONTRIBUTING.md for the development workflow: devcontainer choice, uv sync, pre-commit, per-backend test commands.

Citation

If you use mononet in academic work, please cite the paper. BibTeX is in docs/docs/about/citation.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mononet-0.0.0a0.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mononet-0.0.0a0-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file mononet-0.0.0a0.tar.gz.

File metadata

  • Download URL: mononet-0.0.0a0.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mononet-0.0.0a0.tar.gz
Algorithm Hash digest
SHA256 ff5082eb7fa3aa86a44e9a8f4623106295cc5b02f503ad3b36e376f66ad216f6
MD5 2611e406280612603c847624c6f8c432
BLAKE2b-256 8f9854d4f0d24a6d7e958cb0858c855d921972d118c51d3698be0a5fd49c53e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mononet-0.0.0a0.tar.gz:

Publisher: publish.yml on davorrunje/mononet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mononet-0.0.0a0-py3-none-any.whl.

File metadata

  • Download URL: mononet-0.0.0a0-py3-none-any.whl
  • Upload date:
  • Size: 26.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mononet-0.0.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 903d7230ed71a52adfb0e5d6ddd3b854d01d7e118fad6392c3ba0a4070ae3450
MD5 0b112da5155c36340a3b8557077c283a
BLAKE2b-256 a45646d2f6d11355331d98cc9eccf16857087c1da80ddbb8697644ca51db793a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mononet-0.0.0a0-py3-none-any.whl:

Publisher: publish.yml on davorrunje/mononet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page