diff --git a/testdata/dnn/onnx/data/input_dynamic_batch.npy b/testdata/dnn/onnx/data/input_dynamic_batch.npy new file mode 100644 index 000000000..6146df46f Binary files /dev/null and b/testdata/dnn/onnx/data/input_dynamic_batch.npy differ diff --git a/testdata/dnn/onnx/data/input_scale_broadcast_0.npy b/testdata/dnn/onnx/data/input_scale_broadcast_0.npy new file mode 100644 index 000000000..84e55f5f6 Binary files /dev/null and b/testdata/dnn/onnx/data/input_scale_broadcast_0.npy differ diff --git a/testdata/dnn/onnx/data/input_scale_broadcast_1.npy b/testdata/dnn/onnx/data/input_scale_broadcast_1.npy new file mode 100644 index 000000000..b08129156 Binary files /dev/null and b/testdata/dnn/onnx/data/input_scale_broadcast_1.npy differ diff --git a/testdata/dnn/onnx/data/input_scale_broadcast_2.npy b/testdata/dnn/onnx/data/input_scale_broadcast_2.npy new file mode 100644 index 000000000..95938facb Binary files /dev/null and b/testdata/dnn/onnx/data/input_scale_broadcast_2.npy differ diff --git a/testdata/dnn/onnx/data/output_dynamic_batch.npy b/testdata/dnn/onnx/data/output_dynamic_batch.npy new file mode 100644 index 000000000..4a69fa177 Binary files /dev/null and b/testdata/dnn/onnx/data/output_dynamic_batch.npy differ diff --git a/testdata/dnn/onnx/data/output_scale_broadcast.npy b/testdata/dnn/onnx/data/output_scale_broadcast.npy new file mode 100644 index 000000000..84e55f5f6 Binary files /dev/null and b/testdata/dnn/onnx/data/output_scale_broadcast.npy differ diff --git a/testdata/dnn/onnx/generate_onnx_models.py b/testdata/dnn/onnx/generate_onnx_models.py index 6187bbe54..538df2739 100644 --- a/testdata/dnn/onnx/generate_onnx_models.py +++ b/testdata/dnn/onnx/generate_onnx_models.py @@ -1117,6 +1117,19 @@ def forward(self, x): model = Scale() save_data_and_model("scale", x, model) +class ScaleBroadcast(nn.Module): + def __init__(self, *args, **kwargs): + super(ScaleBroadcast, self).__init__() + + def forward(self, x0, x1, x2): + return torch.mul(torch.mul(x0, x1), x2) + +model = ScaleBroadcast() +input_0 = Variable(torch.ones(2, 1, 4, 5, dtype=torch.float32)) +input_1 = Variable(torch.ones(1, 4, 1, dtype=torch.float32)) +input_2 = Variable(torch.ones(2, 1, 4, 1, dtype=torch.float32)) +save_data_and_model_multy_inputs("scale_broadcast", model, input_0, input_1, input_2) + x = Variable(torch.randn(1, 3, 25)) conv1d = nn.Conv1d(3, 2, kernel_size=3, padding=2, stride=2, dilation=2, bias=False) save_data_and_model("conv1d", x, conv1d) @@ -1268,6 +1281,19 @@ def forward(self, x): save_data_and_model("average_pooling_dynamic_axes", input, ave_pool) postprocess_model("models/average_pooling_dynamic_axes.onnx", [[1, 3, 'height', 'width']]) +class DynamicBatch(nn.Module): + def __init__(self, *args, **kwargs): + super(DynamicBatch, self).__init__() + self.pool = nn.MaxPool2d(2, stride=2) + + def forward(self, x): + return torch.cat((self.pool(x), torch.ones(2, 3, 1, 2))) + +model = DynamicBatch() +input_ = Variable(torch.ones(2, 3, 3, 4, dtype=torch.float32)) +save_data_and_model("dynamic_batch", input_, model, export_params=True) +postprocess_model("models/dynamic_batch.onnx", [['batch_size', 3, 3, 4]]) + x = Variable(torch.randn(1, 3, 10)) max_pool = nn.MaxPool1d(kernel_size=(5), stride=1, padding=2, dilation=1) save_data_and_model("maxpooling_1d", x, max_pool) diff --git a/testdata/dnn/onnx/models/dynamic_batch.onnx b/testdata/dnn/onnx/models/dynamic_batch.onnx new file mode 100644 index 000000000..c2a3b49ae Binary files /dev/null and b/testdata/dnn/onnx/models/dynamic_batch.onnx differ diff --git a/testdata/dnn/onnx/models/scale_broadcast.onnx b/testdata/dnn/onnx/models/scale_broadcast.onnx new file mode 100644 index 000000000..c45a4f5fa --- /dev/null +++ b/testdata/dnn/onnx/models/scale_broadcast.onnx @@ -0,0 +1,30 @@ +pytorch1.9:° + +0 +13Mul_0"Mul + +3 +24Mul_1"Multorch-jit-exportZ +0 + + + + +Z +1 + + + +Z +2 + + + + +b +4 + + + + +B \ No newline at end of file