Код: Выделить всё
from PySide6.QtCore import QObject, Signal, Slot
import numpy as np
from keras.models import load_model
import keras
from profilehooks import profile
class Predictor(QObject):
detected = Signal()
def __init__(self, parent=None):
super().__init__(parent)
self.__model = load_model("keras/model.keras")
@profile(stdout=False, filename='baseline.prof')
@Slot(np.ndarray, np.ndarray)
def accept_new_sample(self, sample):
# Sample is just one sample, not batch
pred = self.__model(sample, training=False).numpy()[0,0]
if pred > 0.5:
self.detected.emit()
ncalls
общее время
percall
время выполнения
первызов
имя файла:lineno(функция)
< /tr>
120
0,14550,001212
8,362
0,06968
Predictor.py:17(accept_new_sample)
1680/120
0,007983
< td>6.652e-05
8.216
0.06846
traceback_utils.py:110(error_handler)< /td>
840/120
0.03576
0,000298
8,212
0,06843
layer.py:777(__call__)
840/120
0.006004
5.004e- 05
8.006
0.06671
operation.py:31(__call__)
Керас не сообщает на стандартный вывод или стандартный поток ошибок, что что-то пошло не так, поэтому я нет никаких предположений о том, почему он вызывает error_handler.
Модель построена следующим образом:
Код: Выделить всё
model = Sequential()
model.add(Input(shape=(10000, 1)))
model.add(Conv1D(filters=10, kernel_size=1000))
model.add(Conv1D(filters=10, kernel_size=300))
model.add(Flatten())
model.add(Dense(100, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
Подробнее здесь: https://stackoverflow.com/questions/791 ... ndler-call