Nie, nie można zobaczyć zawartości tensora bez uruchomienia wykresu (wykonanie session.run()
). Jedyne, co możesz zobaczyć, to:
- wymiar tensora (ale zakładam, że nie jest trudno go obliczyć dla listy operacji, które ma TF)
- rodzaj operacji, która zostanie użyta do wygenerowania tensora (
transpose_1:0
, random_uniform:0
)
- rodzaj elementów w tensorze (
float32
)
Nie znalazłem tego w dokumentacji, ale uważam, że wartości zmiennych (i niektórych stałych nie są obliczane w momencie przypisania).
Spójrz na ten przykład:
import tensorflow as tf
from datetime import datetime
dim = 7000
Pierwszy przykład, w którym właśnie inicjuję stały Tensor liczb losowych, działa w przybliżeniu w tym samym czasie, niezależnie od 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
W drugim przypadku, w którym obliczana jest stała, a wartości są przypisywane, czas wyraźnie zależy od 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
Możesz to wyjaśnić, obliczając coś ( d = tf.matrix_determinant(m1)
pamiętając, że czas się skończy O(dim^2.8)
)
PS Znalazłem, że zostało to wyjaśnione w dokumentacji :
Obiekt Tensor jest symbolicznym uchwytem wyniku operacji, ale tak naprawdę nie przechowuje wartości wyniku operacji.