OMLT  by cog-imperial

Python package for representing ML models as Pyomo optimization formulations

created 4 years ago
326 stars

Top 84.8% on sourcepulse

GitHubView on GitHub
Project Summary

OMLT (Optimization and Machine Learning Toolkit) enables the integration of trained machine learning models, specifically neural networks and gradient-boosted trees, into Pyomo optimization frameworks. It targets researchers and engineers who need to embed predictive models within formal optimization problems, allowing for hybrid optimization and simulation workflows.

How It Works

OMLT translates ML models into mathematical formulations suitable for optimization solvers. It supports various representations, including full-space, reduced-space, and MILP formulations for neural networks, and interfaces with Keras and ONNX models. This approach allows for the rigorous analysis and optimization of systems that incorporate complex ML components, leveraging the power of established optimization solvers.

Quick Start & Requirements

Highlighted Details

  • Supports sequential Keras and general ONNX model imports.
  • Offers multiple formulation types (FullSpaceNNFormulation, etc.).
  • Includes scaling and input bound handling for model integration.
  • Cites multiple papers for specific model types (NNs, GBTs, GNNs).

Maintenance & Community

The project has contributions from researchers at Imperial College London and Sandia National Laboratories, with funding from various institutions and industry partners (BASF SE). Development tasks are managed using just.

Licensing & Compatibility

The license is not explicitly stated in the README. Compatibility for commercial use or closed-source linking would require clarification of the license.

Limitations & Caveats

The README does not specify the project's license, which is crucial for determining commercial use and compatibility with closed-source projects. Support for specific ML frameworks beyond Keras and ONNX is not detailed.

Health Check
Last commit

4 months ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
14 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.