diff --git a/testdata/dnn/onnx/data/input_normalize_fusion.npy b/testdata/dnn/onnx/data/input_normalize_fusion.npy new file mode 100644 index 000000000..8cdfd0bff Binary files /dev/null and b/testdata/dnn/onnx/data/input_normalize_fusion.npy differ diff --git a/testdata/dnn/onnx/data/output_normalize_fusion.npy b/testdata/dnn/onnx/data/output_normalize_fusion.npy new file mode 100644 index 000000000..420aebbce Binary files /dev/null and b/testdata/dnn/onnx/data/output_normalize_fusion.npy differ diff --git a/testdata/dnn/onnx/generate_onnx_models.py b/testdata/dnn/onnx/generate_onnx_models.py index 8d5cc52c3..f017ad775 100644 --- a/testdata/dnn/onnx/generate_onnx_models.py +++ b/testdata/dnn/onnx/generate_onnx_models.py @@ -1245,3 +1245,16 @@ def forward(self, x): x = Variable(torch.randn([1, 1, 3, 4])) model = PadCalculation() save_data_and_model("calc_pads", x, model, version=11) + +class NormalizeFusion(nn.Module): + def forward(self, x): + mul = x * x + sum = torch.sum(mul, dim=(1), keepdim=True) + maximum = torch.clamp(sum, min=1e-8) + sqrt = torch.sqrt(maximum) + reciprocal = torch.reciprocal(sqrt) + return x * reciprocal + +x = Variable(torch.randn([2, 3])) +model = NormalizeFusion() +save_data_and_model("normalize_fusion", x, model) diff --git a/testdata/dnn/onnx/models/normalize_fusion.onnx b/testdata/dnn/onnx/models/normalize_fusion.onnx new file mode 100644 index 000000000..196c6808c Binary files /dev/null and b/testdata/dnn/onnx/models/normalize_fusion.onnx differ