Support 64bit seed. (#5643)

This commit is contained in:
Jiaming Yuan 2020-05-07 14:52:38 +08:00 committed by GitHub
parent eaf2a00b5c
commit 21ed1f0c6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 1 deletions

View File

@ -17,7 +17,7 @@ struct GenericParameter : public XGBoostParameter<GenericParameter> {
public:
// stored random seed
int seed;
int64_t seed;
// whether seed the PRNG each iteration
bool seed_per_iteration;
// number of threads to use if OpenMP is enabled

View File

@ -260,4 +260,26 @@ TEST(Learner, GPUConfiguration) {
}
}
#endif // defined(XGBOOST_USE_CUDA)
TEST(Learner, Seed) {
auto m = RandomDataGenerator{10, 10, 0}.GenerateDMatrix();
std::unique_ptr<Learner> learner {
Learner::Create({m})
};
auto seed = std::numeric_limits<int64_t>::max();
learner->SetParam("seed", std::to_string(seed));
learner->Configure();
Json config { Object() };
learner->SaveConfig(&config);
ASSERT_EQ(std::to_string(seed),
get<String>(config["learner"]["generic_param"]["seed"]));
seed = std::numeric_limits<int64_t>::min();
learner->SetParam("seed", std::to_string(seed));
learner->Configure();
learner->SaveConfig(&config);
ASSERT_EQ(std::to_string(seed),
get<String>(config["learner"]["generic_param"]["seed"]));
}
} // namespace xgboost