| 500 | } |
| 501 | |
| 502 | void TestBoostFromAvgParam() { |
| 503 | std::unique_ptr<Learner> learner{Learner::Create({Xy_})}; |
| 504 | learner->SetParam("objective", "reg:absoluteerror"); |
| 505 | learner->SetParam("base_score", "1.3"); |
| 506 | Json config(Object{}); |
| 507 | learner->Configure(); |
| 508 | learner->SaveConfig(&config); |
| 509 | |
| 510 | auto base_score = GetBaseScore(config); |
| 511 | ASSERT_EQ(base_score.size(), 1); |
| 512 | // no change |
| 513 | ASSERT_FLOAT_EQ(base_score[0], 1.3); |
| 514 | |
| 515 | HostDeviceVector<float> predt; |
| 516 | learner->Predict(Xy_, false, &predt, 0, 0); |
| 517 | auto h_predt = predt.ConstHostSpan(); |
| 518 | for (auto v : h_predt) { |
| 519 | ASSERT_FLOAT_EQ(v, 1.3); |
| 520 | } |
| 521 | learner->UpdateOneIter(0, Xy_); |
| 522 | learner->SaveConfig(&config); |
| 523 | base_score = GetBaseScore(config); |
| 524 | ASSERT_EQ(base_score.size(), 1); |
| 525 | // no change |
| 526 | ASSERT_FLOAT_EQ(base_score[0], 1.3); |
| 527 | |
| 528 | auto from_avg = std::stoi( |
| 529 | get<String const>(config["learner"]["learner_model_param"]["boost_from_average"])); |
| 530 | // from_avg is disabled when base score is set |
| 531 | ASSERT_EQ(from_avg, 0); |
| 532 | // in the future when we can deprecate the binary model, user can set the parameter directly. |
| 533 | learner->SetParam("boost_from_average", "1"); |
| 534 | learner->Configure(); |
| 535 | learner->SaveConfig(&config); |
| 536 | from_avg = std::stoi( |
| 537 | get<String const>(config["learner"]["learner_model_param"]["boost_from_average"])); |
| 538 | ASSERT_EQ(from_avg, 1); |
| 539 | } |
| 540 | |
| 541 | void TestInitAfterLoad() { |
| 542 | std::unique_ptr<Learner> learner{Learner::Create({Xy_})}; |
no test coverage detected