Я использую 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
Программы на Python
1734547484
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)
Подробнее здесь: [url]https://stackoverflow.com/questions/79292115/numba-neat-numpy-error-runtimeerror-call-parameter-type-does-not-match-funct[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия