get_shape
函数主要用于获取一个张量的维度,并且输出张量每个维度上面的值。如果是二维矩阵,也就是输出行和列的值,使用非常方便。
import tensorflow as tf
with tf.Session() as sess:
A = tf.random_normal(shape=[3, 4])
print(A.get_shape())
print(A.get_shape)
执行结果:
(3, 4)
<bound method Tensor.get_shape of <tf.Tensor 'random_normal:0' shape=(3, 4) dtype=float32>>
第一个输出是一个元祖,就是数值,而第二输出就是一个张量的对象,里面包含更多的东西。如果你需要输出某一个维度上面的值,那就用下面的这种方式:
A.get_shape()[0]
这就表示第一个维度。该函数经常和as_list
一起使用:
import tensorflow as tf
varX = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
sess = tf.Session()
varX_shape = tf.shape(varX)
print(sess.run(varX_shape)) # 输出“[3 3]”
varX_shape = varX.get_shape().as_list()
print(varX_shape) # 输出“[3, 3]”