Ich erstelle neuronale Netze mit Tensorflow
und skflow
; aus irgendeinem Grund möchte ich die Werte einiger inneren Tensoren für eine Eingabe erhalten, so verwende ich myClassifier.get_layer_value(input, "tensorName")
, myClassifier
ein Wesen skflow.estimators.TensorFlowEstimator
.
Es fällt mir jedoch schwer, die richtige Syntax des Tensornamens zu finden, selbst wenn ich seinen Namen kenne (und ich werde zwischen Operation und Tensoren verwechselt). Daher verwende ich Tensorboard, um das Diagramm zu zeichnen und nach dem Namen zu suchen.
Gibt es eine Möglichkeit, alle Tensoren in einem Diagramm ohne Verwendung von Tensorboard aufzulisten?
quelle
if "Variable" in n.op
am Ende des Verständnisses hinzufügen .Es gibt eine Möglichkeit, dies mit get_operations etwas schneller als in Jaroslaws Antwort zu tun . Hier ist ein kurzes Beispiel:
quelle
tf.get_operations()
. Nur Operation können Sie bekommen.Ich werde versuchen, die Antworten zusammenzufassen:
So erhalten Sie alle Knoten (Typ
tensorflow.core.framework.node_def_pb2.NodeDef
):So erhalten Sie alle Operationen (Typ
tensorflow.python.framework.ops.Operation
):So erhalten Sie alle Variablen (Typ
tensorflow.python.ops.resource_variable_ops.ResourceVariable
):So erhalten Sie alle Tensoren (Typ
tensorflow.python.framework.ops.Tensor
) :quelle
tf.all_variables()
Sie erhalten die gewünschten Informationen.Auch commit dies heute in TensorFlow gemacht Erfahren Sie, dass eine Funktion bietet
get_variable_names
in Schätzer , dass man leicht alle Variablennamen abrufen können.quelle
tf.global_variables()
all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02
Ich denke, das wird auch reichen:
Aber im Vergleich zu den Antworten von Salvado und Jaroslaw weiß ich nicht, welche besser ist.
quelle
Die akzeptierte Antwort enthält nur eine Liste von Zeichenfolgen mit den Namen. Ich bevorzuge einen anderen Ansatz, der Ihnen (fast) direkten Zugang zu den Tensoren ermöglicht:
list_of_tuples
enthält jetzt jeden Tensor, jeder innerhalb eines Tupels. Sie können es auch anpassen, um die Tensoren direkt zu erhalten:quelle
Da das OP nach der Liste der Tensoren anstelle der Liste der Operationen / Knoten gefragt hat, sollte der Code geringfügig abweichen:
quelle
Frühere Antworten sind gut. Ich möchte nur eine Dienstprogrammfunktion teilen, die ich geschrieben habe, um Tensoren aus einem Diagramm auszuwählen:
Wenn Sie also ein Diagramm mit Operationen haben:
Dann rennen
kehrt zurück:
quelle
Das hat bei mir funktioniert:
quelle