提交 e9e83dad 编写于 作者: C Channingss

support custom Scope

上级 53071d03
......@@ -195,9 +195,14 @@ def onnx2paddle(model_path, save_dir, params_merge=False):
def paddle2onnx(model_path, save_dir, opset_number):
from x2paddle.decoder.paddle_decoder import PaddleDecoder
from x2paddle.op_mapper.paddle2onnx.paddle_op_mapper import PaddleOpMapper
import paddle.fluid as fluid
model = PaddleDecoder(model_path, '__model__', '__params__')
mapper = PaddleOpMapper()
mapper.convert(model.program, save_dir, opset_number=opset_number)
mapper.convert(
model.program,
save_dir,
scope=fluid.global_scope(),
opset_number=opset_number)
def main():
......
......@@ -59,7 +59,7 @@ class OpSet9(object):
'Constant', inputs=[], outputs=[name], value=tensor)
return node
def convert_weights(self, program):
def convert_weights(self, program, scope=None):
var_names = program.global_block().vars
nodes = list()
for name in var_names:
......@@ -68,7 +68,7 @@ class OpSet9(object):
continue
if not var.persistable:
continue
weight = np.array(fluid.global_scope().find_var(name).get_tensor())
weight = np.array(scope.find_var(name).get_tensor())
tensor = helper.make_tensor(
name=name,
dims=var.shape,
......
......@@ -33,9 +33,9 @@ class PaddleOpMapper(object):
self.name_counter = dict()
self.op_set = None
def convert(self, program, save_dir, opset_number=10):
def convert(self, program, save_dir, scope=None, opset_number=10):
self.op_set = self.create_opset(opset_number)
weight_nodes = self.op_set.convert_weights(program)
weight_nodes = self.op_set.convert_weights(program, scope=scope)
op_nodes = list()
input_nodes = list()
output_nodes = list()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册