Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Code to reproduce results from the paper: "Compressed Sensing using Generative Models".

License

NotificationsYou must be signed in to change notification settings

AshishBora/csgm

Repository files navigation

This repository provides code to reproduce results from the paper:Compressed Sensing using Generative Models.

Here are a few example results:

ReconstructionSuper-resolutionInpainting
celebA_reconstrcelebA_superrescelebA_inpaint
mnist_reconstrmnist_superresmnist_inpaint

Here we show the evolution of the reconstructed image for different number of iterations:

Steps to reproduce the results

NOTE: Please runall commands from the root directory of the repository, i.e fromcsgm/

Requirements:


  1. Python 2.7
  2. Tensorflow 1.0.1
  3. Scipy
  4. PyPNG
  5. (Optional : for lasso-wavelet)PyWavelets
  6. (Optional)CVXOPT

Pip installation can be done by$ pip install -r requirements.txt

Preliminaries


  1. Clone the repository and dependencies

    $ git clone https://github.com/AshishBora/csgm.git$cd csgm$ git submodule update --init --recursive
  2. Download/extract the datasets:

    $ ./setup/download_data.sh
  3. Download/extract pretrained models or train your own!

  4. To use wavelet based estimators, you need to create the basis matrix:

    $ python ./src/wavelet_basis.py

Demos


The following are the supported experiments and example commands to run the demos:

[Note: For celebA experiments, we run very few iterations per experiment (30) to give a quick demo. To get results with better quality, increase the number of iterations to at least 500 and use at least 2 random restarts.]

  1. Reconstruction from Gaussian measurements
    • $ ./quick_scripts/mnist_reconstr.sh
    • $ ./quick_scripts/celebA_reconstr.sh "./images/182659.jpg"
  2. Super-resolution
    • $ ./quick_scripts/mnist_superres.sh
    • $ ./quick_scripts/celebA_superres.sh "./images/182659.jpg"
  3. Reconstruction for images in the span of the generator
    • $ ./quick_scripts/mnist_genspan.sh
    • $ ./quick_scripts/celebA_genspan.sh
  4. Quantifying representation error
    • $ ./quick_scripts/mnist_projection.sh
    • $ ./quick_scripts/celebA_projection.sh "./images/182659.jpg"
  5. Inpainting
    • $ ./quick_scripts/mnist_inpaint.sh
    • $ ./quick_scripts/celebA_inpaint.sh "./images/182659.jpg"

Reproducing quantitative results


  1. Create a scripts directory$ mkdir scripts

  2. Identfy a dataset you would like to get the quantitative results on. Locate the file./quant_scripts/{dataset}_reconstr.sh.

  3. ChangeBASE_SCRIPT insrc/create_scripts.py to be the same as given at the top of./quant_scripts/{dataset}_reconstr.sh.

  4. Optionally, comment out the parts of./quant_scripts/{dataset}_reconstr.sh that you don't want to run.

  5. Run./quant_scripts/{dataset}_reconstr.sh. This will create a bunch of.sh files in the./scripts/ directory, each one of them for a different parameter setting.

  6. Start running these scripts.

    • You can run$ ./utils/run_sequentially.sh to run them one by one.
    • Alternatively use$ ./utils/run_all_by_number.sh to create screens and start proccessing them in parallel. [REQUIRES: gnu screen][WARNING: This may overwhelm the computer]. You can use$ ./utils/stop_all_by_number.sh to stop the running processes, and clear up the screens started this way.
  7. Create a results directory :$ mkdir results. To get the plots, seesrc/metrics.ipynb. To get matrix of images (as in the paper), run$ python src/view_estimated_{dataset}.py.

  8. You can also manually access the results saved by the scripts. These can be found in appropriately named directories inestimated/. Directory name conventions are defined inget_checkpoint_dir() insrc/utils.py

Miscellaneous


For a complete list of images not used while training on celebA, seehere.

About

Code to reproduce results from the paper: "Compressed Sensing using Generative Models".

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp