Broadcasting
Key idea
A[4,3] B[3]
- 在第一个维度前面插入一个维度 [3] => [1,3]
- 将维度1扩展到与B维度1一样的尺寸 [1,3] => [4,3]
broadcasting = unsqueeze + expand
为什么要使用broadcasting?
1、for example
- [class, student, scores]
- add bias for every students: +5 cores
- [4,32,8] + [4,32,8] 规则
- [4,32,8] + [5.0] 实际
什么时候需要使用broadcasting?
例如:
A[4, 32 ,8] 4个班级32个学生八门课
B[1] => B[4, 32, 8] 给每一个学生每一门课加5分
B[8] = [0,0,5,0,0,0,0,0] => B[4, 32, 8] 给每一个学生的第三门课加5分
B[4] 无法广播自动扩展,因为维度对不上,产生歧义?
broadcasting如何扩展?
如果对应维度为1,则扩展到相同尺寸,如果对应没有维度,也扩展到相同尺寸,除此以外均无法扩展。match from last dim