Cria um TensorArray para armazenar os gradientes de valores no identificador fornecido.
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 a ocorrência de algumas outras operações. Por exemplo, quando o TensorArray de encaminhamento é 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 só aconteça após todas as gravações serem 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 após a execução de todas as gravações. Dessa forma, o tamanho final do TensorArray direto é conhecido quando esta operação é chamada.
**Uma observação sobre o atributo source:**
As chamadas de gradiente 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 poderão fluir acidentalmente pelo mesmo acumulador TensorArray. Isso conta duas vezes e geralmente interrompe o fluxo de gradiente do TensorArray.
A solução é identificar em qual chamada de gradiente esse gradiente TensorArray específico está sendo chamado. Isso é realizado identificando uma string exclusiva (por exemplo, "gradientes", "gradientes_1", ...) do nome do Tensor do gradiente de entrada. Esta string é usada como sufixo ao criar o objeto gradiente TensorArray aqui (o atributo `source`).
O atributo `source` é adicionado 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.
Métodos Públicos
TensorArrayGrad estático | |
Saída <flutuante> | fluxoOut () |
Saída <?> | gradHandle () |
Métodos herdados
Métodos Públicos
public static TensorArrayGrad create ( Escopo do escopo , Operando <?> identificador, Operando <Float> flowIn, String source)
Método de fábrica para criar uma classe que envolve uma nova operação TensorArrayGrad.
Parâmetros
escopo | escopo atual |
---|---|
lidar | O identificador para o TensorArray de encaminhamento. |
fluxoIn | Um escalar flutuante que impõe o encadeamento adequado de operações. |
fonte | A string de origem do gradiente, usada para decidir qual gradiente TensorArray retornar. |
Devoluções
- uma nova instância do TensorArrayGrad