问题描述
我必须在最小化过程中计算块对角矩阵的许多矩阵乘积。我特别想加快两个操作:
- 如何更快地构建矩阵? (也许
np.fill_diagonal
) - 如何加速矩阵乘积? (也许使用
np.einsum
)
N = 100
a = np.zeros((10*N,6*N))
for i in range(2*N):
a[i::2*N,i]=1
a[i::2*N,i+2*N]=np.random.rand(1)
a[i::2*N,i+4*N]=np.random.rand(1)
n = np.random.rand(10*N,10*N)
mat = np.dot(a.T,np.dot(n,a))
并且想要计算 np.dot(a,n)
,其中 n
是一个协方差矩阵,它到处都有条目(对称和正定)。
到目前为止,我正在使用 np.dot
执行此操作。您是否有建议如何使用 np.einsum
或利用矩阵 a
的块对角线来加速它。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)