首页 > 试题广场 >

深度学习是当前很热门的机器学习算法,在深度学习中,涉及到大量

[单选题]

深度学习是当前很热门的机器学习算法,在深度学习中,涉及到大量的矩阵相乘,现在需要计算三个稠密矩阵A,B,C的乘积ABC,假设三个矩阵的尺寸分别为m*nn*pp*q,且m<n<p<q,以下计算顺序效率最高的是( )

  • (AB)C
  • AC(B)
  • A(BC)
  • 所以效率都相同
答案是A
        a*b,b*c两矩阵相乘效率为a*c*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, 所以 (AB)C 最小

发表于 2016-12-08 19:18:37 回复(0)
(AB)C = m*n*p + m*p*q,
A(BC)=m*n*q.+n*p*q

因为q>p,n>m, 所以 (AB)C 最小

发表于 2017-09-17 19:27:47 回复(0)

矩阵连乘计算

A是(m*n)矩阵,B是(n*p)矩阵,C是(p*q)矩阵
(AB)C需要计算次数是m*n*p+m*p*q 
A(BC)需要计算次数是m*n*q+n*p*q
发表于 2018-06-27 20:39:29 回复(0)

首先,根据简单的矩阵知识,因为 A*B A 的列数必须和 B 的行数相等。因此,可以排除 B 选项,

然后,再看 A C 选项。在 A 选项中, m*n 的矩阵 A n*p 的矩阵 B 的乘积,得到 m*p 的矩阵 A*B ,而 A*B 的每个元素需要 n 次乘法和 n-1 次加法,忽略加法,共需要 m*n*p 次乘法运算。同样情况分析 A*B 之后再乘以 C 时的情况,共需要 m*p*q 次乘法运算。因此, A 选项 (AB)C 需要的乘法次数是 m*n*p+m*p*q 。同理分析, C 选项 A (BC) 需要的乘法次数是 n*p*q+m*n*q

由于 m*n*p< m*n*q m*p*q<n*p*q ,显然 A 运算次数更少,故选 A

发表于 2017-01-10 20:03:56 回复(0)
AB两个矩阵相乘乘法运算次数:(A:m*n,B:n*p) 从结果来考虑,AB结果是m*p的矩阵,AB中每一个元素都经过n次乘法运算得到的。 为什么这样子呢? AB中ABij元素是由A中第i行和B中第j列逐个元素相乘再想加。又因为A中每一行n个元素,B中每一列n个元素。所以,ABij都经过n次乘法运算得到的。 一共m*p个元素,每个元素n次乘法运算,所以AB相乘一共m*n*p次乘法运算。
发表于 2017-09-25 10:44:18 回复(0)
考虑矩阵乘法运算,主要看A,C选项。A选项首先进行A*B操作共运算了m*n*q次乘法,之后AB*C进行了m*p*q次乘法。所以总体是m*p*q+m*n*q。
C是先进行B*C一共n*p*q次乘法运算,之后进行A*(BC)是m*n*q次运算。所以一共是:m*n*q + n*p*q。
直接比较因为n>m 所以显然C进行的次数较多,A选项的效率更高
发表于 2019-07-19 15:16:45 回复(0)
B:直接排除
A: m*n*p + m*p*q
C:m*n*q + n*p *q
由于p<q 且 m < n;
所以选A
发表于 2018-09-27 09:47:00 回复(0)
对于A*B,拿A中的第一行为例,A中的第一行需要和B中的p列进行相乘,相当于一个元素需要进行p次乘法,A中有m*n个元素,一共需要m*n*p词乘法,同理A*B得到的是m*p的矩阵,和C做乘积需要进行m*p*q次乘法。
发表于 2018-09-01 15:03:48 回复(0)
先让小的相乘
发表于 2018-05-11 16:47:01 回复(0)
1(AB)C 需要计算m*n*p + m*p*q 次乘法 (忽略加法)
2.A(BC)需要计算n*p*q + m*n*q次乘法
因为m<n<p<q
npq+mnq - mnp-mpq = (q-p)mn+(n-m)pq>0
所以(AB)C 计算次数更少

发表于 2018-03-30 15:18:56 回复(0)
A. 需要m*m B.需要n*m m<n所以选a
发表于 2017-08-05 19:21:28 回复(0)