broadcast的两个特点
broadcast的两个特点:1.能够进行维度的扩展,相当于expand,但是是自动扩展
2.扩展的时候不需要拷贝数据
注意broadcast并不是函数,而是在不同size的tensor之间进行加减操作会自动进行的一种机制
主要思想:
1.依次从最后一个维度开始匹配,若前面没有维度则插入一个新的维度,size为1
2.自动调用Expand函数使得维度size相同
假设有如上图的一个feature map,要加上一个bias,把后面的维度理解为小维度,前面的维度理解为大维度。为什么要这么理解呢,我们知道一个四维的tensor可以表示图片,很第一个维度表示图片张数,最后一个维度表示图片的列,很明显前面的维度更为重要,所以理解为大维度。
将两者相加broadcast首先看出两者的dim不一致,对bias插入一个新维度,size为1,在调用expand使得每个维度上与feature map的size一样
举例:
为什么会有这个机制: