Как я могу уменьшить вывод модели глубокого обучения внутри сервера Django

У меня есть модель зрения Pytorch, которая занимает <4 секунды для выполнения вывода на изображении на CPU при вызове как отдельной программы на python или вызове из Django как подпроцесса, но когда тот же метод вывода вызывается с сервера Django внутри методов view.py, время выполнения вывода составляет >50 секунд. Как я могу решить эту проблему.

Попробовал следующее внутри представления Django

import sys
import subprocess
sys.path.append('/home/ubuntu/project/driver/')
def process_pool(file_path):
  return main.process(file_path)
def predict(request):
  file_path = get_path(request)
  cmd = '/home/ubuntu/project/driver/main.py'
  print(subprocess.check_output(['python',cmd])) # Method 1  Using python subprocess - Takes 4 seconds to infer the output
  pr = multiprocessing.Pool()
  result = pr.map(process_pool,[file_path]) # Method 2 Using multiprocessing - Takes more than 50 seconds to infer the output
  process_pool(file_path) # Method 3 - Without multiprocessing - Takes more than 50 sec to infer the output

Проект main.py содержит

def process(file_path):
   """
   run deep learning code
   """
   return predict(file_path)
if __name__ == '__main__':
   process('/home/ubuntu/a.jpg')
Вернуться на верх