@jit
コードを高速化するために数日間取り組んできました。@jit
最後に、オブジェクトメソッドへ
の追加について説明して、これに出くわしました: http://williamjshipman.wordpress.com/2013/12/24/learning-python-eight-ways-to-filter-an-image
と呼ばれるクラスがGentleBoostC
あり、その中の と呼ばれるメソッドを高速化したいと考えていtrain
ます。
train
3 つの引数 (2D 配列、1D 配列、および整数) を受け入れ、何も返しません。
これは私がコードに持っているものです:
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
しかし、train 関数を定義する行を指しているインデント エラーが発生し続けます。私のインデントには何の問題もありません。コード全体を再インデントしました。で行をコメントアウトすると@jit
、問題はありません。
正確なエラーは次のとおりです。
@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