У меня есть ЦП с 8 ядрами / 16 потоками, и я использую cross_val_score с XGBRegressor, оба с njobs = 6, но на самом деле они используют только 1 ядро (в htop-Console только 1 ЦП имеет нагрузку 100%, остальные - 0%).
for i,n_est in enumerate(range(20,105,5)):
for j,m_dep in enumerate(range(3,10,2)):
for k,l_rate in enumerate([0.0001,0.001,0.01,0.1]):
sc = cross_val_score(estimator=xgb.XGBRegressor(njobs=6,
max_depth=m_dep,
learning_rate=l_rate,
n_estimators=n_est),
X=X_train,
y=y_train,
cv=5,
scoring='r2',
n_jobs=6)
res[i,j,k] = np.mean(sc)
l += 1
print(l,end = '')
Что с этим не так? Кросс-балльная оценка должна быть легко распараллелена, поскольку она запускает 5 моделей на 5 независимых наборах данных?