(self, op, lhs_dict, rhs_dict, scale_offset,
unused_ops, unused_args, epsilon)
| 3273 | return lhs_dict |
| 3274 | |
| 3275 | def do_fold_instance_norm(self, op, lhs_dict, rhs_dict, scale_offset, |
| 3276 | unused_ops, unused_args, epsilon): |
| 3277 | net = self._model |
| 3278 | del op.output_shape[0].dims[:] |
| 3279 | op.output_shape[0].dims.extend( |
| 3280 | lhs_dict['final_add_op'].output_shape[0].dims) |
| 3281 | for unused_op in unused_ops: |
| 3282 | net.op.remove(unused_op) |
| 3283 | |
| 3284 | affine_arg = op.arg.add() |
| 3285 | affine_arg.name = MaceKeyword.mace_affine_str |
| 3286 | if scale_offset: |
| 3287 | affine_arg.i = 1 |
| 3288 | op.input.extend([rhs_dict['scale_tensor_name'], |
| 3289 | rhs_dict['offset_tensor_name']]) |
| 3290 | net.op.remove(rhs_dict['rsqrt_mul_scale_op']) |
| 3291 | else: |
| 3292 | affine_arg.i = 0 |
| 3293 | net.op.remove(rhs_dict['rhs_of_final_add']) |
| 3294 | net.op.remove(lhs_dict['lhs_of_final_add']) |
| 3295 | self.replace_quantize_info(op, lhs_dict['final_add_op']) |
| 3296 | op.output[0] = lhs_dict['final_add_op'].output[0] |
| 3297 | self.safe_remove_node(lhs_dict['final_add_op'], op) |
| 3298 | |
| 3299 | op.type = MaceOp.InstanceNorm.name |
| 3300 | for arg in unused_args: |
| 3301 | op.arg.remove(arg) |
| 3302 | epsilon_arg = op.arg.add() |
| 3303 | epsilon_arg.name = MaceKeyword.mace_epsilon_str |
| 3304 | epsilon_arg.f = epsilon |
| 3305 | |
| 3306 | def fold_instance_norm(self): |
| 3307 | net = self._model |
no test coverage detected