mkl实现对角矩阵乘普通矩阵
import numpy as np import time
生成对角矩阵
n = 1000 d = np.random.rand(n) D = np.diag(d)
生成普通矩阵
A = np.random.rand(n, n)
方法一:循环实现
start_time = time.time() B = np.zeros((n, n)) for i in range(n): for j in range(n): B[i][j] = D[i][i] * A[i][j] print("Method 1 time:", time.time() - start_time)
方法二:mkl实现
import mkl
start_time = time.time() mkl.set_num_threads(1) B = mkl.blas.dgemm(alpha=1.0, a=D, b=A) print("Method 2 time:", time.time() - start_time)
原文地址: https://www.cveoy.top/t/topic/fH5y 著作权归作者所有。请勿转载和采集!