Ошибка Numba, Neat, Numpy: RuntimeError: тип параметра вызова не соответствует сигнатуре функцииPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка Numba, Neat, Numpy: RuntimeError: тип параметра вызова не соответствует сигнатуре функции

Сообщение Anonymous »

Я использую 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»