pytorch的广播机制
广播机制,就是将不同维度、不同长度的Tensor,在满足一定规则的前提下能够自动进行长度和维度的扩充,从而使不同维度、不同长度的Tensor之间正确的进行运算。
自动广播规则:两个tensor能够进行自动广播需要满足以下几个规则:
- 每个维度的大小都相等
- 每个Tensor至少有一个维度(不为空,如 ([2],))
- 从最里面的维度开始遍历,两个Tensor对应维度的大小必须满足如下三个条件中的任一个:
- 对应相等
- 其中一个Tensor的大小等于1
- 其中一个Tensor的某个维度不存在
x = torch.Tensor([2]) y = torch.Tensor([[3],[5]]) # x将自动扩展为[[2],[2]],然后参与运算 print(x+y) >> tensor([[5.],[7.]])
# 二者可以 x = troch.randn(2,3,4,5,6,7) y = torch.rand(3,4,1,1,7) # 二者不可以 x = troch.randn(2,3,4,5,6,7) y = torch.rand(5,4,1,1,7)

浙公网安备 33010602011771号