Von der numba Webseite:mit Python Typ Hinweise mit Numba
from numba import jit
@jit
def f(x, y):
# A somewhat trivial example
return x + y
Gibt es eine Möglichkeit Numba Verwendung Python Typen Hinweise zu haben (falls vorhanden)?
Von der numba Webseite:mit Python Typ Hinweise mit Numba
from numba import jit
@jit
def f(x, y):
# A somewhat trivial example
return x + y
Gibt es eine Möglichkeit Numba Verwendung Python Typen Hinweise zu haben (falls vorhanden)?
Ja und nein. Sie können einfach die normale Python-Syntax für Anmerkungen verwenden (der Dekorator jit
behält sie bei). Aufbauend auf Ihrem einfaches Beispiel:
from numba import jit
@jit
def f(x: int, y: int) -> int:
# A somewhat trivial example
return x + y
>>> f.__annotations__
{'return': int, 'x': int, 'y': int}
>>> f.signatures # they are not recognized as signatures for jit
[]
jedoch explizit (erzwingen) die Unterschrift muss es in dem jit
-decorator gegeben werden:
from numba import int_
@jit(int_(int_, int_))
def f(x: int, y: int) -> int:
# A somewhat trivial example
return x + y
>>> f.signatures
[(int32, int32)] # may be different on other machines
Es ist so weit, wie ich weiß, keine automatische Art und Weise für jit
die Anmerkungen verstehen und daraus ihre Signatur erstellen.
Da es Just In Time Compilation ist, müssen Sie die Funktion ausführen, um die Signaturen
In [119]: f(1.0,1.0)
Out[119]: 2.0
In [120]: f(1j,1)
Out[120]: (1+1j)
In [121]: f.signatures
Out[121]: [(float64, float64), (complex128, int64)]
Eine neue Signatur erzeugt wird jedes Mal zu erzeugen, die vorherige passen die Daten nicht.