|
10 | 10 | import numpy as np
|
11 | 11 | import onnx
|
12 | 12 | import onnxruntime
|
13 |
| -from onnx import helper, TensorProto, ModelProto, shape_inference |
| 13 | +from onnx import helper, TensorProto, ModelProto |
14 | 14 | from onnx import onnx_pb as onnx_proto
|
15 | 15 | from six import string_types
|
16 | 16 | from enum import Enum
|
@@ -52,9 +52,6 @@ def __init__(self, model, op_types_to_calibrate=[], augmented_model_path='augmen
|
52 | 52 | else:
|
53 | 53 | raise ValueError('model should be either model path or onnx.ModelProto.')
|
54 | 54 |
|
55 |
| - # Apply shape inference on the model |
56 |
| - self.model = onnx.shape_inference.infer_shapes(self.model) |
57 |
| - |
58 | 55 | self.op_types_to_calibrate = op_types_to_calibrate
|
59 | 56 | self.augmented_model_path = augmented_model_path
|
60 | 57 |
|
@@ -163,27 +160,26 @@ def augment_graph(self):
|
163 | 160 |
|
164 | 161 | added_nodes = []
|
165 | 162 | added_outputs = []
|
166 |
| - tensors, value_infos = self.select_tensors_to_calibrate(model) |
| 163 | + tensors, _ = self.select_tensors_to_calibrate(model) |
167 | 164 |
|
168 | 165 | for tensor in tensors:
|
169 |
| - |
170 |
| - # Get tensor's shape |
171 |
| - dim = len(value_infos[tensor].type.tensor_type.shape.dim) |
172 |
| - shape = (1,) if dim == 1 else list(1 for i in range(dim)) |
173 |
| - |
174 | 166 | # Adding ReduceMin nodes
|
175 | 167 | reduce_min_name = tensor + '_ReduceMin'
|
176 |
| - reduce_min_node = onnx.helper.make_node('ReduceMin', [tensor], [tensor + '_ReduceMin'], reduce_min_name) |
| 168 | + reduce_min_node = onnx.helper.make_node('ReduceMin', [tensor], [tensor + '_ReduceMin'], |
| 169 | + reduce_min_name, |
| 170 | + keepdims=0) |
177 | 171 |
|
178 | 172 | added_nodes.append(reduce_min_node)
|
179 |
| - added_outputs.append(helper.make_tensor_value_info(reduce_min_node.output[0], TensorProto.FLOAT, shape)) |
| 173 | + added_outputs.append(helper.make_tensor_value_info(reduce_min_node.output[0], TensorProto.FLOAT, ())) |
180 | 174 |
|
181 | 175 | # Adding ReduceMax nodes
|
182 | 176 | reduce_max_name = tensor + '_ReduceMax'
|
183 |
| - reduce_max_node = onnx.helper.make_node('ReduceMax', [tensor], [tensor + '_ReduceMax'], reduce_max_name) |
| 177 | + reduce_max_node = onnx.helper.make_node('ReduceMax', [tensor], [tensor + '_ReduceMax'], |
| 178 | + reduce_max_name, |
| 179 | + keepdims=0) |
184 | 180 |
|
185 | 181 | added_nodes.append(reduce_max_node)
|
186 |
| - added_outputs.append(helper.make_tensor_value_info(reduce_max_node.output[0], TensorProto.FLOAT, shape)) |
| 182 | + added_outputs.append(helper.make_tensor_value_info(reduce_max_node.output[0], TensorProto.FLOAT, ())) |
187 | 183 |
|
188 | 184 | model.graph.node.extend(added_nodes)
|
189 | 185 | model.graph.output.extend(added_outputs)
|
|
0 commit comments