{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/ensmallen-a-flexible-c-library-for-efficient","title":"ensmallen: a flexible C++ library for efficient function optimization","arxiv_id":"1810.09361","date":"2018-10-22","proceeding":null,"authors":["Shikhar Bhardwaj","Ryan R. Curtin","Marcus Edel","Yannis Mentekidis","Conrad Sanderson"],"abstract":"We present ensmallen, a fast and flexible C++ library for mathematical\noptimization of arbitrary user-supplied functions, which can be applied to many\nmachine learning problems. Several types of optimizations are supported,\nincluding differentiable, separable, constrained, and categorical objective\nfunctions. The library provides many pre-built optimizers (including numerous\nvariants of SGD and Quasi-Newton optimizers) as well as a flexible framework\nfor implementing new optimizers and objective functions. Implementation of a\nnew optimizer requires only one method and a new objective function requires\ntypically one or two C++ functions. This can aid in the quick implementation\nand prototyping of new machine learning algorithms. Due to the use of C++\ntemplate metaprogramming, ensmallen is able to support compiler optimizations\nthat provide fast runtimes. Empirical comparisons show that ensmallen is able\nto outperform other optimization frameworks (like Julia and SciPy), sometimes\nby large margins. The library is distributed under the BSD license and is ready\nfor use in production environments.","url_abs":"http://arxiv.org/abs/1810.09361v2","url_pdf":"http://arxiv.org/pdf/1810.09361v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"ensmallen-a-flexible-c-library-for-efficient","repo_url":"https://github.com/mlpack/ensmallen","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[{"task_slug":"machine-learning","task_name":"BIG-bench Machine Learning"}],"methods":[{"method_slug":"sgd","method_name":"SGD"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":null,"mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}