sanghyun-son / EDSR-PyTorch

PyTorch version of the paper 'Enhanced Deep Residual Networks for Single Image Super-Resolution' (CVPRW 2017)
MIT License
2.42k stars 668 forks source link

Question about EDSR architecture #3

Closed chaos5958 closed 6 years ago

chaos5958 commented 6 years ago

I have a question about EDSR network architecture.

I apply EDSR resblock on VDSR architecture.

Simply, all network architecture is almost same except 4 below features.

  1. Existence of upsampling layer (e.g. sub-pixel), I remove it.
  2. Input is first upscaled as output resolution by using matlab bicubic.
  3. Modify VDSR residual input to EDSR residual input (e.g. EDSR use residual input as output of first convolution layer)
  4. Number of residual block is 10, which has 20 + 2 convolution layer, each convolution has 64 features which is same as VDSR or EDSR baseline.

However, it doesn't well converge showing worse result than bicubic. I'm curious upsampling layer is important in EDSR style ResNet architecture.

I'm not sure there is flaw on my code, but I want to get some advice on your opinion.

Summary: Do you think EDSR ResNet architecture also apply well on VDSR style which doesn't use upsampling layer?

Thank you!

sanghyun-son commented 6 years ago

Hello.

You can apply ResNet architecture to VDSR, too. (We did some experiments about this.)

I am not sure why your model fails, but I think feature 3 (skip connection) can make some problems.

If you try various types of residual connections, (like input image to output image like VDSR), I guess you can find appropriate design.

Thank you.