TimeDistributed
类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
实例应用于每个时间戳,因此在每个时间戳都使用同一组权重。
参数
tf.keras.layers.Layer
实例。调用参数
(samples, timesteps)
的二进制张量,指示是否应屏蔽给定时间步。此参数会传递给被包装的层(仅当层支持此参数时)。抛出
tf.keras.layers.Layer
实例。