不同形状的张量如何组合?

问题描述 投票:0回答:1

多维张量(例如在 pytorch 中)以什么逻辑组合? 假设我有形状为 (64, 1, 1, 42) 的张量 A 和形状为 (1, 42, 42) 的张量 B。 A 和 B 的结果是什么?我如何提前确定结果形状(如果可能)?

python pytorch tensor
1个回答
0
投票

PyTorch 张量根据 PyTorch 的广播语义进行组合,这很大程度上借鉴于 NumPy 的广播规则

PyTorch 总结了这些规则如下:

如果满足以下规则,则两个张量是“可广播的”:

  • 每个张量至少有一个维度。
  • 迭代维度大小时,从尾随维度开始,维度大小必须相等、其中之一为 1,或者其中之一不存在。

如果两个张量 x, y 是“可广播的”,则结果张量大小计算如下:

  • 如果 x 和 y 的维数不相等,则在维数较少的张量的维数前面加上 1,使它们的长度相等。
  • 然后,对于每个维度大小,生成的维度大小是沿该维度的 x 和 y 大小的最大值。
© www.soinside.com 2019 - 2024. All rights reserved.