Я пытаюсь построить простую модель XGBRegressor. Он работает нормально в течение нескольких секунд, а затем ядро умирает без каких-либо сообщений об ошибках. В терминале также нет сообщений об ошибках при запуске с флагом отладки.
Я уже пробовал следующие вещи:
- Проблема возникает в блокноте Jupyter, а также при запуске того же кода в виде простого скрипта .py
- Это не кажется специфичным для моей среды, так как я могу последовательно воспроизвести проблему даже на ядрах Kaggle с графическим процессором
- Тот же код работает нормально, если я выключаю графический процессор с флагом 'tree_type'
- Я заглянул в окно просмотра событий для некоторых кодов ошибок и обнаружил, что это не дает особого понимания:
Поле ошибки 1757117266428035048, тип 5 Имя события: BEX64 Ответ:
Нет в наличии Идентификатор кабины: 0
Подпись проблемы: P1: python.exe P2: 3.7.3150.1013 P3: 5c9bf5b3 P4:
ucrtbase.dll P5: 10.0.17763.404 P6: 490b0aeb P7: 000000000006e91e P8:
c0000409 P9: 0000000000000007 P10:
import os os.environ['KMP_DUPLICATE_LIB_OK']='True' from xgboost import XGBRegressor
best_params = {'learning_rate': 0.16, 'n_estimators': 100,
'max_depth': 6, 'min_child_weight': 7,
'subsample': 0.9, 'colsample_bytree': 0.7, 'nthread': -1,
'scale_pos_weight': 1, 'random_state': 42,
#next parameters are used to enable gpu for fasting fitting
'tree_method': 'gpu_hist', 'max_bin': 16,
'gpu_id': 0
}
xgb_model = XGBRegressor(
**best_params)
xgb_model.fit(
cur_train_x,
cur_train_y,
eval_metric="rmse",
eval_set=[(cur_train_x, cur_train_y)],
verbose=True,
early_stopping_rounds = 10)
Мой графический процессор - 950 GTX с выделенной памятью всего 2 ГБ. Диспетчер задач Windows показывает еще 8 ГБ общей памяти GPU. Это происходит сбой, поскольку набор данных не помещается полностью в выделенную память графического процессора?
Буду очень признателен за любую информацию или указания относительно того, как я могу получить полезное сообщение об ошибке или решение.