У меня сейчас проблема с методом GridSearchCV из библиотеки обучения scikit.Я боролся с этим уже неделю, и пока не могу решить это.Он продолжает зависать при вызове, чтобы оптимизировать линейный SVM по параметру C.Странная вещь, это происходит не только при назначении n_jobs = -1, но и с 1 n_jobs, поэтому я не думаю, что многопроцессорность - это особая проблема.Кроме того, он отлично работает, когда я передаю ему массив формы X (2448, 1024), но полностью замирает, когда я передаю ему массив формы (5202, 1024).
Данные I 'm, наполняя его: float64 массивами разных форм от (2448, 1024), который прекрасно работает, до (7956, 1024)
Вещи, которые я уже пробовал:
Я не могу запустить следующий код, как предложено в https://github.com/dmlc/xgboost/issues/2163#issuecomment-314524070, так как я запускаю свой кодв Windows.
from multiprocessing import pool, get_context
forkserver = get_context('forkserver')
p = forkserver.Pool()
На заметку: я подгоняю его к функции f1, а не к точности по умолчанию, что может быть проблемой, как видно из следующих потоков:
Вот некоторые фрагменты кода:
from sklearn.externals.joblib import parallel_backend
scaler = StandardScaler()
X = scaler.fit_transform(fv_train.data) #traininig samples
y = fv_train.axes[0] #class labels
X_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size = 0.1, train_size = 0.9)
clf = SVC(kernel = 'linear', probability=True)
scoring = ['f1']
C_range = np.linspace(start=1000, stop=10000, num=4, endpoint = True)
param_grid = dict(C = C_range)
grid = GridSearchCV(clf, param_grid = param_grid, scoring = scoring, cv = 3,
refit = 'f1', verbose = 42, n_jobs=-1, pre_dispatch=3)
with parallel_backend('threading'):
grid.fit(X_train, y_train)