我有以下代码:

big_k = gabor((height * 2, width *2), (height, width))
for r_slice in range(0,radialSlices):
  r_pixels = r_slice * radialWidth
  for a_slice in range(0,angularSlices):
    a_pixels = a_slice * angularWidth
    k_win = big_k[height - r_pixels:2*height - r_pixels,width - a_pixels:2 * width - a_pixels]
    result = np.sum(img * k_win)


img是640x480的uint8数组,big_kcomplex64 1280x960。

此代码总计1024 640x480矩阵乘法,并强制转换为complex64。

此代码大约需要2秒才能在我的Macbook上运行;我希望尝试获得100倍的加速比。我能做什么?

最佳答案

您正在执行的操作看起来像是卷积,因此建议您尝试使用卷积操作来实现它。可以使用基于FFT的方法非常有效地计算卷积,并在SciPy中将其实现为scipy.signal.fftconvolve

关于python - 加快Python Numpy代码的速度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24133401/

10-14 15:40
查看更多