diff --git a/src/learner.cc b/src/learner.cc index 47f551f9240a..6b0fd7e4b8d7 100644 --- a/src/learner.cc +++ b/src/learner.cc @@ -790,7 +790,6 @@ class LearnerConfiguration : public Learner { // Rename one of them once binary IO is gone. cfg_["max_delta_step"] = kMaxDeltaStepDefaultValue; } - if (obj_ == nullptr || tparam_.objective != old.objective) { obj_.reset(ObjFunction::Create(tparam_.objective, &ctx_)); } diff --git a/tests/cpp/objective/test_multiclass_obj.cc b/tests/cpp/objective/test_multiclass_obj.cc index 816ac2716221..734e097b846b 100644 --- a/tests/cpp/objective/test_multiclass_obj.cc +++ b/tests/cpp/objective/test_multiclass_obj.cc @@ -10,15 +10,13 @@ namespace xgboost { void TestSoftmaxMultiClassObjGPair(const Context* ctx) { - std::string obj_name = "multi:softmax"; - std::vector> args {{"num_class", "3"}}; std::unique_ptr obj { - ObjFunction::Create(obj_name, ctx) + ObjFunction::Create("multi:softmax", ctx) }; obj->Configure(args); - CheckConfigReload(obj, obj_name); + CheckConfigReload(obj, "multi:softmax"); CheckObjFunction(obj, {1.0f, 0.0f, 2.0f, 2.0f, 0.0f, 1.0f}, // preds @@ -38,14 +36,12 @@ void TestSoftmaxMultiClassObjGPair(const Context* ctx) { } void TestSoftmaxMultiClassBasic(const Context* ctx) { - std::string obj_name = "multi:softmax"; - std::vector> args{ std::pair("num_class", "3")}; - std::unique_ptr obj{ObjFunction::Create(obj_name, ctx)}; + std::unique_ptr obj{ObjFunction::Create("multi:softmax", ctx)}; obj->Configure(args); - CheckConfigReload(obj, obj_name); + CheckConfigReload(obj, "multi:softmax"); HostDeviceVector io_preds = {2.0f, 0.0f, 1.0f, 1.0f, 0.0f, 2.0f}; @@ -60,16 +56,14 @@ void TestSoftmaxMultiClassBasic(const Context* ctx) { } void TestSoftprobMultiClassBasic(const Context* ctx) { - std::string obj_name = "multi:softprob"; - std::vector> args { std::pair("num_class", "3")}; std::unique_ptr obj { - ObjFunction::Create(obj_name, ctx) + ObjFunction::Create("multi:softprob", ctx) }; obj->Configure(args); - CheckConfigReload(obj, obj_name); + CheckConfigReload(obj, "multi:softprob"); HostDeviceVector io_preds = {2.0f, 0.0f, 1.0f}; std::vector out_preds = {0.66524096f, 0.09003057f, 0.24472847f};