Python xgboost: ядро ​​умерло - PullRequest
0 голосов
/ 04 июля 2018

Ядро Python моего ноутбука Jupyter продолжает умирать. Я успешно выполнил весь следующий код раньше. В настоящее время есть проблемы. Сначала я покажу вам фрагмент кода, который я могу успешно запустить:

import xgboost as xgb
xgtrain = xgb.DMatrix(data = X_train_sub.values, label = Y_train.values)       # create dense matrix of training values
xgtest  = xgb.DMatrix(data = X_test_sub.values,  label = Y_test.values)        # create dense matrix of test values
param   = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logistic'}  # specify parameters via map

где мои данные маленькие:

X_train_imp_sub.shape
(1365, 18)

однако ядро ​​моего ноутбука продолжает умирать на этом куске:

xgmodel = xgb.train(param,  xgtrain, num_boost_round = 2)                      # train the model
predictions = xgmodel.predict(xgtest)                                          # make prediction
from sklearn.metrics import accuracy_score                                   
accuracy = accuracy_score(y_true = Y_test, 
                          y_pred = predictions.round(), 
                          normalize = True) # If False, return # of correctly classified samples. Else, return fraction of correctly classified samples
print("Accuracy: %.2f%%" % (accuracy * 100.0))

Когда я разбиваю его на части и запускаю построчно, ядро ​​появляется на линии xgb.train().

Данные небольшие. Параметры xgboost должны быть консервативными (то есть num_boost_round = 2, max_depth:2, eta:1 и не дорогими в вычислительном отношении. Не уверены, что происходит.

Как уже говорилось ранее, мне уже удалось успешно запустить оба блока. Я выключил все остальные ноутбуки и перезагрузил компьютер без удачи. Я запускаю jupyter через Anaconda Navigator на MacBook Pro.

- ОБНОВЛЕНИЕ - Когда я выбирал ячейку под моей тренировочной ячейкой xgboost, а затем выбирал: Cells -> Run All Above, ядро ​​всегда погибало на тренировочной линии xgboost. Это происходило ~ 40-50 раз подряд. Я пробовал это много раз, потому что я вносил изменения в код, думая, что позже разрешу проблему xgboost.

Позже я запускал одни и те же ячейки один за другим, и xgboost завершал нормально в первый раз, когда я пробовал это, и каждый раз после. Я не знаю, почему это происходит, но было бы неплохо узнать.

1 Ответ

0 голосов
/ 08 августа 2018

У меня была похожая проблема. Это исправило это для меня.

import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'
from xgboost import XGBClassifier
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...