ensmallen is a C++ header-only library for mathematical optimization.
Documentation and downloads: http://ensmallen.org
ensmallen provides a simple set of abstractions for writing an objective function to optimize. It also provides a large set of standard and cutting-edge optimizers that can be used for virtually any mathematical optimization task. These include full-batch gradient descent techniques, small-batch techniques, gradient-free optimizers, and constrained optimization.
- C++ compiler with C++11 support
- Armadillo: http://arma.sourceforge.net
- OpenBLAS or Intel MKL or LAPACK (see Armadillo site for details)
Unless stated otherwise, the source code for ensmallen is licensed under the 3-clause BSD license (the "License"). A copy of the License is included in the "LICENSE.txt" file. You may also obtain a copy of the License at http://opensource.org/licenses/BSD-3-Clause
Please cite the following paper if you use ensmallen in your research and/or software. Citations are useful for the continued development and maintenance of the library.
- S. Bhardwaj, R. Curtin, M. Edel, Y. Mentekidis, C. Sanderson.
ensmallen: a flexible C++ library for efficient function optimization.
Workshop on Systems for ML and Open Source Software at NIPS 2018.
- Ryan Curtin
- Dongryeol Lee
- Marcus Edel
- Sumedh Ghaisas
- Siddharth Agrawal
- Stephen Tu
- Shikhar Bhardwaj
- Vivek Pal
- Sourabh Varshney
- Chenzhe Diao
- Abhinav Moudgil
- Konstantin Sidorov
- Kirill Mishchenko
- Kartik Nighania
- Haritha Nair
- Moksh Jain
- Abhishek Laddha
- Arun Reddy
- Nishant Mehta
- Trironk Kiatkungwanglai
- Vasanth Kalingeri
- Zhihao Lou
- Conrad Sanderson
- Dan Timson
- N Rajiv Vaidyanathan