我们可以使用tf.shape()获取某张量的形状张量。
import tensorflow as tf
x = tf.reshape(tf.range(1000), [10, 10, 10])
sess = tf.Session()
sess.run(tf.shape(x))
Out[1]: array([10, 10, 10])
我们可以使用tf.shape()在计算图中确定改变张量的形状。
high = tf.shape(x)[0] // 2
width = tf.shape(x)[1] * 2
x_reshape = tf.reshape(x, [high, width, -1])
sess.run(tf.shape(x_reshape))
Out: array([ 5, 20, 10])
我们可以使用tf.shape_n()在计算图中得到若干个张量的形状。
y = tf.reshape(tf.range(504), [7,8,9])
sess.run(tf.shape_n([x, y]))
Out: [array([10, 10, 10]), array([7, 8, 9])]
我们可以使用tf.size()获取张量的元素个数。
sess.run([tf.size(x), tf.size(y)])
Out: [1000, 504]
tensor.get_shape()或者tensor.shape是无法在计算图中用于确定张量的形状。
In [20]: x.get_shape()
Out[20]: Ten