Chapter 3.Numpy之Broadcasting 技术

上两章总结了numpy库中基本的生成以及索引技术,本章将回顾矩阵运算中非常常用的一种技术——broadcasting技术。
numpy 中的矩阵运算是元素对元素的运算,当矩阵或者张量之间维度不匹配的时候,在两种特定的情况下,维度较低的矩阵会自动产生和维度较高的同型矩阵,参与运算。其中的两个条件是:

1、对应的维度相等
2、其中一个维度为1

如果两个矩阵(张量)的维数不相同而且对应维度不相等且不为1,那么系统会抛出“ValueError:frames are not aligned”的异常。在Broadcasting 技术中,最终输出的结果矩阵(张量)的形状是由各个维度分量的最大值组成。例如:

-----------------------------------------------

input (3d array): shape=256 * 256 * 3 #形状为2562563的3维张量(RGB彩色图像)
input (3d array): shape= 3 #1维标量
output(3d array):shape=256 * 256 * 3 #输出为2562563的3维张量

-----------------------------------------------

input(4d array): shape=8 * 1 * 6 * 1 #输入对应维度上其中一个为1
input(3d array): shape= 7 * 1 * 5
ouput(4d array):shape=8 * 7 * 6 * 5 #输出为各个维度上的最大值

-----------------------------------------------

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容