Span class. (#3548)
* Add basic Span class based on ISO++20. * Use Span<Entry const> instead of Inst in SparsePage. * Add DeviceSpan in HostDeviceVector, use it in regression obj.
This commit is contained in:
committed by
Rory Mitchell
parent
2b7a1c5780
commit
2c502784ff
@@ -166,9 +166,9 @@ class GBLinear : public GradientBooster {
|
||||
for (int gid = 0; gid < ngroup; ++gid) {
|
||||
bst_float *p_contribs = &contribs[(row_idx * ngroup + gid) * ncolumns];
|
||||
// calculate linear terms' contributions
|
||||
for (bst_uint c = 0; c < inst.length; ++c) {
|
||||
if (inst[c].index >= model_.param.num_feature) continue;
|
||||
p_contribs[inst[c].index] = inst[c].fvalue * model_[inst[c].index][gid];
|
||||
for (auto& ins : inst) {
|
||||
if (ins.index >= model_.param.num_feature) continue;
|
||||
p_contribs[ins.index] = ins.fvalue * model_[ins.index][gid];
|
||||
}
|
||||
// add base margin to BIAS
|
||||
p_contribs[ncolumns - 1] = model_.bias()[gid] +
|
||||
@@ -268,9 +268,9 @@ class GBLinear : public GradientBooster {
|
||||
inline void Pred(const SparsePage::Inst &inst, bst_float *preds, int gid,
|
||||
bst_float base) {
|
||||
bst_float psum = model_.bias()[gid] + base;
|
||||
for (bst_uint i = 0; i < inst.length; ++i) {
|
||||
if (inst[i].index >= model_.param.num_feature) continue;
|
||||
psum += inst[i].fvalue * model_[inst[i].index][gid];
|
||||
for (const auto& ins : inst) {
|
||||
if (ins.index >= model_.param.num_feature) continue;
|
||||
psum += ins.fvalue * model_[ins.index][gid];
|
||||
}
|
||||
preds[gid] = psum;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user