当前位置: 代码迷 >> python >> 了解 PyTorch 张量形状
  详细解决方案

了解 PyTorch 张量形状

热度:93   发布时间:2023-07-14 08:58:59.0

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

input = torch.randn(32, 35)

这将创建一个 32 行 35 列的矩阵。 现在,当我定义:

input2 = torch.randn(1,2,32, 35)

关于新矩阵 input2 的维度,我能说些什么? 我如何在这里定义行和列? 我的意思是我有两个由张量打包的形状为 32*35 的矩阵吗?

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

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

  1. 第一个包含 4 个元素。
  2. 第二个包含 4 个元素。
  3. 第三个维度包含 2 个元素。

数据如下所示:

[[[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]]]

也就是说,四元素二元素四元素。

对,那是正确的。 您的 input2 张量的等级为 4。(等级是维度)并且每个维度的界限是 (1,2,32,35)

  1. 第一个维度可以容纳一个元素。
  2. 第二个可以容纳两个。
  3. 第三个可以容纳 32 个元素。
  4. 第四维可以容纳 35 个元素。

编辑:我发现将高维数组视为一系列列表很有用。 在您的情况下,等级 4 张量将是列表列表的列表。