Closed saeed-anwar closed 5 years ago
Hi. We did not extract the patches before training. Since the process of extracting patches is done in an arbitrary location, you might think that stride is 1. You can refer to our code here
if self.split == 'train' then
local ix = torch.random(1, wInput - inputPatch + 1)
local iy = torch.random(1, hInput - inputPatch + 1)
local tx = scale * (ix - 1) + 1
local ty = scale * (iy - 1) + 1
input = input[{{}, {iy, iy + inputPatch - 1}, {ix, ix + inputPatch - 1}}]
target = target[{{}, {ty, ty + targetPatch - 1}, {tx, tx + targetPatch - 1}}]
end
The patch size is 48x48 relative to LR. Therefore, on the HR side, the patch size is 96x96 for scale = 2, 144x144 for scale = 3, and 192x192 for scale = 4.
Thanks for your kind reply.
So your input is not bicubic upsampled image than it is LR image and then you use deconvolution to upsample it. (Sorry, for such questions as i have zero experience with torch :))
Right. Our algorithm uses LR image as an input rather than interpolated one for efficiency and uses deconvolution to upsample. You may check this part of our code.
As shown in this article (Shi et al.), in our experiments, deconvolution and convolution + shuffle combination showed exactly the same results.
@LimBee So the advantage of convolution + shuffle is only fast computation?
I think so. It was fast while requiring more GPU memory.
Hi,
Please can you confirm how many patches are generated from 800 DIV2K train images .
I mean the stride you use for extracting patches.
One more thing, in one of your presentation, you are saying that the size is 96x96 while in paper you are using 48x48. Please can you confirm which is the correct size you use.