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: A User-Friendly and Scalable Package for Nonconvex Optimization in Machine Learning Code | Paper

Our Forum: NCVX PyGRANSO Forum


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