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