lpj-github-io/MWCNNv2

Where do you insert the Upsample layer for SISR task?

z0gSh1u opened this issue · 2 comments

That's strange. According to your MWCNN network structure, 3 DWT along with 3 IWT makes the output shape the same as input. However, for super-resolution task, you should perform an upsampling at least.

I've found a Upsampler class using PixelShuffle at model/common.py, but its reference seems to be None.

Could you please explain this?

def forward(self, x):
        x0 = self.d_l0(self.head(x))
        x1 = self.d_l1(self.DWT(x0))
        x2 = self.d_l2(self.DWT(x1))
        x_ = self.IWT(self.pro_l3(self.DWT(x2))) + x2
        x_ = self.IWT(self.i_l2(x_)) + x1
        x_ = self.IWT(self.i_l1(x_)) + x0
        x = self.tail(self.i_l0(x_)) + x

        return x

Also, is there a pretrained model for SISR too?

Bicubic upsampling first.

Bicubic upsampling first.

that make sense. thx