broadcast自动扩展

broadcast:

	1、能够进行维度扩展,是自动的
	2、在扩展的时候不需要拷贝数据

要点:

	- 从最小的维度开始匹配,如果前面没有维度了,在前面插入一个新的维度。
	- 插入的新维度size是1,再将其扩展为与目标相同大小size。

broadcast自动扩展_第1张图片
broadcast自动扩展_第2张图片
一个实际案例:

[class, students, scores]
[4, 	  32,		 8 ]
# 有4个班,每个班32个学生,每个学生都有8门课程

由于今年期末考试难度过大,校长决定给每个同学各科成绩加5分
5.0 -> [1]
如果手动操作:[1].unsqueeze(0).unsqueeze(0).expand(4, 32, 8)
# 一个浮点数占用4byte,如果扩张成[4,32,8]的shape需要占用4096byte,broadcast能大大节约内存

注:在最小维度匹配,才能继续扩展

你可能感兴趣的:(pytorch,学习,人工智能,python)