////////////////////////////////////////////////////////////// Meta_version=1,2 //////////////////////////////////////////////////////////////
| 978 | // Meta_version=1,2 |
| 979 | /////////////////////////////////////////////////////////////////// |
| 980 | void 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 |
no test coverage detected