Keras 2 API文档 / 层API / 循环层 / TimeDistributed层

TimeDistributed 层

[源代码]

TimeDistributed

tf_keras.layers.TimeDistributed(layer, **kwargs)

此包装器允许将一个层应用于输入的每个时间步。

每个输入应至少为3D,并且第一个输入的索引为1的维度将被视为时间维度。

考虑一个包含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])

由于TimeDistributedConv2D的同一实例应用于每个时间步,因此每个时间步都使用相同的权重集。

参数

调用参数

  • inputs:形状为(batch, time, ...)的输入张量,或嵌套张量,其中每个张量的形状为(batch, time, ...)。
  • training:布尔值,指示层应以训练模式还是推理模式运行。此参数会传递给包装的层(仅当该层支持此参数时)。
  • mask:形状为(samples, timesteps)的二进制张量,指示是否应屏蔽某个时间步。此参数会传递给包装的层(仅当该层支持此参数时)。

引发