这是我的代码和相关输出。困惑为什么同一张量有两种不同的形状输出?一个是shape=(3, 1)
,另一个是shape=(2,)
?
import tensorflow.google as tf
tensor = tf.constant([[1.], [1.], [1.]])
print tensor
print tf.shape(tensor)
输出,
Tensor("Const_0:0", shape=(3, 1), dtype=float32)
Tensor("Shape_0:0", shape=(2,), dtype=int32)
答案 0 :(得分:1)
的第一个输出
print tensor
告诉你张量的信息(维度)。这是一个三行一列的张量。
然而,
tf.shape(tensor)
返回表示输入形状的1-D整数 tensor 。因此,您看到的输出是关于返回张量的信息(形状),您可以使用它来看到:
tensor.get_shape()
> TensorShape([Dimension(3), Dimension(1)])
确实有两个值。
答案 1 :(得分:1)
由于ActiveXObject
会返回一个形状对象。当你tf.shape(tensor)
出来时,它实际上是关于形状对象的信息,即shape =(2,),它不是张量的形状,而是print
对象的形状。
有关详细信息,请查看here