keras中实现简单的反卷积

我这里将反卷积分为两个操作,一个是UpSampling2D(),用上采样将原始图片扩大,然后用Conv2D()这个函数进行卷积操作,就可以完成简单的反卷积:

UpSampling2D():

keras中文文档点击打开链接

keras.layers.convolutional.UpSampling2D(size=(2, 2), data_format=None)

进入keras的与源码查看,我的源码地址为D:\Python35\Lib\site-packages\keras\layers\convolutional.py

    def call(self, inputs):
        return K.resize_images(inputs, self.size[0], self.size[1],
                               self.data_format)

这是核心代码,也就是UpSampling2D()函数就是一个K.resize_imagse操作,我这里backend用的是tensorflow,关于这个函数的解释在这里点击打开链接

tf.image.resize_images(
    images,
    size,
    method=ResizeMethod.BILINEAR,
    align_corners=False
)

method can be one of:

  • ResizeMethod.BILINEAR: Bilinear interpolation.
  • ResizeMethod.NEAREST_NEIGHBOR: Nearest neighbor interpolation.
  • ResizeMethod.BICUBIC: Bicubic interpolation.
  • ResizeMethod.AREA: Area interpolation.

UpSampling2D(size=(2,2))就可以将图片扩大1倍,比如原来为28*28的图片,就会变为56*56,

接下来就可以进行卷积操作:

keras.layers.convolutional.Conv2D(filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, dilation_rate=(1, 1), activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)







你可能感兴趣的:(keras中实现简单的反卷积)