xgboost源码调试
2017.01.09 • 架构设计 • 阅读量:次
作为一个VIMer,看到了一些基于VS或者Eclipse搭建的xgboost源码调试环境(其实并不多)。为了调试xgboost再去安装一个VS,似乎没有必要(主要是因为我的mac只剩下3G存储空间)。下面就是自己探索后的详细步骤。
第一步:
在Github中下载xgboost的源代码。
第二步:
修改根目录下的Makefile文件。找到Makefile文件中的这行代码:
export CFLAGS= -std=c++0x -Wall -Wno-unknown-pragmas -Iinclude $(ADD_CFLAGS) $(PLUGIN_CFLAGS)
添加参数‘-g’:
export CFLAGS= -std=c++0x -g -Wall -Wno-unknown-pragmas -Iinclude $(ADD_CFLAGS) $(PLUGIN_CFLAGS)
这个步骤的目的是编译时得到可调式版本,默认安装的时候,没有该参数(如果喜欢汇编语言,此步可以略过)。
第三步:
运行根目录下脚本文件进行安装。
./build.sh
第四步:
在该步中,给出一个调试案例。进入demo目录中的binary_classification例子中,调试一个二分类的例子。
首先要修改mushroom.conf中的训练集和测试集的文件路径。这个是由于repo文档更新不及时所致。
开始调试:
lldb ../../xgboost mushroom.conf max_depth=9
main函数入口处打断点:
b main
运行:
r
进入函数:
s
下一步:
n
接下来就可以一步步进行跟踪代码逻辑了。
继续阅读
-
追忆系统架构设计师考试历程
2025年11月的系统架构师考试刚结束,借此整理一下系统架构师的总体历程。
· 架构设计
-
OpenNMT核心类设计
梳理了OpenNMT源码在关键类上的设计,具体包括框架类,数据类,模型类和服务类。
· 架构设计
-
源码阅读:目录结构和部分重点参数讨论
去年对比opennmt-py和tensor2tensor,但是只是写了opennmt-py的源码结构,并没有梳理tensor2tensor的结构,最近刚好重启一个大实验,组里同学也在做相关的事情,因此借此机会重新梳理一些关于tensor2tensor的内容。
· 架构设计