Je crée des réseaux neuronaux avec Tensorflow
etskflow
; pour une raison quelconque, je veux obtenir les valeurs de certains tenseurs internes pour une entrée donnée, donc j'utilise myClassifier.get_layer_value(input, "tensorName")
, myClassifier
étant un skflow.estimators.TensorFlowEstimator
.
Cependant, j'ai du mal à trouver la syntaxe correcte du nom du tenseur, même en connaissant son nom (et je me trompe entre l'opération et les tenseurs), donc j'utilise Tensorboard pour tracer le graphique et chercher le nom.
Existe-t-il un moyen d'énumérer tous les tenseurs d'un graphe sans utiliser tensorboard?
la source
if "Variable" in n.op
à la fin de la compréhension.Il existe un moyen de le faire un peu plus rapidement que dans la réponse de Yaroslav en utilisant get_operations . Voici un exemple rapide:
la source
tf.get_operations()
. Seule opération que vous pouvez obtenir.Je vais essayer de résumer les réponses:
Pour obtenir tous les nœuds (type
tensorflow.core.framework.node_def_pb2.NodeDef
):Pour obtenir toutes les opérations (type
tensorflow.python.framework.ops.Operation
):Pour obtenir toutes les variables (type
tensorflow.python.ops.resource_variable_ops.ResourceVariable
):Pour obtenir tous les tenseurs (type
tensorflow.python.framework.ops.Tensor
) :la source
tf.all_variables()
peut vous fournir les informations que vous souhaitez.Aussi, ce commit fait aujourd'hui dans TensorFlow Learn qui fournit une fonction
get_variable_names
dans l'estimateur que vous pouvez utiliser pour récupérer facilement tous les noms de variables.la source
tf.global_variables()
all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02
Je pense que cela fera aussi:
Mais comparé aux réponses de Salvado et Yaroslav, je ne sais pas laquelle est la meilleure.
la source
La réponse acceptée ne vous donne qu'une liste de chaînes avec les noms. Je préfère une approche différente, qui vous donne un accès (presque) direct aux tenseurs:
list_of_tuples
contient maintenant chaque tenseur, chacun dans un tuple. Vous pouvez également l'adapter pour obtenir directement les tenseurs:la source
Puisque l'OP a demandé la liste des tenseurs au lieu de la liste des opérations / nœuds, le code devrait être légèrement différent:
la source
Les réponses précédentes sont bonnes, j'aimerais juste partager une fonction utilitaire que j'ai écrite pour sélectionner Tensors dans un graphique:
Donc, si vous avez un graphique avec des opérations:
Puis courir
Retour:
la source
Cela a fonctionné pour moi:
la source