我正在尝试在Google Colaboratory上将XGBoost与GPU一起使用。这是我的笔记本:
import numpy as np
import os
import xgboost as xgb
train_X = np.random.rand(100,5)
train_Y = np.random.choice(2, 100)
test_X = np.random.rand(10,5)
test_Y = np.random.choice(2, 10)
xg_train = xgb.DMatrix(train_X, label=train_Y)
xg_test = xgb.DMatrix(test_X, label=test_Y)
param = {}
# use softmax multi-class classification
param['objective'] = 'multi:softmax'
# scale weight of positive examples
param['eta'] = 0.1
param['max_depth'] = 6
param['silent'] = 1
param['nthread'] = 4
param['num_class'] = 2
param['gpu_id'] = 0
param['max_bin'] = 16
param['tree_method'] = 'gpu_hist'
# watchlist allows us to monitor the evaluation result on all data in the list
watchlist = [(xg_train, 'train'), (xg_test, 'test')]
num_round = 5
bst = xgb.train(param, xg_train, num_round, watchlist)
当我运行最后一行时:
bst = xgb.train(param, xg_train, num_round, watchlist)
我收到“运行时终止,自动重新启动”
任何想法如何解决?
答案 0 :(得分:3)
目前看起来 !pip install -U xgboost
可以正常工作 - 安装在 colab 上的 xgboost 版本似乎很旧(0.9.0 或其他版本)。 xgboost docs 也有一个指向 xgboost 的 nightly builds 的链接,它可以像 !pip install https://s3-us-west-2.amazonaws.com/xgboost-nightly-builds/xgboost-1.4.0_SNAPSHOT%2B4224c08cacceba3f83f90e387c07aa6205a83bfa-py3-none-manylinux2010_x86_64.whl
一样从 colab jupyter notebook cell 安装。由于看起来他们的轮子列表有时会发生变化,因此如果您想使用它们,您可能需要搜索诸如“xgboost docs Wheels”之类的内容来查找轮子的最新位置。
答案 1 :(得分:2)
据我所知,我们无法在Google Colab上导入具有GPU支持的XGBoost,您是否检查过?
答案 2 :(得分:2)
我已经在支持GPU的Colab上运行XGBoost。从here下载Linux版本,然后
!pip uninstall xgboost
!pip install xgboost-0.81-py2.py3-none-manylinux1_x86_64.whl
...为我工作。
答案 3 :(得分:1)
Matt Wehman的答案对我有用。下载后,我对如何将文件xgboost-0.81-py2.py3-none-manylinux1_x86_64.whl实际放置在Colab中存有疑问。
步骤是:
将文件上传到Colab服务器。您可以直接从计算机上完成此操作,也可以将其保存到Google云端硬盘,然后从云端硬盘导入Colab。每次启动Colab会话(一段时间不使用后都会重置)时,您将需要上传文件,并且从云端硬盘加载的速度要比从PC加载速度快得多。
要使用您的PC上传:
from google.colab import files
files.upload()
要从Google云端硬盘上传,我需要安装并使用pyDrive。 here
一旦XGBoost文件位于Colab本地目录中,您最终就可以运行代码
!pip uninstall xgboost
!pip install xgboost-0.81-py2.py3-none-manylinux1_x86_64.whl