該包裝器允許將層應用於輸入的每個時間切片。
用法
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)
指示是否應屏蔽給定的時間步長。該參數被傳遞給被包層(僅當該層支持該參數時)。
相關用法
- Python tf.keras.layers.TextVectorization用法及代碼示例
- Python tf.keras.layers.ThresholdedReLU用法及代碼示例
- Python tf.keras.layers.InputLayer用法及代碼示例
- Python tf.keras.layers.serialize用法及代碼示例
- Python tf.keras.layers.Dropout用法及代碼示例
- Python tf.keras.layers.maximum用法及代碼示例
- Python tf.keras.layers.LayerNormalization用法及代碼示例
- Python tf.keras.layers.Conv2D用法及代碼示例
- Python tf.keras.layers.RepeatVector用法及代碼示例
- Python tf.keras.layers.Multiply用法及代碼示例
- Python tf.keras.layers.Activation用法及代碼示例
- Python tf.keras.layers.Conv1D用法及代碼示例
- Python tf.keras.layers.experimental.preprocessing.PreprocessingLayer.adapt用法及代碼示例
- Python tf.keras.layers.CategoryEncoding用法及代碼示例
- Python tf.keras.layers.subtract用法及代碼示例
- Python tf.keras.layers.experimental.preprocessing.HashedCrossing用法及代碼示例
- Python tf.keras.layers.Subtract用法及代碼示例
- Python tf.keras.layers.ZeroPadding3D用法及代碼示例
- Python tf.keras.layers.MaxPool3D用法及代碼示例
- Python tf.keras.layers.Dot用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.layers.TimeDistributed。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。