(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])
的相等大小。
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])
的相等大小。