From 77b41e6f9b974a054278ba1f5f5a8a8328101642 Mon Sep 17 00:00:00 2001 From: Sergei Slashchinin <62052793+sl-sergei@users.noreply.github.com> Date: Sat, 14 Nov 2020 01:22:02 +0300 Subject: [PATCH] Merge pull request #813 from sl-sergei:test_conv1d Testdata for Conv1d layer * Simple test for Conv1d * Update tests, add cases for variable weights --- testdata/dnn/onnx/data/input_conv1d.npy | Bin 0 -> 428 bytes testdata/dnn/onnx/data/input_conv1d_bias.npy | Bin 0 -> 428 bytes .../onnx/data/input_conv1d_variable_w_0.npy | Bin 0 -> 288 bytes .../onnx/data/input_conv1d_variable_w_1.npy | Bin 0 -> 160 bytes .../onnx/data/input_conv1d_variable_wb_0.npy | Bin 0 -> 208 bytes .../onnx/data/input_conv1d_variable_wb_1.npy | Bin 0 -> 160 bytes .../onnx/data/input_conv1d_variable_wb_2.npy | Bin 0 -> 144 bytes testdata/dnn/onnx/data/output_conv1d.npy | Bin 0 -> 232 bytes testdata/dnn/onnx/data/output_conv1d_bias.npy | Bin 0 -> 312 bytes .../onnx/data/output_conv1d_variable_w.npy | Bin 0 -> 272 bytes .../onnx/data/output_conv1d_variable_wb.npy | Bin 0 -> 192 bytes testdata/dnn/onnx/generate_onnx_models.py | 37 ++++++++++++++++++ testdata/dnn/onnx/models/conv1d.onnx | Bin 0 -> 297 bytes testdata/dnn/onnx/models/conv1d_bias.onnx | Bin 0 -> 325 bytes .../dnn/onnx/models/conv1d_variable_w.onnx | Bin 0 -> 225 bytes .../dnn/onnx/models/conv1d_variable_wb.onnx | Bin 0 -> 1392 bytes 16 files changed, 37 insertions(+) create mode 100644 testdata/dnn/onnx/data/input_conv1d.npy create mode 100644 testdata/dnn/onnx/data/input_conv1d_bias.npy create mode 100644 testdata/dnn/onnx/data/input_conv1d_variable_w_0.npy create mode 100644 testdata/dnn/onnx/data/input_conv1d_variable_w_1.npy create mode 100644 testdata/dnn/onnx/data/input_conv1d_variable_wb_0.npy create mode 100644 testdata/dnn/onnx/data/input_conv1d_variable_wb_1.npy create mode 100644 testdata/dnn/onnx/data/input_conv1d_variable_wb_2.npy create mode 100644 testdata/dnn/onnx/data/output_conv1d.npy create mode 100644 testdata/dnn/onnx/data/output_conv1d_bias.npy create mode 100644 testdata/dnn/onnx/data/output_conv1d_variable_w.npy create mode 100644 testdata/dnn/onnx/data/output_conv1d_variable_wb.npy create mode 100644 testdata/dnn/onnx/models/conv1d.onnx create mode 100644 testdata/dnn/onnx/models/conv1d_bias.onnx create mode 100644 testdata/dnn/onnx/models/conv1d_variable_w.onnx create mode 100644 testdata/dnn/onnx/models/conv1d_variable_wb.onnx diff --git a/testdata/dnn/onnx/data/input_conv1d.npy b/testdata/dnn/onnx/data/input_conv1d.npy new file mode 100644 index 0000000000000000000000000000000000000000..4aa1282a53e0dfff0d718cef3acfe465e32be2b0 GIT binary patch literal 428 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-Its=*3Pz@yItsN4WC5;L=?VM08Yb_*=H0L_R`uRKQP)WOW_3gR+%pUJ z9gJr`V8OW5?#q^i`~Mqkw%dJpu3dTlSKGY#s-D?Z=|~U-udATk_D_?!dK;_6)qI?dLcY*&F{3 z-+w|_c7IAbqpgO+pM3=hb#@ozAKG0re`foGOU2&i{zJQ+?HBjXx$9*g>_26nxKOyQ z{w-Gf&~Rag?JRrt&yzU4f4;xY{(FV-_FqKX?N`Z|*$Ldu-p4WJ#J*TjZhP^dQ~Rcr zJ=v#HVP{{u{*e90a0!R)!V~sS_Fc4(;ad0p$f|XFV|4fLZF{6|e{FWy{;0y~Hb12u f_D{cUYxjmp-u_;^vi+Lp)%)^dgdGfTf7lNI3|Xh_ literal 0 HcmV?d00001 diff --git a/testdata/dnn/onnx/data/input_conv1d_bias.npy b/testdata/dnn/onnx/data/input_conv1d_bias.npy new file mode 100644 index 0000000000000000000000000000000000000000..e00f34f6033aaddf93949f4a901a1723bf3112f3 GIT binary patch literal 428 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-Its=*3Pz@yItsN4WC5;~CzkGi%I&bf?%neJA4C)O$=r}W5E?RdZ>TBv z-kIrT_6qK{`#v`B-PibP)_(0w`ThTL-tPPU=c|3O)VY0A5B#-lZq?fVdxf<9)JInP zU#TSRzfyf|pA4tp{?n%g>~A~B*h}8MYb$BvxPP%;mEHH4d3&>x-r1hum)Or`Ie-60 z(TjT@xUaWg&7Hu-toX>yGGr4_D{cY*=uyN*qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$7ItoB!XrQU1P^&-|;QHsnyFc-n#Q{P0gZs_In(eopT))p${-pgzGZ(wP z?T73Z&aSXOvv8;V&UqnwuRl=O@18BV@AzJh{n~$6_jh;4*k^IhwAGB_w-@B%urCy! zXTMf$@BXVhAMF3}XSVHH{;vJMPm0>J{g}Mp?wrs*ku3Lp!3X!*?+!KIf8wcyUAEgg nd-uZK`)=P^x&O_-8}_P(EDp1oTI@=f3hZZV&9!e7`ECaQ^@?bF literal 0 HcmV?d00001 diff --git a/testdata/dnn/onnx/data/input_conv1d_variable_w_1.npy b/testdata/dnn/onnx/data/input_conv1d_variable_w_1.npy new file mode 100644 index 0000000000000000000000000000000000000000..428f56323712d34fd3a4acdece5d86758fa8a3de GIT binary patch literal 160 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$7Itn19siRPs6xm^WT`U|NoI*`+!sp FdjPcgDd+$I literal 0 HcmV?d00001 diff --git a/testdata/dnn/onnx/data/input_conv1d_variable_wb_0.npy b/testdata/dnn/onnx/data/input_conv1d_variable_wb_0.npy new file mode 100644 index 0000000000000000000000000000000000000000..a2fb2856565a07ed66f1aa7bc2bfce2d0c4be265 GIT binary patch literal 208 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$7ItoB!s;Q$;t3V#$x~j8uuk+KY{m+k<+d4)3+86bI$Nr5c{q`^Qm}$>( z>DB%tBG>KgTPD~a_r7K4lrwQZ+p%N&W=gHzCw->aUVHbOeWnYg_oq+axljAef&Ic( GO#1;3&qk&I literal 0 HcmV?d00001 diff --git a/testdata/dnn/onnx/data/input_conv1d_variable_wb_1.npy b/testdata/dnn/onnx/data/input_conv1d_variable_wb_1.npy new file mode 100644 index 0000000000000000000000000000000000000000..3aafb1ae581acf20c458c80e3a8166fed97711e5 GIT binary patch literal 160 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$7Itn19siRPqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= nXCxM+0{I#yI+{8PwF(pfE+?rU`|n>_y#MEqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-ItoTQ3Wmm-ItsN4WC5;wpZD$iD?8gxE$HvQQ2*Wgv}WkqnK+u;cW=9D zSNbyD&Z4n>PjTM^+du#9_lG=~XJ@cH*M8@>8T-~ny6m^$xUe_$ ief!nU;G2s5mJ^frP8Zp>_kRA$eWx?)?aX-I+5rIV)>AkD literal 0 HcmV?d00001 diff --git a/testdata/dnn/onnx/data/output_conv1d_bias.npy b/testdata/dnn/onnx/data/output_conv1d_bias.npy new file mode 100644 index 0000000000000000000000000000000000000000..035122d27820e844b33eb23892d8f8fe596ee5e1 GIT binary patch literal 312 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-ItoTWWUQ&9P^&-|;5zug-2SP;x_!?BV(nLaI=au=Hr{^fS0(%HCf)Y- z2fyw+z-+Q_*Wu^;ram^XSG>c!kM+}MyNBm@?U^dF%Eqfm9n|VBH O-$SvSeWvSU_X7Ye5Pbyz literal 0 HcmV?d00001 diff --git a/testdata/dnn/onnx/data/output_conv1d_variable_w.npy b/testdata/dnn/onnx/data/output_conv1d_variable_w.npy new file mode 100644 index 0000000000000000000000000000000000000000..fd571a788e0d73d075e6ad3f1da03c1f31fb16d8 GIT binary patch literal 272 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$7ItoB!si~t-t3V#$nq$pi8#l$sVY7aty=bk{0gX^sd$}#K`(N-d+Y7mP z*c;o2+biskap=j7bC_}X@xE@B&HK~h&+O-}7T7O-O>^JQYUcg!j#KuZTvF* z;sNUc$9XU8SDRNjJaKGy(9(C`SHvK1Z?l49-{gWmhbT5}hq{AFd#{yo?pt`g*}>H% T-Qja_p3;QQ0W!eJ(SS?u# literal 0 HcmV?d00001 diff --git a/testdata/dnn/onnx/data/output_conv1d_variable_wb.npy b/testdata/dnn/onnx/data/output_conv1d_variable_wb.npy new file mode 100644 index 0000000000000000000000000000000000000000..ba9bf68278692671823d701a2cc15198ca6e0856 GIT binary patch literal 192 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$7ItoB!qN$@$t3V#$YE{qK|ND}|f%kt_?%%*1w118KxBV;rE#0T~RO7(A q$4&dW^_urft8-+wpD{wYoV`=#g3-VXpFIza;f literal 0 HcmV?d00001 diff --git a/testdata/dnn/onnx/generate_onnx_models.py b/testdata/dnn/onnx/generate_onnx_models.py index bcae36d97..4458f3ea6 100644 --- a/testdata/dnn/onnx/generate_onnx_models.py +++ b/testdata/dnn/onnx/generate_onnx_models.py @@ -986,3 +986,40 @@ def forward(self, x): x = Variable(torch.randn(1, 3, 2, 2)) model = Scale() save_data_and_model("scale", x, model) + +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) + +x = Variable(torch.randn(1, 3, 25)) +conv1d = nn.Conv1d(3, 2, kernel_size=3, padding=0, stride=1, dilation=1, bias=True) +save_data_and_model("conv1d_bias", x, conv1d) + +class Conv1d(nn.Module): + def forward(self, x, kernel): + out = F.conv1d(x, kernel, groups=1) + return out + +x = Variable(torch.randn(2, 2, 10)) +kernel = Variable(torch.randn(2, 2, 2)) +model = Conv1d() +save_data_and_model_multy_inputs("conv1d_variable_w", model, x, kernel) + +class Conv1dBias(nn.Module): + def forward(self, x, kernel, bias): + batch = x.size(0) + channel = x.size(1) + x = x.view(1, batch*channel, x.size(2)) + kernel = kernel.view(batch*channel, 1, 2) + conv = nn.Conv1d(4, 4, kernel_size=2, bias=False, groups=4) + conv.weight = nn.Parameter(kernel) + conv.bias = nn.Parameter(bias) + out = conv(x) + out = out.view(batch, channel, out.size(2)) + return out + +x = Variable(torch.randn(2, 2, 5)) +kernel = Variable(torch.randn(2, 2, 2)) +bias = Variable(torch.randn(4)) +model = Conv1dBias() +save_data_and_model_multy_inputs("conv1d_variable_wb", model, x, kernel, bias) diff --git a/testdata/dnn/onnx/models/conv1d.onnx b/testdata/dnn/onnx/models/conv1d.onnx new file mode 100644 index 0000000000000000000000000000000000000000..ee23ef97065fa1b4b1c03937aadc5c463a90bfd6 GIT binary patch literal 297 zcmd;J6Jjr@EXglQ&X8g@)HAc1#Kcv=#c06AR-T%fo>3yiXe7nvoS#<~Z=l2iqO}CL zI8!on5=%1k^NJmq7BI4F@o=%G7v+~0NH8v7WYQAm;>k`e%1h0OFV09TNOfQaDdFW} zDM(BKs)y*{<6sHY z>@Gx>*llzCZ)@~w#Xg3d*nJoBwCn^P_1UHR literal 0 HcmV?d00001 diff --git a/testdata/dnn/onnx/models/conv1d_bias.onnx b/testdata/dnn/onnx/models/conv1d_bias.onnx new file mode 100644 index 0000000000000000000000000000000000000000..29adfb51540566da7d6f9601666fa3f353da4ee1 GIT binary patch literal 325 zcmd;J6Jjr@EXglQ&X8g@)HAbM$HY~}#c06AR-T%fo>9WZl9ZWPEW~Im#pax!R~B!e z!~&wV1h_a;GIJ73GV}9_9T*odvTN~hv8EU0mlj9>c}!ZuTs+ySMR}X51*s0q zASJw9ECq=v#SRP(3?MEa7khC@QD#ai!~`J$urqYCGD~z*D+=<9O0+~cm;@M|z)tYu zcy_+ij-|0{pH>tH69+Q~Gf)QVNH33u{i!x=95HswnHu*+hh**hZREC3?q!~xK#mJS-#c06AXeh*JB*o^OpH~)dpu_^AwFJ00Q!;ZB zOEUBGiX9jiFtTg$aIvNr<(C#n0C`MW!dyJrsYQ9IIq}6Ai3O<+Odut^Tr35NDa8&9 z4h$eJ9~XOZNl|7>D#QdK0kGY=S(zoesTBqJMI}+{_C}D&}g42mffD-`E%_^+` literal 0 HcmV?d00001 diff --git a/testdata/dnn/onnx/models/conv1d_variable_wb.onnx b/testdata/dnn/onnx/models/conv1d_variable_wb.onnx new file mode 100644 index 0000000000000000000000000000000000000000..ba8a1da7f1cf23efcece549ccff7d77fd626833a GIT binary patch literal 1392 zcma)6U60a06y50-TJEADH7fQ=`(&zYn3;az6ImZjNPN-wvM)_{X#^#Jv}{&?&HgR_ zjb~a~AW|dAgxl%4bI+V}Z_T!4tbgXK&F#!S=a<2|-$c)d4J{^Zu53`1l?P?RgR)*@S$14DAQoCIs>}MP%RVLM6N@Z1vRfawi#Tx3@kh^< z2pS(&bi#^`hh2WaCu-!Q9q@TWI17s-Thx?Brzs7Hjezs*?w4iuW1FVG(wGmOPW@C0 zmu6!KXV4|i6~G5ac;1Ky4;diG#|n@a+8r2qo4`_7Q-;UZyo4A4hX6-5eM+;UF}QS$ zU999PRMhy$ZYvqNSL&$9;W9!Tk@NpWP6!YTu_EO8dvZY|IZglq92}4f_vE(V5CIa9 zelt%p07KirJ?~;3Il2nm9(AVkMUv0a-D3t--7dAhZdTiMUq^GgPpJDn-7M2ZT-<%E zDaa$z*U1zv6h63*$;k4}dzBM zs_R}U{eZ^ANq_IG2x@1oUh(A`e4FQk^nShC_ro^n$zoI r<}K=(%<7V6YP;1^FSzyh3+>w4brg|_BpnI*O&^r~6KMTP>vjGB>NqQ> literal 0 HcmV?d00001