Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
examples
README.md
__init__.py
misc.py
stochastic_primal_dual_hybrid_gradient.py

README.md

SPDHG

This package contains an ODL compatible implementation of the Stochastic Primal-Dual Hybrid Gradient algorithm proposed and analyzed in arxiv. It is useful to solve problems of the form min_x sum_{i=1}^n f_i(A_i x) + g(x) where f_i and g are closed, proper and convex functionals and A_i are linear operators.

It has been successfully used for PET image reconstruction (from the Siemens Biograph mMR) SPIE. Watch this if you want to have an introduction to SPDHG by Peter Richtárik.

Original contribution by: @mehrhardt

Content

Example usage

The examples folder contains examples on how to use the above functionality. The PET examples are based on ASTRA to compute the line integrals in the forward operator.

More involved examples include:

  • PET_1k.py shows an example for PET reconstruction (from simulated data) with total variation regularization where the algorithm is proven to converge with rate O(1/k) in the partial primal-dual gap.
  • ROF_1k2_primal.py shows primal acceleration for ROF denoising (Gaussian noise; squared L2-norm + total variation) where the algorithm is proven to converge with rate O(1/k^2) in squared norm to the primal solution.
  • deblurring_1k2_dual.py shows an example of dual acceleration where the dual iterates converge in squared norm with rate O(1/k^2) to the dual solution. The problem at hand is deblurring with total variation regularization and a Poisson noise model.
  • PET_linear_rate.py shows linear convergence of SPDHG for PET reconstruction with a strongly convex total variation-type regularization.