Skip to main content

A C++ extension for SGHMC

Project description

C-SGHMC
=======================

This is a repository created as part of a statistical computation project at Duke University.

The code to be found here is a C++ implementation of SGHMC algorithm wrapped for Python using pybind11. It is further used to verify the results in the original paper on SGHMC: "Stochastic Gradient Hamiltonian Monte Carlo" by Tianqi Chen, Emily B. Fox and Carlos Guestrin.

As seen from our project this is a **15-time-efficiency-improvement** in terms of runtime over the pure python version.

Main files
=======================
- **sghmcwrap.cpp** is the original sghmc algo in C++ wrapped for Python

- **c_sghmc.py** calls and decorates the above extension and tests on an example from the original paper
Packages required to run the code
=======================

- The implementation makes use of **Eigen** library for C++ and hence run the following line:
! git clone https://github.com/RLovelett/eigen.git

Make sure you have it cloned in the same directory as your code.

- **pybind11** and **cppimport** are the two standard packages required for wrapping C++ codes for Python and importing them:
! pip3 install pybind11

! pip3 install cppimport

The example makes use of **sympy** to specify functions (such as potential and kinetic energies as well as the gradient of the former), **numpy** and **numpy.random**.

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

c_sghmc-0.0.2.tar.gz (3.0 kB view details)

Uploaded Source

File details

Details for the file c_sghmc-0.0.2.tar.gz.

File metadata

  • Download URL: c_sghmc-0.0.2.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for c_sghmc-0.0.2.tar.gz
Algorithm Hash digest
SHA256 8afa9be6b3329be360ffa339d14f3d0997cc0c23996355f2a6d0d465acb26a9b
MD5 b67eae8456785f987dc8f1d8bed7bc73
BLAKE2b-256 6fa79f60e3a0e7d7b08ae2b57673a47514673c6ea34c3f58909d8f1a29383508

See more details on using hashes here.

Supported by

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