ML

ML++ and cppyml: efficient implementations of selected ML algorithms, with Python bindings.

View the Project on GitHub romanwerpachowski/ML

ML++ and cppyml

ML++ is a set of efficient C++ implementations of some ML algorithms.

cppyml is a Python extension module built on top of M++. Precompiled cppyml binaries for Windows are available on PyPi.

© 2020-21 Roman Werpachowski.

Contents

More is coming! See Doxygen documentation for the C++ library documentation and Sphinx documentation for the Python extensions.

Requirements

Windows

Tested with Visual Studio C++ 2019 and Python 3.8.x.

Linux

Tested with on Ubuntu 20.04.1 LTS (Focal Fossa). A list of required packages for is in the ubuntu_required_packages.txt file.

C++ dependencies

Python dependencies

For the build:

For demos and tests:

Building

Windows binaries

Use the Visual Studio build process, opening the solution ML.sln. Before opening this file, copy the provided file LocalDependencies.props.template to LocalDependencies.props (otherwise the solution won’t load). After loading the solution, adjust the additional include / library paths in this property sheet to point to the directories where you installed the dependencies (see above).

Pre-built Python extension cppyml can be installed via pip install cppyml (requires Python 3.7.x). If you want to build it from source, see cppyml documentation.

Linux binaries

Call scons in the main repository directory to build in Debug mode, or scons mode=release for a Release (optimised) build.

Doxygen documentation

C++ code has Doxygen-compatible comments. To generate HTML documentation from them, run in the main repository directory doxygen Doxyfile (requires doxygen and graphviz to be installed). The documentation will be written to the docs/html subdirectory.

Python extension

Documentation for the Python extension project cppyml is here.