Pycsou: A Python 3 package for solving linear inverse problems with state-of-the-art proximal algorithms
Matthieu Simeoni
Matthieu Simeoni
Meeting • 22 February 2021
AbstractMatthieu will talk about Pycsou: a Python 3 package for solving linear inverse problems with state-of-the-art proximal algorithms. Similarly to GlobalBioIm, Pycsou implements in a highly modular way the main building blocks -cost functionals penalty terms and linear operators- of generic penalised convex optimisation problems. The main features of the package are: It offers a rich collection of linear operators, loss functionals and penalty functionals commonly used in practice. It implements arithmetic operations for linear operators, loss functionals and penalty functionals, hence allowing to add, subtract, scale, compose, exponentiate or stack those various objects with one another and hence quickly design custom complex optimisation problems. It implements a rich collection of state-of-the-art iterative proximal algorithms, including efficient primal-dual splitting methods which involve only gradient steps, proximal steps and simple linear evaluations. It supports matrix-free linear operators, making it easy to work with large scale linear operators that may not necessarily fit in memory. Matrix-free linear operators can be implemented from scratch by subclassing the abstract class LinearOperator, or built from Scipy sparse matrices, distributed Dask arrays or Pylops matrix-free operators (which now support GPU computations). It implements automatic differentiation/proximation rules, allowing to automatically compute the derivative/proximal operators of functionals constructed from arithmetic operations on common functionals shipped with Pycsou. It leverages powerful rule-of-thumbs for setting automatically the hyper-parameters of the provided proximal algorithms. Pycsou is designed to easily interface with the Python packages scipy.sparse and Pylops. This allows to use the sparse linear algebra routines from scipy.sparse on Pycsou LinearOperator, and benefit from the large catalogue of linear operators and solvers from Pylops.