Sempre que tento usar @jit no meu método de classe, recebo IndentationError: indent inesperado
Eu tenho tentado por vários dias para obter@jit
trabalhando para acelerar meu código. Finalmente me deparei com isso, descrevendo a adição@jit
objetar métodos:http://williamjshipman.wordpress.com/2013/12/24/learning-python-eight-ways-to-filter-an-image
Eu tenho uma classe chamadaGentleBoostC
e eu quero acelerar o método dentro dele chamadotrain
. train
aceita três argumentos (uma matriz 2D, uma matriz 1D e um número inteiro) e não retorna nada.
Isto é o que eu tenho no código:
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
Mas continuo recebendo um erro de indentação, apontando para a linha que define a função do trem. Não há nada errado com meus recuos. Eu recuei todo o meu código. E se eu comentar a linha com@jit
, então não há problemas.
Aqui está o erro exato:
@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