题目
在深度学习中,涉及到大量矩阵相乘,现在需要计算三个稠密矩阵A,B,C的乘积ABC,假设三个矩阵的尺寸分别为mn,np,p*q,且m<n<p<q,以下计算顺序效率最高的是:()
a. A(BC)
b. (AB)C
c. (AC)B
d. 所有效率都相同
选择 b
二、解题
矩阵乘积数学公式:
假设存在两个矩阵A为m×n矩阵,B为k×l矩阵,若需要计算AB则必须n=k,若需要计算BA必须l=m否则无法进行计算,
先假定n=k即B为n×l矩阵则AB的结果为一个m×l的矩阵并且该矩阵每个点的元素的值表示为Cij则:
ab,bc两矩阵相乘效率为acb
ABC=(AB)C=A(BC).
(AB)C 的计算量是 mnp + mpq,
A(BC) 的计算量是 npq + mnq.
其中 mnp < mnq, mpq < npq
所以 (AB)C 最小
参考:
https://blog.csdn.net/weixin_46838716/article/details/125227612