TimeDistributed 类keras.layers.TimeDistributed(layer, **kwargs)
此包装器允许将一个层应用于输入的每个时间步。
每个输入至少应该是 3D 的,并且第一个输入的索引为 1 的维度将被视为时间维度。
考虑一个包含 32 个视频样本的批次,其中每个样本是具有 channels_last 数据格式的 128x128 RGB 图像,跨越 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 的相同实例应用于每个时间步,因此每个时间步都使用相同的权重集。
参数
keras.layers.Layer 实例。调用参数
(samples, timesteps) 的二进制张量,指示是否应屏蔽某个时间步。此参数将传递给包装的层(仅当该层支持此参数时)。