我试图创建一个包含int列表的jitclass函数
我尝试了各种场景(如下面的示例所示),但总有一个错误: ValueError:无法键入空列表
问题是有时我需要int列表为空,这会导致错误
import numpy as np
from numba import jitclass,jit,njit,typeof
from numba import boolean, int32, float64,uint8
# spec1 = [
# ('list_int' ,int32[:]),
# ('list_float' ,float64[:]),]
# spec1 = [
# ('list_int' ,typeof([[],[1,2],[1,2,3,4,5,],[]])),
# ('list_float' ,typeof([[3.2],[],[3.3,6.8,5.],[]]))]
spec1 = [
('list_int' ,typeof(tuple([[],[1,2],[1,2,3,4,5,],[]]))),
('list_float' ,typeof(tuple([[3.2],[],[3.3,6.8,5.],[]])))]
@jitclass(spec1)
class example():
def __init__(self, list_int, list_float):
self.list_int = list_int
self.list_float = list_float
list_intA = [[],[1,2],[1,2,3,4,5,],[]]
list_floatB = [[3.2],[],[3.3,6.8,5.],[]]
# my_ex = example( list_intA ,
# list_floatB )
my_ex = example( tuple([np.array(l, dtype=np.int32) for l in list_intA]) ,
tuple([np.array(l, dtype=np.float64) for l in list_floatB]) )
# my_ex = example(np.array([np.array(l, dtype=np.int32) for l in list_intA]),
# np.array([np.array(l, dtype=np.int32) for l in list_floatB]))
我最终找到了一个解决办法。传递给JIT类的类型不正确
相关问题 更多 >
编程相关推荐