Nein, Sie können den Inhalt des Tensors nicht sehen, ohne das Diagramm auszuführen (tun session.run()
). Die einzigen Dinge, die Sie sehen können, sind:
- die Dimensionalität des Tensors (aber ich nehme an, es ist nicht schwer, sie für die Liste der Operationen zu berechnen , die TF hat)
- Art der Operation, mit der der Tensor (
transpose_1:0
, random_uniform:0
) generiert wird
- Art der Elemente im Tensor (
float32
)
Ich habe dies nicht in der Dokumentation gefunden, aber ich glaube, dass die Werte der Variablen (und einige der Konstanten zum Zeitpunkt der Zuweisung nicht berechnet werden).
Schauen Sie sich dieses Beispiel an:
import tensorflow as tf
from datetime import datetime
dim = 7000
Das erste Beispiel, in dem ich gerade einen konstanten Tensor von Zufallszahlen initiiere, läuft ungefähr zur gleichen Zeit, unabhängig von dim ( 0:00:00.003261
)
startTime = datetime.now()
m1 = tf.truncated_normal([dim, dim], mean=0.0, stddev=0.02, dtype=tf.float32, seed=1)
print datetime.now() - startTime
Im zweiten Fall, in dem die Konstante tatsächlich ausgewertet und die Werte zugewiesen werden, hängt die Zeit eindeutig von dim ( 0:00:01.244642
) ab.
startTime = datetime.now()
m1 = tf.truncated_normal([dim, dim], mean=0.0, stddev=0.02, dtype=tf.float32, seed=1)
sess = tf.Session()
sess.run(m1)
print datetime.now() - startTime
Und Sie können es klarer machen, indem Sie etwas berechnen ( d = tf.matrix_determinant(m1)
unter Berücksichtigung der Tatsache, dass die Zeit abläuft O(dim^2.8)
).
PS Ich fand, wo es in der Dokumentation erklärt wird :
Ein Tensor-Objekt ist ein symbolisches Handle für das Ergebnis einer Operation, enthält jedoch nicht die Werte der Ausgabe der Operation.