tf.keras.layers.TimeDistributed
| Просмотреть исходный код на GitHub |
Этот обертка позволяет применять слой к каждому временной части входных данных.
Наследуется от: Wrapper, Layer, Module
tf.keras.layers.TimeDistributed(
layer, **kwargs
)
Входные данные должны быть как минимум 3D, и размерность индекса один будет рассматриваться как временная размерность.
Рассмотрим пакет из 32 видеопримеров, где каждый пример представляет собой изображение RGB 128x128 с 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 к каждому из временных шагов, один и тот же набор весов используется на каждом временном шаге.
| Аргументы | |
|---|---|
layer | экземпляр tf.keras.layers.Layer. |
Аргументы вызова:
-
inputs: Входной тензор. -
training: Булево значение Python, указывающее, должен ли слой вести себя в режиме обучения или в режиме вывода. Этот аргумент передается обернутому слою (только если слой поддерживает этот аргумент). -
mask: Бинарный тензор с формой(samples, timesteps), указывающий, должен ли быть замаскирован определённый временной шаг. Этот аргумент передаётся обернутому слою (только если слой поддерживает этот аргумент).
| Возбуждает | |
|---|---|
ValueError | Если не инициализирован с помощью экземпляра tf.keras.layers.Layer. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/layers/TimeDistributed