我有一个数组X
,大小为60000、28、28。我想计算矩阵K
:
其中n = 1, ..., 60000
,k[i,j] = np.linalg.norm(X[i,:,:] - X[j,:,:])
我使用以下代码:
from joblib import Parallel, delayed
import multiprocessing
def get_kernel(X,i,j):
a = 1000
K = np.zeros([a,a])
for i in range(a):
for j in range(a):
K[i,j] = np.linalg.norm(X[i,:,:]-X[j,:,:])
return K
a = 1000
out = Parallel(n_jobs=10)(delayed(get_kernel)(X,i,j) for i in range(a) for j in range(a))
问题在于此代码根本无法提高速度,甚至会使速度变慢。我该怎么办?