tensorflow :: ops :: TensorArrayGrad
#include <data_flow_ops.h>
Cria um TensorArray para armazenar os gradientes de valores no identificador fornecido.
Resumo
Se o gradiente TensorArray fornecido já existir, retorna uma referência a ele.
Bloqueia o tamanho do TensorArray original desativando seu sinalizador de tamanho dinâmico.
Uma observação sobre a entrada flow_in:
O identificador flow_in força a execução da pesquisa de gradiente a ocorrer somente após certas outras operações terem ocorrido. Por exemplo, quando o TensorArray de avanço é dimensionado dinamicamente, as gravações neste TensorArray podem redimensionar o objeto. O gradiente TensorArray é dimensionado estaticamente com base no tamanho do TensorArray direto quando esta operação é executada. Além disso, o tamanho do TensorArray de encaminhamento é congelado por esta chamada. Como resultado, o fluxo é usado para garantir que a chamada para gerar o gradiente TensorArray aconteça apenas depois que todas as gravações forem executadas.
No caso de TensorArrays de tamanho dinâmico, o cálculo do gradiente só deve ser executado em operações de leitura que foram encadeadas por meio de fluxo para ocorrer somente depois que todas as gravações foram executadas. Dessa forma, o tamanho final do TensorArray direto é conhecido quando essa operação é chamada.
Uma observação sobre o atributo de origem:
As chamadas de gradiente do TensorArray usam um objeto TensorArray acumulador. Se vários gradientes forem calculados e executados na mesma sessão, os vários nós de gradiente podem acidentalmente fluir pelo mesmo acumulador TensorArray . Isso conta duas vezes e geralmente quebra o fluxo de gradiente do TensorArray .
A solução é identificar em qual gradiente este gradiente específico do TensorArray está sendo chamado. Isso é feito identificando uma string única (por exemplo, "gradientes", "gradientes_1", ...) do nome do Tensor do gradiente de entrada. Essa string é usada como sufixo ao criar o objeto de gradiente TensorArray aqui (a source
do atributo).
A source
atributo é adicionada como um sufixo ao nome do TensorArray de encaminhamento ao realizar a criação / pesquisa, para que cada cálculo de gradiente separado obtenha seu próprio acumulador TensorArray .
Argumentos:
- escopo: um objeto Scope
- identificador: o identificador para o TensorArray de avanço.
- flow_in: um escalar flutuante que impõe o encadeamento adequado de operações.
- source: a string de origem do gradiente, usada para decidir qual gradiente TensorArray retornar.
Retorna:
Construtores e Destruidores | |
---|---|
TensorArrayGrad (const :: tensorflow::Scope & scope, :: tensorflow::Input handle, :: tensorflow::Input flow_in, StringPiece source) |
Atributos públicos | |
---|---|
flow_out | |
grad_handle | |
operation |
Atributos públicos
flow_out
::tensorflow::Output flow_out
grad_handle
::tensorflow::Output grad_handle
Operação
Operation operation
Funções públicas
TensorArrayGrad
TensorArrayGrad( const ::tensorflow::Scope & scope, ::tensorflow::Input handle, ::tensorflow::Input flow_in, StringPiece source )