From 2702fbcce31d9c96261422acc5a28d0c389ade02 Mon Sep 17 00:00:00 2001 From: rogday Date: Mon, 31 Jan 2022 00:52:19 +0300 Subject: [PATCH] add tests --- .../dnn/onnx/data/input_slice_neg_starts.npy | Bin 168 -> 416 bytes .../dnn/onnx/data/output_slice_neg_starts.npy | Bin 168 -> 136 bytes testdata/dnn/onnx/generate_onnx_models.py | 49 +++++++++++++++--- .../dnn/onnx/models/slice_neg_starts.onnx | Bin 165 -> 214 bytes 4 files changed, 41 insertions(+), 8 deletions(-) diff --git a/testdata/dnn/onnx/data/input_slice_neg_starts.npy b/testdata/dnn/onnx/data/input_slice_neg_starts.npy index 796895eaf4fe024771dfd342b3d2cb005fe6123f..7360d81acdb9d6778235e84fab0ef63b481cadc1 100644 GIT binary patch delta 319 zcmV-F0l@yK0iXkrJq|J~ATul=G%O%9DJ&p;kx?#@UEnwWu0D zGM3Q4TfqmwQ(x=9?7sUyj`2vohElOTCaSeRXC`ky*c`IIGk0D;1DZTOZt$+Yz5T{K z;n1T$v(A5FzvDp7K4Uo^ynPAgzjt6wzsA``K28s&KbJ`MpKz}dBqKUP6uJS!jUztZElzV##I8$Xb=%fHeqQ#(vshrbC`4!?8? R+dN|0J3c7|@xJ)0i#}21myQ4c delta 64 zcmV-G0KfmB1E>LzJqa-^ATcm0EFgW6Q7(~S3n>am_1!+{``y2!1FOHf7-K)&m_$EP W?`b_*Rb@ViO$|RAEEK=_Es;F_v>59E diff --git a/testdata/dnn/onnx/data/output_slice_neg_starts.npy b/testdata/dnn/onnx/data/output_slice_neg_starts.npy index 796895eaf4fe024771dfd342b3d2cb005fe6123f..eaba197b67f201933a55cbfddde14d6f113acee9 100644 GIT binary patch delta 34 ocmZ3%*ugl#f!jz&!4QZvbrfnR2I@^rVB_SPcA;VaGd`|;0HF^GrvLx| delta 61 zcmV-D0K)%>0jL3xKn5`|DJ&p;kx?#@U<)YHFQkqywwJx)@_W+?Yf^QtxR! TSyg2|h)oSY8!QyR`7Mz=*0mT^ diff --git a/testdata/dnn/onnx/generate_onnx_models.py b/testdata/dnn/onnx/generate_onnx_models.py index b930c84d2..47b1cc887 100644 --- a/testdata/dnn/onnx/generate_onnx_models.py +++ b/testdata/dnn/onnx/generate_onnx_models.py @@ -434,16 +434,49 @@ def forward(self, x): save_data_and_model("slice", input, model) save_data_and_model("slice_opset_11", input, model, version=11) -class SliceStarts(nn.Module): - def __init__(self, *args, **kwargs): - super(SliceStarts, self).__init__() +def generate_slice_neg_starts(): + x = np.random.randn(2, 3, 4, 3).astype(np.float32) + y = x[-1:2, -3:-1, 2:3, 1:-1] - def forward(self, x): - return x[-1:] + starts = np.array([-1, -3, 2, 1], dtype=np.int64) + starts = onnx.numpy_helper.from_array(starts, name='starts') + ends = np.array([ 2, -1, 3, -1], dtype=np.int64) + ends = onnx.numpy_helper.from_array(ends, name='ends') -model = SliceStarts() -input_ = Variable(torch.randn(1, 10, dtype=torch.float32)) -save_data_and_model("slice_neg_starts", input_, model) + node = onnx.helper.make_node( + 'Slice', + inputs=['X', 'starts', 'ends'], + outputs=['Y'], + ) + + X = onnx.helper.make_tensor_value_info('X', onnx.TensorProto.FLOAT, list(x.shape)) + Y = onnx.helper.make_tensor_value_info('Y', onnx.TensorProto.FLOAT, list(y.shape)) + + graph = onnx.helper.make_graph( + [node], # nodes + 'slice_neg_starts', # name + [X], # inputs + [Y], # outputs + ) + + graph.initializer.append(starts) + graph.initializer.append(ends) + + model = onnx.helper.make_model(graph, producer_name='onnx') + onnx.checker.check_model(model) + + name = 'slice_neg_starts' + + input_files = os.path.join("data", "input_" + name) + np.save(input_files, x.data) + + output_files = os.path.join("data", "output_" + name) + np.save(output_files, np.ascontiguousarray(y.data)) + + models_files = os.path.join("models", name + ".onnx") + onnx.save(model, models_files) + +generate_slice_neg_starts() input_2 = Variable(torch.randn(6, 6)) custom_slice_list = [ diff --git a/testdata/dnn/onnx/models/slice_neg_starts.onnx b/testdata/dnn/onnx/models/slice_neg_starts.onnx index 07c0c9966cd4d882eb8854de6b1035cc442c10c5..ac41c39cef100de6403d0751fc2011fa58a253fe 100644 GIT binary patch literal 214 zcmd90VN}mBpIO!Ks2KhlK?*e<1Ra4 literal 165 zcmd;J6Jjr@EXglQ&X8g@)U&keW8@0pVl)t9G?Zcw&dE$pjWikf0bBTX9KZQ3*o$KO<0FNC0esZdPWAZfZqAeo;x3Fvt!* bE*=g>Ar3Ak4n`p6N&*TRq6<1P32*`cy`?Ub