Keras – 卷积层
Keras包含很多层,用于创建基于卷积的ANN,俗称 卷积神经网络(CNN)。 所有的卷积层都有一定的属性(如下所列),这使它与其他层(如密集层)有所区别。
滤波器 - 它指的是在卷积过程中应用的滤波器的数量。它影响到输出形状的尺寸。
kernel size - 指卷积窗口的长度。
Strides - 指卷积的跨度长度。
填充 - 它指的是需要对卷积的输出进行填充的方式。它有三个值,如下所示
- **valid ** 表示没有填充
-
causal 表示因果卷积。
-
**same ** 意思是输出应该和输入有相同的长度,因此,应该相应地应用填充。
扩张率 - 扩张的卷积要应用的扩张率。-
卷积层的另一个重要方面是数据格式。数据格式可以是两种类型、
channel_last: channel_last – 指定通道数据作为最后一项。这里,channel指的是实际数据,它将被放置在输入空间的最后一个维度。-
例如,让我们考虑一个输入形状, (30,10,128)。 这里,第一个维度的值, 30 指的是批次大小,第二个维度的值, 10 指的是时间卷积的 timesteps ,第三个维度的值, 128 指的是输入的实际值。这是Keras的默认设置。
channel_first:channel_first 与 channet_last 正好相反。在这里,输入值被放置在第二个维度上,紧挨着批处理量。
让我们看看本章中Keras所提供的用于CNN的所有层。
Conv1D
Conv1D层 被用于基于时间的CNN。ConvID的输入形状将是以下格式
(batch_size, timesteps, features)
其中、
- batch_size 是指批次的大小。
-
timesteps 是指输入中提供的时间步数。
-
features 指的是输入中可用的特征数量。
Conv1D 的输出形状如下所示
(batch_size, new_steps, filters)
其中, filters 指的是作为参数之一的过滤器的数量。
ConvID 函数的签名和其默认值的参数如下
keras.layers.Conv1D(
filters,
kernel_size,
strides = 1,
padding = 'valid',
data_format = 'channels_last',
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
)
Conv2D
它是一个卷积2D层。它创建了一个卷积核,该层的输入创建了一个输出的张量。input_shape指的是数据格式=”channels_last “中带有RGB值的整数组。
Conv2D 函数的签名及其默认值的参数如下
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
)
这里
- strides 指的是一个整数,指定沿高度和宽度的卷积的步长。