chatgpt如何解决模型训练过程中一些未知错误:以xgboot devices_.IsEmpty为例

news2025/7/27 21:28:10

本文尝试用现在最火的chatGPT在工作中提高生产力。

具体背景如下:在训练模型过程中,为了避免资源抢占,我指定了其他的gpu来提高模型训练效率,但是发现训练的时候模型正常,但是在模型预测的时候一直报错,尝试gpu=1,2,3都报错。gpu=0,或者是不设置都不会出错。

预测的时候具体报错内容如下:

XGBoostError: b'[16:17:19] /workspace/src/common/host_device_vector.cu:249: Check failed: devices_.IsEmpty() \n\nStack trace returned 10 entries:\n[bt] (0) /root/.pyenv/versions/3.6.5/lib/python3.6/site-packages/xgboost/./lib/libxgboost.so(dmlc::StackTrace()+0x47) [0x7f87a4a842f7]\n[bt] (1) /root/.pyenv/versions/3.6.5/lib/python3.6/site-packages/xgboost/./lib/libxgboost.so(dmlc::LogMessageFatal::~LogMessageFatal()+0x18) [0x7f87a4a849a8]\n[bt] (2) /root/.pyenv/versions/3.6.5/lib/python3.6/site-packages/xgboost/./lib/libxgboost.so(xgboost::HostDeviceVectorImpl<float>::Reshard(xgboost::GPUSet)+0x73) [0x7f87a4cc6e93]\n[bt] (3) /root/.pyenv/versions/3.6.5/lib/python3.6/site-packages/xgboost/./lib/libxgboost.so(xgboost::predictor::GPUPredictor::InitOutPredictions(xgboost::MetaInfo const&, xgboost::HostDeviceVector<float>*, xgboost::gbm::GBTreeModel const&) const+0x2f) [0x7f87a4c851df]\n[bt] (4) /root/.pyenv/versions/3.6.5/lib/python3.6/site-packages/xgboost/./lib/libxgboost.so(xgboost::predictor::GPUPredictor::PredictBatch(xgboost::DMatrix*, xgboost::HostDeviceVector<float>*, xgboost::gbm::GBTreeModel const&, int, unsigned int)+0xab) [0x7f87a4c8bd4b]\n[bt] (5) /root/.pyenv/versions/3.6.5/lib/python3.6/site-packages/xgboost/./lib/libxgboost.so(xgboost::LearnerImpl::PredictRaw(xgboost::DMatrix*, xgboost::HostDeviceVector<float>*, unsigned int) const+0x33) [0x7f87a4b29723]\n[bt] (6) /root/.pyenv/versions/3.6.5/lib/python3.6/site-packages/xgboost/./lib/libxgboost.so(xgboost::LearnerImpl::Predict(xgboost::DMatrix*, bool, xgboost::HostDeviceVector<float>*, unsigned int, bool, bool, bool, bool) const+0x40) [0x7f87a4b29800]\n[bt] (7) /root/.pyenv/versions/3.6.5/lib/python3.6/site-packages/xgboost/./lib/libxgboost.so(XGBoosterPredict+0xb1) [0x7f87a4ac52b1]\n[bt] (8) /root/.pyenv/versions/3.6.5/lib/python3.6/lib-dynload/_ctypes.cpython-36m-x86_64-linux-gnu.so(ffi_call_unix64+0x4c) [0x7f89e5592b8a]\n[bt] (9) /root/.pyenv/versions/3.6.5/lib/python3.6/lib-dynload/_ctypes.cpython-36m-x86_64-linux-gnu.so(ffi_call+0x165) [0x7f89e5591cd5]\n\n'

可以定位到是predict的原因,找了一圈,发现有个类似的xgboost issue:https://github.com/dmlc/xgboost/issues/3913

没给出具体解决方案,升级版本等其他解决方式也不是本文的讨论范围。

现在有请gpt大佬登场,(我用的是蹩脚的英文暖场,其实就是场景设定,也叫Prompt)。

然后你会发现你的会话变成了,也就意味着在模型领域展开对话。

通过以上猜测应该是在预测过程中缺少device设置,ok,进一步提问

打印predict函数,发现并没有predictor参数,很明显chatgpt在一本正经的胡说八道,其中夹杂着一些真实的内容

猜测应该是在模型训练的时候就指定的,因为我用的是xgb.train模块,返回的就是booster,不是直接初始化booster方式

