两个形状相同的张量可以执行按元素操作,在某些情况下,即使形状不同,我们仍然可以通过调用广播机制来执行按元素操作。
这种机制的工作方式:
(1)通过适当幅值元素来扩展一个或两个数组,以获得相同形状的张量
(2)对生成的数组执行按元素操作
在大多数情况下,将沿着数组中长度为1的轴进行广播:
a和b分别是3×1矩阵和1×2矩阵,通过广播为3×2矩阵,完成相加运算。广播过程为将矩阵a复制列,矩阵b复制行,然后按元素相加。
a=torch.arange(3).reshape((3,1))
b=torch.arange(2).reshape((1,2))
print(f'a: {a}')
print(f'b: {b}')
print(f'a+b= {a+b}')
三轴张量:
a=torch.arange(4).reshape((1,1,4))
b=torch.arange(4).reshape((1,4,1))
print(f'a: {a}')
print(f'b: {b}')
print(f'a+b= {a+b}')