MCPcopy Create free account
hub / github.com/catboost/catboost / ModelBasedEval

Method ModelBasedEval

catboost/cuda/train_lib/train.cpp:497–561  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

495 }
496
497 void ModelBasedEval(
498 const NCatboostOptions::TCatBoostOptions& catboostOptions,
499 const NCatboostOptions::TOutputFilesOptions& outputOptions,
500 TTrainingDataProviders trainingData,
501 const TLabelConverter& labelConverter,
502 NPar::ILocalExecutor* localExecutor) const override {
503
504 CB_ENSURE(trainingData.Test.size() == 1, "Model based evaluation requires exactly one eval set on GPU");
505 CB_ENSURE(!IsMultiTargetObjective(catboostOptions.LossFunctionDescription->LossFunction),
506 "Catboost does not support multitarget on GPU yet");
507
508 NCatboostOptions::TCatBoostOptions updatedCatboostOptions(catboostOptions);
509
510 auto quantizedFeaturesInfo = trainingData.Learn->ObjectsData->GetQuantizedFeaturesInfo();
511
512 TFeatureEstimatorsPtr estimators;
513 TVector<TExclusiveFeaturesBundle> exclusiveBundlesCopy;
514 // TODO(kirillovs): check and enable in modelbased eval
515 /*exclusiveBundlesCopy.assign(
516 trainingData.Learn->ObjectsData->GetExclusiveFeatureBundlesMetaData().begin(),
517 trainingData.Learn->ObjectsData->GetExclusiveFeatureBundlesMetaData().end()
518 );*/
519 ui32 objectsCount = trainingData.Learn->GetObjectCount() + trainingData.Test[0]->GetObjectCount();
520 TBinarizedFeaturesManager featuresManager(updatedCatboostOptions.CatFeatureParams,
521 estimators,
522 *trainingData.Learn->MetaInfo.FeaturesLayout,
523 exclusiveBundlesCopy,
524 quantizedFeaturesInfo,
525 objectsCount);
526
527 SetDataDependentDefaultsForGpu(
528 *trainingData.Learn,
529 trainingData.Test[0].Get(),
530 updatedCatboostOptions,
531 featuresManager,
532 localExecutor);
533
534 NCB::TOnCpuGridBuilderFactory gridBuilderFactory;
535 featuresManager.SetTargetBorders(
536 NCB::TBordersBuilder(
537 gridBuilderFactory,
538 *trainingData.Learn->TargetData->GetOneDimensionalTarget())(featuresManager.GetTargetBinarizationDescription()));
539
540 TSetLogging inThisScope(updatedCatboostOptions.LoggingLevel);
541 auto deviceRequestConfig = NCudaLib::CreateDeviceRequestConfig(updatedCatboostOptions);
542 auto stopCudaManagerGuard = StartCudaManager(deviceRequestConfig,
543 updatedCatboostOptions.LoggingLevel);
544
545 ui32 approxDimension = GetApproxDimension(
546 updatedCatboostOptions,
547 labelConverter,
548 trainingData.Learn->TargetData->GetTargetDimension()
549 );
550
551 CheckMetrics(updatedCatboostOptions.MetricOptions);
552
553 ModelBasedEvalImpl(
554 updatedCatboostOptions,

Callers 1

ModelBasedEvalImplFunction · 0.45

Calls 13

IsMultiTargetObjectiveFunction · 0.85
TBordersBuilderClass · 0.85
StartCudaManagerFunction · 0.85
GetApproxDimensionFunction · 0.85
ModelBasedEvalImplFunction · 0.85
CheckMetricsFunction · 0.50
sizeMethod · 0.45
GetObjectCountMethod · 0.45
GetMethod · 0.45

Tested by

no test coverage detected