diff --git a/x2paddle/optimizer/onnx_optimizer.py b/x2paddle/optimizer/onnx_optimizer.py index 67d8cad3d1d3f7642f5314cf1c82b6cf102cfa27..28ffd0fdca60b353eb2881418f5d5cd1c507b5da 100644 --- a/x2paddle/optimizer/onnx_optimizer.py +++ b/x2paddle/optimizer/onnx_optimizer.py @@ -29,65 +29,3 @@ class ONNXOptimizer(object): omit_freq = self.op_mapper.omit_nodes.count(node_name) if len(node.outputs) <= omit_freq: node.fluid_code.clear() - - # TODO activation merge - def merge_activation(self): - act_nodes = list() - for node_name in self.graph.topo_sort: - node = self.graph.get_node(node_name) - if node.layer_type in self.activation_ops: - act_nodes.append(node_name) - - for act_node_name in act_nodes: - node = self.graph.get_node(act_node_name) - input = self.graph.get_node(node.inputs[0]) - if input.layer_type not in self.layers_with_act: - continue - if len(input.fluid_code.layers) == 0: - continue - if 'act' in input.fluid_code.layers[ - -1].param_attr and input.fluid_code.layers[-1].param_attr[ - 'act'] is not None: - continue - if len(input.outputs) != 1: - continue - input.fluid_code.layers[-1].param_attr['act'] = string( - self.activation_ops[node.layer_type]) - input.fluid_code.layers[-1].output = node.fluid_code.layers[ - 0].output - self.graph.remove_node(act_node_name) - - # TODO bias merge - def merge_bias(self): - for node_name in self.graph.topo_sort: - node = self.graph.get_node(node_name) - if node.layer_type == "BiasAdd": - input = self.graph.get_node(node.inputs[0]) - if input.layer_type not in self.layers_with_bias: - continue - if len(input.outputs) != 1: - continue - if len(input.fluid_code.layers) == 0: - continue - bias_with_act = False - if 'act' in node.fluid_code.layers[-1].param_attr: - bias_with_act = True - layer_with_act = False - if 'act' in input.fluid_code.layers[ - -1].param_attr and input.fluid_code.layers[ - -1].param_attr['act'] is not None: - layer_with_act = True - - if bias_with_act and layer_with_act: - continue - if not input.fluid_code.layers[-1].param_attr['bias_attr']: - bias_name = node.inputs[1] - input.fluid_code.layers[-1].param_attr[ - 'bias_attr'] = string(bias_name) - input.fluid_code.layers[-1].output = node.fluid_code.layers[ - 0].output - if bias_with_act: - input.fluid_code.layers[-1].param_attr[ - 'act'] = node.fluid_code.layers[-1].param_attr[ - 'act'] - node.fluid_code.clear()