diff --git a/testdata/dnn/onnx/data/input_slice_opset_11_steps_2d.npy b/testdata/dnn/onnx/data/input_slice_opset_11_steps_2d.npy new file mode 100644 index 000000000..ded66f863 Binary files /dev/null and b/testdata/dnn/onnx/data/input_slice_opset_11_steps_2d.npy differ diff --git a/testdata/dnn/onnx/data/input_slice_opset_11_steps_3d.npy b/testdata/dnn/onnx/data/input_slice_opset_11_steps_3d.npy new file mode 100644 index 000000000..9b31f475d Binary files /dev/null and b/testdata/dnn/onnx/data/input_slice_opset_11_steps_3d.npy differ diff --git a/testdata/dnn/onnx/data/input_slice_opset_11_steps_4d.npy b/testdata/dnn/onnx/data/input_slice_opset_11_steps_4d.npy new file mode 100644 index 000000000..0dc840e0e Binary files /dev/null and b/testdata/dnn/onnx/data/input_slice_opset_11_steps_4d.npy differ diff --git a/testdata/dnn/onnx/data/input_slice_opset_11_steps_5d.npy b/testdata/dnn/onnx/data/input_slice_opset_11_steps_5d.npy new file mode 100644 index 000000000..0c9a26818 Binary files /dev/null and b/testdata/dnn/onnx/data/input_slice_opset_11_steps_5d.npy differ diff --git a/testdata/dnn/onnx/data/output_slice_opset_11_steps_2d.npy b/testdata/dnn/onnx/data/output_slice_opset_11_steps_2d.npy new file mode 100644 index 000000000..f7ff62cc5 Binary files /dev/null and b/testdata/dnn/onnx/data/output_slice_opset_11_steps_2d.npy differ diff --git a/testdata/dnn/onnx/data/output_slice_opset_11_steps_3d.npy b/testdata/dnn/onnx/data/output_slice_opset_11_steps_3d.npy new file mode 100644 index 000000000..379a9964c Binary files /dev/null and b/testdata/dnn/onnx/data/output_slice_opset_11_steps_3d.npy differ diff --git a/testdata/dnn/onnx/data/output_slice_opset_11_steps_4d.npy b/testdata/dnn/onnx/data/output_slice_opset_11_steps_4d.npy new file mode 100644 index 000000000..37375e682 Binary files /dev/null and b/testdata/dnn/onnx/data/output_slice_opset_11_steps_4d.npy differ diff --git a/testdata/dnn/onnx/data/output_slice_opset_11_steps_5d.npy b/testdata/dnn/onnx/data/output_slice_opset_11_steps_5d.npy new file mode 100644 index 000000000..91e31882f Binary files /dev/null and b/testdata/dnn/onnx/data/output_slice_opset_11_steps_5d.npy differ diff --git a/testdata/dnn/onnx/generate_onnx_models.py b/testdata/dnn/onnx/generate_onnx_models.py index 83777c983..b09ca5fb5 100644 --- a/testdata/dnn/onnx/generate_onnx_models.py +++ b/testdata/dnn/onnx/generate_onnx_models.py @@ -378,10 +378,14 @@ def forward(self, x): class Slice(nn.Module): - def __init__(self): + def __init__(self, custom_slice=None): + self.custom_slice=custom_slice super(Slice, self).__init__() def forward(self, x): + if self.custom_slice: + return x[self.custom_slice] + return x[..., 1:-1, 0:3] input = Variable(torch.randn(1, 2, 4, 4)) @@ -389,6 +393,47 @@ def forward(self, x): save_data_and_model("slice", input, model) save_data_and_model("slice_opset_11", input, model, version=11) +input_2 = Variable(torch.randn(6, 6)) +custom_slice_list = [ + slice(1, 3, 1), + slice(0, 3, 2) +] +model_2 = Slice(custom_slice=custom_slice_list) +save_data_and_model("slice_opset_11_steps_2d", input_2, model_2, version=11) +postprocess_model("models/slice_opset_11_steps_2d.onnx", [['height', 'width']]) + +input_3 = Variable(torch.randn(3, 6, 6)) +custom_slice_list_3 = [ + slice(None, None, 2), + slice(None, None, 2), + slice(None, None, 2) +] +model_3 = Slice(custom_slice=custom_slice_list_3) +save_data_and_model("slice_opset_11_steps_3d", input_3, model_3, version=11) +postprocess_model("models/slice_opset_11_steps_3d.onnx", [[3, 'height', 'width']]) + +input_4 = Variable(torch.randn(1, 3, 6, 6)) +custom_slice_list_4 = [ + slice(0, 5, None), + slice(None, None, None), + slice(1, None, 2), + slice(None, None, None) +] +model_4 = Slice(custom_slice=custom_slice_list_4) +save_data_and_model("slice_opset_11_steps_4d", input_4, model_4, version=11) +postprocess_model("models/slice_opset_11_steps_4d.onnx", [["batch_size", 3, 'height', 'width']]) + +input_5 = Variable(torch.randn(1, 2, 3, 6, 6)) +custom_slice_list_5 = [ + slice(None, None, None), + slice(None, None, None), + slice(0, None, 3), + slice(None, None, None), + slice(None, None, 2) +] +model_5 = Slice(custom_slice=custom_slice_list_5) +save_data_and_model("slice_opset_11_steps_5d", input_5, model_5, version=11) + class Eltwise(nn.Module): def __init__(self): diff --git a/testdata/dnn/onnx/models/slice_opset_11_steps_2d.onnx b/testdata/dnn/onnx/models/slice_opset_11_steps_2d.onnx new file mode 100644 index 000000000..efbf5122f Binary files /dev/null and b/testdata/dnn/onnx/models/slice_opset_11_steps_2d.onnx differ diff --git a/testdata/dnn/onnx/models/slice_opset_11_steps_3d.onnx b/testdata/dnn/onnx/models/slice_opset_11_steps_3d.onnx new file mode 100644 index 000000000..502560959 Binary files /dev/null and b/testdata/dnn/onnx/models/slice_opset_11_steps_3d.onnx differ diff --git a/testdata/dnn/onnx/models/slice_opset_11_steps_4d.onnx b/testdata/dnn/onnx/models/slice_opset_11_steps_4d.onnx new file mode 100644 index 000000000..e714b1fa8 Binary files /dev/null and b/testdata/dnn/onnx/models/slice_opset_11_steps_4d.onnx differ diff --git a/testdata/dnn/onnx/models/slice_opset_11_steps_5d.onnx b/testdata/dnn/onnx/models/slice_opset_11_steps_5d.onnx new file mode 100644 index 000000000..62ccae5f3 Binary files /dev/null and b/testdata/dnn/onnx/models/slice_opset_11_steps_5d.onnx differ