关于卷积层,包括:
Conv1D, Conv2D, SeparableConv2D, Conv2DTranspose, Conv3D, Cropping1D, Cropping2D, Cropping3D, UpSampling1D, UpSampling2D, UpSampleing3D, ZeroPadding1D, ZeroPadding2D, ZeroPadding3D.
所用的数~
1D一整数
2D二整数
3D三整数
Conv1D,
时序卷积
keras.layers.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)
当使用该层作为模型第一层时,需要提供 input_shape 参数(整数元组或 None),例如, (10, 128) 表示 10 个 128 维的向量组成的向量序列, (None, 128) 表示 128 维的向量组成的变长序列。
输入尺寸:
3D 张量 ,尺寸为 (batch_size, steps, input_dim)。
输出尺寸:
3D 张量,尺寸为 (batch_size, new_steps, filters)。 由于填充或窗口按步长滑动,steps 值可能已更改。
Conv2D,
2D 卷积层 (例如对图像的空间卷积)。
keras.layers.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)
SeparableConv2D,
深度方向的可分离 2D 卷积。
keras.layers.SeparableConv2D(filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, depth_multiplier=1, activation=None, use_bias=True, depthwise_initializer='glorot_uniform', pointwise_initializer='glorot_uniform', bias_initializer='zeros', depthwise_regularizer=None, pointwise_regularizer=None, bias_regularizer=None, activity_regularizer=None, depthwise_constraint=None, pointwise_constraint=None, bias_constraint=None)
可分离的卷积的操作包括,首先执行深度方向的空间卷积 (分别作用于每个输入通道),紧接一个将所得输出通道 混合在一起的逐点卷积。depth_multiplier 参数控 制深度步骤中每个输入通道生成多少个输出通道。
直观地说,可分离的卷积可以理解为一种将卷积核分解成 两个较小的卷积核的方法,或者作为 Inception 块的 一个极端版本。
depth_multiplier: 每个输入通道的深度方向卷积输出通道的数量。 深度方向卷积输出通道的总数将等于 filterss _ in * depth _ multiplier。
Conv2DTranspose,
转置卷积层 (有时被成为反卷积)。
keras.layers.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)
Conv3D,
3D 卷积层 (例如立体空间卷积)–3个整数
keras.layers.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)
例如, input_shape=(128, 128, 128, 1) 表示 128x128x128 128 x 128 x 128 的单通道立体。
Cropping1D,
keras.layers.Cropping1D(cropping=(1, 1))
# 1D 输入的裁剪层(例如时间序列),沿着时间维度(第 1 个轴)裁剪。
Cropping2D,
keras.layers.Cropping2D(cropping=((0, 0), (0, 0)), data_format=None)
2D 输入的裁剪层(例如图像)。它沿着空间维度裁剪,即宽度和高度。
# 裁剪输入的 2D 图像或特征图
model = Sequential()
# 上下左右
model.add(Cropping2D(cropping=((2, 2), (4, 4)),
input_shape=(28, 28, 3)))
# 现在 model.output_shape == (None, 24, 20, 3)
model.add(Conv2D(64, (3, 3), padding='same'))
model.add(Cropping2D(cropping=((2, 2), (2, 2))))
# 现在 model.output_shape == (None, 20, 16. 64)
Cropping3D,
3D 数据的裁剪层(例如空间或时空)。
keras.layers.Cropping3D(cropping=((1, 1), (1, 1), (1, 1)), data_format=None)
UpSampling1D,
1D 输入的上采样层,沿着时间轴重复每个时间步 size 次。size又称作是上采样因子。
keras.layers.UpSampling1D(size=2)
UpSampling2D,
2D 输入的上采样层。沿着数据的行和列分别重复 size[0] 和 size[1] 次。
keras.layers.UpSampling2D(size=(2, 2), data_format=None)
UpSampleing3D,
3D 输入的上采样层。沿着数据的第 1、2、3 维度分别重复 size[0]、size[1] 和 size[2] 次。
keras.layers.UpSampling3D(size=(2, 2, 2), data_format=None)
ZeroPadding1D,
1D 输入的零填充层(例如,时间序列)。
keras.layers.ZeroPadding1D(padding=1)
左右填充0。
ZeroPadding2D,
2D 输入的零填充层(例如图像)。
keras.layers.ZeroPadding2D(padding=(1, 1), data_format=None)
上下左右填充0。
ZeroPadding3D.
3D 数据的零填充层(空间或时空)。
keras.layers.ZeroPadding3D(padding=(1, 1, 1), data_format=None)