Нет, вы не можете увидеть содержимое тензора без запуска графика (делать session.run()
). Единственное, что вы можете увидеть:
- размерность тензора (но я предполагаю, что нетрудно вычислить его для списка операций которые имеет TF)
- тип операции, которая будет использоваться для генерации тензора (
transpose_1:0
,random_uniform:0
)
- тип элементов в тензоре (
float32
)
Я не нашел этого в документации, но я считаю, что значения переменных (и некоторые из констант не рассчитываются во время присваивания).
Посмотрите на этот пример:
import tensorflow as tf
from datetime import datetime
dim = 7000
Первый пример, где я просто запускаю постоянный тензор случайных чисел, запускается примерно в одно и то же время независимо от 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
Во втором случае, когда константа действительно вычисляется и присваиваются значения, время явно зависит от dim ( 0:00:01.244642
)
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
И вы можете сделать это более ясным, вычисляя что-то ( d = tf.matrix_determinant(m1)
имея в виду, что время будет идти O(dim^2.8)
)
PS Я нашел, это было объяснено в документации :
Объект Tensor является символическим дескриптором результата операции, но на самом деле не содержит значений выходных данных операции.