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.