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

Function TrainModelImpl

catboost/cuda/train_lib/train.cpp:220–265  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

218 }
219
220 TGpuTrainResult TrainModelImpl(const TTrainModelInternalOptions& internalOptions,
221 const NCatboostOptions::TCatBoostOptions& trainCatBoostOptions,
222 const NCatboostOptions::TOutputFilesOptions& outputOptions,
223 const TTrainingDataProvider& dataProvider,
224 const TTrainingDataProvider* testProvider,
225 const TFeatureEstimators& featureEstimators,
226 TBinarizedFeaturesManager& featuresManager,
227 ui32 approxDimension,
228 ITrainingCallbacks* trainingCallbacks,
229 NPar::ILocalExecutor* localExecutor,
230 TVector<TVector<double>>* testMultiApprox, // [dim][objectIdx]
231 TMetricsAndTimeLeftHistory* metricsAndTimeHistory,
232 const TMaybe<TCustomObjectiveDescriptor>& objectiveDescriptor,
233 const TMaybe<TCustomMetricDescriptor>& evalMetricDescriptor
234 ) {
235 auto& profiler = NCudaLib::GetCudaManager().GetProfiler();
236 ConfigureCudaProfiler(trainCatBoostOptions.IsProfile, &profiler);
237
238 TGpuAwareRandom random(trainCatBoostOptions.RandomSeed);
239
240 TGpuTrainResult model;
241
242 const auto optimizationImplementation = GetTrainerFactoryKey(trainCatBoostOptions);
243
244 if (TGpuTrainerFactory::Has(optimizationImplementation)) {
245 THolder<IGpuTrainer> trainer(TGpuTrainerFactory::Construct(optimizationImplementation));
246 model = trainer->TrainModel(featuresManager,
247 internalOptions,
248 trainCatBoostOptions,
249 outputOptions,
250 dataProvider,
251 testProvider,
252 featureEstimators,
253 objectiveDescriptor,
254 evalMetricDescriptor,
255 random,
256 approxDimension,
257 trainingCallbacks,
258 localExecutor,
259 testMultiApprox,
260 metricsAndTimeHistory);
261 } else {
262 ythrow TCatBoostException() << "Error: optimization scheme is not supported for GPU learning " << optimizationImplementation;
263 }
264 return model;
265 }
266
267 void ModelBasedEvalImpl(const NCatboostOptions::TCatBoostOptions& trainCatBoostOptions,
268 const NCatboostOptions::TOutputFilesOptions& outputOptions,

Callers 1

TrainModelMethod · 0.85

Calls 5

ConfigureCudaProfilerFunction · 0.85
GetTrainerFactoryKeyFunction · 0.85
HasFunction · 0.85
ConstructClass · 0.50
TrainModelMethod · 0.45

Tested by

no test coverage detected