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])
  • 我知道第一个是秩-2张量,而第二个是秩-1张量。对我来说,很难概念化形状
    [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形状。