tensorflow::ops::TensorArrayGrad

#include <data_flow_ops.h>

Crée un TensorArray pour stocker les gradients des valeurs dans le descripteur donné.

Résumé

Si le gradient TensorArray donné existe déjà, renvoie une référence à celui-ci.

Verrouille la taille du TensorArray d'origine en désactivant son indicateur de taille dynamique.

Remarque concernant le flux d'entrée :

Le paramètre `flow_in` force l'exécution de la recherche du gradient à n'avoir lieu qu'après certaines autres opérations. Par exemple, si la taille du `TensorArray` direct est dynamique, les écritures dans ce `TensorArray` peuvent modifier sa taille. Le `TensorArray` du gradient est dimensionné statiquement en fonction de la taille du `TensorArray direct` au moment de l'exécution de cette opération. De plus, la taille du `TensorArray direct` est figée par cet appel. Par conséquent, ce flux permet de garantir que l'appel à la génération du `TensorArray` du gradient n'intervient qu'après l'exécution de toutes les écritures.

Dans le cas de TensorArrays de taille dynamique, le calcul du gradient ne doit être effectué que sur les opérations de lecture chaînées par un flux, de sorte qu'elles ne s'exécutent qu'après toutes les écritures. Ainsi, la taille finale du TensorArray direct est connue lors de l'appel de cette opération.

Remarque concernant l'attribut source :

Les calculs de gradient sur TensorArray utilisent un accumulateur TensorArray . Si plusieurs gradients sont calculés et exécutés simultanément, il est possible que les nœuds de gradient transitent accidentellement par le même accumulateur TensorArray . Ceci entraîne un double comptage et interrompt généralement le flux de gradient .

La solution consiste à identifier l'appel de gradient auquel ce gradient TensorArray spécifique est associé. Pour ce faire, on identifie une chaîne de caractères unique (par exemple « gradients », « gradients_1 », etc.) dans le nom du tenseur de gradient d'entrée. Cette chaîne est utilisée comme suffixe lors de la création de l'objet gradient TensorArray (l'attribut source ).

L'attribut source est ajouté comme suffixe au nom du TensorArray direct lors de la création/recherche, afin que chaque calcul de gradient distinct obtienne son propre accumulateur TensorArray .

Arguments :

  • portée : un objet Scope
  • handle : La référence au TensorArray avant.
  • flow_in : Un scalaire flottant qui assure un chaînage correct des opérations.
  • source : La chaîne de caractères source du gradient, utilisée pour déterminer quel TensorArray de gradient renvoyer.

Retours :

Constructeurs et destructeurs

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

attributs publics

flow_out
grad_handle
operation

attributs publics

flux_sortie

::tensorflow::Output flow_out

grad_handle

::tensorflow::Output grad_handle

opération

Operation operation

fonctions publiques

TensorArrayGrad

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