Проблемы с производительностью машинного обучения с использованием Docker и FlaskPython

Программы на Python
Anonymous
Проблемы с производительностью машинного обучения с использованием Docker и Flask

Сообщение Anonymous »

У меня есть код Python3, примененный к файлу JSON, с некоторыми нейронными сетями и случайными лесами в кодах. Я поместил свои коды в контейнер Docker, но заметил, что эти задачи ML выполняются без Docker быстрее, чем с Docker. В Docker я использую Flask для загрузки файла JSON и запуска кодов. Конечно, я использовал идентичные версии модулей Python локально и внутри Docker, а именно:
  • theano 0.8.2
  • keras 2.0.5
  • scikit-learn 0.19.0
Также , Flask составляет
  • 0,12
При во-первых, я думал, что theano может использовать разные ресурсы с VS без Docker, но он работает как с одним процессором, так и с одним потоком. Он также не использует мой графический процессор. Я понял, что это, вероятно, не теано, когда понял, что мой случайный лес также работает медленнее в Docker. Вот несколько тестов, которые я выполнил (я сделал несколько тестов для каждого, сообщаю средние значения времени, поскольку они были стабильными)

Без Docker, без Flask:< /p>
  • Задача 1 (код theano + keras): 1,0 с
  • Задача 2 (код theano + keras) ) : 0,7 с.
  • Задание 3 (код scikit-learn): 0,25 с.
Docker (cpus=1) + Flask (режим отладки = True):
  • T1: 6,5 с
  • T2: 2,2 с
  • T3: 0,58 с
Docker (cpus=2) + Flask (режим отладки = True):
  • T1: 5,5 с
  • T2: 1,4 с< /li>
    T3: 0,55 с
Docker (cpus=2) + Flask (режим отладки = False) ):
  • T1: 4,5 с
  • T2: 1,2 с
  • T3: 0,5 с
Docker (cpus=2) (без Flask, просто вызывается файл json, как это делается локально) :
  • T1: 2,8 с
  • T2: 1,1 с
  • T3: 0,5 с
Flask (режим отладки = True) (без Docker-контейнера):
  • T1: 2,8 с
  • T2: 1,5 с
    T3: 0,2 с< /li>
Я думаю, что процессор=1 против процессора=2 просто выделяет больше одного процессора для кодов, а второй процессор просто взять на себя какую-то другую работу. Очевидно, что происходит некоторое сокращение времени, когда Flask ИЛИ Docker не используются, но, тем не менее, я не могу достичь скорости, которую я могу иметь без Docker И без Flask. Кто-нибудь догадается, почему это происходит?

Это минимальный фрагмент кода того, как мы используем Flask для запуска приложения

Код: Выделить всё

api = Flask(__name__)
pipeline = Pipeline()  # private class calling multiple tasks

@api.route("/", methods=['POST'])
def entry():
data = request.get_json(force=True)
data = pipeline.process(data)
# This calls the different tasks which are timed

if __name__ == "__main__":
api.run(debug=True, host='0.0.0.0', threaded=False)
PS. Простите, если в вопросе чего-то не хватает, это мой первый вопрос на StackOverflow

Подробнее здесь: https://stackoverflow.com/questions/504 ... -and-flask

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