首页 > 试题广场 >

在deep Learning中,涉及到大量矩阵相乘,现在需要

[单选题]
在deep Learning中,涉及到大量矩阵相乘,现在需要计算三个稠密矩阵a,b,c的乘机abc,假设三个矩阵的尺寸分别为m*n,n*p,p*q,且m<n<p<q,以下计算顺序效率最高的是()
  • a(bc)
  • (ab)c
  • (ac)b
  • 所有效率都相同
ABC=(AB)C=A(BC)
(AB)C = m*n*p + m*p*q, 
A(BC)=n*p*q + m*n*q. 
m*n*p<m*n*q,
m*p*q< n*p*q

发表于 2019-09-05 01:05:24 回复(0)
解析:
首先,根据简单的矩阵知识,因为 A*B , A 的列数必须和 B 的行数相等。因此,可以排除 B 选项,
然后,再看 A 、 C 选项。在 A 选项中,m∗nm∗n 的矩阵 A 和n∗pn∗p的矩阵 B 的乘积,得到 m∗pm∗p的矩阵 A*B ,而 A∗BA∗B的每个元素需要 n 次乘法和 n-1 次加法,忽略加法,共需要 m∗n∗pm∗n∗p次乘法运算。同样情况分析 A*B 之后再乘以 C 时的情况,共需要 m∗p∗qm∗p∗q次乘法运算。因此, A 选项 (AB)C 需要的乘法次数是 m∗n∗p+m∗p∗qm∗n∗p+m∗p∗q 。同理分析, C 选项 A (BC) 需要的乘法次数是 n∗p∗q+m∗n∗qn∗p∗q+m∗n∗q。
由于m∗n∗p<m∗n∗q,m∗p∗q<n∗p∗qm∗n∗p<m∗n∗q,m∗p∗q<n∗p∗q,显然 A 运算次数更少,故选 A 。

原文链接:https://blog.csdn.net/qq_35082030/article/details/75196392

编辑于 2019-09-28 14:39:17 回复(0)