簡體   English   中英

加快Python Numpy代碼的速度

[英]Speeding up Python Numpy code

我有以下代碼:

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其實現為scipy.signal.fftconvolve

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM