XGBoost上GPU支持上的“内存不足”错误

时间:2018-05-26 14:20:11

标签: python machine-learning xgboost kaggle

[20:44:18] Allocated 994MB on [0] GeForce MX150, 670MB remaining.
[20:44:19] Allocated 151MB on [0] GeForce MX150, 517MB remaining.
[20:44:19] Allocated 37MB on [0] GeForce MX150, 475MB remaining.
Traceback (most recent call last):
  File "tune_hyper_para.py", line 86, in <module>
    seed=42, metrics=['auc'], verbose_eval=True)
  File "C:\Users\chang\Anaconda3\envs\xgb-gpu\lib\site-packages\xgboost-0.71-py3.6.egg\xgboost\training.py", line 406, in cv
    fold.update(i, obj)
  File "C:\Users\chang\Anaconda3\envs\xgb-gpu\lib\site-packages\xgboost-0.71-py3.6.egg\xgboost\training.py", line 218, in update
    self.bst.update(self.dtrain, iteration, fobj)
  File "C:\Users\chang\Anaconda3\envs\xgb-gpu\lib\site-packages\xgboost-0.71-py3.6.egg\xgboost\core.py", line 894, in update
    dtrain.handle))
  File "C:\Users\chang\Anaconda3\envs\xgb-gpu\lib\site-packages\xgboost-0.71-py3.6.egg\xgboost\core.py", line 130, in _check_call
    raise XGBoostError(_LIB.XGBGetLastError())
xgboost.core.XGBoostError: b'[20:44:22] C:/dev/libs/xgboost/src/tree/updater_gpu.cu:537: GPU plugin exception: c:\\dev\\libs\\xgboost\\src\\tree\\../common/device_helpers.cuh(467): out of memory\n'

上面列出了错误代码。 我正在参加Kaggle Inclass竞赛,并尝试在XGBoost上使用GPU支持来加速调整超参数的过程。

我在pandas中使用read_csv来加载73000 * 300数值的数据集,大约150MB,但我很困惑,为什么会出现“内存不足”错误。 我试图将数据集切片得更小,但只有当新数据集小于旧数据集的1/5时,代码才能工作。

是否有一些配置要完成?我使用预编译的二进制文件安装GPU支持 Download XGBoost Windows x64 Binaries and Executables。它有关系吗? 或者我的GPU设备太差了?但是我发现,当代码运行时,不到一半的GPU内存会被任务管理器占用,所以我想也许有一些方法可以充分利用我的GPU设备?

如果这是我的设备的问题,为什么这个程序占用了这么多的内存,只能处理大约30mb的数据集?

0 个答案:

没有答案