From fc5c67c4ede8bebdcd6f2786ca0c7e6acd241b01 Mon Sep 17 00:00:00 2001 From: Channingss Date: Thu, 2 Jul 2020 07:08:36 +0000 Subject: [PATCH] support yolov3 --- .../op_mapper/paddle_custom_layer/yolo_box.py | 51 ++++++------------- x2paddle/op_mapper/paddle_op_mapper.py | 12 ++--- 2 files changed, 20 insertions(+), 43 deletions(-) diff --git a/x2paddle/op_mapper/paddle_custom_layer/yolo_box.py b/x2paddle/op_mapper/paddle_custom_layer/yolo_box.py index b9375c2..a1e49e7 100644 --- a/x2paddle/op_mapper/paddle_custom_layer/yolo_box.py +++ b/x2paddle/op_mapper/paddle_custom_layer/yolo_box.py @@ -2,8 +2,6 @@ import onnx import numpy as np from onnx import onnx_pb, helper -MAX_FLOAT = np.asarray([255, 255, 127, 127], dtype=np.uint8).view(np.float32)[0] - def get_old_name(arg, name_prefix=''): prefix_index = arg.find(name_prefix) @@ -749,53 +747,36 @@ def yolo_box(op, block): outputs_pred_box_x2_clip = [model_name + "@pred_box_x2_clip"] outputs_pred_box_y2_clip = [model_name + "@pred_box_y2_clip"] - min_const_name = model_name + "@pred_box_min_const" - max_const_name = model_name + "@pred_box_max_const" - - min_const = onnx.helper.make_node( - 'Constant', - inputs=[], - outputs=[min_const_name], - value=onnx.helper.make_tensor( - name=min_const_name, - data_type=onnx.TensorProto.FLOAT, - dims=(), - vals=[0.0])) - node_list.append(min_const) - - max_const = onnx.helper.make_node( - 'Constant', - inputs=[], - outputs=[max_const_name], - value=onnx.helper.make_tensor( - name=max_const_name, - data_type=onnx.TensorProto.FLOAT, - dims=(), - vals=[MAX_FLOAT])) - node_list.append(max_const) - node_pred_box_x1_clip = onnx.helper.make_node( 'Clip', - inputs=outputs_pred_box_x1_decode + [min_const_name, max_const_name], - outputs=outputs_pred_box_x1_clip) + inputs=outputs_pred_box_x1_decode, + outputs=outputs_pred_box_x1_clip, + min=0.0, + max=float(np.inf)) node_list.append(node_pred_box_x1_clip) node_pred_box_y1_clip = onnx.helper.make_node( 'Clip', - inputs=outputs_pred_box_y1_decode + [min_const_name, max_const_name], - outputs=outputs_pred_box_y1_clip) + inputs=outputs_pred_box_y1_decode, + outputs=outputs_pred_box_y1_clip, + min=0.0, + max=float(np.inf)) node_list.append(node_pred_box_y1_clip) node_pred_box_x2_clip = onnx.helper.make_node( 'Clip', - inputs=outputs_pred_box_x2_sub_w + [min_const_name, max_const_name], - outputs=outputs_pred_box_x2_clip) + inputs=outputs_pred_box_x2_sub_w, + outputs=outputs_pred_box_x2_clip, + min=0.0, + max=float(np.inf)) node_list.append(node_pred_box_x2_clip) node_pred_box_y2_clip = onnx.helper.make_node( 'Clip', - inputs=outputs_pred_box_y2_sub_h + [min_const_name, max_const_name], - outputs=outputs_pred_box_y2_clip) + inputs=outputs_pred_box_y2_sub_h, + outputs=outputs_pred_box_y2_clip, + min=0.0, + max=float(np.inf)) node_list.append(node_pred_box_y2_clip) outputs_pred_box_x2_res = [model_name + "@box_x2_res"] diff --git a/x2paddle/op_mapper/paddle_op_mapper.py b/x2paddle/op_mapper/paddle_op_mapper.py index 9f9d92e..c27a317 100644 --- a/x2paddle/op_mapper/paddle_op_mapper.py +++ b/x2paddle/op_mapper/paddle_op_mapper.py @@ -675,17 +675,15 @@ class PaddleOpMapper(object): if 'OutSize' in input_names and len(op.input('OutSize')) > 0: node = helper.make_node( 'Resize', - inputs=[op.input('X')[0], '', op.input('OutSize')[0]], + inputs=[op.input('X')[0], op.input('OutSize')[0]], outputs=op.output('Out'), - mode='nearest', - coordinate_transformation_mode=coordinate_transformation_mode) + mode='nearest') elif 'Scale' in input_names and len(op.input('Scale')) > 0: node = helper.make_node( 'Resize', inputs=[op.input('X')[0], op.input('Scale')[0]], outputs=op.output('Out'), - mode='nearest', - coordinate_transformation_mode=coordinate_transformation_mode) + mode='nearest') else: out_shape = [op.attr('out_h'), op.attr('out_w')] scale = op.attr('scale') @@ -698,9 +696,7 @@ class PaddleOpMapper(object): 'Resize', inputs=[op.input('X')[0], scale_name], outputs=op.output('Out'), - mode='nearest', - coordinate_transformation_mode=coordinate_transformation_mode - ) + mode='nearest') return [scale_node, node] else: raise Exception("Unexpected situation happend") -- GitLab