Wenn ich versuche, @jit für meine Klassenmethode zu verwenden, erhalte ich IndentationError: unexpected indent
Ich habe seit einigen Tagen versucht, @ zu bekomm@jit
arbeiten, um meinen Code zu beschleunigen. Endlich bin ich auf dieses Problem gestoßen und habe beschrieben, wie man @ hinzufüg@jit
zu Objektmethoden:http: //williamjshipman.wordpress.com/2013/12/24/learning-python-eight-ways-to-filter-an-imag
Ich habe eine Klasse namensGentleBoostC
und ich möchte die Methode darin beschleunigen, die @ genannt witrain
. train
akzeptiert drei Argumente (ein 2D-Array, ein 1D-Array und eine Ganzzahl) und gibt nichts zurück.
Das habe ich im Code:
import numba
from numba import jit, autojit, int_, void, float_, object_
class GentleBoostC(object):
# lots of functions
# and now the function I want to speed up
@jit (void(object_,float_[:,:],int_[:],int_))
def train(self, X, y, H):
# do stuff
Aber es wird immer wieder ein Einrückungsfehler angezeigt, der auf die Linie verweist, die die Zugfunktion definiert. An meinen Gedankenstrichen ist nichts auszusetzen. Ich habe meinen gesamten Code neu eingerückt. Und wenn ich die Zeile mit @ auskommentie@jit
, dann gibt es keine Probleme.
Hier ist der genaue Fehler:
@jit (void(object_,float_[:,:],int_[:],int_))
File "C:\Users\app\Anaconda\lib\site-packages\numba\decorators.py", line 224, in _jit_decorator
nopython=nopython, func_ast=func_ast, **kwargs)
File "C:\Users\app\Anaconda\lib\site-packages\numba\decorators.py", line 133, in compile_function
func_env = pipeline.compile2(env, func, restype, argtypes, func_ast=func_ast, **kwds)
File "C:\Users\app\Anaconda\lib\site-packages\numba\pipeline.py", line 133, in compile2
func_ast = functions._get_ast(func)
File "C:\Users\app\Anaconda\lib\site-packages\numba\functions.py", line 89, in _get_ast
ast.PyCF_ONLY_AST | flags, True)
File "C:\Users\app\Documents\Python Scripts\gentleboost_c_class_jit_v5_nolimit.py", line 1
def train(self, X, y, H):
^
IndentationError: unexpected indent