一、广播(broadcast)机制概述
在PyTorch中,广播机制(Broadcast)允许对不同形状的张量执行逐元素操作,而无需显式地复制数据。这一机制使得编写代码更加简洁和高效。广播机制遵循一定的规则来扩展较小的张量,使其与较大的张量具有相同的形状
二、广播机制规则:
如果遵守以下规则,则两个张量tensor是可广播的:
(1)每个张量tensor至少有一个维度;
(2)遍历两个张量的所有维度时,从末尾随开始遍历。两个tensor张量如果维度(维度的数目)相等或两个tensor张量的维度不等且其中一个维度为1或不存在,那么这两个张量是可以广播的;如果两个tensor张量的维度不等且其中一个维度不为1则不能进行广播
如果两个张量是"可广播的",则计算过程遵循下列规则:
(1)如果两个张量tensor的维度不同则在维度较小的tensor的前面增加维度使它们维度相等;
(2)对于每个维度计算结果的维度值取两个张量tensor中较大的那个值;
(3)两个张量tensor扩展维度的过程是将数值进行复制