高维矩阵或者向量的运算,是一个困扰着我很久的问题;在NLP里面经常就会碰到三维,四维的向量运算,矩阵相乘时相当头痛,比如著名的Attention中Q、K、V相乘,实在想不出来四维的到底长什么样,又是怎么相乘的。于是特地写下此文章,记录下个人的学习路程,也希望帮到大家。
1、高维矩阵可视化
一维:首先一维的矩阵非常简单,比如[1,2,3,4],可以用下图表示
二维:接着来看二维,可用以下代码生成一个二维矩阵,采用keras框架
import keras.backend as K
import numpy as np
a = K.constant(np.arange(1, 7), shape=[2,3])
print(K.eval(a))
输出为:
[[1. 2. 3.]
[4. 5. 6.]]
看维度的小技巧:想知道一个矩阵的维度是几维的,只需要看开头有几个“[”,有1个即为1维,上面的两个就是两维,后面举到的三维和四维的例子,分别是有三个“[”、四个“[”的