Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PReLU num_parameters #7

Open
BrunoVox opened this issue Apr 13, 2019 · 3 comments
Open

PReLU num_parameters #7

BrunoVox opened this issue Apr 13, 2019 · 3 comments

Comments

@BrunoVox
Copy link

Hi,

In your SRResNet model, you define PReLU num_parameters = 256 in the upscale block. Shouldn't it be 64? I mean, after the PixelShuffle you should have 64 channels.

@mseitzer
Copy link
Owner

Hi,

the figure in the paper is a bit ambiguous about that, but I think you are right.
Thanks for the hint. Unfortunately, I cannot fix that issue without retraining the pretrained checkpoints, for which I do not have the resources right now. It would be interesting if it makes a big difference at all.

@BrunoVox
Copy link
Author

I'm not sure it would make difference at all on second thought, because you used more parameters than necessary. I think it would make difference if you used less than 64 parameters.

I have a special interest in your implementation because I'm working on an improvement for this network, but I had some problems reproducing the original paper. Taking a look at what you've done, made me learn a bit more about it. Currently I made some changes on my model based on what you've done.

For now I have implemented the reflection padding layer (which I wasn't using prior to seeing your implementation). The main question I have about this is: is there any reason for not using nn.ReflectionPad2d? In your code you defined a function to take care of it, but at first glance I couldn't see much of a difference.

Also, you say your metrics grew monotonically during training process. My metrics are bouncing a bit and I'm unsure if it's going well. I'm using 450k images from Imagenet and after 16 epochs the best PSNR for Set5 I've got was 30.37 (4x). I'm training for 50 epochs, which is quite equivalent to the suggested 10^6 iterations in the original paper. Would you by chance have some detailed info on how your PSNR metrics developed, compared to Set5 HR images, through your training iterations?

@mseitzer
Copy link
Owner

For now I have implemented the reflection padding layer (which I wasn't using prior to seeing your implementation). The main question I have about this is: is there any reason for not using nn.ReflectionPad2d? In your code you defined a function to take care of it, but at first glance I couldn't see much of a difference.

I actually also use nn.ReflectionPad2d, as you can see here:

'reflection': nn.ReflectionPad2d,

This is just a wrapper function so the padding can be chosen from the configuration file.

Also, you say your metrics grew monotonically during training process. My metrics are bouncing a bit and I'm unsure if it's going well. I'm using 450k images from Imagenet and after 16 epochs the best PSNR for Set5 I've got was 30.37 (4x). I'm training for 50 epochs, which is quite equivalent to the suggested 10^6 iterations in the original paper. Would you by chance have some detailed info on how your PSNR metrics developed, compared to Set5 HR images, through your training iterations?

I am sorry, I don't have any of the training metrics anymore I think, and also I did not evaluate on Set5 during training, but on BSDS100. It makes sense to me that PSNR on Set5 bounces around more, as it's just 5 images, so the variance of PSNR is larger. You could also try to evaluate on BSDS100, which is 100 images, and see if this makes the PSNR curve smoother. What about PSNR on the training set?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants