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

时间:2019-05-31 03:57:03

标签: python numpy class numba

我一直在尝试优化类中的某些函数,但是当我这样做时,遇到了“无法推断全局值%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

0 个答案:

没有答案