From dc29cb0ace346b5af02ab66a1bf0c9c1f2218516 Mon Sep 17 00:00:00 2001 From: Smirnov Egor Date: Wed, 18 Aug 2021 18:42:27 +0300 Subject: [PATCH 1/3] add tests for dynamic batch_size and axis selection in Scale layer --- .../dnn/onnx/data/input_dynamic_batch.npy | Bin 0 -> 416 bytes .../dnn/onnx/data/input_scale_broadcast_0.npy | Bin 0 -> 288 bytes .../dnn/onnx/data/input_scale_broadcast_1.npy | Bin 0 -> 144 bytes .../dnn/onnx/data/input_scale_broadcast_2.npy | Bin 0 -> 160 bytes .../dnn/onnx/data/output_dynamic_batch.npy | Bin 0 -> 224 bytes .../dnn/onnx/data/output_scale_broadcast.npy | Bin 0 -> 288 bytes testdata/dnn/onnx/generate_onnx_models.py | 26 +++++++++++++++ testdata/dnn/onnx/models/dynamic_batch.onnx | Bin 0 -> 340 bytes testdata/dnn/onnx/models/scale_broadcast.onnx | 30 ++++++++++++++++++ 9 files changed, 56 insertions(+) create mode 100644 testdata/dnn/onnx/data/input_dynamic_batch.npy create mode 100644 testdata/dnn/onnx/data/input_scale_broadcast_0.npy create mode 100644 testdata/dnn/onnx/data/input_scale_broadcast_1.npy create mode 100644 testdata/dnn/onnx/data/input_scale_broadcast_2.npy create mode 100644 testdata/dnn/onnx/data/output_dynamic_batch.npy create mode 100644 testdata/dnn/onnx/data/output_scale_broadcast.npy create mode 100644 testdata/dnn/onnx/models/dynamic_batch.onnx create mode 100644 testdata/dnn/onnx/models/scale_broadcast.onnx 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 0000000000000000000000000000000000000000..6146df46f902c0dc531be3057d99bdb878644afc GIT binary patch literal 416 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= iXCxM+0{I$7Its>MWTL5~P^&-&;9_8Cuph;^!vFxRQ&D38 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..84e55f5f6ea30d85a179fe0a05638ff9f27980d7 GIT binary patch literal 288 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= jXCxM+0{I$7Itqq53MM)VrkXkmwF+baE(V4M`@xI>_?qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I$-ItnH_3Wl0G3bhL40WJoH276=-04u8=g#Z8m literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..95938facbf34bfcee44974dd4d44d6a0f43ea22b GIT binary patch literal 160 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= iXCxM+0{I$7Itqq53MN2OQ%9jzfegUKz|dfi4+8)+OCg^C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4a69fa17765a6306ab2dfe0f1cb86c6047931592 GIT binary patch literal 224 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= jXCxM+0{I#yIts=*3WhogMw&VbwF+baE(V4Mds<=u7y2!c literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..84e55f5f6ea30d85a179fe0a05638ff9f27980d7 GIT binary patch literal 288 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= jXCxM+0{I$7Itqq53MM)VrkXkmwF+baE(V4M`@xI>_?&0ts7rL#h#=e{l r#ZU2s0T(#uxKcLF5|e*w?7td8SH}oTeu(?M&Fe)v9-!akmUy!t?vqD> literal 0 HcmV?d00001 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 From 88882e471c7d416b061fdb02bdf31fbc294fb429 Mon Sep 17 00:00:00 2001 From: wjj19950828 Date: Fri, 6 Aug 2021 21:29:54 +0800 Subject: [PATCH 2/3] add onnx model and test data --- .../dnn/onnx/data/input_resize_humanseg.npy | Bin 0 -> 224 bytes .../dnn/onnx/data/output_resize_humanseg.npy | Bin 0 -> 512 bytes testdata/dnn/onnx/generate_onnx_models.py | 24 ++++++++++++++++++ testdata/dnn/onnx/models/resize_humanseg.onnx | Bin 0 -> 834 bytes 4 files changed, 24 insertions(+) create mode 100644 testdata/dnn/onnx/data/input_resize_humanseg.npy create mode 100644 testdata/dnn/onnx/data/output_resize_humanseg.npy create mode 100644 testdata/dnn/onnx/models/resize_humanseg.onnx diff --git a/testdata/dnn/onnx/data/input_resize_humanseg.npy b/testdata/dnn/onnx/data/input_resize_humanseg.npy new file mode 100644 index 0000000000000000000000000000000000000000..21953e023443e2b074b3e44196fdafa878489603 GIT binary patch literal 224 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-ItoTQ3dTALCYm}5wF+bau9`_H_D(-n+6mbN*^8divX!pBV;dSOVK1|Y z-TrOvHM=RhR@>#r%G(QvJg_^OWMj`ckHucZK*au^sj7WgeXYIKqdyeE!3p-y Y9tPR3REW2o^TXVpH`>=;wbjNR0F@U%IRF3v literal 0 HcmV?d00001 diff --git a/testdata/dnn/onnx/data/output_resize_humanseg.npy b/testdata/dnn/onnx/data/output_resize_humanseg.npy new file mode 100644 index 0000000000000000000000000000000000000000..3a5d3fdac3874c7276740cf1be57e5b9ebfe3917 GIT binary patch literal 512 zcmbWr-Ahw(9LMpqaah~;qZY#+Hk77JA!O~LF0AF5tZ+#X ztB@TeosGcg;YJ7(f?$|uF{ zPTrrO#fvlacFzxro3)@+4V0J~A2Kf}W0<6Ygn{x<=u%UG61)yyS1O5y7tFf?Jq+)_cHd%+oS_8&sr)YBU4Tb(_aqDI^p0EEVNh(3gW5oPv zJGR^{g>qGm(c@JZ>DMFvlflz=2;8|d=(;k5?cZzh%BzD-ti-%Yhp^v>+>^sNvCEJA zvW$JB1b3MTWxX5+A8Fuhv0-n*gSFuvv<{zwX^kPJ(jz35qyCc)nbIQ|;KR z*2nd>H8n76lo}+pR^xdXwKq(uMz%EHGwMw8X3^j2D*=t z*B&Fw;6|Ej8V6g9wqYD-;~1I_@O!|>&;!*r<+HkNEmT`AU}Ur%8lh)R+b*_MTieA( z>QJXnRBFvKl7>XT&Wx&e>TQ(o*0Z1k4qfr`&{`uKK9Rmh!)xjgHg3{;<|!A97BLr+ z6?wdj;_yN)a-DI{O8%}6=DW2DF5zUBWktdTl`NJ873DlD7F6;~#EUFpKD^L$9_M_; z(lu%Yd*D=Kw+>MwxQ8v7 Date: Wed, 1 Sep 2021 19:34:49 +0200 Subject: [PATCH 3/3] Merge pull request #901 from diablodale:fix20575-downloader * another fix opencv/opencv#20575 * download_models: rename downloaded content for further investigation Co-authored-by: Alexander Alekhin --- testdata/dnn/download_models.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/testdata/dnn/download_models.py b/testdata/dnn/download_models.py index 6eca15c29..7cbbd4d40 100755 --- a/testdata/dnn/download_models.py +++ b/testdata/dnn/download_models.py @@ -51,7 +51,8 @@ def verify(self): break sha.update(buf) print(' actual {}'.format(sha.hexdigest())) - return self.sha == sha.hexdigest() + self.sha_actual = sha.hexdigest() + return self.sha == self.sha_actual except Exception as e: print(' catch {}'.format(e)) @@ -82,7 +83,10 @@ def get(self): print(' done') print(' file {}'.format(self.filename)) - return self.verify() + candidate_verify = self.verify() + if not candidate_verify: + self.handle_bad_download() + return candidate_verify def download(self): try: @@ -112,6 +116,27 @@ def save(self, r): print('>', end='') sys.stdout.flush() + def handle_bad_download(self): + if os.path.exists(self.filename): + # rename file for further investigation + try: + # NB: using `self.sha_actual` may create unbounded number of files + rename_target = self.filename + '.invalid' + # TODO: use os.replace (Python 3.3+) + try: + if os.path.exists(rename_target): # avoid FileExistsError on Windows from os.rename() + os.remove(rename_target) + finally: + os.rename(self.filename, rename_target) + print(' renaming invalid file to ' + rename_target) + except: + import traceback + traceback.print_exc() + finally: + if os.path.exists(self.filename): + print(' deleting invalid file') + os.remove(self.filename) + def GDrive(gid): def download_gdrive(dst):