def check_load_module(): temp = util.tempdir() path_lib = temp.relpath("deploy.so") libmod.export_library(path_lib) with open(temp.relpath("deploy.json"), "w") as fo: fo.write(deploy_graph.json()) with open(temp.relpath("deploy.params"), "wb") as fo: fo.write(nnvm.compiler.save_param_dict(params)) # Load lib, json, and params back. loaded_lib = tvm.module.load(path_lib) loaded_json = open(temp.relpath("deploy.json")).read() loaded_json = graph.load_json(loaded_json) loaded_params = bytearray( open(temp.relpath("deploy.params"), "rb").read()) module = graph_runtime.create(loaded_json, loaded_lib, contexts) loaded_params = nnvm.compiler.load_param_dict(loaded_params) module.set_input(**loaded_params) module.run() _, oshape = graph_util.infer_shape(loaded_json) module_out = [] for i in range(len(sym.list_output_names())): out = module.get_output(i, out=tvm.nd.empty(oshape[i], dtype)) module_out.append(out) npt.assert_allclose(out.asnumpy(), orig_out[i].asnumpy(), rtol=1e-5, atol=1e-5)
def test_json_pass(): x = sym.Variable('x') y = sym.dense(data=x, name='conv', units=30) g = graph.create(y) ret = g.apply('SaveJSON') ret._set_json_attr('json', ret.json_attr('json')) g2 = ret.apply('LoadJSON') assert g2.apply('SaveJSON').json_attr('json') == ret.json_attr('json') json = g.json() g2 = graph.load_json(json) assert json == g2.json()
def test_json_pass(): x = sym.Variable('x') y = sym.dense(data=x, name='conv', units=30) g = graph.create(y) ret = g.apply('SaveJSON') ret._set_json_attr('json', ret.json_attr('json')) g2 = ret.apply('LoadJSON') assert g2.apply('SaveJSON').json_attr('json') == ret.json_attr('json') json = g.json() g2 = graph.load_json(json) assert json == g2.json()
net = symbol.Group([net1, net2]) deploy_graph, lib, params = nnvm.compiler.build( net, target="llvm", shape=shape_dict, dtype="float32", params=params) temp = path.curdir path_lib = path.join(temp, "deploy.so") lib.export_library(path_lib) with open(path.join(temp, "deploy.json"), "w") as fo: fo.write(deploy_graph.json()) with open(path.join(temp, "deploy.params"), "wb") as fo: fo.write(nnvm.compiler.save_param_dict(params)) loaded_lib = tvm.module.load(path_lib) loaded_json = open(path.join(temp, "deploy.json")).read() loaded_json = graph.load_json(loaded_json) loaded_params = bytearray( open(path.join(temp, "deploy.params"), "rb").read()) module = graph_runtime.create(loaded_json, loaded_lib, tvm.cpu(0)) loaded_params = nnvm.compiler.load_param_dict(loaded_params) module.set_input(**loaded_params) module.run() _, oshape = graph_util.infer_shape(loaded_json) out1 = module.get_output(0, out=tvm.nd.empty(oshape[0], "float32")) assert np.allclose(data1 + data2, out1.asnumpy()) out2 = module.get_output(1, out=tvm.nd.empty(oshape[1], "float32")) assert np.allclose(data3 + data4, out2.asnumpy())