OccamyPy, an object-oriented optimization framework for large-scale inverse problems

We present a python library that can be employed to solve small- and large-scale problems based on the concept of vectors and operators.

Based on NumPy, CuPy and PyTorch, it includes different iterative optimization algorithms that can be used in combination with architecture-independent vectors and operators, thus running on CPU, GPUs and HPC clusters with a unique codebase.

Inspired by PyLops, we demonstrate its flexibility and scalability on multiple inverse problems, where convex and non-convex objective functions are optimized with different iterative algorithms.


  • Francesco Picetti - Image and Sound Processing Lab, Politecnico di Milano
  • Ettore Biondi - SeismoLab, California Institute of Technology

What you’ll need

  • Slack channel: #t22-tue-occamypy
  • Pre-filled notebooks and data on Dropbox (simply download the whole folder)
  • A python virtual environment defined here