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