LearningToOptimize (L2O) is a collection of open-source tools focusing on the emerging paradigm of amortized optimization - using machine learning methods to speed up traditional constrained optimization solvers. L2O is a work-in-progress; existing functionality is considered experimental and is subject to change.
LearningToOptimize.jl | Flagship Julia package that wraps data generation, training loops and evaluation utilities for fitting surrogate models to parametric optimization problems. |
DecisionRules.jl | A package for building decision rules in Multistage Stochastic Problems, as proposed in Efficiently Training Deep-Learning Parametric policies using Lagrangian Duality. |
L2OALM.jl | Implementation of the primal-dual learning method ALM, as proposed in Self-Supervised Primal-Dual Learning for Constrained Optimization. |
L2ODLL.jl | Implementation of the dual learning method DLL, as proposed in Dual Lagrangian Learning for Conic Optimization. |
L2ODC3.jl | Implementation of the primal learning method DC3, as proposed in DC3: A learning method for optimization with hard constraints. |
BatchNLPKernels.jl | GPU kernels that evaluate objectives, Jacobians and Hessians for batches of ExaModels, useful when defining loss functions for batches of ML predictions. |
BatchConeKernels.jl | GPU kernels for batched cone operations (projections, distances, etc.), useful for implementing advanced architectures such as repair layers. |
LearningToControlClass | Course repository for Special Topics on Optimal Control & Learning (Fall 2025 at Georgia Tech) |
The LearningToOptimize 🤗 HuggingFace organization hosts datasets and pre-trained weights which can be used with L2O packages.