Задачи Celery и многопроцессорность TorchPython

Программы на Python
Ответить
Anonymous
 Задачи Celery и многопроцессорность Torch

Сообщение Anonymous »

У меня есть скрипт с нейронными сетями, вот пример инициализации
import torch
from torchvision.models.detection import fasterrcnn_resnet50_fpn
from torchvision.models.detection import FasterRCNN_ResNet50_FPN_Weights

class Detector():
....
def _initialize_detector(self):
"""Initialize object detection model."""
model = fasterrcnn_resnet50_fpn(weights=FasterRCNN_ResNet50_FPN_Weights.DEFAULT)
model.to(device).eval()
return model

он ​​работает нормально, но когда я создаю задачу сельдерея
@celery_app.task
def video_detect_task(
video_file: str,
bvh_filename: str,
):
"""Celery task for video_detect_task module.

:param video_path: path to input video file
:param bvh_filename: path to save bvh file
"""
task_id = current_task.request.id
try:
model = Detector.load(Config())
frames_num = get_video_duration(video_file)
logger.info('frames: ',extra = {'number ':frames_num})
skeleton_name, _ = os.path.splitext(os.path.basename(bvh_filename))
skeleton_full_path = os.path.dirname(bvh_filename) + "/" + skeleton_name
save_character_path = ".".join([skeleton_full_path, 'bvh'])

status = model.process(
video_file=video_file,
bvh_file_name=save_character_path
)

тогда код не работает, он даже не может загрузить модель по журналам. Я вижу это:
22.5%-12-22 00:10:27,496: WARNING/ForkPoolWorker-2]
22.5%-12-22 00:10:27,496: WARNING/ForkPoolWorker-2]
22.6%-12-22 00:10:27,497: WARNING/ForkPoolWorker-2]
22.7%-12-22 00:10:27,497: WARNING/ForkPoolWorker-2]
22.8%-12-22 00:10:27,497: WARNING/ForkPoolWorker-2]

Спасибо!
НО когда я это сделаю
torch.set_num_threads(1)

Запуск задачи сельдерея тоже работает нормально, только долго. Все вычисления выполняются на процессоре.
Я думаю, что это какая-то проблема с многопроцессорностью Celery и Troech
Я запускаю celery с помощью этой команды
command: ["celery", "-A", "video_detect_task.tasks.celery_app.celery_app", "worker", "-Q", "video_detect_task_queue", "--loglevel=info"]


Подробнее здесь: https://stackoverflow.com/questions/793 ... processing
Ответить

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

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

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

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

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