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

TimeDistributed 層

[原始碼]

TimeDistributed 類別

keras.layers.TimeDistributed(layer, **kwargs)

此封裝器允許將層應用於輸入的每個時間切片。

每個輸入都應至少為 3D,並且第一個輸入索引為 1 的維度將被視為時間維度。

考慮一批 32 個影片樣本,其中每個樣本是 128x128 RGB 影像,具有 channels_last 資料格式,跨越 10 個時間步。批次輸入形狀為 (32, 10, 128, 128, 3)

然後,您可以使用 TimeDistributed 將相同的 Conv2D 層獨立應用於 10 個時間步中的每一個

>>> inputs = layers.Input(shape=(10, 128, 128, 3), batch_size=32)
>>> conv_2d_layer = layers.Conv2D(64, (3, 3))
>>> outputs = layers.TimeDistributed(conv_2d_layer)(inputs)
>>> outputs.shape
(32, 10, 126, 126, 64)

由於 TimeDistributed 將相同的 Conv2D 實例應用於每個時間戳記,因此每個時間戳記都使用相同的權重集。

參數

呼叫參數

  • inputs:形狀為 (batch, time, ...) 或巢狀張量的輸入張量,且每個張量都具有形狀 (batch, time, ...)。
  • training:Python 布林值,指示層應在訓練模式還是推論模式下運作。此參數會傳遞至封裝的層(僅當該層支援此參數時)。
  • mask:形狀為 (samples, timesteps) 的二元張量,指示是否應遮罩給定的時間步。此參數會傳遞至封裝的層(僅當該層支援此參數時)。