From a43fbb5e9a726d8db6d351d085a27de07d0aa2b4 Mon Sep 17 00:00:00 2001 From: Smirnov Egor Date: Mon, 9 Aug 2021 13:57:01 +0300 Subject: [PATCH 1/2] add tests for Max layer in TFImporter --- testdata/dnn/tensorflow/generate_tf_models.py | 16 ++++++++++++++++ testdata/dnn/tensorflow/max_pool_by_axis_in.npy | Bin 0 -> 192 bytes testdata/dnn/tensorflow/max_pool_by_axis_net.pb | Bin 0 -> 403 bytes .../dnn/tensorflow/max_pool_by_axis_out.npy | Bin 0 -> 192 bytes .../dnn/tensorflow/reduce_max_channel_in.npy | Bin 0 -> 224 bytes .../reduce_max_channel_keep_dims_net.pb | Bin 0 -> 232 bytes .../reduce_max_channel_keep_dims_out.npy | Bin 0 -> 160 bytes .../dnn/tensorflow/reduce_max_channel_net.pb | Bin 0 -> 232 bytes .../dnn/tensorflow/reduce_max_channel_out.npy | Bin 0 -> 160 bytes testdata/dnn/tensorflow/reduce_max_in.npy | Bin 0 -> 608 bytes testdata/dnn/tensorflow/reduce_max_net.pb | Bin 0 -> 234 bytes testdata/dnn/tensorflow/reduce_max_out.npy | Bin 0 -> 168 bytes 12 files changed, 16 insertions(+) create mode 100644 testdata/dnn/tensorflow/max_pool_by_axis_in.npy create mode 100644 testdata/dnn/tensorflow/max_pool_by_axis_net.pb create mode 100644 testdata/dnn/tensorflow/max_pool_by_axis_out.npy create mode 100644 testdata/dnn/tensorflow/reduce_max_channel_in.npy create mode 100644 testdata/dnn/tensorflow/reduce_max_channel_keep_dims_net.pb create mode 100644 testdata/dnn/tensorflow/reduce_max_channel_keep_dims_out.npy create mode 100644 testdata/dnn/tensorflow/reduce_max_channel_net.pb create mode 100644 testdata/dnn/tensorflow/reduce_max_channel_out.npy create mode 100644 testdata/dnn/tensorflow/reduce_max_in.npy create mode 100644 testdata/dnn/tensorflow/reduce_max_net.pb create mode 100644 testdata/dnn/tensorflow/reduce_max_out.npy diff --git a/testdata/dnn/tensorflow/generate_tf_models.py b/testdata/dnn/tensorflow/generate_tf_models.py index 8ef276956..06b88aaaa 100644 --- a/testdata/dnn/tensorflow/generate_tf_models.py +++ b/testdata/dnn/tensorflow/generate_tf_models.py @@ -572,6 +572,22 @@ def keras_relu6(x): save(inp, reduced, 'reduce_mean') ################################################################################ inp = tf.placeholder(tf.float32, [2, 3, 4, 5], 'input') +reduced = tf.reduce_max(inp, axis=[1, 2], keepdims=True) +save(inp, reduced, 'reduce_max') +################################################################################ +inp = tf.placeholder(tf.float32, [1, 2, 2, 4], 'ReduceMax') +out = tf.reduce_max([inp, inp * 2], axis=0) +save(inp, out, 'max_pool_by_axis') +################################################################################ +inp = tf.placeholder(tf.float32, [1, 4, 2, 3], 'input') +out = tf.math.reduce_max(inp, axis=-1) +save(inp, out, 'reduce_max_channel') +################################################################################ +inp = tf.placeholder(tf.float32, [1, 4, 2, 3], 'input') +out = tf.math.reduce_max(inp, axis=-1, keep_dims=True) +save(inp, out, ('reduce_max_channel', 'keep_dims'), is_gen_data=False) +################################################################################ +inp = tf.placeholder(tf.float32, [2, 3, 4, 5], 'input') reduced = tf.reduce_sum(inp, axis=[1, 2], keepdims=True) save(inp, reduced, 'reduce_sum') ################################################################################ diff --git a/testdata/dnn/tensorflow/max_pool_by_axis_in.npy b/testdata/dnn/tensorflow/max_pool_by_axis_in.npy new file mode 100644 index 0000000000000000000000000000000000000000..810e1137513457f6d77841a691f09755175d1258 GIT binary patch literal 192 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-ItnH_3PwPrsiRP{DFLU|;Z1WS_JUhy5|Z^L9^azwE2|UT6;h2AVjl literal 0 HcmV?d00001 diff --git a/testdata/dnn/tensorflow/max_pool_by_axis_net.pb b/testdata/dnn/tensorflow/max_pool_by_axis_net.pb new file mode 100644 index 0000000000000000000000000000000000000000..3af32187f522467d4a8958bec879362fa1d7b4d6 GIT binary patch literal 403 zcmZ{g(MrQG6o!+uq1&mV92iP{0SU-9^r}~G4!oKS*@br{G=YU>ZCP9C-rlscS_Cf+ zgoN+={}Wh2_^wr*>a}c=Ifff6Q@zWr(noOzyxhq`BgWUrM$`@a9$$pORdsTYY(`-L zH!c4-J+`jOXHhQ{0nlyN^A*B#Pm>jOh5kmS`@hs#_`?VQUpA&h uc1zmJH+Nw00lX8rT-iiJY4qPuw4$w1jVt2)+OJ@|*SbiQIk<>>g5(RrEng!5 literal 0 HcmV?d00001 diff --git a/testdata/dnn/tensorflow/max_pool_by_axis_out.npy b/testdata/dnn/tensorflow/max_pool_by_axis_out.npy new file mode 100644 index 0000000000000000000000000000000000000000..41ae850e8060a9e5a5bccd98bcb056d3bfd7584b GIT binary patch literal 192 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-ItnH_3PwPrsiRPqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-Its=*3MM)VMw&VbwF+bau3fvc_uqdy(Jr9Sao?tWlkLQA3+}(LZ=>zw z{@MGE_6zO*toh&e+nfFSWxn0CJ2d_BzU`lK>{l<--7h;c%|7;YnXP8fcKfK+|MtC% cO0i#=5oq7EWRjipCLa487mwS$xBIsj05JMd00000 literal 0 HcmV?d00001 diff --git a/testdata/dnn/tensorflow/reduce_max_channel_keep_dims_net.pb b/testdata/dnn/tensorflow/reduce_max_channel_keep_dims_net.pb new file mode 100644 index 0000000000000000000000000000000000000000..19bfa8748654a775ae92f3ef283b2b7e32163e1f GIT binary patch literal 232 zcmZ{f!3u&v5QbgXB^?jRTmpN6*h@lm@f39nf)3Jk5qH5QQ*kxy>1&OGE)9GPbNS}~ zVFxo^w?i*B7@n)VP-Rm|)$tIR>>sT{Hz9lp%#^u3FpbdliN&+H779mLobpj@*PW6> z(d(ubx|X_72HByhP5a`2%4a~bsQ@}JXFfkI literal 0 HcmV?d00001 diff --git a/testdata/dnn/tensorflow/reduce_max_channel_keep_dims_out.npy b/testdata/dnn/tensorflow/reduce_max_channel_keep_dims_out.npy new file mode 100644 index 0000000000000000000000000000000000000000..53c42d1e6f44295983e59cefefece683a251633a GIT binary patch literal 160 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-ItoB!qN8A>siRPDM^w|~m9cizNfFFP~M JKK68(EdbCIDf|Ec literal 0 HcmV?d00001 diff --git a/testdata/dnn/tensorflow/reduce_max_channel_net.pb b/testdata/dnn/tensorflow/reduce_max_channel_net.pb new file mode 100644 index 0000000000000000000000000000000000000000..708e7461397cc27eb6fdfb11ee2fe0d95ff2f9ff GIT binary patch literal 232 zcmZ{eu?oU45Qdwi!S*^>vIzABB#T9yI*D$A;80vkX#x$_v^1&Ir`K2%Ts-)=yXE_T z*uhNcZm`9MMdzlhWZgDG_B;YA?4y$mr-(0sn!0ok%VLHDqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-ItnH_3Pzeb3bhL40WQs;?e_PdPPBU&m14g#BhY^PryP6dO+5CpGt=y2 IPnX#O0LLsT-v9sr literal 0 HcmV?d00001 diff --git a/testdata/dnn/tensorflow/reduce_max_in.npy b/testdata/dnn/tensorflow/reduce_max_in.npy new file mode 100644 index 0000000000000000000000000000000000000000..1f39c060803d6144a7e35043e01222f756440882 GIT binary patch literal 608 zcmbWr`%6<{9DwmjMX<3{Oi?R4ls0W=gO-7pW!s@GzXt|S zHQ{(g9e4{9A=Tf8Wqtw$Z=Rsq5}305=sEQ7mO`900oWIt9aFPI*ivc2xtN0vNv%W- z`&v)rYB!lBD`=7J#0*^!Qk@!nVO!Ady$9LL252~uMI!t)m>umRmFukFnQx@M!CTSH zbyH|1#Dg${YGnBktJi+di>8+p}O zerX1zp)#0xn+cwrKyp?XN%zmx2$dQ4x-Ixwhd N03&QsJiAgt{{p312jc($ literal 0 HcmV?d00001 diff --git a/testdata/dnn/tensorflow/reduce_max_net.pb b/testdata/dnn/tensorflow/reduce_max_net.pb new file mode 100644 index 0000000000000000000000000000000000000000..544e05f1b67e9ea76147a8e0f0d890f7f2ae8d41 GIT binary patch literal 234 zcmZ{eu?vDg6vp-RNS{OT2m+&}DQ?Lcoubx)25FVUJMhR((KGD7?~;a=h98eNeBbwj z15A`|dXw)kx>mf9WnBr`vIwX!uSOzCT($(-mE1m<&X5Ge;#qtPg)=NJe8~6PR*Jqb zs@A#ELKU(@da8A2*b3;ASG~mf5pD1jBkRC*9EVtbr#!d;9ox{eCl0@EX%hb%VE}%n a#9&1|HUT#qji(UarEGGc9vza6i_RPVaW+2y literal 0 HcmV?d00001 diff --git a/testdata/dnn/tensorflow/reduce_max_out.npy b/testdata/dnn/tensorflow/reduce_max_out.npy new file mode 100644 index 0000000000000000000000000000000000000000..d5707e45fbf82cce4b290f5e44edd97e0e427c22 GIT binary patch literal 168 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$7Itr#b3Wh+WsiRPTzvInZ`` Date: Fri, 13 Aug 2021 15:40:55 +0300 Subject: [PATCH 2/2] Merge pull request #891 from JulieBar:lstm_activations * add test data for LSTM w/ activations * dnn: put lstm_cntk_tanh testdata in opencv_extra Co-authored-by: Alexander Alekhin --- testdata/dnn/onnx/data/input_lstm_cntk_tanh.pb | Bin 0 -> 58 bytes testdata/dnn/onnx/data/output_lstm_cntk_tanh.pb | 2 ++ testdata/dnn/onnx/models/lstm_cntk_tanh.onnx | Bin 0 -> 2829 bytes testdata/dnn/onnx/readme.lstm_cntk_tanh.txt | 3 +++ 4 files changed, 5 insertions(+) create mode 100644 testdata/dnn/onnx/data/input_lstm_cntk_tanh.pb create mode 100644 testdata/dnn/onnx/data/output_lstm_cntk_tanh.pb create mode 100644 testdata/dnn/onnx/models/lstm_cntk_tanh.onnx create mode 100644 testdata/dnn/onnx/readme.lstm_cntk_tanh.txt diff --git a/testdata/dnn/onnx/data/input_lstm_cntk_tanh.pb b/testdata/dnn/onnx/data/input_lstm_cntk_tanh.pb new file mode 100644 index 0000000000000000000000000000000000000000..3523f13bb0263d14c0940116c4ef6093bc09df6c GIT binary patch literal 58 zcmd;JARw!5#p>oD&8B literal 0 HcmV?d00001 diff --git a/testdata/dnn/onnx/data/output_lstm_cntk_tanh.pb b/testdata/dnn/onnx/data/output_lstm_cntk_tanh.pb new file mode 100644 index 000000000..02fd903dc --- /dev/null +++ b/testdata/dnn/onnx/data/output_lstm_cntk_tanh.pb @@ -0,0 +1,2 @@ +BSplice1349_Output_0Jxè3=fÏ=%G¾s!Û=ñŒl½ß½Ô½×=A‰={Ù½±h>õte½)Ä*¾RÓè<'ÒÏ=b݉½O[­=½ç4hFTL!Rp3#Ay8-wj_kgjMaG7ckwKCS%%3l!CecqcW|Ko;hMC) z`@Y}r^S`VrK@Et0g==UGSOF-deRMq& zV0?DTbFSps22>!`S?BfCX6IP*T(30-L_wFu#d2(brR!WZ3e@Z{)dN(-Y6WRGv(4*c zTt3EMLpLy{m@tc3`)XPFCNdesRI@(D6JWiZS?6P#7@wc%QDfxOAeI(So9H0LU#u%* zx7T~w>SAp<&DG5Q_NZ}^0I@Y}bv47e{A>$j#Cp^kG6Cq>VAL+r^mZm-REdWcP8Q z23bhC0^6WLs^|htqEYkwbHIftT~p0Wub7>1Nh%)Xdcw5fi+QMLxQrhHS#s zxE|LS)aELK;RYHjG&np{YaL0)N|CYLBvkD=j@T^RvF5-}lr!NnUzzj;)xWP4dUX?M z#TE+$pLJ7Zli%|{>^X$m8-9l)+yuIEMgvDHJ9zhyo2uVG2nV=C;gV`EbV}|w`KdZ& z7!wV@r_NnDf%-eo!Bf|_p)Yriqt2q!sH1fnRSoXu^G;pmSGC?nF5CScK}vEJ$u*)KT|TB#W6mWT3)vjPD^w^`MLNf~n@3>5rJK;6 zaTj?D5TrjCMw`f;&^;b6m^(|LwGQ$v_fs8ruAblzo;Zt$+85CoOSEwD#}t%eNfV5o zL?P+jILC!s1|gxZ4-I4Kj`5^_(64_CP)=#rv5_aGrLysbE^2l20QJq05%@Vigia1d zIr2XG7~LQGi@I{Y8?B7rfPPu`Guk?F7Twl!Jn`o=8tqLMR?XPpk+*J9|9*!HzfIkP zLf?n5XUyba(~N?qa+ptVi8}vPQU-K(?t`OUCbW6&QM7gDCDdG;B8*?lLguk<>UQe^ zR7e%VU7uJ{JjX-J9Y*e}J#?M^pJI{b$oe4QrF|nj4r?AkYWZ@JsSh>3inRHuP9%Xu zTum52G@&i=atzSmYVoTPIVAmnAb>&S($7(Y|8kC81rDqtRieX2!~wmi1E14jtjJN= z1|++}0*yhhFhv