| 18 | |
| 19 | |
| 20 | int mode_model_based_eval(int argc, const char* argv[]) { |
| 21 | ConfigureMalloc(); |
| 22 | |
| 23 | NCatboostOptions::TPoolLoadParams poolLoadParams; |
| 24 | TString paramsFile; |
| 25 | NJson::TJsonValue catBoostFlatJsonOptions; |
| 26 | ParseModelBasedEvalCommandLine(argc, argv, &catBoostFlatJsonOptions, ¶msFile, &poolLoadParams); |
| 27 | NJson::TJsonValue catBoostJsonOptions; |
| 28 | NJson::TJsonValue outputOptionsJson; |
| 29 | InitOptions(paramsFile, &catBoostJsonOptions, &outputOptionsJson); |
| 30 | NCatboostOptions::LoadPoolMetaInfoOptions(poolLoadParams.PoolMetaInfoPath, &catBoostJsonOptions); |
| 31 | ConvertIgnoredFeaturesFromStringToIndices(poolLoadParams, &catBoostFlatJsonOptions); |
| 32 | ConvertFeaturesToEvaluateFromStringToIndices(poolLoadParams, &catBoostFlatJsonOptions); |
| 33 | NCatboostOptions::PlainJsonToOptions(catBoostFlatJsonOptions, &catBoostJsonOptions, &outputOptionsJson); |
| 34 | ConvertParamsToCanonicalFormat(poolLoadParams, &catBoostJsonOptions); |
| 35 | CopyIgnoredFeaturesToPoolParams(catBoostJsonOptions, &poolLoadParams); |
| 36 | NCatboostOptions::TOutputFilesOptions outputOptions; |
| 37 | outputOptions.Load(outputOptionsJson); |
| 38 | |
| 39 | //check model based eval restrictions |
| 40 | CB_ENSURE(NCatboostOptions::GetTaskType(catBoostJsonOptions) == ETaskType::GPU); |
| 41 | const auto featuresToEvaluate = GetOptionFeaturesToEvaluate(catBoostJsonOptions); |
| 42 | CB_ENSURE(!featuresToEvaluate.empty(), "Error: no features to evaluate"); |
| 43 | for (ui32 feature : featuresToEvaluate) { |
| 44 | CB_ENSURE(Count(poolLoadParams.IgnoredFeatures, feature) == 0, "Error: feature " + ToString(feature) + " is ignored"); |
| 45 | } |
| 46 | if (outputOptions.IsMetricPeriodSet() && outputOptions.GetMetricPeriod() > 1) { |
| 47 | CATBOOST_WARNING_LOG << "Warning: metric_period is ignored because " |
| 48 | "model-based feature evaluation needs metric values on each iteration" << Endl; |
| 49 | } |
| 50 | outputOptions.SetMetricPeriod(1); |
| 51 | |
| 52 | ModelBasedEval(poolLoadParams, outputOptions, catBoostJsonOptions); |
| 53 | |
| 54 | return 0; |
| 55 | } |
nothing calls this directly
no test coverage detected