pyepo
PyTorch-based End-to-End Predict-then-Optimize Tool
PyTorch-based End-to-End Predict-then-Optimize Tool
To install this package, run one of the following:
PyEPO (PyTorch-based End-to-End Predict-then-Optimize Tool) is a Python-based, open-source software that supports modeling and solving predict-then-optimize problems with linear objective functions. The core capability of PyEPO is to build optimization models with GurobiPy, COPT, Pyomo, Google OR-Tools, MPAX, or any other solvers and algorithms, then embed the optimization model into an artificial neural network for the end-to-end training. For this purpose, PyEPO implements various methods as PyTorch autograd modules.
Features: - Implement SPO+, DBB, NID, DPO, PFYL, NCE, LTR, I-MLE, AI-MLE, and PG - Support Gurobi, COPT, Pyomo, Google OR-Tools, and MPAX API - Support parallel computing for optimization solvers - Support solution caching to speed up training - Support kNN robust loss to improve decision quality - GPU-accelerated solving with MPAX (JAX-based PDHG solver)
Summary
PyTorch-based End-to-End Predict-then-Optimize Tool
Last Updated
Feb 11, 2026 at 15:46
License
MIT
Total Downloads
87
Version Downloads
0
Supported Platforms
GitHub Repository
https://github.com/khalil-research/PyEPODocumentation
https://khalil-research.github.io/PyEPO