Я использую numba с аккуратным Python и numpy.
Почему-то я получаю сообщение об ошибке: RuntimeError: тип параметра вызова не соответствует сигнатуре функции!
Раньше это работало хорошо. Я включил соответствующий код ниже. Функцияcult_forces — это функция класса, который находится в верхней части кода.
Цикл for в третьем фрагменте кода находится в другом файле, где происходит оценка генома.
Сообщение об ошибке очень длинное, но в нем подчеркивается вызов:
cell.calculate_forces(cell.Fmax*Fext)
Здесь должна быть ошибка. Я думаю, это связано с взаимодействием numpy и numba.
Мне действительно нужна помощь с этим. Надеюсь, кто-нибудь сможет пролить свет.
spec = [
('number_of_beads', int32), # a simple scalar field
('number_of_dimensions', int32), # a simple scalar field
('bead_radius', float32[:]), # a simple scalar field
('eta', int32), # a simple scalar field
('L0', float32), # a simple scalar field
('Lmin1', float32), # a simple scalar field
('Lmax1', float32), # a simple scalar field
('Lmin2', float32), # a simple scalar field
('Lmax2', float32), # a simple scalar field
('L', float32[:,:]), # an array field
('V', float32[:,:]), # an array field
('F0', float32), # a simple scalar field
('Fmax', float32), # a simple scalar field
('t0', float32), # a simple scalar field
('ts', float32), # a simple scalar field
('k', float32), # a simple scalar field
('nint', int32), # a simple scalar field
('teuler', float32), # a simple scalar field
('tint', float32),
('Lambda', float32)] # a simple scalar field
@jitclass(spec)
class Cell:
def __init__(self, eta, current_nint, Lcilia, Lmax2Multiplier, Rb, Rc):
self.number_of_beads=3
self.number_of_dimensions=2
self.bead_radius=np.array([Rb, Rc, Rc],dtype=float32)
self.eta=eta
self.L0=10
def calculate_forces(self, Fext):
restoring_forces=self.calculate_restoring_forces()
Ftot=np.zeros((self.number_of_beads,self.number_of_beads,self.number_of_dimensions))
for i in range(self.number_of_beads):
for j in range(self.number_of_beads):
Ftot[i,j,:]=(Fext[i,j]+restoring_forces[i,j])*self.calculate_normalized_positions()[i,j,:]
return Ftot, restoring_forces
for i in range(N):
Fext=np.zeros((cell.number_of_beads,cell.number_of_beads),dtype=np.float32)
.
.
.
L=np.array([L12,L13,L23])
if i%cell.nint==0:
f = net.activate(L/cell.L0)
Fext[0,1]=f[0]
.
.
.
Ftot, restoring_forces = cell.calculate_forces(cell.Fmax*Fext)
Подробнее здесь: https://stackoverflow.com/questions/792 ... atch-funct
Ошибка Numba, Neat, Numpy: RuntimeError: тип параметра вызова не соответствует сигнатуре функции ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу из Jitted-функции Numba вызвать другую Jit-функцию Numba с указателем?
Anonymous » » в форуме Python - 0 Ответы
- 34 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как я могу из Jitted-функции Numba вызвать другую Jit-функцию Numba с указателем?
Anonymous » » в форуме Python - 0 Ответы
- 39 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как устранить ошибку «Нет такой функции активации: сумма» в Python NEAT?
Anonymous » » в форуме Python - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-