tensorflow::ops::TensorArrayGrad
#include <data_flow_ops.h>
Создаёт TensorArray для хранения градиентов значений в заданном дескрипторе.
Краткое описание
Если градиент заданного TensorArray уже существует, возвращает ссылку на него.
Заблокировать размер исходного TensorArray, отключив флаг динамического размера.
Примечание об входном потоке flow_in:
Поток handle flow_in принуждает выполнение поиска градиента произойти только после выполнения определённых других операций. Например, когда прямой TensorArray имеет динамический размер, записи в этот TensorArray могут изменить его размер. Градиентный TensorArray имеет статический размер, основанный на размере прямого TensorArray в момент выполнения этой операции. Кроме того, размер прямого TensorArray замораживается этим вызовом. В результате поток используется для обеспечения того, что вызов генерации градиентного TensorArray происходит только после выполнения всех записей.
В случае динамически размерных TensorArray вычисление градиента должно выполняться только для операций чтения, которые сами были объединены с помощью потока, чтобы произойти только после выполнения всех записей. Таким образом, окончательный размер прямого TensorArray известен, когда вызывается эта операция.
Примечание об атрибуте source:
TensorArray градиенты используют объект-аккумулятора TensorArray. Если несколько градиентов вычисляются и выполняются в одной сессии, несколько узлов градиента могут случайно пройти через один и тот же объект-аккумулятора TensorArray. Это приводит к двойному учёту и обычно нарушает поток градиентов TensorArray.
Решение состоит в том, чтобы определить, в каком вызове градиента этот конкретный градиент TensorArray вызывается. Это выполняется путём определения уникальной строки (например, "gradients", "gradients_1", ...) из имени входного тензора градиента. Эта строка используется в качестве суффикса при создании объекта градиентного TensorArray здесь (атрибут source).
Атрибут source добавляется в качестве суффикса к имени прямого TensorArray при выполнении создания/поиска, чтобы каждое отдельное вычисление градиента получило свой собственный объект-аккумулятора TensorArray.
Аргументы:
- scope: Объект Scope
- handle: Дескриптор прямого TensorArray.
- flow_in: Вещественный скаляр, который обеспечивает правильную цепочку операций.
- source: Строка источника градиента, используемая для определения, какой градиентный TensorArray вернуть.
Возвращает:
| Конструкторы и деструкторы | |
|---|---|
TensorArrayGrad(const ::tensorflow::Scope & scope, ::tensorflow::Input handle, ::tensorflow::Input flow_in, StringPiece source) |
| Публичные атрибуты | |
|---|---|
flow_out | |
grad_handle | |
operation | |
Публичные атрибуты
flow_out
::tensorflow::Output flow_out
grad_handle
::tensorflow::Output grad_handle
operation
Operation operation
Публичные функции
TensorArrayGrad
TensorArrayGrad( const ::tensorflow::Scope & scope, ::tensorflow::Input handle, ::tensorflow::Input flow_in, StringPiece source )
© 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/cc/class/tensorflow/ops/tensor-array-grad