當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python tf.keras.layers.TimeDistributed用法及代碼示例

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

繼承自:WrapperLayerModule

用法

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

參數

拋出

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

考慮一批 32 個視頻樣本,其中每個樣本是一個 128x128 RGB 圖像,數據格式為channels_last,跨越 10 個時間步長。批量輸入形狀為 (32, 10, 128, 128, 3)

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

inputs = tf.keras.Input(shape=(10, 128, 128, 3))
conv_2d_layer = tf.keras.layers.Conv2D(64, (3, 3))
outputs = tf.keras.layers.TimeDistributed(conv_2d_layer)(inputs)
outputs.shape
TensorShape([None, 10, 126, 126, 64])

因為TimeDistributed 將相同的Conv2D 實例應用於每個時間戳,所以在每個時間戳上使用相同的權重集。

調用參數:

  • inputs:輸入張量形狀(batch, time, ...)或嵌套張量,每個張量都有形狀(batch, time, ...)。
  • training:Python 布爾值,指示層應該在訓練模式還是推理模式下運行。該參數被傳遞給被包層(僅當該層支持該參數時)。
  • mask: 形狀的二進製張量(samples, timesteps)指示是否應屏蔽給定的時間步長。該參數被傳遞給被包層(僅當該層支持該參數時)。

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.layers.TimeDistributed。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。