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

Function test_graph_load_dump

src/serialization/test/serializer_oss.cpp:20–57  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18
19namespace {
20void test_graph_load_dump(GraphDumpFormat format) {
21 auto fname = GET_OUTPUT_FILE(format);
22
23 auto orig_id = -1;
24 auto dump = [&]() {
25 auto cn = CompNode::load("cpu0");
26 auto graph = ComputingGraph::make();
27 auto x = opr::ImmutableTensor::make(*graph, 1926.0817f, {cn});
28 x.rename("varz");
29 auto dumper = GraphDumper::make(OutputFile::make_fs(fname.c_str()), format);
30 auto rst = dumper->dump({x});
31 ASSERT_EQ(rst.nr_opr, 1);
32 ASSERT_EQ(rst.inputs.size(), 0);
33 ASSERT_EQ(rst.outputs.size(), 1);
34 ASSERT_EQ(rst.params.size(), 0);
35 orig_id = x.node()->id();
36 mgb_log("%zu of %zu", rst.tensor_value_bytes, rst.tot_bytes);
37 };
38 auto load = [&]() {
39 auto loader = GraphLoader::make(InputFile::make_fs(fname.c_str()), format);
40 auto rst = loader->load();
41 ASSERT_EQ(rst.tensor_map.size(), 0);
42 ASSERT_EQ(rst.output_var_list.size(), 1);
43 ASSERT_EQ(rst.output_var_map.size(), 1);
44 ASSERT_EQ(rst.output_var_map_id.size(), 1);
45 ASSERT_EQ(rst.output_var_map.count("varz"), 1);
46 ASSERT_EQ(rst.output_var_map_id.count(orig_id), 1);
47
48 HostTensorND host_x;
49
50 auto func =
51 rst.graph_compile({make_callback_copy(rst.output_var_list[0], host_x)});
52 func->execute().wait();
53 EXPECT_NEAR(*host_x.ptr<float>(), 1926.0817f, 1e-6);
54 };
55 dump();
56 load();
57}
58
59void test_multi_graph_dump_load(GraphDumpFormat format) {
60 auto fname = GET_OUTPUT_FILE(format);

Callers 1

TESTFunction · 0.85

Calls 13

make_callback_copyFunction · 0.85
renameMethod · 0.80
graph_compileMethod · 0.80
loadFunction · 0.50
makeFunction · 0.50
dumpMethod · 0.45
sizeMethod · 0.45
idMethod · 0.45
nodeMethod · 0.45
loadMethod · 0.45
countMethod · 0.45
waitMethod · 0.45

Tested by

no test coverage detected