Skip to main content

package to insert ML models in Gurobi

Project description

build and test build wheel Python versions Black PyPI Documentation Status Gurobi-forum

Gurobi

Gurobi Machine Learning

Gurobi Machine Learning is an open-source python package to formulate trained regression models in a gurobipy model to be solved with the Gurobi solver.

The package currently supports various scikit-learn objects. It has limited support for Keras, PyTorch and XGBoost. Only neural networks with ReLU activation can be used with Keras and PyTorch.

Documentation

The latest user manual is available on readthedocs.

Contact us

For questions related to using Gurobi Machine Learning please use Gurobi's Forum.

For reporting bugs, issues and feature requests please open an issue.

If you encounter issues with Gurobi or gurobipy please contact Gurobi Support.

Installation

Dependencies

gurobi-machinelearning requires the following:

The current version supports the following ML packages:

Installing these packages is only required if the predictor you want to insert uses them (i.e. to insert a Keras based predictor you need to have tensorflow installed).

The up to date supported and tested versions of each package for the last release can be found in the documentation.

Pip installation

The easiest way to install gurobi-machinelearning is using pip in a virtual environment:

(.venv) pip install gurobi-machinelearning

This will also install the numpy, scipy and gurobipy dependencies.

Please note that gurobipy is commercial software and requires a license. When installed via pip or conda, gurobipy ships with a free license which is only for testing and can only solve models of limited size.

Getting a Gurobi License

Alternatively to the bundled limited license, there are licenses that can handle models of all sizes.

As a student or staff member of an academic institution you qualify for a free, full product license. For more information, see:

For a commercial evaluation, you can request an evaluation license.

Other useful resources to get started:

Development

We value any level of experience in using Gurobi Machine Learning and would like to encourage you to contribute directly to this project. Please see the Contributing Guide for more information.

Source code

You can clone the latest sources with the command:

git clone git@github.com:Gurobi/gurobi-machinelearning.git

Testing

After cloning the project, you can run the tests by invoking tox. For this, you will need to create a virtual environment and activate it:

python3.10 -m venv .venv
. .venv/bin/activate

Then, you can install tox (>= 3.26.0) and run a few basic tests:

(.venv) pip install tox
(.venv) tox -e py310,pre-commit,docs

tox will install, among others, the aforementioned ML packages into a separate venv. These packages can be quite large, so this might take a while.

Running the full test set

In the above command, we only ran a subset of tests. Running the full set of tests requires having a Gurobi license installed, and is done by running just the tox command without the -e parameter:

(.venv) pip install tox
(.venv) tox

If you don't have a Gurobi license, you can still run the subset of tests, open a PR, and Github Actions will run the tests with a full Gurobi license.

Submitting a Pull Request

Before opening a Pull Request, have a look at the full Contributing page to make sure your code complies with our guidelines.

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

gurobi_machinelearning-1.6.0a1.tar.gz (47.6 kB view details)

Uploaded Source

Built Distribution

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

gurobi_machinelearning-1.6.0a1-py3-none-any.whl (82.3 kB view details)

Uploaded Python 3

File details

Details for the file gurobi_machinelearning-1.6.0a1.tar.gz.

File metadata

  • Download URL: gurobi_machinelearning-1.6.0a1.tar.gz
  • Upload date:
  • Size: 47.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for gurobi_machinelearning-1.6.0a1.tar.gz
Algorithm Hash digest
SHA256 71a6be818060ea6976e456c4aca6b33f6dbdc4783be2c4c8673be92d7241e63f
MD5 c51fd25bf06134f216715b0e90a3e26c
BLAKE2b-256 265697e2680083aee8f59eeb63aa6393e60ea156e9d5a13b69782121cbe515d6

See more details on using hashes here.

File details

Details for the file gurobi_machinelearning-1.6.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for gurobi_machinelearning-1.6.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 7fcc65d69186ed7a0fed8c6bc99d8595bdd765749033a8dea4ca4c567d8e5963
MD5 7902d49531adb3fc0a97fdd7acf05118
BLAKE2b-256 ee5f5c23661ca07c90a21d1d14272dd6e86ae280ba497ad423017603cd2ea80a

See more details on using hashes here.

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