为什么Tensor.get_shape()可以在初始化会话之前立即工作?

Kev*_*Sun 0 tensorflow

正如在许多TF文档中指出的那样,图形仅在我们创建sess并执行sess.run()方法时才开始构建.

刚才,我测试了:

X = tf.placeholder(dtype=tf.float32, shape=[100,28,28,1])
W = tf.get_variable(...)
Y = tf.matmul(X,W)
print(Y.get_shape()[0].value)
Run Code Online (Sandbox Code Playgroud)

如此代码所示,它输出特定的Y形状值,即使我没有创建会话实例.

如何理解?谢谢!

Yar*_*tov 5

有"静态形状"和"动态形状",get_shape()是静态的,只需要图形,tf.shape是动态的,需要会话 - 如何理解TensorFlow中的静态形状和动态形状?