Python Pytorch张量形
我有一个关于两个不同张量的形状的简单问题-Python Pytorch张量形,python,pytorch,tensor,dimensions,Python,Pytorch,Tensor,Dimensions,我有一个关于两个不同张量的形状的简单问题-tensor_1和tensor_2 tensor_1.shape输出torch.Size([784,1]) tensor_2.shape输出torch.Size([784]) 我知道第一个是秩-2张量,而第二个是秩-1张量。对我来说,很难概念化形状[784,1]和[784]之间的区别 认为张量有784行和1列,每个位置都有一个标量是正确的吗?如果是这样的话,为什么我们不能简单地称它为列向量(实际上是秩1张量),它也有垂直显示的值 类似地,第二个张量([7
tensor_1
和tensor_2
tensor_1.shape
输出torch.Size([784,1])
李>
tensor_2.shape
输出torch.Size([784])
[784,1]
和[784]
之间的区别
认为张量有784行和1列,每个位置都有一个标量是正确的吗?如果是这样的话,为什么我们不能简单地称它为列向量(实际上是秩1张量),它也有垂直显示的值
类似地,第二个张量(
[784]
)的形状可以想象为水平向量内的784个值吗?由于其尺寸,您不能将张量1
称为列向量。索引特定张量是在2D中完成的例如<代码>张量1[1,1] 说到张量2,它是一个只有一维的标量张量。
当然,你可以使它有一个张量1的形状,只要做
tensor_2 = tensor_2.unsqueeze(1) #This method will make tensor_2 have a shape of tensor_1
你对将Pytorch概念映射到数学概念有点太抱希望了。例如,在Pytorch中,行向量和列向量之间没有区别。只有排名1的向量。@Aryamcarthy,谢谢!我需要这个澄清谢谢你,普拉约特。这是有道理的。也许这是一个愚蠢的问题,但是有一个形状为
[784,1]
的张量1
而不是仅仅[784]
(与张量2
相同)背后的具体原因是什么?我们可以通过tensor\u 1.view(784)
轻松地将[784,1]
重塑为[784]
,并降低维度。有许多原因可以解释[784,1]
的形状。一个原因是批次。当您有单值输入时,您希望通过批次发送它,并且损失函数希望您的值是2D形状,而不是1D形状。