stackoverflow.com/q/47561759/3666197

редложено вэтот ответЯ пытался использовать joblib для параллельного обучения нескольких моделей scikit-learn.

import joblib
import numpy
from sklearn import tree, linear_model

classifierParams = {
                "Decision Tree": (tree.DecisionTreeClassifier, {}),''
                "Logistic Regression" : (linear_model.LogisticRegression, {})
}


XTrain = numpy.array([[1,2,3],[4,5,6]])
yTrain = numpy.array([0, 1])

def trainModel(name, clazz, params, XTrain, yTrain):
    print("training ", name)
    model = clazz(**params)
    model.fit(XTrain, yTrain)
    return model


joblib.Parallel(n_jobs=4)(joblib.delayed(trainModel)(name, clazz, params, XTrain, yTrain) for (name, (clazz, params)) in classifierParams.items())

Однако вызов последней строки занимает много времени без использования процессора, фактически он просто блокируется и никогда ничего не возвращает. В чем моя ошибка?

Тест с очень небольшим количеством данных вXTrain предполагает, что копирование массива numpy между несколькими процессами не является причиной задержки.

Ответы на вопрос(1)

Ваш ответ на вопрос