TensorArrayGrad

classe finale pubblica TensorArrayGrad

Crea un TensorArray per archiviare i gradienti dei valori nell'handle specificato.

Se il gradiente TensorArray specificato esiste già, restituisce un riferimento ad esso.

Blocca la dimensione del TensorArray originale disabilitando il relativo flag di dimensione dinamica.

**Una nota sull'input flow_in:**

L'handle flow_in forza l'esecuzione della ricerca del gradiente solo dopo che si sono verificate determinate altre operazioni. Ad esempio, quando il TensorArray in avanti viene dimensionato dinamicamente, le scritture su questo TensorArray potrebbero ridimensionare l'oggetto. Il gradiente TensorArray viene dimensionato staticamente in base alla dimensione del TensorArray diretto quando viene eseguita questa operazione. Inoltre, la dimensione del TensorArray in avanti viene congelata da questa chiamata. Di conseguenza, il flusso viene utilizzato per garantire che la chiamata per generare il gradiente TensorArray avvenga solo dopo che tutte le scritture sono state eseguite.

Nel caso di TensorArray di dimensioni dinamiche, il calcolo del gradiente dovrebbe essere eseguito solo su operazioni di lettura che sono state concatenate tramite flusso in modo che avvengano solo dopo che tutte le scritture sono state eseguite. In questo modo la dimensione finale del TensorArray in avanti è nota quando viene chiamata questa operazione.

**Una nota sull'attributo sorgente:**

Le chiamate al gradiente TensorArray utilizzano un oggetto TensorArray accumulatore. Se più gradienti vengono calcolati ed eseguiti nella stessa sessione, più nodi gradiente potrebbero fluire accidentalmente attraverso lo stesso accumulatore TensorArray. Questo conta due volte e generalmente interrompe il flusso del gradiente TensorArray.

La soluzione è identificare in quale chiamata di gradiente viene chiamato questo particolare gradiente TensorArray. Ciò viene eseguito identificando una stringa univoca (ad esempio "gradients", "gradients_1", ...) dal nome del tensore del gradiente di input. Questa stringa viene utilizzata come suffisso durante la creazione dell'oggetto gradiente TensorArray qui (l'attributo `source`).

L'attributo "source" viene aggiunto come suffisso al nome del TensorArray in avanti durante l'esecuzione della creazione/ricerca, in modo che ogni calcolo del gradiente separato ottenga il proprio accumulatore TensorArray.

Metodi pubblici

TensorArrayGrad statico
create ( ambito ambito , operando <?> handle, operando <float> flowIn, origine stringa)
Metodo factory per creare una classe che racchiude una nuova operazione TensorArrayGrad.
Uscita <Mobile>
Uscita <?>

Metodi ereditati

Metodi pubblici

creazione pubblica statica TensorArrayGrad ( ambito ambito , operando <?> handle, operando <Float> flowIn, origine stringa)

Metodo factory per creare una classe che racchiude una nuova operazione TensorArrayGrad.

Parametri
scopo ambito attuale
maniglia L'handle per il TensorArray in avanti.
flussoIn Uno scalare float che impone il corretto concatenamento delle operazioni.
fonte La stringa di origine del gradiente, utilizzata per decidere quale TensorArray gradiente restituire.
ritorna
  • una nuova istanza di TensorArrayGrad

Uscita pubblica <Float> flowOut ()

Output pubblico <?> gradHandle ()