简介:在PyTorch中,广播机制是一种强大的工具,它允许我们进行不同形状的张量运算。这种机制允许将一个张量的形状适应到另一个张量的形状,从而使得在执行操作时无需显式地重塑或复制张量。
在PyTorch中,广播机制是一种强大的工具,它允许我们进行不同形状的张量运算。这种机制允许将一个张量的形状适应到另一个张量的形状,从而使得在执行操作时无需显式地重塑或复制张量。
一、广播机制的规则
广播机制遵循以下规则:
torch.Tensor的方法来重塑或复制张量。torch.Tensor的expand()或unsqueeze()方法来增加维度或复制元素。现在我们想对这两个张量执行矩阵乘法操作。由于它们的形状不匹配,我们需要使用广播机制来适应其中一个张量的形状:
import torchA = torch.tensor([[1, 2, 3], [4, 5, 6]])B = torch.tensor([[-1, -2], [-3, -4]])
在这个例子中,B被广播到A的形状,然后执行矩阵乘法操作。在这个过程中,B的形状从(2, 1)变为(2, 3),以适应A的形状。同样地,如果A的形状为(2, 3),B的形状为(3, 2),则B会被广播到A的形状进行矩阵乘法操作。
C = A @ B # 结果张量C的形状为(2, 3)