params = {

'objective': 'binary:logistic',

'eta': 0.02,

'max_depth': 3,

'eval_metric': 'auc',

'silent': 0,

'min_child_weight': 100,

'subsample': 0.7,

'colsample_bytree': 0.7,

'gamma': 0.1,

'lambda': 0.1,

'alpha': 10,

'nthread': 28,

'n_jobs': 28,

'tree_method': 'gpu_hist',

'booster':'gbtree',

'gpu_id':1,

'seed': random_state,

'predictor': 'cpu_predictor',

}

查看xgb官网:

https://xgboost.readthedocs.io/en/release_0.72/parameter.html

  • predictor, [default=``cpu_predictor``]

  • The type of predictor algorithm to use. Provides the same results but allows the use of GPU or CPU.

  • cpu_predictor: Multicore CPU prediction algorithm.

  • gpu_predictor: Prediction using GPU. Default when tree_method is gpu_exact or gpu_hist.

这个就让人费解了,为什么predictor, [default=``cpu_predictor``] 没有生效呢?

原来这个地方有个坑:Default when tree_method is gpu_exact or gpu_hist,我是指定的tree_method=gpu_hist,也就意味着,xgb源码从这个之后的某个位置,缺少了device的赋值操作,导致预测的时候报错,有空的话可以看下源码。

# 训练

xgb_model = xgb.train(

params=params,

dtrain=d_train,

evals=evallist,

num_boost_round=n_estimators,

early_stopping_rounds=early_stopping_rounds,

verbose_eval=0,

callbacks = [log_evaluation_with_logger(period=log_period, show_stdv=True,logger=logger)]

)

如上参数中加了 'predictor': 'cpu_predictor', 解决了问题。

是xgb好用?是chatgpt好用?还是使用的人具有分析判断的能力才能顺利的解决问题,提高生产力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/368170.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

opencv图像融合

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

代码随想录算法训练营第三十九天 | 62.不同路径,63. 不同路径 II

一、参考资料不同路径https://programmercarl.com/0062.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84.html 视频讲解&#xff1a;https://www.bilibili.com/video/BV1ve4y1x7Eu不同路径 IIhttps://programmercarl.com/0063.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84II.htmlhttps://progr…

Linux->父子进程初识和进程状态

目录 前言&#xff1a; 1. 父子进程创建 2. 进程状态 R(running)状态&#xff1a; S(sleep)状态&#xff1a; D(disk sleep)状态&#xff1a; T(stopped)状态&#xff1a; X(dead)和Z(zombie)状态&#xff1a; 孤儿进程&#xff1a; 前言&#xff1a; 本篇主要讲解关…

Python学习-----模块4.0(json字符串与json模块)

目录 1.json简介&#xff1a; 2.json对象 3.json模块 &#xff08;1&#xff09;json.dumps() 函数 &#xff08;2&#xff09;json.dumps() 函数 &#xff08;3&#xff09;json.loads() 函数 (4) json.load() 函数 4.总结&#xff1a; 1.json简介&#xff1a; SON(…

Mybatis之一级缓存二级缓存

介绍 缓存&#xff0c;就是将经常访问的数据&#xff0c;放到内存中&#xff0c;减少对数据库的访问&#xff0c;提高查询速度。Mybatis中也有缓存的概念&#xff0c;分为一级缓存和二级缓存。 一级缓存 一级缓存是Mybatis中SqlSession对象的缓存。当我们执行查询以后&#x…

C语言-结构体对齐

详细说明参考博客 (1条消息) C语言结构体对齐&#xff0c;超详细&#xff0c;超易懂_haozigegie的博客-CSDN博客 (1条消息) #pragma pack详解_OuJiang2021的博客-CSDN博客_#pragma pack 以下个人理解总结 出现结构体对齐考虑的根本原因就是&#xff1a;【数据存取执行效率】…

玫瑰花变蚊子血,自动化无痕浏览器对比测试,新贵PlayWright Vs 老牌Selenium,基于Python3.10

也许每一个男子全都有过这样的两个女人&#xff0c;至少两个。娶了红玫瑰&#xff0c;久而久之&#xff0c;红的变了墙上的一抹蚊子血&#xff0c;白的还是床前明月光&#xff1b;娶了白玫瑰&#xff0c;白的便是衣服上沾的一粒饭黏子&#xff0c;红的却是心口上一颗朱砂痣。–…

网络原理 2

文章目录1. 网络层2. 数据链路层3. DNS前言 : 上文已经 将 网络层 和 传输层 说完了&#xff0c; 下面我们来学习以下 网络层 和 数据链路层 里 相关的知识 &#xff0c; 关于 网络层 和 数据链路层 的知识 简单了解一下即可 . 1. 网络层 网络层 主要 做两件事 : 1.地址管理…

如何优雅的用golang封装配置项(Functional Options)

