cszn / DnCNN

Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising (TIP, 2017)
https://cszn.github.io/
1.47k stars 539 forks source link

不加BN层,在BSD68测试集上效果反而更加好 #34

Closed chaoyueziji closed 6 years ago

chaoyueziji commented 6 years ago

''' inpt = Input(shape=(40,40,1)) x1 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(inpt) x2 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x1) x3 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x2) x4 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x3) x5 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x4) x6 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x5) x7 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x6) x8 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x7) x9 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x8) x10 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x9) x11 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x10) x12 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x11) x13 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x12) x14 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x13) x15 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x14) x16 = Conv2D(64,(3,3),activation='relu',padding='same',strides=(1,1))(x15) x17 = Conv2D(1,(3,3),padding='same',strides=(1,1))(x16) ''' 参数和原文一致,只是训练采用了BSD40,当sigma=25,15的时候在测试集BSD68上的psnr比原文要好,而且视觉效果也更棒。

NickShanyt commented 4 years ago

有趣的是,在原论文中是带BN的收敛更快。