tensorflow :: opérations :: TensorArrayGrad
#include <data_flow_ops.h>
Crée un TensorArray pour stocker les dégradés de valeurs dans le handle donné.
Résumé
Si le dégradé 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.
Une note sur l'entrée flow_in:
Le handle flow_in force l'exécution de la recherche de gradient à se produire uniquement après que certaines autres opérations se sont produites. Par exemple, lorsque le TensorArray avant est dimensionné dynamiquement, les écritures dans ce TensorArray peuvent redimensionner l'objet. Le gradient TensorArray est dimensionné statiquement en fonction de la taille du TensorArray avant lorsque cette opération s'exécute. En outre, la taille du TensorArray avant est gelée par cet appel. Par conséquent, le flux est utilisé pour garantir que l'appel pour générer le gradient TensorArray ne se produit qu'une fois toutes les écritures exécutées.
Dans le cas de TensorArrays dimensionnés dynamiquement, le calcul du gradient ne doit être effectué que sur les opérations de lecture qui ont elles-mêmes été chaînées via le flux pour se produire uniquement après que toutes les écritures ont été exécutées. De cette façon, la taille finale du TensorArray avant est connue lorsque cette opération est appelée.
Une note sur l'attribut source:
Les appels de gradient TensorArray utilisent un objet TensorArray accumulateur. Si plusieurs gradients sont calculés et exécutés dans la même session, les multiples nœuds de gradient peuvent accidentellement passer par le même accumulateur TensorArray . Ce double compte et interrompt généralement le flux de gradient TensorArray .
La solution est d'identifier quel gradient appelle ce gradient TensorArray particulier. Ceci est effectué en identifiant une chaîne unique (par exemple "gradients", "gradients_1", ...) à partir du nom du gradient d'entrée Tensor . Cette chaîne est utilisée comme suffixe lors de la création de l'objet dégradé TensorArray ici (la source
attribut).
La source
attribut est ajoutée en tant que suffixe au nom du TensorArray avant lors de l'exécution de la création / recherche, de sorte que chaque calcul de gradient séparé obtient son propre accumulateur TensorArray .
Arguments:
- scope: un objet Scope
- handle: Le handle vers l'avant TensorArray .
- flow_in: un scalaire flottant qui applique un chaînage approprié des opérations.
- source: la chaîne source du gradient, utilisée pour décider quel gradient TensorArray renvoyer.
Retour:
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
écouler
::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 )