神经网络中的多维矩阵乘积运算:

多维矩阵乘积运算乘积两项的维度都应该是相同的,如果有论文中有遇到矩阵乘积的两项维度不一致,那就考虑它计算时是使用了广播机制(如YOLACT)。所有大于二维的,最终都是以二维为基础堆叠在一起的!!

所以在矩阵运算的时候,其实最后都可以转成我们常见的二维矩阵运算,遵循的原则是:在多维矩阵相乘中,需最后两维满足shape匹配原则,最后两维才是有数据的矩阵,前面的维度只是矩阵的排列而已!

例子1:三维*三维
比如两个三维的矩阵相乘,分别为shape=[2,2,3]和shape=[2,3,2]

a =
[[[ 1.  2.  3.][ 4.  5.  6.]][[ 7.  8.  9.][10. 11. 12.]]]b =
[[[ 1.  2.][ 3.  4.][ 5.  6.]][[ 7.  8.][ 9. 10.][11. 12.]]]

a可以表示成2个shape=[2,3]的矩阵,b可以表示成2个shape=[3,2]的矩阵,前面的额表示的是矩阵排列情况。

计算的时候把a的第一个shape=[2,3]的矩阵和b的第一个shape=[3,2]的矩阵相乘,得到的shape=[2,2],同理,再把a,b个字的第二个shape=[2,3]的矩阵相乘,得到的shape=[2,2]。最终把结果堆叠在一起,就是2个shape=[2,2]的矩阵堆叠在一起。
最后答案的shape为:把第一维表示矩阵排情况的2,直接保留作为结果的第一维,再把后面两维的通过矩阵运算,得到shape=[2,2]的矩阵,合起来结果shape=[2,2,2]。

例子2:四维*四维
比如a:shape=[2,1,4,5],b:shape=[1,1,5,4]相乘,输出的结果中,前两维保留的是[2,1],最终结果shape=[2,1,4,4]

后两维[4,4]理解为利用a中shape[4,5]的矩阵乘b中shape[5,4]的矩阵得到。得到的乘积结果前面的维度为[2,1]的原因是:a前面的维度为[2,1],但b只有[1,1],所以看成b进行了广播得到,但前面的维度满足用broadcast的前提就是有一个维度为1。

理解多维矩阵乘积运算和对应的广播机制相关推荐

  1. python多维矩阵基础运算中的一点困惑

    ps 还是deeplung的代码,心情烦躁连测试都麻烦啊!! 遇到的问题简单来说就是当多维矩阵运算时候,脑袋不够用了想像不过来. 1.一个(72, 72, 108, 3, 5)矩阵A ,用12个(36 ...

  2. Python中的Numpy(4.矩阵操作(算数运算,矩阵积,广播机制))

    1.基本的矩阵操作: '''1.算数运算符:加减乘除''' n1 = np.random.randint(0, 10, size=(4, 5)) print(n1) n2 = n1 + 10 # 对n ...

  3. matlab div矩阵运算,【求助】多维矩阵求和运算!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 4-D矩阵:B(:,:,i,j) 具体形式如下! 想对每j列进行对应项求和相加, 整了一上午都-- 谢谢大家! B(:,:,1,1) = 1.0e+010 ...

  4. 【深度学习】python矩阵乘积运算(multiply/maumul/*/@)

    在训练数据时经常涉及到矩阵运算,有段时间没有练习过了,手便生疏了,今天重新测了一把,python中各类矩阵运算举例如下,可以清楚的看到tf.matmul(A,C)=np.dot(A,C)= A@C都属 ...

  5. 离散数学·(不调用第三方库)普通矩阵乘积/关系矩阵乘积,理论+python代码实现

    矩阵乘法如何计算? 普通矩阵乘法:第一个矩阵的列数等于第二个矩阵的行数. 矩阵关系运算前提: (1)第一个矩阵的列数等于第二个矩阵的行数. (2)两个矩阵的元素均是0或1. 这里以关系矩阵乘法为例: ...

  6. Numpy二维矩阵与三维矩阵的乘积

    乘法运算类型及其定义 ndarry情况下: 运算符号* - 逐元素相乘 np.multiply(a,b)----逐元素相乘 np.dot(a, b)----两个二维矩阵满足第一个矩阵的列数与第二个矩阵 ...

  7. 多维(三维四维)矩阵向量运算-超强可视化

    多维(三维四维)矩阵向量运算-超强可视化 1.高维矩阵可视化 一维 二维 三维 四维 2.高维矩阵运算 高维矩阵或者向量的运算,是一个困扰着我很久的问题:在NLP里面经常就会碰到三维,四维的向量运算, ...

  8. numpy dot()函数(两个数组的点积)(对于二维阵列,它是矩阵乘积)

    From multiarray.py def dot(a, b, out=None): # real signature unknown; restored from __doc__"&qu ...

  9. 关于图的二维矩阵转为一维数组的理解。

    一开始看二维矩阵转为一维数组的时候还是有点懵的,为啥是N(N+1)/2呢,为啥不是N*N/2呢,这个矩阵明明是N*N的一个正方形啊,我要省一半空间直接除2不就行了,带着这个问题我观察了一下这个PPT里 ...

最新文章

  1. 20、HTML <textarea>标签(文本域)
  2. 详解边缘计算:为何而起、优势如何、哪些玩家以及正在爆发的场景
  3. C语言求一棵二叉树所有根到叶的路径(附完整源码)
  4. 任意java程序都可以是servlet吗_C#从Java servlet中获取文件流实现任意文件下载
  5. MVC的初步认识理论
  6. 如何用xml 描述目录结构_如何用英语描述人物外表
  7. android企业手机安全软件开发,基于Android的手机安全管理软件的设计与实现毕业论文.doc...
  8. 智学网登录不了java_智学网登录不上怎么办?智学网app无法登录解决方法介绍...
  9. python实现ks算法_Python计算KS值并绘制KS曲线
  10. 微信开发工具安装写入失败
  11. 戳这里,誉天胡老师教你如何备考 HCIE-Datacom!考试通关so easy!
  12. 金庸走过,留给马云和阿里巴巴一个“江湖”
  13. BOOT ROM 初始化内容、启动设备、镜像烧写
  14. PCF8563模块不走时(海振电子PCF8653模块)
  15. 循环结构验证哥德巴赫猜想
  16. 微软中国CTO:手机里装的App一上网基本等于裸奔
  17. css样式被覆盖解决方案
  18. 淘宝Buy+负责人胡晓航:从技术和产品维度看Buy+ VR购物
  19. Ultra Wideband Wireless Communication
  20. c语言ds12c887,【图片】关于DS12C887时间芯片的使用心得【单片机吧】_百度贴吧

热门文章

  1. 第二章 2.2 什么是抽象数据类型?
  2. Idea Gradle配置阿里源
  3. windows便签快捷键_Win10系统下粘滞便笺键盘快捷键大全
  4. 01-centos 7 单机部署ELK
  5. No tftp server found - please refer to “PetaLinux SDK Installation
  6. 音频(二)——I2S 协议
  7. 程序员看完提高开发积极性的人工智能电影
  8. 下载肝胆肿瘤TCGA原始数据
  9. 这是1000万程序员都想要的格子衫――UCloud金格子衫奖背后的故事
  10. 百练(4124)::海贼王之伟大航路(状态压缩)