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

Method FBSerialize

catboost/libs/model/model.cpp:324–422  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

322}
323
324flatbuffers::Offset<NCatBoostFbs::TModelTrees>
325TModelTrees::FBSerialize(TModelPartsCachingSerializer& serializer) const {
326 auto& builder = serializer.FlatbufBuilder;
327
328 std::vector<flatbuffers::Offset<NCatBoostFbs::TCatFeature>> catFeaturesOffsets;
329 for (const auto& catFeature : CatFeatures) {
330 catFeaturesOffsets.push_back(catFeature.FBSerialize(builder));
331 }
332 auto fbsCatFeaturesOffsets = builder.CreateVector(catFeaturesOffsets);
333
334 std::vector<flatbuffers::Offset<NCatBoostFbs::TFloatFeature>> floatFeaturesOffsets;
335 for (const auto& floatFeature : FloatFeatures) {
336 floatFeaturesOffsets.push_back(floatFeature.FBSerialize(builder));
337 }
338 auto fbsFloatFeaturesOffsets = builder.CreateVector(floatFeaturesOffsets);
339
340 std::vector<flatbuffers::Offset<NCatBoostFbs::TTextFeature>> textFeaturesOffsets;
341 for (const auto& textFeature : TextFeatures) {
342 textFeaturesOffsets.push_back(textFeature.FBSerialize(builder));
343 }
344 auto fbsTextFeaturesOffsets = builder.CreateVector(textFeaturesOffsets);
345
346 std::vector<flatbuffers::Offset<NCatBoostFbs::TEmbeddingFeature>> embeddingFeaturesOffsets;
347 for (const auto& embeddingFeature : EmbeddingFeatures) {
348 embeddingFeaturesOffsets.push_back(embeddingFeature.FBSerialize(builder));
349 }
350 auto fbsEmbeddingFeaturesOffsets = builder.CreateVector(embeddingFeaturesOffsets);
351
352 std::vector<flatbuffers::Offset<NCatBoostFbs::TEstimatedFeature>> estimatedFeaturesOffsets;
353 for (const auto& estimatedFeature : EstimatedFeatures) {
354 estimatedFeaturesOffsets.push_back(estimatedFeature.FBSerialize(builder));
355 }
356 auto fbsEstimatedFeaturesOffsets = builder.CreateVector(estimatedFeaturesOffsets);
357
358 std::vector<flatbuffers::Offset<NCatBoostFbs::TOneHotFeature>> oneHotFeaturesOffsets;
359 for (const auto& oneHotFeature : OneHotFeatures) {
360 oneHotFeaturesOffsets.push_back(oneHotFeature.FBSerialize(builder));
361 }
362 auto fbsOneHotFeaturesOffsets = builder.CreateVector(oneHotFeaturesOffsets);
363
364 std::vector<flatbuffers::Offset<NCatBoostFbs::TCtrFeature>> ctrFeaturesOffsets;
365 for (const auto& ctrFeature : CtrFeatures) {
366 ctrFeaturesOffsets.push_back(ctrFeature.FBSerialize(serializer));
367 }
368 auto fbsCtrFeaturesOffsets = builder.CreateVector(ctrFeaturesOffsets);
369
370 TVector<NCatBoostFbs::TNonSymmetricTreeStepNode> nonSymmetricTreeStepNode;
371 nonSymmetricTreeStepNode.reserve(GetModelTreeData()->GetNonSymmetricStepNodes().size());
372 for (const auto& nonSymmetricStep: GetModelTreeData()->GetNonSymmetricStepNodes()) {
373 nonSymmetricTreeStepNode.emplace_back(NCatBoostFbs::TNonSymmetricTreeStepNode{
374 nonSymmetricStep.LeftSubtreeDiff,
375 nonSymmetricStep.RightSubtreeDiff
376 });
377 }
378 auto fbsNonSymmetricTreeStepNode = builder.CreateVectorOfStructs(nonSymmetricTreeStepNode);
379
380 TVector<NCatBoostFbs::TRepackedBin> repackedBins;
381 repackedBins.reserve(GetRepackedBins().size());

Callers 1

SaveMethod · 0.45

Calls 14

CreateVectorMethod · 0.80
CreateVectorOfStructsMethod · 0.80
GetTreeSplitsMethod · 0.80
GetTreeSizesMethod · 0.80
GetTreeStartOffsetsMethod · 0.80
GetLeafWeightsMethod · 0.80
push_backMethod · 0.45
reserveMethod · 0.45
sizeMethod · 0.45
emplace_backMethod · 0.45

Tested by

no test coverage detected