当从另一个类调用时,类的方法上的Jit不起作用

2024-06-29 00:56:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试优化类中的一些函数,但当我这样做时,我遇到了错误“无法推断全局值%r的类型”。很遗憾,我找不到关于这个错误的任何信息。当我单独运行这个类时,这个错误不会出现,但只有当我从另一个类调用它时才会出现

我已经实现了我的想法作为一个例子,这是工作,这是真正困扰我。我真的认为从另一个类调用一个类是有好处的,但是这个例子仍然有效,这让我很困惑

有人知道错误可能来自哪里吗

提前谢谢

import numba as nb
import numpy as np
@nb.jit
def c(nbr):
   return nbr
class Axon:
    def __init__(self):
        self.c = Fifo()
        print self.c.res
class Fifo:
    def __init__(self):
       fifos = []
       for i in range(3):
            fifos.append(BinaryFifo(i))
       res = 0
       for j in range(3):
            res += fifos[j].bb
       self.res = res
class BinaryFifo:
    def __init__(self,nbr):
        self.bb = c(nbr)

if __name__ == "__main__":
    Axon()

我尝试实现的当前方法如下所示:

@jit
def get_post_spike_energy_jit(positive_weight,negative_weight,eligibility,betas):
        pos_w_energy = np.dot(positive_weight,eligibility)
        neg_w_energy = np.dot(negative_weight,betas)
        tot_energy = neg_w_energy - pos_w_energy
        return tot_energy

Tags: importselfinitdefas错误npres