У меня есть некоторые функции, такие как приведенный ниже пример. Цель состоит в том, чтобы передать первую функцию в качестве аргумента второй функции и использовать numba для ее ускорения. Но если я поверну cache=True
для второй функции, появится сообщение об ошибке:
TypeError: can't pickle weakref objects
Моя версия numba 0.49.0
Есть ли решение / альтернативное решение этой проблемы, чтобы я мог кэшировать компиляцию?
@njit(cache=True)
def func_test(t1, t2):
return np.corrcoef(np.argsort(np.argsort(t1)), np.argsort(np.argsort(t2)))
@njit(cache=True)
def test_func_input2(func_1):
t = list(range(500))
t2 = list(range(500))
for i in range(1000):
t.pop(0)
t2.pop(0)
t.append(i)
t2.append(i)
a = np.array(t)
b = np.array(t2)
x = func_1(a, b)
return x
if __name__ == '__main__':
import numpy as np
test_func_input2(func_test)