Первый метод выполняет вызов API, чтобы получить метаданные изображения из внешней службы.
Второй метод использует объект класса, который выполняет определенные сложные операции, такие как чтение изображения с использованием библиотеки opencv, а также выполнение действий по классификации изображений с использованием модель sklearn
Первая функция выглядит так (как показано ниже) -->
Код: Выделить всё
def function_1():
##perform long running api call
Код: Выделить всё
def function_2(image_proc_obj):
predictions = image_proc_obj.predict()
Код: Выделить всё
image_proc_obj = ImageProcessingClass()
p1 = multiprocessing.Process(target=function_1)
p2 = multiprocessing.Process(target=function_2, args=(image_proc_obj,))
I я передаю image_proc_obj во второй функции, потому что вызов конструктора этого класса загружает файл модели, а я не хочу, чтобы это происходило при каждом вызове функции.
Я также пытался создать класс таким образом, создав подкласс multiprocess.Process
Код: Выделить всё
class ImageClassifier(multiprocess.Process):
def __init__(self, process_obj):
super(ImageClassifier,self).__init__()
self.proc_obj = process_obj
def run(self, image):
predictions = self.proc_obj.predict(image)
Код: Выделить всё
image_proc_obj = ImageProcessingClass()
classifier = ImageClassifier(name="classifier process", process_obj=image_proc_obj)
classifier.start()
classifier.join()
Жду помощи в этом вопросе
Подробнее здесь: https://stackoverflow.com/questions/706 ... ss-process
Мобильная версия