tf.raw_ops.TensorArrayGradV3
Создаёт TensorArray для хранения градиентов значений в заданном дескрипторе.
tf.raw_ops.TensorArrayGradV3(
handle, flow_in, source, name=None
)
Если заданный градиент TensorArray уже существует, возвращает ссылку на него.
Фиксирует размер исходного TensorArray, отключив его флаг динамического размера.
Примечание о входном потоке flow_in:
Дескриптор потока flow_in заставляет выполнение поиска градиента происходить только после выполнения определённых других операций. Например, когда вперёд TensorArray имеет динамический размер, записи в этот TensorArray могут изменять размер объекта. Градиент TensorArray имеет статический размер, основанный на размере вперёд TensorArray при выполнении этой операции. Кроме того, размер вперёд TensorArray фиксируется этим вызовом. В результате поток используется для обеспечения того, что вызов для генерации градиент TensorArray происходит только после выполнения всех записей.
В случае динамически размерных TensorArray вычисление градиента должно выполняться только для операций чтения, которые сами были объединены с потоком для выполнения только после всех записей. Таким образом, конечный размер вперёд TensorArray известен при вызове этой операции.
Примечание об атрибуте source:
Вызовы градиента TensorArray используют объект-аккумулятора TensorArray. Если несколько градиентов вычисляются и выполняются в одной сессии, несколько узлов градиента могут случайно пройти через один и тот же объект-аккумулятор TensorArray. Это двойное подсчитывание и, как правило, нарушает поток градиента TensorArray.
Решение заключается в определении того, в каком вызове градиента этот конкретный градиент TensorArray вызывается. Это выполняется путём определения уникальной строки (например, "gradients", "gradients_1", ...) из имени входящего градиентного тензора. Эта строка используется в качестве суффикса при создании объекта градиента TensorArray здесь (атрибут source).
Атрибут source добавляется в качестве суффикса к имени вперёд TensorArray при выполнении создания/поиска, чтобы каждое отдельное вычисление градиента получало свой собственный объект-аккумулятор TensorArray.
| Аргументы | |
|---|---|
handle | A Tensor типа resource. Дескриптор вперёд TensorArray. |
flow_in | A Tensor типа float32. Вещественный скаляр, который обеспечивает правильную цепочку операций. |
source | A string. Строка источника градиента, используемая для определения, какой градиент TensorArray вернуть. |
name | Имя операции (необязательно). |
| Возвращаемые значения | |
|---|---|
Кортеж объектов Tensor (grad_handle, flow_out). | |
grad_handle | A Tensor типа resource. |
flow_out | A Tensor типа float32. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/raw_ops/TensorArrayGradV3