Keras文档学习05.卷积层

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fantacy10000/article/details/83243295

关键词:Conv1D、Conv2DTranspose、Cropping1D、UpSampling1D、ZeroPadding1D
原文地址:文档位置

1.Conv1D层
作用:用来在一维输入信号上进行邻域滤波。

keras.layers.convolutional.Conv1D(filters, kernel_size, strides=1, padding='valid', dilation_rate=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)

输入shape:形如(samples,steps,input_dim)的3D张量
输出shape:形如(samples,new_steps,nb_filter)的3D张量,因为有向量填充的原因,steps的值会改变

2.Conv2D层
作用:二维卷积层,即对图像的空域卷积。

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)

输入shape:(顺序的区别
‘channels_first’模式下,输入形如(samples,channels,rows,cols)的4D张量
‘channels_last’模式下,输入形如(samples,rows,cols,channels)的4D张量

注意这里的输入shape指的是函数内部实现的输入shape,而非函数接口应指定的input_shape,请参考下面提供的例子。

输出shape:(顺序的区别
‘channels_first’模式下,为形如(samples,nb_filter, new_rows, new_cols)的4D张量
‘channels_last’模式下,为形如(samples,new_rows, new_cols,nb_filter)的4D张量
输出的行列数可能会因为填充方法而改变

主要常用参数:
【1】filters:卷积核的数目(即输出的维度)
【2】kernel_size:单个整数或由两个个整数构成的list/tuple,卷积核的宽度和长度。如为单个整数,则表示在各个空间维度的相同长度。
【3】strides:单个整数或由两个整数构成的list/tuple,为卷积的步长。如为单个整数,则表示在各个空间维度的相同步长。任何不为1的strides均与任何不为1的dilation_rate均不兼容
【4】padding:补0策略,为“valid”, “same” 。“valid”代表只进行有效的卷积,即对边界数据不处理。“same”代表保留边界处的卷积结果,通常会导致输出shape与输入shape相同。
【5】activation:激活函数,为预定义的激活函数名(参考激活函数)

3.Conv2DTranspose层
作用:该层是转置的卷积操作(反卷积)。
需要反卷积的情况通常发生在用户想要对一个普通卷积的结果做反方向的变换。例如,将具有该卷积层输出shape的tensor转换为具有该卷积层输入shape的tensor。同时保留与卷积层兼容的连接模式。

keras.layers.convolutional.Conv2DTranspose(filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, 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)

4.Conv3D层
作用:三维卷积对三维的输入进行滑动窗卷积

keras.layers.convolutional.Conv3D(filters, kernel_size, strides=(1, 1, 1), padding='valid', data_format=None, dilation_rate=(1, 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)

5.Cropping1D层、Cropping2D层、Cropping3D层
作用:对1D、2D、3D输入进行裁剪

keras.layers.convolutional.Cropping1D(cropping=(1, 1))

keras.layers.convolutional.Cropping2D(cropping=((0, 0), (0, 0)), data_format=None)

keras.layers.convolutional.Cropping3D(cropping=((1, 1), (1, 1), (1, 1)), data_format=None)

6.UpSampling1D层、UpSampling2D层、UpSampling3D层
作用:对数据的指定维度重复指定的次数

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

7.ZeroPadding1D层、ZeroPadding2D层、ZeroPadding3D层
作用:对指定维度进行填充,以控制卷积后的尺寸

keras.layers.convolutional.ZeroPadding1D(padding=1)
keras.layers.convolutional.ZeroPadding2D(padding=(1, 1), data_format=None)
keras.layers.convolutional.ZeroPadding3D(padding=(1, 1, 1), data_format=None)

猜你喜欢

转载自blog.csdn.net/fantacy10000/article/details/83243295
今日推荐