Я использую модель нейронной сети, которая должна запускаться в функции обратного вызова каждый раз асинхронно при запуске события pubsub.Я загрузил модель как глобальную переменную во время инициализации основной программы, чтобы она могла обращаться к любой функции и избегать загрузки модели каждый раз в самой функции обратного вызова.Типичный код может быть:
global cv_model
cv_model = load_model('my_model.h5')
def callback():
prediction = cv_model.predict(image)
Этот метод отлично работает на моей локальной машине.Но когда я пытался перезвонить с помощью pubsub, я получаю некоторые ошибки.После некоторого поиска я понял, что «pubsub - это дочерний процесс основной программы, и мы не можем делить глобальные переменные между процессами».Я попробовал подход с вложенными функциями и подход ООП, но ни один из них не сработал.
Как можно избежать загрузки модели каждый раз, когда вызывается функция обратного вызова?Какие-нибудь альтернативные способы разрешить этот конфликт?
Спасибо за предложения !!