该包装器允许将层应用于输入的每个时间切片。
用法
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。