Broadcasting能够实现Tensor自动维度增加(unsqueeze)与维度扩展(expand),主要按照如下步骤进行:
- 从最后面的维度开始匹配;
- 在前面插入若干维度,进行unsqueeze操作;
- 将维度的size从1通过expand变到和某个Tensor相同的维度。
总之,Broadcasting也就是自动实现了若干unsqueeze
和expand
操作,以使两个Tensor的shape一致,从而完成某些操作,往往是加法操作。
可参考:https://www.pytorchtutorial.com/pytorch-tensor-broadcasting/