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. |
© 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.3/api_docs/python/tf/raw_ops/TensorArrayGradV3