- One-time Setup
- Updating
- Working with the Code
- Learning the Transform on 1D Signals
- Learning the Transform on 2D Images
- Gradients and Time Comparisons
- Install a working version of conda.
- Create a conda environment:
conda env create --file environment.yml - Activate the conda environment:
conda activate learnreg1d
- Pull the latest changes:
git pull - Update the conda environment:
conda env update -f environment.yml
Activate the conda environment before working with the code: conda activate learnreg1d
Run the following command to learn the transform on 1D signals:
python scripts/1D_learn.py --learning_rate 0.001 --num_steps 1e6 --sign_threshold 0.0001 --signal_type piecewise_constant --n 64 --noise_sigma 0.01 --forward_model_type identity --num_training 10000 --transform_type identity --transform_scale 0.01 --num_testing 5 --seed 0 --batch_size 5
Run the following command to learn the transform on 2D images:
python scripts/example_image.py --filename "barbara_gray.bmp" --patch_size 8 --forward_model_type identity --noise_sigma 0.01 --transform_type identity --transform_scale 0.01 --SEED 0 --learning_rate 0.001 --num_steps 100000 --sign_threshold 0.0001 --batch_size 5
Run the notebook scripts/check_gradients.ipynb for gradient and time comparisons with autodiff solvers.
This work has been published in ICASSP-2022 and SIAM Journal on Imaging Sciences. You can read the full paper on arXiv.
To cite this work, please use the following BibTeX entry:
@article{ghosh2022learning,
title={Learning Sparsity-Promoting Regularizers using Bilevel Optimization},
author={Ghosh, Avrajit and McCann, Michael T and Mitchell, Madeline and Ravishankar, Saiprasad},
journal={arXiv preprint arXiv:2207.08939},
year={2022}
}

