1
私はクラスの階層を持っており、Numbaのjitclassを使ってコードを高速化したいと思います。クラス継承なしで@jitclassをいくつかの例でテストしたところ、正しく動作し、コードをスピードアップしました。しかし、クラスの継承がある場合、コンパイル中にエラーが発生しました。以下は、問題を示すサンプルコードです。ご意見やご提案には大変感謝しています。今私のためには、クラス継承はNumbaによってサポートされていないようですが、私はドキュメンテーションでそれに関する情報を見つけませんでした。 コード例:私が得たNumbaのjitclassと継承
import numpy as np
from numba import jitclass
from numba import int32, float32
spec = [
('n', int32),
('val', float32[:]),
]
@jitclass(spec)
class Parent(object):
def __init__(self, n):
self.n = n
self.val = np.zeros(n, dtype=np.float32)
spec = [
('incr', float32),
]
@jitclass(spec)
class Child(Parent):
def __init__(self, n):
Parent.__init__(self, n)
self.incr = 2.
def func(self):
for i in xrange(0, self.n):
self.val[i] += self.incr
return self.val
par = Parent(10)
chl = Child(10)
print chl.func()
エラーは次のとおりです。
TypeError: cannot subclass from a jitclass