| 265 | } |
| 266 | |
| 267 | void ModelBasedEvalImpl(const NCatboostOptions::TCatBoostOptions& trainCatBoostOptions, |
| 268 | const NCatboostOptions::TOutputFilesOptions& outputOptions, |
| 269 | const TTrainingDataProvider& dataProvider, |
| 270 | const TTrainingDataProvider& testProvider, |
| 271 | TBinarizedFeaturesManager& featuresManager, |
| 272 | ui32 approxDimension, |
| 273 | NPar::ILocalExecutor* localExecutor) { |
| 274 | auto& profiler = NCudaLib::GetCudaManager().GetProfiler(); |
| 275 | |
| 276 | ConfigureCudaProfiler(trainCatBoostOptions.IsProfile, &profiler); |
| 277 | |
| 278 | const auto optimizationImplementation = GetTrainerFactoryKey(trainCatBoostOptions); |
| 279 | CB_ENSURE(TGpuTrainerFactory::Has(optimizationImplementation), |
| 280 | "Error: optimization scheme is not supported for GPU learning " << optimizationImplementation); |
| 281 | THolder<IGpuTrainer> trainer(TGpuTrainerFactory::Construct(optimizationImplementation)); |
| 282 | TGpuAwareRandom random(trainCatBoostOptions.RandomSeed); |
| 283 | trainer->ModelBasedEval(featuresManager, |
| 284 | trainCatBoostOptions, |
| 285 | outputOptions, |
| 286 | dataProvider, |
| 287 | testProvider, |
| 288 | random, |
| 289 | approxDimension, |
| 290 | localExecutor); |
| 291 | } |
| 292 | |
| 293 | class TGPUModelTrainer: public IModelTrainer { |
| 294 | public: |
no test coverage detected