8 #ifndef XGBOOST_TREE_UPDATER_H_ 
 9 #define XGBOOST_TREE_UPDATER_H_ 
 11 #include <dmlc/registry.h> 
 76  const std::vector<RegTree*>& out_trees) = 0;
 
 93  [[nodiscard]] 
virtual char const* 
Name() 
const = 0;
 
 108  : 
public dmlc::FunctionRegEntryBase<
 
 109  TreeUpdaterReg, std::function<TreeUpdater*(Context const* ctx, ObjInfo const* task)>> {};
 
 123 #define XGBOOST_REGISTER_TREE_UPDATER(UniqueId, Name) \ 
 124  static DMLC_ATTRIBUTE_UNUSED ::xgboost::TreeUpdaterReg& \ 
 125  __make_ ## TreeUpdaterReg ## _ ## UniqueId ## __ = \ 
 126  ::dmlc::Registry< ::xgboost::TreeUpdaterReg>::Get()->__REGISTER__(Name) 
内部数据结构,由XGBoost用于保存所有外部数据。
Definition: data.h:573
表示JSON格式的数据结构。
Definition: json.h:392
树更新模块接口,用于执行树的更新。
定义: tree_updater.h:36
Context const * ctx_
定义: tree_updater.h:38
~TreeUpdater() override=default
虚析构函数
virtual bool UpdatePredictionCache(const DMatrix *, linalg::MatrixView< float >)
判断更新器是否对给定数据集有足够的了解,以便快速更新预测缓存...
定义: tree_updater.h:88
static TreeUpdater * Create(const std::string &name, Context const *ctx, ObjInfo const *task)
根据名称创建树更新器。
virtual bool CanModifyTree() const
此更新器是否可用于更新现有树。
定义: tree_updater.h:55
virtual bool HasNodePosition() const
Update中的out_position是否有效。这决定了是否可以使用自适应树。
定义: tree_updater.h:60
TreeUpdater(const Context *ctx)
定义: tree_updater.h:41
virtual void Update(tree::TrainParam const *param, linalg::Matrix< GradientPair > *gpair, DMatrix *data, common::Span< HostDeviceVector< bst_node_t >> out_position, const std::vector< RegTree * > &out_trees)=0
对树模型执行更新
virtual void Configure(const Args &args)=0
使用给定参数初始化更新器。
virtual char const * Name() const =0
span类实现,基于ISO++20 span<T>。接口应相同。
Definition: span.h:431
具有静态类型和维度的张量视图。它实现了索引和切片。
定义: linalg.h:277
一个张量存储。要将其用于切片等其他功能,首先需要获取一个视图...
定义: linalg.h:745
集成目标、gbm和评估的学习器接口。这是用户面临的XGB...
Definition: base.h:97
std::vector< std::pair< std::string, std::string > > Args
定义: base.h:324
XGBoost的运行时上下文。包含线程和设备等信息。
Definition: context.h:133
目标返回的结构体,用于确定当前任务。此结构体未被任何算法使用...
定义: task.h:24
树更新器的注册表项。
定义: tree_updater.h:109