Keras - 卷积层



Keras 包含许多用于创建基于卷积的 ANN 的层,通常称为卷积神经网络 (CNN)。所有卷积层都具有一些属性(如下所示),这使它与其他层(例如密集层)区别开来。

过滤器 - 它指的是卷积中要应用的过滤器数量。它会影响输出形状的维度。

内核大小 - 它指的是卷积窗口的长度。

步长 - 它指的是卷积的步长。

填充 - 它指的是卷积输出如何进行填充。它有三个值,如下所示:

  • 有效 表示不填充

  • 因果 表示因果卷积。

  • 相同 表示输出应与输入具有相同的长度,因此应相应地应用填充

扩张率 - 用于扩张卷积的扩张率。

卷积层的另一个重要方面是数据格式。数据格式可以分为两种类型,

通道最后:通道最后 - 指定通道数据作为最后一个条目放置。这里,通道指的是实际数据,它将放置在输入空间的最后一个维度中。

例如,让我们考虑一个输入形状(30, 10, 128)。这里,第一个维度的值30指的是批次大小,第二个维度的值10指的是时间卷积中的时间步长,第三维度的值128指的是输入的实际值。这是 Keras 中的默认设置。

通道优先:通道优先通道最后正好相反。这里,输入值放置在第二个维度,紧挨着批次大小。

让我们在本节中查看 Keras 层提供的用于 CNN 的所有层。

Conv1D

Conv1D 层用于基于时间的 CNN。ConvID 的输入形状将采用以下格式:

(batch_size, timesteps, features)

其中,

  • 批次大小指的是批次的大小。

  • 时间步长指的是输入中提供的时间步长数。

  • 特征指的是输入中可用的特征数。

Conv1D 的输出形状如下:

(batch_size, new_steps, 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

它是一个二维卷积层。它使用层输入创建一个卷积核,创建一个输出张量。input_shape 指的是在 data_format = “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
)

这里,

  • 步长指的是一个整数,指定沿高度和宽度的卷积步长。

广告

© . All rights reserved.