(Torch tenor) 不同维度矩阵相减

(Torch tenor) Subtracting different dimension matrices

matrice1 = temp.unsqueeze(0)  
print(M.shape)
matrice2 = M.permute(1, 0, 2, 3)
print(matrice2.shape)
print( torch.abs(matrice1 - matrice2).shape )


#torch.Size([1, 10, 3, 256])
#torch.Size([10, 1, 3, 256])
#torch.Size([10, 10, 3, 256])

我得到了上面的结果。我想知道为什么两个不同维度张量之间的减法会使结果成为形状为 [10,10,3,256].

的张量

根据 PyTorch 的 broadcast semantics,这两个张量在您的情况下是“可广播的”,因此它们会自动扩展到 torch.Size([10, 10, 3, 256]) 的相等大小。