Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Compressed Sensing with Deep Image Prior

This repository provides code to reproduce results from the paper: Compressed Sensing with Deep Image Prior and Learned Regularization.

Here are a few example results:

MNIST at 75 measurements X-ray at 2000 measurements
mnist_reconstr mnist_reconstr


  1. Clone the repository

    $ git clone
    $ cd compsensing_dip

    Please run all commands from the root directory of the repository, i.e from compsensing_dip/

  2. Install requirements

    $ pip install -r requirements.txt

Plotting reconstructions with existing data

  1. Open jupyter notebook of plots

    $ jupyter notebook plot.ipynb
  2. Set variables in the second cell according to interest, e.g. DATASET, NUM_MEASUREMENTS_LIST, ALG_LIST. Existing supported data is described in the comments.

  3. Execute cells to view output.

Generating new reconstructions on the MNIST, xray, or retinopathy datasets

  1. Execute the baseline command

    $ python

    which will run experiments with the default parameters specified in configs.json

  2. To generate reconstruction data according to user-specified parameters, add command line arguments according to those available in Example:

    $ python --DATASET xray --NUM_MEASUREMENTS 2000 4000 8000 --ALG csdip dct

Running CS-DIP on a new dataset

  1. Create a new directory /data/dataset_name/sub/ which contains your images
  2. In, create a new DCGAN architecture. This will be similar to the pre-defined architectures, e.g. DCGAN_XRAY, but must have output dimension equal to the size of your new images. Output dimension can be changed by adjusting kernel_size, stride, and padding as discussed in the torch.nn documentation.
  3. Update configs.json to set parameters for your dataset. Update utils.init_dcgan to import/initiate the corresponding DCGAN.
  4. Generate and plot reconstructions according to instructions above.

Note: We recommend experimenting with the DCGAN architecture and dataset parameters to obtain the best possible reconstructions.

Generating learned regularization parameters for a new dataset

The purpose of this section is to generate a new (\mu, \Sigma) based on layer-wise weights of the DCGAN. This functionality will be added soon.


Compressed sensing with deep image prior algorithm






No releases published


No packages published