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 )
© 2020 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.4/api_docs/cc/class/tensorflow/ops/tensor-array-grad