美文网首页
高维数组的"矩阵相乘"

高维数组的"矩阵相乘"

作者: 胜负55开 | 来源:发表于2019-10-28 16:09 被阅读0次

需求:高维(至少3维以上)的两个数组,进行线性代数中的矩阵相乘!下面的规律numpy和cupy都适用。

两个数组尺寸要求:

  • "2维以上"的尺寸必须完全对应相等;
  • "2维"具有实际意义的单位,只要满足矩阵相乘的尺寸规律即可。

例子:

import numpy as np

# 前两个高维4和3必须对应完全相等!后面两个只需满足矩阵相乘要求即可。
a = np.zeros( (4,3,4,2) ) + 1  
b = np.zeros( (4,3,2,4) ) + 2

w = np.matmul(a,b)
print( w.shape )

# 结果:
(4, 3, 4, 4)

结果的说明:我们已经知道,高维数组的单位其实就是一个个二维矩阵;上面例子的"高维数组相乘",其实就是"两个矩阵彼此之间二维矩阵单位的相乘"而已!高维仅代表这样的单位有很多,整体做了很多对应位置的单位相乘罢了(直接用高维数组相乘,比用循环对应位置一个一个循环乘要快太多!!)。

因此:再高纬度的矩阵,都能直接进行快速的矩阵相乘,这为"矢量化编程"创造了条件。

相关文章

  • 高维数组的"矩阵相乘"

    需求:高维(至少3维以上)的两个数组,进行线性代数中的矩阵相乘!下面的规律numpy和cupy都适用。 两个数组尺...

  • C++多线程操作矩阵相乘

    由一维数组模拟二维数组的方式进行矩阵相乘操作单线程操作: 多线程操作:

  • WarMj:简单矩阵乘法代码解析

    目前还不会申请动态数组(需要指针),所以先分析固定数组,之后补上。 矩阵分析 矩阵相乘条件 形如 ma[row][...

  • 第2章 矩阵

    矩阵 向量是标量的数组,矩阵是向量的数组。 n维向量 x (N*M的矩阵) = M维向量 矩阵就是映射。...

  • 2018-07-20-pytroch小知识

    1. 将多个二维矩阵与一个二维矩阵相乘得到多个二维矩阵 In numpy, when i have a 3D te...

  • tensorflow 二维矩阵乘以三维矩阵,高维矩阵相乘

    最近看论文时看到了一个让我费解的操作。二维矩阵 * 三维矩阵 * 二维矩阵 得到了一个二维矩阵。即: (n * c...

  • Tensor 张量

    Tensor 张量 张量类似于多维数组,它是标量、向量、矩阵的高维拓展; 可以将标量看做0维张量,数组看做是一维张...

  • 矩阵

    1. 线性方程组 2. 矩阵定义 3. 矩阵运算 矩阵的加法矩阵的加法 数与矩阵相乘数与矩阵相乘 矩阵与矩阵相乘矩...

  • python之数组

    python中,一维数组被打印成行,二维数组成矩阵,三维数组成矩阵列表。 一维是行,横着延伸;(里层for) 二维...

  • numpy矩阵和数组的区别

    numpy矩阵和数组的区别 numpy矩阵(matrix)是严格二维的,而numpy数组(ndarray)是N维 ...

网友评论

      本文标题:高维数组的"矩阵相乘"

      本文链接:https://www.haomeiwen.com/subject/jtybvctx.html