JiahuiYu / wdsr_ntire2018

Code of our winning entry to NTIRE super-resolution challenge, CVPR 2018
http://www.vision.ee.ethz.ch/ntire18/
598 stars 123 forks source link

wdsr_b increase channel problem #26

Closed suke27 closed 5 years ago

suke27 commented 5 years ago

you make a increase channel unit in wdsr_b 32->326->320.8->32 I have a problem, does 32*6 is for scale 2 times, how about x3 and x4, should I change 6 to other number. you paper said It enables even wider activation (6 to 9) without additional parameters or computation.

JiahuiYu commented 5 years ago

@suke27 For x3 SR and x4 SR, you can adjust channel numbers accordingly as you like. We did lots of experiments: as long as you have wide activation (x6 - x9 wider than residual identity pathway), the performance is generally better compared with normal EDSR under same FLOPs and Params.

suke27 commented 5 years ago

@JiahuiYu, I just try x6 case in x3 and x4 SR case, found the psnr is lower than EDSR baseline(16 res+64 filter), so I ask about it. by the way, x6-x9, is there linear scale between scale time and enlarge channel. like x2 case enlarge x6, x3 case enlarge x9, x4 case enlarge x12?

JiahuiYu commented 5 years ago

You don't need to open new issue, let's make it clean so that others can also have a clear reference. Just reply here and I can see it.

Can you report your EDSR and WDSR in terms of (1) number of parameters, (2) channel number in residual identity path way, (3) channel number before activation, and (4) their final performance?

For x2SR, x3SR or x4SR, we use same x4 wider activation with WDSR-A, x6-x9 wider activation with WDSR-B. DO NOT use x6-x9 with WDSR-A, and DO NOT go over x9, that will make your identity pathway too slim.

suke27 commented 5 years ago

EDSR baseline 16 resblock filter 64, WDSR_A 16resblock filter 32->32*4->32, wdsr_b 16 resblock filter 32->192(1x1)->25(1x1)->32 test set: x4 case, DIV2K val dataset(801-900), psnr EDSR baseline 28.84, wdsr_a 28.77, wdsr_b 28.37 psnr computing method, SKImage compare_psnr

JiahuiYu commented 5 years ago

One of our finding is to set the identity pathway at least SxSx3, where 3 represents for RGB, S represents SR scaling. In this case, 4x4x3 = 48.

Can you try to run quick experiments with resBlocks 8 or fewer, baseline EDSR 96 channels, and its correspondent WDSR-A, WDSR-B?

suke27 commented 5 years ago

@JiahuiYu, correct, the upsample layer just set as you said SxSx3, seems in wdsr paper, 4 Experimental Results, just compare 8 blocks in x2 case. do you have x3 or x4 experimental result. I just want to confirm my test result.

JiahuiYu commented 5 years ago

@suke27 I meant to set residual identity pathway SxSx3 (not only the upsample layer) and re-run a quick experiment. Your previous experiment has 32->192(1x1)->25(1x1)->32, which is slim for x4 SR. It was one year ago when we ran x3 and x4 experiments, our result was that WDSR-B is better than WDSR-A, both of which is better than EDSR on x3, x4 and x8 SR.

suke27 commented 5 years ago

if my experiment is slim for x4, could you share what is your resblock for x4 case.

JiahuiYu commented 5 years ago

Please try a quick experiment with resBlocks 8, baseline EDSR 96 channels, and its correspondent WDSR-A, WDSR-B, as I ready tell you in a earlier reply...

suke27 commented 5 years ago

you mean 8 resblock, resblock unit:96->96x6(1x1)->96x0.8->96. like that?

JiahuiYu commented 5 years ago

WDSR-B with 48->48x6(1x1)->48x0.8->48, and EDSR with 96->96. Please double check the #parameters are fair.

By the way, which backbone are you using for training? Can you reproduce our results in x2SR?

suke27 commented 5 years ago

Thank you for your answer, and happy Chinese new year to you! I will try, by the way, do you have -DIV2k- dataset (realistic training dataset)?, I want to try in track 2,3,4 training dataset

JiahuiYu commented 5 years ago

Hi I don’t think I have permission to distribute their dataset. Please ask NTIRE for help. You can also have a look on colab competition page and see if you can get download link.