Модель Keras работает медленно, предположительно из-за вызова error_handler.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Модель Keras работает медленно, предположительно из-за вызова error_handler.

Сообщение Anonymous »

Я создал и обучил модель глубокого обучения и теперь хочу внедрить ее в реальное приложение. Я сделал это так:

Код: Выделить всё

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()
Когда я профилировал этот код, я обнаружил, что модель так часто вызывает трассировку_utils.py:110(error_handler), я думаю, что это замедляет вычисление модели. Мы видим, что один вызов Accept_new_sample занимает 0,069 мс, но образцы принимаются быстрее:



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'))
Как уменьшить количество вызовов error_handler? Или есть другие способы улучшить производительность модели?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ndler-call
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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