Python 理解PyTorch张量形状

Python 理解PyTorch张量形状,python,machine-learning,pytorch,tensor,Python,Machine Learning,Pytorch,Tensor,关于我们在PyTorch中定义的张量的形状,我有一个简单的问题。如果我说: input = torch.randn(32, 35) 这将创建一个包含32行和35列的矩阵。 现在当我定义: input2 = torch.randn(1,2,32, 35) 关于新矩阵input2的维数,我能说些什么? 如何在此处定义行和列?我的意思是,我有两个形状为32*35的矩阵,用张量填充吗 我想更好地理解这背后的几何学。谢谢 是的,没错。输入2张量的秩为4。(秩是维度),每个维度的边界是(1,2,32,3

关于我们在PyTorch中定义的张量的形状,我有一个简单的问题。如果我说:

input = torch.randn(32, 35)
这将创建一个包含32行和35列的矩阵。 现在当我定义:

input2 = torch.randn(1,2,32, 35)
关于新矩阵input2的维数,我能说些什么? 如何在此处定义行和列?我的意思是,我有两个形状为32*35的矩阵,用张量填充吗


我想更好地理解这背后的几何学。谢谢

是的,没错。输入2张量的秩为4。(秩是维度),每个维度的边界是(1,2,32,35)

  • 第一个维度可以容纳一个元素
  • 第二个可以容纳两个
  • 第三个可以容纳32个元素
  • 第四维度可以容纳35个维度 元素

  • 编辑:我发现将高维数组看作一系列列表是很有用的。在您的例子中,秩4张量是一个列表列表

    将张量形状视为维度包含的列表数量。例如,一个张量形状的(4,4,2)将有四个元素,它们都将包含四个元素,而这四个元素又有两个元素

  • 第一个包含4个元素
  • 第二个包含4个元素
  • 第三维度包含两个元素
  • 以下是数据的样子:

    [[[0.86471446, 0.26302726],
      [0.04137454, 0.00349315],   
      [0.06559607, 0.45617865],
      [0.0219786, 0.27513594]],
    
     [[0.60555118, 0.10853228],
      [0.07059685, 0.32746256],
      [0.99684617, 0.07496456],
      [0.55169005, 0.39024103]],
    
     [[0.55891377, 0.41151245],
      [0.3434965, 0.12956237],
      [0.74908291, 0.69889266],
      [0.98600141, 0.8570597]],
    
     [[0.7903229, 0.93017741],
      [0.54663242, 0.72318166],
      [0.6099451, 0.96090241],
      [0.63772238, 0.78605599]]]
    
    换句话说,四行四行两行