MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / pack_model

Method pack_model

lite/src/pack_model/pack_model.cpp:236–267  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

234}
235
236void ModelPacker::pack_model() {
237 auto fb_header = m_fbs_helper->build_header();
238 auto fb_info = m_fbs_helper->build_info();
239 auto fb_data = m_fbs_helper->build_data();
240
241 ModelBuilder model_builder(m_fbs_helper->builder());
242 model_builder.add_header(fb_header);
243 model_builder.add_info(fb_info);
244 model_builder.add_data(fb_data);
245
246 auto model = model_builder.Finish();
247 std::vector<flatbuffers::Offset<Model>> models;
248 models.emplace_back(model);
249 auto fb_models = m_fbs_helper->builder().CreateVector(models);
250
251 PackModelBuilder pack_model_builder(m_fbs_helper->builder());
252 pack_model_builder.add_models(fb_models);
253 m_fbs_helper->builder().Finish(pack_model_builder.Finish());
254
255 FILE* fptr = fopen(m_packed_model_path.c_str(), "wb");
256 LITE_ASSERT(
257 fptr, "failed to open %s: %s", m_packed_model_path.c_str(),
258 strerror(errno));
259 std::string packed_model_tag = "packed_model";
260 auto nr_tag = fwrite(packed_model_tag.c_str(), 1, packed_model_tag.size(), fptr);
261 LITE_ASSERT(nr_tag == packed_model_tag.size());
262
263 auto fb_size = m_fbs_helper->builder().GetSize();
264 auto nr_fb = fwrite(m_fbs_helper->builder().GetBufferPointer(), 1, fb_size, fptr);
265 LITE_ASSERT(nr_fb == fb_size);
266 fclose(fptr);
267}

Callers 2

config_model_internelMethod · 0.80

Calls 5

build_headerMethod · 0.80
build_infoMethod · 0.80
build_dataMethod · 0.80
emplace_backMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected