Open BrunoVox opened 5 years ago
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.
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?
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: https://github.com/mseitzer/srgan/blob/70f88fbac26b5a3659847965befea2fdd49eb625/models/utils.py#L49 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?
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.