Skip to main content

Transpile BDTs to C++ code.

Project description

Generate C++ representations of boosted decision trees

This project tries to provide a generic functionality to transpile trained BDTs into minimal, efficient C++ functions to evaluate single vectors of features.

While many frameworks exist to train, evaluate and store BDTs, its often hard to use the results in a productive manner.

Installation

So far there is only python3 support. Run

pip install bdt2cpp

to install the latest tagged version or

pip install git+https://github.com/bixel/bdt2cpp.git

for the current master version.

lxplus

If you want to use bdt2cpp on CERNs lxplus machines, you need to get hold of minimum python3.6. According to CERNs Service Article KB0000730, one way to install the tool is:

# On lxplus
scl enable rh-python36

# this will install bdt2cpp to your `~/.local/` directory
pip install --user bdt2cpp

Usage

To generate a minimal Makefile together with the C++ code inside a build/ directory from a given XGBoost dump or TMVA .xml file, simply run

bdt2cpp my-bdt-dump.xgb

You will find the corresponding files within the build/ directory and if you have installed clang, you can simply

cd build
make

Note for CERN Users: Currently, the Makefile uses clang as the default compiler. You might need to adjust that in the generated file (inside the build/ directory)

The generated executable is essentially a very minimal placeholder, if you had 3 input features you could quickly cross-check the predictions against the original training framework:

cd build
./main 1 2 3

should give the same output as received within the training framework if a feature vector f = (1, 2, 3) is evaluated.

To see the complete list of features with some explanations, run

bdt2cpp -h

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bdt2cpp-0.2.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

bdt2cpp-0.2.0-py2.py3-none-any.whl (10.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file bdt2cpp-0.2.0.tar.gz.

File metadata

  • Download URL: bdt2cpp-0.2.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.7.4

File hashes

Hashes for bdt2cpp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a711fde6399e7967d8a5c7c389900d5587a8eb79d2f0e79a88c5a7b25b47ff38
MD5 e4daaaa8dbf434a8a8298633e318eed2
BLAKE2b-256 bedd22ccb395fb7511a05939a769facf6d0936d4c42e8eb753d82a42e7bd9026

See more details on using hashes here.

File details

Details for the file bdt2cpp-0.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: bdt2cpp-0.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.7.4

File hashes

Hashes for bdt2cpp-0.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 02565b8c0fe49af7acea61db01ee260617e601cb67f9893327dc653f7d5dcdb6
MD5 b9420ffea9199775b88c3cf6151e9c06
BLAKE2b-256 c17860922f703087dbeae4f714fe2475f80e1e85c0d0b66537e72d4365b1618f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page