Warning! The optimization may not converge on some GPUs. We've personally experienced issues on Tesla V100 and P40 GPUs. When running the code, make sure you get similar results to the paper first. Easiest to check using text inpainting notebook. Try to set double precision mode or turn off cudnn.
Deep image prior
In this repository we provide Jupyter Notebooks to reproduce each figure from the paper:
Deep Image Prior
CVPR 2018
Dmitry Ulyanov, Andrea Vedaldi, Victor Lempitsky
[paper] [supmat] [project page]
Here we provide hyperparameters and architectures, that were used to generate the figures. Most of them are far from optimal. Do not hesitate to change them and see the effect.
We will expand this README with a list of hyperparameters and options shortly.
Install
Here is the list of libraries you need to install to execute the code:
- python = 3.6
- pytorch = 0.4
- numpy
- scipy
- matplotlib
- scikit-image
- jupyter
All of them can be installed via conda
(anaconda
), e.g.
conda install jupyter
or create an conda env with all dependencies via environment file
conda env create -f environment.yml
Docker image
Alternatively, you can use a Docker image that exposes a Jupyter Notebook with all required dependencies. To build this image ensure you have both docker and nvidia-docker installed, then run
nvidia-docker build -t deep-image-prior .
After the build you can start the container as
nvidia-docker run --rm -it --ipc=host -p 8888:8888 deep-image-prior
you will be provided an URL through which you can connect to the Jupyter notebook.
Google Colab
To run it using Google Colab, click here and select the notebook to run. Remember to uncomment the first cell to clone the repository into colab's environment.
Citation
@article{UlyanovVL17,
author = {Ulyanov, Dmitry and Vedaldi, Andrea and Lempitsky, Victor},
title = {Deep Image Prior},
journal = {arXiv:1711.10925},
year = {2017}
}