いいえ、グラフを実行しないとテンソルの内容を確認できません(を実行session.run()
)。あなたが見ることができる唯一のものは:
- テンソルの次元数(ただし、TFが持つ演算のリストについて計算するのは難しくないと思います)
- テンソルの生成に使用される演算のタイプ(
transpose_1:0
、random_uniform:0
)
- テンソル内の要素のタイプ(
float32
)
ドキュメントではこれは見つかりませんでしたが、変数の値(および定数の一部は割り当て時に計算されません)だと思います。
この例を見てください:
import tensorflow as tf
from datetime import datetime
dim = 7000
乱数の定数Tensorを開始する最初の例は、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
定数が実際に評価されて値が割り当てられる2番目のケースでは、時間は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オブジェクトは、操作の結果へのシンボリックハンドルですが、実際には操作の出力の値を保持しません。