/sbl-sandbox

The sparse Bayesian learning sandbox

Primary LanguagePythonMIT LicenseMIT

The SBL sandbox

The sbl-sandbox sources are a nice padded area in which we are safe to play around with methods in sparse Bayesian learning. They are essentially a set of lightweight solvers paired with some python code that generates problem instances of the "k spikes measured with or without noise by an i.i.d. Gaussian random matrix" variety.

These sources support the following manuscript:

Worley, B., Scalable mean-field sparse Bayesian learning, IEEE Transactions on Signal Processing, 2019, 67(24): 6314--6326.

Usage

Bear with me, compilation is a bit non-standard.

To compile a source file, a problem instance, e.g. src/instdef.hh, is paired with the core instance header src/inst.hh and a solver, e.g. src/gs.cc. Compiling would go a bit something like this:

g++ -std=c++14 -O3 -I. -I/path/to/eigen3 \
  -include src/instdef.hh -include src/inst.hh \
  src/gs.cc -o gs

Normally, manual compilation isn't necessary. The compilations needed to perform all experiments are managed by make.py using doit.

Preparation on m5.metal

The following commands are needed before running make.py on EC2:

sudo yum -y groupinstall "Development Tools"
sudo amazon-linux-extras install python3
sudo pip3 install --upgrade pip
sudo pip3 install doit

Then, clone this repository and run:

git clone git@github.com:geekysuavo/sbl-sandbox.git
cd sbl-sandbox
./make.py -n 96

Licensing

All sources in this repository are released under the MIT license. See the LICENSE.md file for the complete license terms.