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 )