我正在嘗試使用 numpy 和 Numba 計時一個簡單的矩陣乘法程式。這是我的代碼
我得到的錯誤是get_ipython().magic('time _ = A.dot(B)') SyntaxError: invalid syntax
import time
import numpy as np
from numba import jit, njit, vectorized
A = np.random.randint(0, 15, size=(1000,1000))
B = np.random.randint(0, 15, size=(1000,1000))
%time A.dot(B)
@jit(nopython=True)
%time _ = A.dot(B)
任何幫助將不勝感激!
uj5u.com熱心網友回復:
我認為您正在犯一些誤解,解決這些誤解將使您的代碼也能正常作業。
- 這
%time是來自 IPython的線魔法。
這不需要匯入timepython 包。 - 裝飾器(如您的
@jit(nopython=True)運算式)用于包裝函式或類定義。將它們放在常規代碼行之前會給您同樣的錯誤。
要使此代碼在您的情況下可用,您可以做的是將您嘗試處理的代碼行包裝在一個函式中。
您的代碼的作業版本將是這樣的:
import numpy as np
from numba import jit
A = np.random.randint(0, 15, size=(1000,1000))
B = np.random.randint(0, 15, size=(1000,1000))
%time A.dot(B)
@jit(nopython=True)
def wrapped_dot(A, B):
return A.dot(B)
%time _ = wrapped_dot(A, B)
盡管我還要說,由于您已經在使用 numpy 陣列,因此 numba 可能不會實作明顯的加速,因為 numpy 已經過優化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/464621.html
上一篇:運行一個函式并與下一行求和
