Medial Code Documentation
Loading...
Searching...
No Matches
linear_updater.h
1/*
2 * Copyright 2018 by Contributors
3 */
4#pragma once
5
6#include <dmlc/registry.h>
7#include <xgboost/base.h>
8#include <xgboost/data.h>
10#include <xgboost/model.h>
11
12#include <functional>
13#include <string>
14#include <utility>
15#include <vector>
16
17
18namespace xgboost {
19
20class Json;
21struct Context;
22
23namespace gbm {
24class GBLinearModel;
25} // namespace gbm
26
31 protected:
32 Context const* ctx_;
33
34 public:
36 ~LinearUpdater() override = default;
41 virtual void Configure(
42 const std::vector<std::pair<std::string, std::string> >& args) = 0;
43
52 virtual void Update(HostDeviceVector<GradientPair>* in_gpair, DMatrix* data,
53 gbm::GBLinearModel* model,
54 double sum_instance_weight) = 0;
55
60 static LinearUpdater* Create(const std::string& name, Context const*);
61};
62
67 : public dmlc::FunctionRegEntryBase<LinearUpdaterReg,
68 std::function<LinearUpdater*()> > {};
69
73#define XGBOOST_REGISTER_LINEAR_UPDATER(UniqueId, Name) \
74 static DMLC_ATTRIBUTE_UNUSED ::xgboost::LinearUpdaterReg& \
75 __make_##LinearUpdaterReg##_##UniqueId##__ = \
76 ::dmlc::Registry< ::xgboost::LinearUpdaterReg>::Get()->__REGISTER__( \
77 Name)
78
79} // namespace xgboost
Common base class for function registry.
Definition registry.h:151
Internal data structured used by XGBoost during training.
Definition data.h:509
Definition host_device_vector.h:87
interface of linear updater
Definition linear_updater.h:30
static LinearUpdater * Create(const std::string &name, Context const *)
Create a linear updater given name.
Definition linear_updater.cc:14
virtual void Update(HostDeviceVector< GradientPair > *in_gpair, DMatrix *data, gbm::GBLinearModel *model, double sum_instance_weight)=0
Updates linear model given gradients.
virtual void Configure(const std::vector< std::pair< std::string, std::string > > &args)=0
Initialize the updater with given arguments.
~LinearUpdater() override=default
virtual destructor
Definition gblinear_model.h:44
A device-and-host vector abstraction layer.
Copyright 2015-2023 by XGBoost Contributors.
Copyright 2015-2023 by XGBoost Contributors.
Defines the abstract interface for different components in XGBoost.
namespace of xgboost
Definition base.h:90
Registry utility that helps to build registry singletons.
Definition model.h:31
Runtime context for XGBoost.
Definition context.h:84
Registry entry for linear updater.
Definition linear_updater.h:68