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