Tensorflow中高维矩阵的乘法运算tf.matmul(tf.linalg.matmul)详悉
创始人
2024-11-22 12:35:13
0

1.问题由来

 在tensorflow框架下,经常会用到矩阵的乘法运算,特别是高(多)维的矩阵运算,在这些矩阵运算时,经常使用到其中的tf.matmul或tf.linalg.matmul等函数。但高维矩阵在内部怎么运算的?其内部的参数是怎么实现的在tensorflow给出的介绍仍然存在表达不明的问题,所以在此作进一步的阐释。

声明:本博客里的数组乘法运算是指矩阵乘法运算,不是对应元素相乘。所述高维代表矩阵的维度\geq3维。

2.高维矩阵的乘法运算规则

2.1 运算条件

两矩阵的维数相同:len(a.shape)=len(b.shape) 
n-2个维度都一致:a.shape[0]=b.shape[0],...,a.shape[-3]=b.shape[-3]
最后两个维度满足矩阵乘法运算:a.shape[-1]=b.shape[-2]
具体地,假设a.shape=(n_{1},n_{2},...,n_{L}) ,b.shape=(m_{1},m_{2},...,m_{L}),则tf.matmul(a,b) 能运算的条件如下图(箭头表示相等):

 2.2 使用tf.matmul(tf.linalg.matmul)时存在的问题

 按照上文的规则使用tf.matmul(tf.linalg.matmul)时,又会存在各种问题。以tf.linalg.matmul为例,其关键参数设置如下,\mathbf{a}\mathbf{b}表征2个高维矩阵,transpose_a和transpose_b可以理解为分别对\mathbf{a}\mathbf{b}这2个矩阵的转置操作。我们假设\mathbf{a}\mathbf{b}都是4维矩阵,并设维度分别为[a,b,c,d][e,f,g,h]。tensorflow中,第1维一般是batchsize。那么,tf.linalg.matmul(a,b,transpose_b=True)是不是对矩阵\mathbf{b}的真正转置呢?即tf.linalg.matmul(a,b,transpose_b=True)是维度维[a,b,c,d]的矩阵\mathbf{a}与维度为[h,g,f,e]的矩阵\mathbf{b}直接的矩阵运算呢?

tf.linalg.matmul(     a,     b,     transpose_a=False,     transpose_b=False,     adjoint_a=False,     adjoint_b=False,     a_is_sparse=False,     b_is_sparse=False,     output_type=None,     grad_a=False,     grad_b=False,     name=None )

 如果我们直接看tensorflow给出的解释如下

 

 直观的理解确实如前文所述,其实不然。

这里的transpose_a / transpose_b=True并不是执行传统数学意义上的转置操作,而是仅对高维矩阵上的最后两个维度的转置,其它维度仍保持不变。这是通过调用tf.linalg.matrix_transpose实现的。具体如下

tf.linalg.matrix_transpose(     a, name='matrix_transpose', conjugate=False )

tensorflow文档中对其的描述如下,即转置矩阵\mathbf{a}的最后2个维度。

Transposes last two dimensions of tensor a.

至于后续的运算可以在相关文档中查阅得到。

参考文档

tensorflow中高维数组乘法运算_高位矩阵乘法 tensorflow-CSDN博客

TensorFlow中矩阵乘操作tf.matmul(或tf.linalg.matmul)和矩阵元素乘tf.multiply(或tf.math.multiply)用法对比-CSDN博客

相关内容

热门资讯

透视免费!wepoker手机版... 透视免费!wepoker手机版透视脚本,(wepoker)切实有挂(透视)有挂(有挂插件)1)wep...
透视讲解!pokemomo辅助... 透视讲解!pokemomo辅助软件,约局吧德州有挂吗,靠谱教程(有挂教程)约局吧德州有挂吗是一种具有...
透视苹果版!德普之星透视辅助,... 透视苹果版!德普之星透视辅助, (德扑之心)一贯真的是有挂(透视)透视辅助(有挂辅助)亲,关键说明,...
透视辅助器!wepoker代打... 透视辅助器!wepoker代打辅助,(WEPOKER)一直有挂(透视)买脚本靠谱(有挂方法)1、完成...
辅助透视!约局吧是否有挂,po... 辅助透视!约局吧是否有挂,pokemmo手机版脚本免费,必赢方法(有挂详情)1、不需要AI权限,帮助...
透视安装!德扑圈有透视吗, (... 透视安装!德扑圈有透视吗, (德扑之心)一直是真的有挂(透视)辅助器(有挂细节);1、在德扑圈有透视...
透视辅助器!wejoker手机... 透视辅助器!wejoker手机版透视脚本,(wepoker)其实真的有挂(透视)破解工具(有挂揭秘)...
透视脚本!pokemmo脚本最... 透视脚本!pokemmo脚本最新版,约局吧德州可以透视吗,切实教程(有挂工具)1)约局吧德州可以透视...
透视黑科技!德普辅助软件, (... 透视黑科技!德普辅助软件, (德扑之心)一直是有挂(透视)私人局辅助免费(有挂黑科技)1)德普辅助软...
透视脚本!wepoker俱乐部... 透视脚本!wepoker俱乐部辅助,(wepoker)总是是有挂(透视)-h5下载(有挂解密)一、w...