pytorch两个形状相同的Tensor做按元素运算(可能会触发广播机制)

2020年04月20日 12点热度 0人点赞 0条评论

当对两个形状不同的 Tensor 按元素运算时,可能会触发广播(broadcasting)机制:先适当复制元素使这两个 Tensor 形状相同后再按元素运算。例如
 

x = torch.arange(1, 3).view(1, 2)
print(x)
y = torch.arange(1, 4).view(3, 1)
print(y)
print(x + y)

输出

pytorch两个形状相同的Tensor做按元素运算(可能会触发广播机制)

由于 x 和 y 分别是1行2列和3行1列的矩阵,如果要计算 x + y ,那么 x 中第一行的2个元素被广播(复制)到了第二行和第三行,而 y 中第一列的3个元素被广播(复制)到了第二列。如此,就可以对2个3行2列的矩阵按元素相加。
 

未经允许不得转载!pytorch两个形状相同的Tensor做按元素运算(可能会触发广播机制)

update

纸上得来终觉浅, 绝知此事须躬行。