Skip to content

EQt/treelas

Repository files navigation

TreeLas: Fused Lasso Solvers for Trees

Travis Build status License: MIT        Documentation: c++ Documentation: python Documentation: Julia

We compute the minimizer of the convex function

formula

whereby

  • E are the edges of a tree graph,
  • λ > 0 some edge weights,
  • μ ≥ 0 some node weights.

Demo: Image Denoising

demo From left to right:

  1. Original Image
  2. Gaussian noise added (std=0.25)
  3. E is grid graph (λ = 0.2)
  4. E is random spanning tree (λ = 0.2)

Python Interface

... is realized via pybind11. For compiling, add the Git submodule

git submodule update --init --recursive deps/graphidx

Afterwards build the python extension by calling setup.py

cd python && python setup.py develop

Directory Structure

├── ci          Continous integration
├── cxx         C++ source/header files
├── data        Some test data and benchmarks
├── deps        External dependencies/libraries
├── julia       Julia Bindings/Implementation
├── rust        Rust re-implementation
└── python      Python bindings

Line Graphs

There are several implementations to be able assess e.g. different memory layouts, traversing orders, etc.

We also provide specialized algorithms for one dimensional line graphs (also called “trail graphs”). For the sake of benchmarks the implementation by Laurent Condat and the glmgen R package are included as well.

About

TreeLas: Fused Lasso Solver for Trees

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors