Code for our CVPR'17 paper "Image Super-Resolution via Deep Recursive Residual Network"
Matlab HTML C C++ Shell CSS
Switch branches/tags
Nothing to show
Clone or download
Latest commit cafe98b Jun 26, 2018
Failed to load latest commit information.
caffe_files VDSR_reimplementation Jun 16, 2017
data 3 Mar 20, 2017
figures 1 Mar 31, 2017
model 3 Mar 20, 2017
test 5 Mar 21, 2017 Update Jun 26, 2018
sgd_solver.cpp 6 Mar 21, 2017




If you find DRRN useful in your research, please consider citing:

  title={Image Super-Resolution via Deep Recursive Residual Network},
  author={Tai, Ying and Yang, Jian and Liu, Xiaoming },
  booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},

Other implementation

[DRRN-tensorflow] by LoSealL

[DRRN-pytorch] by yun_yang

[DRRN-pytorch] by yiyang7

Implement adjustable gradient clipping

modify sgd_solver.cpp in your_caffe_root/src/caffe/solvers/, where we add the following codes in funciton ClipGradients():

Dtype rate = GetLearningRate();

const Dtype clip_gradients = this->param_.clip_gradients()/rate;


  1. Preparing training/validation data using the files: generate_trainingset_x234/generate_testingset_x234 in "data" folder. "Train_291" folder contains 291 training images and "Set5" folder is a popular benchmark dataset.
  2. We release two DRRN architectures: DRRN_B1U9_20C128 and DRRN_B1U25_52C128 in "caffe_files" folder. Choose either one to do training. E.g., run ./


  1. Remember to compile the matlab wrapper: make matcaffe, since we use matlab to do testing.
  2. We release two pretrained models: DRRN_B1U9_20C128 and DRRN_B1U25_52C128 in "model" folder. Choose either one to do testing on benchmark Set5. E.g., run file ./test/DRRN_B1U9_20C128/test_DRRN_B1U9, the results are stored in "results" folder, with both reconstructed images and PSNR/SSIM/IFCs.

Benchmark results

Quantitative results



Qualitative results

Scale factor x2

Scale factor x3

Scale factor x4