被tensorflow输出混淆了

时间:2018-05-07 03:15:19

标签: python tensorflow

这是我的代码和相关输出。困惑为什么同一张量有两种不同的形状输出?一个是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)

2 个答案:

答案 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