Keras 3 API 文件 / 層 API / 循環層 / ConvLSTM3D 層

ConvLSTM3D 層

[原始碼]

ConvLSTM3D 類別

keras.layers.ConvLSTM3D(
    filters,
    kernel_size,
    strides=1,
    padding="valid",
    data_format=None,
    dilation_rate=1,
    activation="tanh",
    recurrent_activation="sigmoid",
    use_bias=True,
    kernel_initializer="glorot_uniform",
    recurrent_initializer="orthogonal",
    bias_initializer="zeros",
    unit_forget_bias=True,
    kernel_regularizer=None,
    recurrent_regularizer=None,
    bias_regularizer=None,
    activity_regularizer=None,
    kernel_constraint=None,
    recurrent_constraint=None,
    bias_constraint=None,
    dropout=0.0,
    recurrent_dropout=0.0,
    seed=None,
    return_sequences=False,
    return_state=False,
    go_backwards=False,
    stateful=False,
    **kwargs
)

3D 卷積 LSTM。

類似於 LSTM 層,但輸入轉換和循環轉換皆為卷積。

引數

  • filters: int,輸出空間的維度(卷積中的濾波器數量)。
  • kernel_size: int 或 3 個整數的元組/列表,指定卷積視窗的大小。
  • strides: int 或 3 個整數的元組/列表,指定卷積的步幅長度。strides > 1dilation_rate > 1 不相容。
  • padding: 字串,"valid""same"(不區分大小寫)。"valid" 表示不填充。"same" 會均勻地填充輸入的左/右或上/下,使輸出具有與輸入相同的高度/寬度尺寸。
  • data_format: 字串,"channels_last""channels_first"。輸入中維度的順序。"channels_last" 對應於形狀為 (batch, steps, features) 的輸入,而 "channels_first" 對應於形狀為 (batch, features, steps) 的輸入。預設為在您的 Keras 設定檔 ~/.keras/keras.json 中找到的 image_data_format 值。如果您從未設定它,則將為 "channels_last"
  • dilation_rate: int 或 3 個整數的元組/列表,指定用於擴張卷積的擴張率。
  • activation: 要使用的啟動函數。預設情況下,會應用雙曲正切啟動函數 (tanh(x))。
  • recurrent_activation: 用於循環步驟的啟動函數。
  • use_bias: Boolean,圖層是否使用偏差向量。
  • kernel_initializer: 用於 kernel 權重矩陣的初始化器,用於輸入的線性轉換。
  • recurrent_initializer: 用於 recurrent_kernel 權重矩陣的初始化器,用於循環狀態的線性轉換。
  • bias_initializer: 偏差向量的初始化器。
  • unit_forget_bias: Boolean。如果為 True,則在初始化時將 1 新增至遺忘閘的偏差。與 bias_initializer="zeros" 結合使用。建議在 Jozefowicz et al., 2015 中使用
  • kernel_regularizer: 應用於 kernel 權重矩陣的正規化函數。
  • recurrent_regularizer: 應用於 recurrent_kernel 權重矩陣的正規化函數。
  • bias_regularizer: 應用於偏差向量的正規化函數。
  • activity_regularizer: 應用的正規化函數。
  • kernel_constraint: 應用於 kernel 權重矩陣的約束函數。
  • recurrent_constraint: 應用於 recurrent_kernel 權重矩陣的約束函數。
  • bias_constraint: 應用於偏差向量的約束函數。
  • dropout: 介於 0 和 1 之間的浮點數。為輸入的線性轉換而捨棄的單元比例。
  • recurrent_dropout: 介於 0 和 1 之間的浮點數。為循環狀態的線性轉換而捨棄的單元比例。
  • seed: dropout 的隨機種子。
  • return_sequences: Boolean。是否傳回輸出序列中的最後一個輸出,或完整序列。預設值:False
  • return_state: Boolean。除了輸出之外,是否傳回最後的狀態。預設值:False
  • go_backwards: Boolean(預設值:False)。如果為 True,則反向處理輸入序列並傳回反向序列。
  • stateful: Boolean(預設值 False)。如果為 True,則批次中索引 i 處的每個樣本的最後狀態將用作後續批次中索引 i 的樣本的初始狀態。
  • unroll: Boolean(預設值:False)。如果為 True,則將展開網路,否則將使用符號迴圈。展開可以加速 RNN,儘管它往往更耗費記憶體。展開僅適用於短序列。

呼叫引數

  • inputs: 6D 張量。
  • mask: 形狀為 (samples, timesteps) 的二元張量,指示是否應遮罩給定的時間步。
  • training: Python Boolean,指示圖層應在訓練模式還是推論模式下運作。僅當設定了 dropoutrecurrent_dropout 時才相關。
  • initial_state: 要傳遞到單元格的第一次呼叫的初始狀態張量列表。

輸入形狀

  • 如果 data_format='channels_first':5D 張量,形狀為:(samples, time, channels, *spatial_dims)
  • 如果 data_format='channels_last':5D 張量,形狀為:(samples, time, *spatial_dims, channels)

輸出形狀

  • 如果 return_state:張量列表。第一個張量是輸出。其餘張量是最後的狀態,每個 4D 張量,如果 data_format='channels_first',則形狀為:(samples, filters, *spatial_dims),如果 data_format='channels_last',則形狀為:(samples, *spatial_dims, filters)
  • 如果 return_sequences:5D 張量,如果 data_format='channels_first',則形狀為:(samples, timesteps, filters, *spatial_dims),如果 data_format='channels_last',則形狀為:(samples, timesteps, *spatial_dims, filters)
  • 否則,4D 張量,如果 data_format='channels_first',則形狀為:(samples, filters, *spatial_dims),如果 data_format='channels_last',則形狀為:(samples, *spatial_dims, filters)

參考文獻

  • Shi et al., 2015(目前的實作不包含單元格輸出的回饋迴路)。