All Projects → sun-umn → NCVX

sun-umn / NCVX

Licence: AGPL-3.0 License
NCVX: A User-Friendly and Scalable Package for Nonconvex Optimization in Machine Learning

Projects that are alternatives of or similar to NCVX

awesome-go-perf
A curated list of Awesome Go performance libraries and tools
Stars: ✭ 232 (+1121.05%)
Mutual labels:  optimization
tungsten
Bring fusion to everyone
Stars: ✭ 13 (-31.58%)
Mutual labels:  optimization
pytorch
Improved LBFGS optimizer in PyTorch.
Stars: ✭ 16 (-15.79%)
Mutual labels:  optimization
libcaesium
The Caesium compression library written in Rust
Stars: ✭ 58 (+205.26%)
Mutual labels:  optimization
yoga-image-optimizer
A graphical tool to convert and optimize JPEG, PNG and WebP images (based on YOGA)
Stars: ✭ 85 (+347.37%)
Mutual labels:  optimization
yarrow
[yarrow] JVMCI based optimizing compiler for HotSpot VM
Stars: ✭ 21 (+10.53%)
Mutual labels:  optimization
Ftrl-FFM
Field-aware factorization machine (FFM) with FTRL
Stars: ✭ 25 (+31.58%)
Mutual labels:  optimization
osqp
The Operator Splitting QP Solver
Stars: ✭ 929 (+4789.47%)
Mutual labels:  optimization
eqsat
A language-generic implementation of equality saturation in Haskell
Stars: ✭ 15 (-21.05%)
Mutual labels:  optimization
Max-value-Entropy-Search
Max-value Entropy Search for Efficient Bayesian Optimization
Stars: ✭ 43 (+126.32%)
Mutual labels:  optimization
dmipy
The open source toolbox for reproducible diffusion MRI-based microstructure estimation
Stars: ✭ 58 (+205.26%)
Mutual labels:  optimization
dfogn
DFO-GN: Derivative-Free Optimization using Gauss-Newton
Stars: ✭ 20 (+5.26%)
Mutual labels:  optimization
Network-Distributed-Algorithm
Experiments for distributed optimization algorithms
Stars: ✭ 29 (+52.63%)
Mutual labels:  optimization
TSSKit-Threshold-Signature-Scheme-Toolkit
The project is open-sourced and funded by Binance Lab.
Stars: ✭ 70 (+268.42%)
Mutual labels:  optimization
olympus
Olympus: a benchmarking framework for noisy optimization and experiment planning
Stars: ✭ 38 (+100%)
Mutual labels:  optimization
qpmad
ROS-compatible Eigen-based Goldfarb-Idnani quadratic programming solver
Stars: ✭ 41 (+115.79%)
Mutual labels:  optimization
autogoal
A Python framework for program synthesis with a focus on Automated Machine Learning.
Stars: ✭ 153 (+705.26%)
Mutual labels:  optimization
Train plus plus
Repo and code of the IEEE UIC paper: Train++: An Incremental ML Model Training Algorithm to Create Self-Learning IoT Devices
Stars: ✭ 17 (-10.53%)
Mutual labels:  optimization
RAWSim-O
A simulation framework for Robotic Mobile Fulfillment Systems
Stars: ✭ 82 (+331.58%)
Mutual labels:  optimization
structured-volume-sampling
A clean room implementation of Structured Volume Sampling by Bowles and Zimmermann in Unity
Stars: ✭ 27 (+42.11%)
Mutual labels:  optimization

NCVX_LOGO

Introduction

NCVX (NonConVeX) is a user-friendly and scalable python software package targeting general nonsmooth NCVX problems with nonsmooth constraints. NCVX is being developed by GLOVEX at the Department of Computer Science & Engineering, University of Minnesota, Twin Cities.

The initial release of NCVX contains the solver PyGRANSO, a PyTorch-enabled port of GRANSO incorporating auto-differentiation, GPU acceleration, tensor input, and support for new QP solvers. As a highlight, PyGRANSO can solve deep learning problems with nontrivial constraints (e.g., constraints with neural networks), the first of its kind.

NCVX is AGPL v3.0 licensed but also contains some code under other compatible licenses. More information on this can be found in LICENSE_INFO subfolders.

Solver/Module

PyGRANSO: A PyTorch-enabled port of GRANSO with auto-differentiation Documentation | Repository

Installation

  1. Clone the NCVX git repository and submodules
    git clone https://github.com/sun-umn/NCVX
    git submodule update --init --recursive
  1. Follow the install instructions in the README.md of each submodule you wish to use (currently, only PyGRANSO)

Note: Downloading a zip file of the NCVX repo directly from GitHub will NOT contain submodules files.

Citation

If you publish work that uses or refers to NCVX, please cite the following two papers:

[1] Buyun Liang, Tim Mitchell, and Ju Sun, NCVX: A User-Friendly and Scalable Package for Nonconvex Optimization in Machine Learning, arXiv preprint arXiv:2111.13984 (2021). Available at https://arxiv.org/abs/2111.13984

[2] Frank E. Curtis, Tim Mitchell, and Michael L. Overton, A BFGS-SQP method for nonsmooth, nonconvex, constrained optimization and its evaluation using relative minimization profiles, Optimization Methods and Software, 32(1):148-181, 2017. Available at https://dx.doi.org/10.1080/10556788.2016.1208749

BibTex:

@article{liang2021ncvx,
    title={{NCVX}: {A} User-Friendly and Scalable Package for Nonconvex 
    Optimization in Machine Learning}, 
    author={Buyun Liang, Tim Mitchell, and Ju Sun},
    year={2021},
    eprint={2111.13984},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

@article{curtis2017bfgssqp,
    title={A {BFGS-SQP} method for nonsmooth, nonconvex, constrained optimization and its evaluation using relative minimization profiles},
    author={Frank E. Curtis, Tim Mitchell, and Michael L. Overton},
    journal={Optimization Methods and Software},
    volume={32},
    number={1},
    pages={148--181},
    year={2017},
    publisher={Taylor \& Francis}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].