Cria um TensorArray para armazenar os gradientes de valores no identificador fornecido.
Se o gradiente TensorArray fornecido já existir, retornará 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 algumas outras operações terem ocorrido. Por exemplo, quando o TensorArray de avanço é dimensionado dinamicamente, as gravações nesse TensorArray podem redimensionar o objeto. O gradiente TensorArray é dimensionado estaticamente com base no tamanho do TensorArray de avanço quando essa operação é executada. Além disso, o tamanho do TensorArray de encaminhamento é congelado por essa chamada. Como resultado, o fluxo é usado para garantir que a chamada para gerar o gradiente TensorArray ocorra apenas depois que todas as gravações forem executadas.
No caso de TensorArrays de tamanho dinâmico, a computação de gradiente deve ser executada apenas em operações de leitura que foram encadeadas por meio de fluxo para ocorrer somente depois que todas as gravações forem executadas. Dessa forma, o tamanho final do TensorArray de encaminhamento é conhecido quando essa 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 passar acidentalmente pelo mesmo acumulador TensorArray. Essa contagem dupla e geralmente interrompe o fluxo de gradiente do TensorArray.
A solução é identificar qual gradiente chama esse gradiente TensorArray específico que está sendo chamado. Isso é feito identificando uma string exclusiva (por exemplo, "gradients", "gradients_1", ...) do nome do Tensor gradiente de entrada. Essa 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
static TensorArrayGrad | |
Saída <Float> | fluxoOut () |
Saída <?> | gradHandle () |
Métodos Herdados
Métodos públicos
public static TensorArrayGrad create ( Escopo do escopo, Operando <?> handle, Operando <Float> flowIn, String source)
Método de fábrica para criar uma classe que envolve uma nova operação do TensorArrayGrad.
Parâmetros
alcance | escopo atual |
---|---|
lidar com | O identificador para o TensorArray de encaminhamento. |
entrada de fluxo | 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