gpt4 book ai didi

python - Numba jitclass 和继承

转载 作者:太空宇宙 更新时间:2023-11-03 16:03:06 30 4
gpt4 key购买 nike

我有一个类层次结构,我想通过使用 Numba jitclass 来加速我的代码。我已经测试了 @jitclass 的一些没有类继承的示例,它可以正常工作并加快代码速度。但是,如果我有类继承,则在编译期间会发生错误。下面是演示该问题的示例代码。如果有任何意见和建议,我将非常感激。现在对我来说,Numba 似乎不支持类继承,但我在文档中没有找到任何有关它的信息。代码示例:

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

最佳答案

目前(从 0.28.1 开始),Numba 不支持从 jitclass 进行子类化/继承。文档中没有说明,但错误消息非常明确。我猜测将来某个时候会添加此功能,但目前它是一个限制。

关于python - Numba jitclass 和继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40123521/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com