0

numbaの使い方を学びたいです。残念ながら、ドキュメントから numba を学ぶのは少し難しいと感じています。だから皆さんに聞いてみる必要があります。f関数を引数としてコンストラクターに渡したい。しかし、私は試してみますが、あらゆる種類のエラーが発生します。私は何をすべきか?

これが私のコードです:

def f(x):
    # return some mathematical expression

f_numba = jit(double(double))(f)

@autojit
class name:
    def __init__(self, f)
        self.f = f

    @double(double)
    def __call__(self, x)
        return self.f(x)

funct = name(f_numba)
a = funct(5)

これが私が得ているエラーの一部です(インデントと改行が保持されていないことをお詫びします。いくつかの異なることを試しましたが、すべての場合、フォーマットが失われます)。コメントで頼まれたので載せます。しかし、私が得ているエラーの種類は、正確な実装によって異なります:

トレースバック (最新の呼び出しが最後): ファイル "/home/marius/dev/python/inf1100/test_ODE.py"、7 行目、DE インポートから * ファイル "/home/marius/dev/python/inf1100/DE.py "、3 行目、@autojit ファイル "/home/marius/anaconda/lib/python2.7/site-packages/numba/decorators.py"、183 行目、autojit nopython=nopython、locals=locals、**kwargs )(func) ファイル "/home/marius/anaconda/lib/python2.7/site-packages/numba/decorators.py"、165 行目、_autojit_decorator numba_func = wrapper(f, compilerimpl, cache) ファイル "/home/ marius/anaconda/lib/python2.7/site-packages/numba/exttypes/autojitclass.py"、360 行目、autojit_class_wrapper py_class = autojitmeta.create_unspecialized_cls(py_class, class_specializer) ファイル "/home/marius/anaconda/lib/python2 .7/site-packages/numba/exttypes/autojitmeta.py"、22 行目、create_unspecialized_cls クラス AutojitMeta(type(py_class)): TypeError: メタクラスの基本型 'classobj' を呼び出すときにエラーが発生しましたが、受け入れ可能な基本型ではありません

4

1 に答える 1

2

代わりに新しいスタイルのクラスを使用する必要があるようです。

@autojit
class name(object):
于 2013-12-20T19:26:07.443 に答える