导读 最近要封装一个公共服务&#xff0c;涉及到配置项的地方总是找不到合理的方案&#xff0c;后来看了一下grpc在配置方面的封装&#xff0c;了解到原来是golang特有的Functional Options编程模式&#xff0c;今天分享给大家&#xff0c;希望你能用到&#xff0c;咱们直接来看…

Linux 文件权限之umask

目录一、文件默认创建权限二、文件默认创建权限掩码三、文件权限的修改本文主要讲解Linux中的文件默认创建权限相关的内容&#xff0c;涉及到的内容有&#xff1a;文件默认创建权限、文件默认创建权限掩码、文件访问权限的修改。 文件访问者共三类&#xff1a;文件所有者、文件…

忆享聚焦|人工智能、元宇宙、云计算、5G基站…近期热点资讯一览

“忆享聚焦”栏目第十二期来啦&#xff01;本栏目汇集近期互联网最新资讯&#xff0c;聚焦前沿科技&#xff0c;关注行业发展动态&#xff0c;筛选高质量讯息&#xff0c;拓宽用户视野&#xff0c;让您以最低的时间成本获取最有价值的行业资讯。目录行业资讯1.ChatGPT火爆全球 …

值传递和引用传递

什么叫 值传递&引用传递值传递&#xff1a;值传递是指在调用函数时将实际参数复制一份传递到函数中&#xff0c;这样在函数中如果对参数进行修改&#xff0c;将不会影响到实际参数。引用传递&#xff1a;引用传递是指在调用函数时将实际参数的地址传递到函数中&#xff0c;…

2023不伤人脉的全新商城分销,一劳永逸的消费分红

2023不伤人脉的全新商城分销&#xff0c;一劳永逸的消费分红 2023-02-24 11:52梦龙 2023不伤人脉的全新商城分销&#xff0c;一劳永逸的消费分红 如今是流量为王的时代&#xff0c;但是如何将流量转化为忠实客户是个难题。不再是单向的买卖关系&#xff0c;而是从对产品的关注…

CSS 盒子模型【快速掌握知识点】

目录 一、什么是盒子模型 二、边框border-color 三、边框粗细border-width 四、边框样式border-style 五、外边距margin 六、内边距padding 七、圆角边框 八、圆形 九、盒子阴影 一、什么是盒子模型 css盒子模型又称为框模型&#xff0c;盒子的最内部是元素的实际内容…

国家调控油价预测案例+源码

项目git地址&#xff1a;https://github.com/Boris-2021/Oil-price-control-forecast 使用已知的历史数据&#xff1a;日期、汇率、布伦特、WTI、阿曼原油价格&#xff0c;预测下一个调价周期中的汽油、柴油零售限价的调价价格。 一. 需求 1.1 需求说明 使用已知的历史数据&a…

Linux:makefile小结

1.初学者要掌握的基本知识 一条规则&#xff1a; 两个函数 三个变量 2.自己写的makefile&#xff0c;说明每条命令的作用: #指定源文件为*.c src $(wildcard *.c) #通过src生成中间需要的汇编文件名&#xff0c;把src中.c替换为.o obj $(patsubst %.c, %.o, $(src)) #…

编译原理【文法设计】—每个a后面至少一个b、ab个数相等,ab个数不相等的所有串

编译原理【文法设计】—设计每个a后面至少一个b、ab个数相等&#xff0c;ab个数不相等的文法为字母表Σ{a,b}Σ\{a,b\}Σ{a,b}上的下列每个语言设计一个文法 (a) 每个a后面至少有一个b的所有串 首先&#xff0c;每个a后面至少有一个b的正规式怎么写呢&#xff1f;每个a都需要…

华为OD机试题,用 Java 解【快递运输】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…

16、变量、流程控制与游标

文章目录1 变量1.1 系统变量1.1.1 系统变量分类1.1.2 查看系统变量1.2 用户变量1.2.1 用户变量分类1.2.2 会话用户变量1.2.3 局部变量1.2.4 对比会话用户变量与局部变量2 定义条件与处理程序2.1 案例分析2.2 定义条件2.3 定义处理程序2.4 案例解决3 流程控制3.1 分支结构之 IF3…

MSTP的负载均衡实验

MSTP的负载均衡实验 拓扑图 配置思路 网路互联&#xff0c;交换机和网线配置网络设备 交换机 1. 初始化配置 2. 创建vlan 3. 交换机连接PC 设置模式为access&#xff0c; 并将端口加入对应vlan 交换机连接交换机端口 设置模式为trunk 并允许所有vlan通过 交换机连接路由器端口…