Python 被tensorflow输出搞糊涂了
这是我的代码和相关输出。搞不懂为什么同一张量有两种不同的形状输出?一个是Python 被tensorflow输出搞糊涂了,python,tensorflow,Python,Tensorflow,这是我的代码和相关输出。搞不懂为什么同一张量有两种不同的形状输出?一个是shape=(3,1),另一个是shape=(2,) 产出 Tensor("Const_0:0", shape=(3, 1), dtype=float32) Tensor("Shape_0:0", shape=(2,), dtype=int32) 的第一个输出 print tensor 告诉你张量的信息(维数)。这是一个三行一列的张量 但是, tf.shape(tensor) 返回表示输入形状的一维整数张量。因此,您看
shape=(3,1)
,另一个是shape=(2,)
产出
Tensor("Const_0:0", shape=(3, 1), dtype=float32)
Tensor("Shape_0:0", shape=(2,), dtype=int32)
的第一个输出
print tensor
告诉你张量的信息(维数)。这是一个三行一列的张量
但是,
tf.shape(tensor)
返回表示输入形状的一维整数张量。因此,您看到的输出是关于返回张量的信息(形状),您可以使用以下方法看到:
tensor.get_shape()
> TensorShape([Dimension(3), Dimension(1)])
实际上,它有两个值。因为tf.shape(张量)
将返回一个shape对象。当你把它打印出来时,实际上是关于形状对象的信息,即形状=(2),它不是张量的形状,而是形状对象的形状
有关更多详细信息,请查看谢谢,但为什么它是
形状=(2,)
?这是因为“张量形状”=(3,1),所以“张量形状”=(2,)的形状是(3,1)谢谢的形状,但是(2,)
对形状意味着什么?它的意思是2*什么维度?因为它是一个元组,如果你需要在元组中声明一个值,你需要在它的末尾添加逗号。阅读了解详细信息。你的意思是tf.shape(tensor)
的返回是一个元组而不是另一个张量吗?谢谢,另一个混淆是tensor=tf.constant([[1.],[1.],[1.],[1.]])
,它定义了一个具有3*1维的张量,或具有1*1维的3张量,如输出所示,dtype=float32)得到一个维度为3x1的张量。谢谢,在我的原始输出中,shape=(2,)
表示什么类型的形状,它表示2*什么维度?只是好奇。正如我在文章中所说,它是一个一维张量(或向量)。所以它是两个元素的向量:[3,1]
|它不是1x2张量!这将是一个二维张量(或矩阵),看起来像这样[[1,2]]
(注意两组括号)。
tensor.get_shape()
> TensorShape([Dimension(3), Dimension(1)])