广播机制让 torch 处理不同维度的信息。
如果满足以下规则,则两个张量是“可广播的”:
- 每个张量具有至少一个维度。
- 从尾随尺寸开始迭代尺寸时,尺寸要么相等,要么其中之一为1,或者不存在其中之一
如果张量x和y可以符合广播的条件,那么:结果张量可以按照下面的方式计算:
- 如果x和y的维度不相同,用1来扩张维度少的那个,使两个张量维度一致
- 对于每个维度,结果维度是x,y对应维度的最大值
1 | a = torch.ones(5, 1, 4, 1) |
输出
torch.Size([5, 3, 4, 1])
1 | a = torch.ones(5, 1, 4, 1) |
输出
1 | torch.Size([5, 3, 4, 1]) |