Исключение в потоке QueueManagerThread - scikit-learn - PullRequest
0 голосов
/ 27 февраля 2019

Когда я устанавливаю n_jobs = -1 , я получаю ошибку, и если я устанавливаю n_jobs равным большое значение (n_jobs = 100), но если установлено меньшее значение (например, n_jobs = 32)работает нормально.Я пробовал переустановить пакеты scikit-learn и joblib, но безрезультатно.Кроме того, он (n_jobs = -1) отлично работает ранее, но внезапно работает неправильно.

from sklearn import datasets
from sklearn.model_selection import cross_validate, StratifiedKFold
from sklearn.linear_model import RidgeClassifier

iris = datasets.load_iris()
iris_X = iris.data
iris_y = iris.target

skf = StratifiedKFold(n_splits=5, random_state=0, shuffle=True)
scoring = {'accuracy': 'accuracy'}

model_ridge = RidgeClassifier(random_state=0)
scores = cross_validate(estimator=model_ridge, 
                            X=iris_X,
                            y=iris_y,
                            scoring=scoring,
                            cv=skf.split(iris_X, iris_y),
                            n_jobs=-1)

Исключение в потоке QueueManagerThread:

Traceback (последний вызов был последним): файл«C: \ ProgramData \ Anaconda3 \ envs \ py36 \ lib \ threading.py», строка 916, в _bootstrap_inner self.run ()

Файл «C: \ ProgramData \ Anaconda3 \ envs \ py36 \ lib \»threading.py ", строка 864, в запуске self._target (* self._args, ** self._kwargs)

Файл" C: \ ProgramData \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ "sklearn \ externals \ joblib \ externals \ loky \ process_executor.py ", строка 615, в _queue_management_worker ready = wait (читатели + worker_sentinels)

Файл" C: \ ProgramData \ Anaconda3 \ envs \ py36 \ lib \ multiprocessing "\ connection.py ", строка 859, в ожидании ready_handles = _exhaustive_wait (waithandle_to_obj.keys (), timeout)

Файл" C: \ ProgramData \ Anaconda3 \ envs \ py36 \ lib \ multiprocessing \ connection.py "строка 791 в _exhaustive_wait res = _winapi.WaitForMultipleObjects (L, False, timeout)

ValueError: neредактировал не более 63 ручек, получил последовательность длиной 65

1 Ответ

0 голосов
/ 24 июля 2019

Звучит так, как будто вы используете много ядер!Установите n_jobs = 60, и это должно работать.Подробнее здесь https://github.com/psf/black/issues/564

...