MCPcopy Create free account
hub / github.com/PaddlePaddle/Paddle-Lite / LoadModelFbsFromMemory

Function LoadModelFbsFromMemory

lite/model_parser/model_parser.cc:980–1026  ·  view source on GitHub ↗

////////////////////////////////////////////////////////////// Meta_version=1,2 //////////////////////////////////////////////////////////////

Source from the content-addressed store, hash-verified

978// Meta_version=1,2
979///////////////////////////////////////////////////////////////////
980void LoadModelFbsFromMemory(model_parser::CharBufferReader *reader,
981 Scope *scope,
982 cpp::ProgramDesc *cpp_prog,
983 uint16_t meta_version) {
984 // (1)get opt version
985 char opt_version[16];
986 const uint64_t paddle_version_length = 16 * sizeof(char);
987 reader->Read(opt_version, paddle_version_length);
988 VLOG(4) << "Opt_version:" << static_cast<const char *>(opt_version);
989
990 // (2)get prog_size and prog_data
991 uint64_t prog_size;
992 reader->Read(&prog_size, sizeof(uint64_t));
993 VLOG(4) << "prog_size:" << prog_size;
994
995 model_parser::Buffer prog_data(prog_size);
996 reader->Read(prog_data.data(), prog_size);
997#ifdef LITE_ON_FLATBUFFERS_DESC_VIEW
998 cpp_prog->Init(std::move(prog_data));
999#elif LITE_ON_TINY_PUBLISH
1000 LOG(FATAL) << "Since no data structure of Flatbuffers has been constructed, "
1001 "the model cannot be loaded.";
1002#else
1003 fbs::ProgramDesc program(prog_data);
1004 TransformProgramDescAnyToCpp(program, cpp_prog);
1005#endif
1006 switch (meta_version) {
1007 case 1: {
1008 size_t params_size = reader->length() - sizeof(uint16_t) -
1009 paddle_version_length - sizeof(uint64_t) - prog_size;
1010 model_parser::Buffer params_data(params_size);
1011 reader->Read(params_data.data(), params_size);
1012 fbs::CombinedParamsDescView params(std::move(params_data));
1013 fbs::deprecated::SetScopeWithCombinedParams(scope, params);
1014 break;
1015 }
1016 case 2: {
1017 fbs::ParamDeserializer deserializer(reader);
1018 deserializer.ForwardRead(scope);
1019 break;
1020 }
1021 default:
1022 LOG(FATAL) << "Unspported model meta_version " << meta_version;
1023 break;
1024 }
1025 VLOG(4) << "Load model from naive buffer memory successfully";
1026}
1027
1028} // namespace lite
1029} // namespace paddle

Callers 1

LoadModelNaiveFromMemoryFunction · 0.85

Calls 6

ReadMethod · 0.45
dataMethod · 0.45
InitMethod · 0.45
lengthMethod · 0.45
ForwardReadMethod · 0.45

Tested by

no test coverage detected