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

Method TLearnContext

catboost/private/libs/algo/learn_context.cpp:226–356  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

224
225
226TLearnContext::TLearnContext(
227 const NCatboostOptions::TCatBoostOptions& params,
228 const TMaybe<TCustomObjectiveDescriptor>& objectiveDescriptor,
229 const TMaybe<TCustomMetricDescriptor>& evalMetricDescriptor,
230 const NCatboostOptions::TOutputFilesOptions& outputOptions,
231 const TTrainingDataProviders& data,
232 TMaybe<TPrecomputedOnlineCtrData> precomputedSingleOnlineCtrDataForSingleFold,
233 const TLabelConverter& labelConverter,
234 const TMaybe<TVector<double>>& startingApprox,
235 TMaybe<const TRestorableFastRng64*> initRand,
236 TMaybe<TFullModel*> initModel,
237 THolder<TLearnProgress> initLearnProgress, // will be modified if not non-nullptr
238 NCB::TDataProviders initModelApplyCompatiblePools,
239 NPar::ILocalExecutor* localExecutor,
240 const TString& fileNamesPrefix)
241
242 : TCommonContext(
243 params,
244 objectiveDescriptor,
245 evalMetricDescriptor,
246 data.Learn->ObjectsData->GetFeaturesLayout(),
247 localExecutor)
248 , OutputOptions(outputOptions)
249 , Files(outputOptions, fileNamesPrefix)
250 , Profile((int)Params.BoostingOptions->IterationCount)
251 , UseTreeLevelCachingFlag(false)
252 , HasWeights(data.Learn->MetaInfo.HasWeights) {
253
254 ETaskType taskType = Params.GetTaskType();
255 CB_ENSURE(taskType == ETaskType::CPU, "Error: expect learn on CPU task type, got " << taskType);
256
257 THPTimer calcHashTimer;
258 ui32 featuresCheckSum = data.CalcFeaturesCheckSum(localExecutor);
259 CATBOOST_DEBUG_LOG << "Features checksum calculation time: " << calcHashTimer.Passed() << Endl;
260
261 ui32 approxDimension = GetApproxDimension(Params, labelConverter, data.Learn->TargetData->GetTargetDimension());
262 if (initLearnProgress) {
263 CB_ENSURE(
264 approxDimension == SafeIntegerCast<ui32>(initLearnProgress->ApproxDimension),
265 "Attempt to continue learning with a different approx dimension"
266 );
267 CB_ENSURE(
268 labelConverter == initLearnProgress->LabelConverter,
269 "Attempt to continue learning with different class labels"
270 );
271 }
272
273 const TFoldsCreationParams foldsCreationParams(
274 params,
275 *(data.Learn->ObjectsData),
276 startingApprox,
277 /*isForWorkerLocalData*/ false
278 );
279 const ui32 foldCreationParamsCheckSum = foldsCreationParams.CalcCheckSum(
280 *data.Learn->ObjectsGrouping,
281 localExecutor
282 );
283

Callers

nothing calls this directly

Calls 15

GetApproxDimensionFunction · 0.85
GetMaxBodyTailCountFunction · 0.85
GetTaskTypeMethod · 0.80
InitCtrHelperMethod · 0.80
IsSingleHostMethod · 0.80
moveFunction · 0.50
ToStringFunction · 0.50
MaxFunction · 0.50
GetFeaturesLayoutMethod · 0.45
CalcFeaturesCheckSumMethod · 0.45

Tested by

no test coverage detected