⾼维矩阵指维度≥3的矩阵,或者叫张量。
高维矩阵相乘分两种情况:1.相同维度 2.不同维度
1.相同维度矩阵
本质上还是⼆维矩阵之间的乘法,即把最后两个维度看成矩阵,执⾏⼆维矩阵乘法。
要求:1)后两维满足二维矩阵乘法
2)前几维形状相同
例如(a,b,c,d)可与(a,b,d,e)相乘
但由于广播机制的存在,要求2)不满足时也可进行相乘,前几维取较大的形状
(a,b,c,d)*(e,f,d,g)=(max{a,e},max{b,f},c,g)
实战中可以使用numpy中的matmul()
2.不同维度矩阵
由于矩阵不同维度,就相当于一维向量与常数进行对位点乘,也相当于二维矩阵与一维向量相乘
要求:较低维矩阵的所有维数形状与高维相同
(a,b,c)*(b,c)或(a,b,c,d)*(b,c,d)
但是由于广播机制的存在,较低维矩阵只要求其最高维与较高维矩阵对应维度形状相同即可,要求不满足时也可进行相乘,后几维取较大形状
实际要求:较低维矩阵的最高维与较高维矩阵对应维度形状相同
(a,b,c)*(b,e)=(a,b,max{c,e})
(a,b,c,d)*(b,,e,f)=(a,b,max{c,e},max{d,f})
因为广播机制,左乘右乘不加以区分
实战中数组点乘*