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

Function PrepareQuantizationParameters

catboost/libs/data/quantization.cpp:2612–2673  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2610
2611
2612 void PrepareQuantizationParameters(
2613 const NCatboostOptions::TCatBoostOptions& params,
2614 const TDataMetaInfo& metaInfo,
2615 const TMaybe<TString>& bordersFile,
2616 TQuantizationOptions* quantizationOptions,
2617 TQuantizedFeaturesInfoPtr* quantizedFeaturesInfo
2618 ) {
2619 quantizationOptions->GroupFeaturesForCpu = params.DataProcessingOptions->DevGroupFeatures.GetUnchecked();
2620 if (params.GetTaskType() == ETaskType::CPU) {
2621
2622 quantizationOptions->ExclusiveFeaturesBundlingOptions.MaxBuckets
2623 = params.ObliviousTreeOptions->DevExclusiveFeaturesBundleMaxBuckets.Get();
2624 quantizationOptions->ExclusiveFeaturesBundlingOptions.MaxConflictFraction
2625 = params.ObliviousTreeOptions->SparseFeaturesConflictFraction.Get();
2626
2627 /* TODO(akhropov): Enable when sparse column scoring is supported
2628
2629 float defaultValueFractionToEnableSparseStorage
2630 = params.DataProcessingOptions->DevDefaultValueFractionToEnableSparseStorage.Get();
2631 if (defaultValueFractionToEnableSparseStorage > 0.0f) {
2632 quantizationOptions.DefaultValueFractionToEnableSparseStorage
2633 = defaultValueFractionToEnableSparseStorage;
2634 quantizationOptions.SparseArrayIndexingType
2635 = params.DataProcessingOptions->DevSparseArrayIndexingType.Get();
2636 }
2637 */
2638 } else {
2639 Y_ASSERT(params.GetTaskType() == ETaskType::GPU);
2640
2641 quantizationOptions->BundleExclusiveFeatures = false;
2642 // TODO(kirillovs): temporarily disabled EFB for GPU until i figure out what's happening with binary buckets
2643 /*
2644 quantizationOptions->ExclusiveFeaturesBundlingOptions.MaxBuckets = Min<ui32>(
2645 254, params.ObliviousTreeOptions->DevExclusiveFeaturesBundleMaxBuckets.Get());
2646 quantizationOptions->ExclusiveFeaturesBundlingOptions.OnlyOneHotsAndBinaryFloats = true;
2647 */
2648 quantizationOptions->PackBinaryFeaturesForCpu = false;
2649 quantizationOptions->GroupFeaturesForCpu = false;
2650 }
2651 quantizationOptions->CpuRamLimit
2652 = ParseMemorySizeDescription(params.SystemOptions->CpuUsedRamLimit.Get());
2653 quantizationOptions->MaxSubsetSizeForBuildBordersAlgorithms =
2654 params.DataProcessingOptions->FloatFeaturesBinarization->MaxSubsetSizeForBuildBorders.Get();
2655
2656 if (quantizedFeaturesInfo && !(*quantizedFeaturesInfo)) {
2657 *quantizedFeaturesInfo = MakeIntrusive<TQuantizedFeaturesInfo>(
2658 *metaInfo.FeaturesLayout,
2659 params.DataProcessingOptions->IgnoredFeatures.Get(),
2660 params.DataProcessingOptions->FloatFeaturesBinarization.Get(),
2661 params.DataProcessingOptions->PerFloatFeatureQuantization.Get(),
2662 params.DataProcessingOptions->TextProcessingOptions.Get(),
2663 params.DataProcessingOptions->EmbeddingProcessingOptions.Get(),
2664 /*allowNansInTestOnly*/true
2665 );
2666
2667 if (bordersFile) {
2668 LoadBordersAndNanModesFromFromFileInMatrixnetFormat(
2669 *bordersFile,

Callers 2

StartMethod · 0.70
GetQuantizedObjectsDataFunction · 0.70

Tested by

no test coverage detected