⾼维矩阵指维度≥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})

因为广播机制,左乘右乘不加以区分

实战中数组点乘*