Как ускорить процесс подгонки GMM к scikit-learn в Docker? - PullRequest
0 голосов
/ 13 марта 2020

У меня есть вопрос о том, как повысить производительность при выполнении обработки GMM с помощью scikit-learn в Docker.

Я хочу, чтобы процесс подгонки GMM в Docker был таким же быстрым, как и запуск на host.

Подробности

  • Я установил scikit-learn (== 0.22.2.post1) в python: 3.8.2-buster Docker image.
  • Я применил GMM к вектору Word2Ve c (см. Код ниже)
  • Подгонка GMM очень медленная, если эта программа работает в Docker (6〜8мин)
  • Если эта программа выполняется на хосте, процесс подгонки GMM завершается в течение 10 секунд.
from gensim.models.word2vec import Word2Vec
from sklearn.mixture import GaussianMixture
...
...
    # Loar Word2Vec Model
    w2v_model = Word2Vec.load('./w2v.model')
    # Vectors of Word2Vec Model
    w2v_vectors = w2v_model.wv.vectors

    # Fit Gaussian Mixture Model
    gmm = GaussianMixture(n_components=N_COMPONENTS, covariance_type='tied', max_iter=50)
    gmm.fit(w2v_vectors) <- very slow!!!!!

Среда

  • Docker контейнер запущен на Docker для Ma c.
  • Ресурсы Расширенные настройки Docker для Mac
    • Процессоры: 8
    • Память: 10,00 ГБ
    • Обмен: 4 ГБ

Тревожная точка

Когда GMM запускался на хосте, монитор активности на Ma c приводил к загрузке ЦП 600%, но при работе на Docker, он достиг максимума в 100% (подтверждаю d со статистикой docker). Поэтому по какой-то причине многопроцессорность может не работать внутри контейнера.

...