[英]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_k
是complex64
1280x960。
此代碼總計1024 640x480矩陣乘法,並強制轉換為complex64。
此代碼大約需要2秒才能在我的Macbook上運行; 我希望嘗試獲得100倍的加速比。 我能做什么?
您正在執行的操作看起來像是卷積,因此建議您嘗試使用卷積操作來實現它。 可以使用基於FFT的方法非常有效地計算卷積,並在SciPy scipy.signal.fftconvolve
其實現為scipy.signal.fftconvolve
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.