Pytorch卷积自动编码器输出模糊。如何改善呢?

时间:2019-11-10 22:40:50

标签: deep-learning conv-neural-network pytorch autoencoder

我使用Pytorch创建了卷积自动编码器,我正在尝试对其进行改进。

对于编码层,我使用来自ResNet 18 model的前4层经过预先训练的torchvision.models.resnet

我的中间层只有一个Convolutional layer,输入和输出通道大小为512。对于解码层,我先使用Convolutional layers,然后激活BatchNormReLU功能。

解码层减少512 -> 256 -> 128 -> 64 -> 32 -> 16 -> 3每一层的信道,并通过插值提高图像分辨率,以匹配编码部分中相应层的尺寸。对于最后一层,我使用sigmoid而不是ReLu

所有Convolutional layer是:

self.up = nn.Sequential(
                nn.Conv2d(input_channels, output_channels, 
                    kernel_size=5, stride=1,
                    padding=2, bias=False),
                nn.BatchNorm2d(output_channels),
                nn.ReLU()
            )

输入图像缩放到[0, 1]范围,形状为224x224x3。样本输出为(第一个来自训练集,第二个来自测试集):

First image

First image output

Second image

Second image output

任何想法为何输出模糊?使用160 epochs优化器的~16000优化器,使用Adam图像围绕lr=0.00005训练了提供的模型。我正在考虑在上面给出的Convolutional中再添加一个self.up层。这将增加模型的复杂性,但是我不确定这是否是改进模型的正确方法。

0 个答案:

没有答案