LHOTSE is a C++ class library designed for the implementation of large, efficient scientific applications in Machine Learning and Statistics. At present, LHOTSE can be used to create stand-alone executables, or as a class library within a larger project. Interfaces to Python and to MATLAB(R) are planned.
Some of the things in there:
Rigorously based on smart pointers and memory watchers, avoiding memory leaks and hard-to-track-down seg.faults
Function objects are used in order to achieve the MATLAB(R) vectorization feeling. You can use loops, but you don't have to
Powerful debugging tools to find those nasty numerical errors. For example, compare your code line by line with equivalent MATLAB(R) and see where they start to diverge
Matrix / vector classes, providing access to all of BLAS and some LAPACK methods (to be extended on demand). The handling is fairly natural, trying to emulate the MATLAB(R) way without the copying.
Optimizers: LHOTSE includes code for linear conjugate gradients, nonlinear Quasi-Newton, and certain double loop optimizers. It wraps the L-BFGS-B limited memory Quasi-Newton code of Zhu, Byrd, Lu-Chen, Nocedal. All optimizers communicate with the objective function through a generic criterion function interface.
Code for implementing Gaussian process techniques.
A hierarchy of covariance functions (kernels), which allows to implement new kernels quickly using generic code, and to run kernel machine code with arbitrary kernels.
Generic hierarchies for dataset representations, allowing for arbitrary data types being loaded, represented in memory or temporary files, and being accessed as variables by statistical methods.
Code for incomplete Cholesky factorization, used in Machine Learning to speed up kernel methods.
Code for stable low-rank Cholesky factorization updates.
Scientific functions from the GNU numerical library.
Code for uni- and multivariate quadrature, used for dealing with non-Gaussian likelihood or prior factors in statistical models.
- Changes to previous version:
Initial Announcement on mloss.org.
Leave a comment
You must be logged in to post comments.