Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation


Project Page | Paper (ICML version) | Paper (JMLR version) | Pretrained Model

Tuning-free Plug-and-Play Proximal Algorithm for Inverse Imaging Problems, ICML 2020 (Award Paper)

Kaixuan Wei, Angelica Aviles-Rivero, Jingwei Liang, Ying Fu, Carola-Bibiane Schönlieb, Hua Huang

✨ News

  • 2022-2-04: The official JMLR version is now available online.
  • 2021-12-01: The comprehensive version of this work was accepted to Journal of Machine Learning Research (JMLR)!
  • 2021-11-11: Release the full version with new applications of sparse-view CT (ct) and single-photon imaging (spi).
  • 2021-9-25: Release the initial version. It now includes all sources (code and data) to reproduce our results on the ICML paper. More applications (presented on our journal version) are coming soon.

Getting Started


pip install tfpnp

Editable Installation : Clone the repo, and install the tfpnp package first. For developing purpose, you are recommended to install the package with -e option.

git clone
cd TFPnP
pip install -e .


  1. Download the test data and pretrained models (checkpoints and denoiser) from Link, unzip and put them into tasks/[task]/data, tasks/[task]/checkpoints and tfpnp/pnp/denoiser/pretrained
  2. Run the test via the following command. (You can find more testing commands in of each task directory)
cd tasks/csmri
python -W ignore --solver admm --exp test -rs 15000 --max_episode_step 6 --action_pack 5 --eval -r ./checkpoints/csmri_admm_5x6_48/actor_0015000.pkl

cd tasks/pr
python --solver iadmm --exp pr_admm_5x6_36 --eval --max_episode_step 6 --action_pack 5 -r ./checkpoints/pr_admm_5x6_36/actor_0015000.pkl -rs 15000


  1. Download the training data from Link, unzip and put it in tasks/[task]/data.
  2. Run the following command to retrain the model. You need about 20G video memory for the training.
cd tasks/csmri
python -W ignore --solver admm --exp csmri_admm_5x6_48_new --validate_interval 10 --env_batch 48 --rmsize 480 --warmup 20 -lp 0.05 --train_steps 15000 --max_episode_step 6 --action_pack 5 -le 0.2

cd tasks/pr
python --solver iadmm --exp pr_admm_5x6_36 --validate_interval 50 --env_batch 36 --rmsize 360 --warmup 20 -lp 0.05 --train_steps 15000 --max_episode_step 6 --action_pack 5 -le 0.2


  • The example tasks requires PyTorch <= 1.7.
  • The package tfpnp itself can be used for higher version of PyTorch.


If you find our work useful for your research, please consider citing the following papers :)

  title={Tuning-free plug-and-play proximal algorithm for inverse imaging problems},
  author={Wei, Kaixuan and Aviles-Rivero, Angelica and Liang, Jingwei and Fu, Ying and Sch{\"o}nlieb, Carola-Bibiane and Huang, Hua},
  booktitle={International Conference on Machine Learning},

  author  = {Kaixuan Wei and Angelica Aviles-Rivero and Jingwei Liang and Ying Fu and Hua Huang and Carola-Bibiane Sch{\"o}nlieb},
  title   = {TFPnP: Tuning-free Plug-and-Play Proximal Algorithms with Applications to Inverse Imaging Problems},
  journal = {Journal of Machine Learning Research},
  year    = {2022},
  volume  = {23},
  number  = {16},
  pages   = {1-48},
  url     = {}


If you find any problem, please feel free to contact me (kxwei at kaixuan_wei at A brief self-introduction is required, if you would like to get an in-depth help from me.


We thank @Zeqiang-Lai for code clean and refactoring, which makes it well structured and easy to understand.


Tuning-free Plug-and-Play Proximal Algorithm for Inverse Imaging Problems (ICML 2020 Award Paper & JMLR 2022)






No releases published


No packages published