tensorflow :: ops :: TensorArrayGrad

#include <data_flow_ops.h>

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

Sommario

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 alcune altre operazioni. Ad esempio, quando il TensorArray diretto viene ridimensionato dinamicamente, le scritture in questo TensorArray possono ridimensionare l'oggetto. Il gradiente TensorArray viene ridimensionato staticamente in base alla dimensione del TensorArray in avanti quando viene eseguita questa operazione. Inoltre, la dimensione dell'inoltro TensorArray 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 TensorArrays di dimensioni dinamiche, il calcolo del gradiente deve essere eseguito solo sulle operazioni di lettura che sono state a loro volta concatenate tramite il 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 di origine:

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

La soluzione è identificare quale gradiente chiama questo particolare gradiente TensorArray . Ciò viene eseguito identificando una stringa univoca (ad esempio "gradienti", "gradienti_1", ...) dal nome del gradiente di input Tensor . Questa stringa viene utilizzata come suffisso quando si crea qui l'oggetto gradiente TensorArray (l' source dell'attributo).

La source dell'attributo viene aggiunta come suffisso al nome del TensorArray in avanti durante l'esecuzione della creazione / ricerca, in modo che ogni calcolo separato del gradiente riceva il proprio accumulatore TensorArray .

Argomenti:

  • scope: un oggetto Scope
  • handle: l'handle per il TensorArray in avanti.
  • flow_in: uno scalare float che impone il corretto concatenamento delle operazioni.
  • source: la stringa di origine del gradiente, utilizzata per decidere quale gradiente TensorArray restituire.

Ritorna:

Costruttori e distruttori

TensorArrayGrad (const :: tensorflow::Scope & scope, :: tensorflow::Input handle, :: tensorflow::Input flow_in, StringPiece source)

Attributi pubblici

flow_out
grad_handle
operation

Attributi pubblici

defluire

::tensorflow::Output flow_out

grad_handle

::tensorflow::Output grad_handle

operazione

Operation operation

Funzioni pubbliche

TensorArrayGrad

 TensorArrayGrad(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input handle,
  ::tensorflow::Input flow_in,
  StringPiece source
)