diff --git a/testdata/cv/aruco/failmask9.png b/testdata/cv/aruco/failmask9.png new file mode 100644 index 000000000..1cfbd5730 Binary files /dev/null and b/testdata/cv/aruco/failmask9.png differ diff --git a/testdata/cv/qrcode/err_correct_1M.png b/testdata/cv/qrcode/err_correct_1M.png new file mode 100644 index 000000000..6786b75ba Binary files /dev/null and b/testdata/cv/qrcode/err_correct_1M.png differ diff --git a/testdata/cv/qrcode/err_correct_2L.png b/testdata/cv/qrcode/err_correct_2L.png new file mode 100644 index 000000000..6d8c355ef Binary files /dev/null and b/testdata/cv/qrcode/err_correct_2L.png differ diff --git a/testdata/cv/video/vas_object_tracking/detections_30_frames.yml b/testdata/cv/video/vas_object_tracking/detections_30_frames.yml new file mode 100644 index 000000000..4c94ab562 --- /dev/null +++ b/testdata/cv/video/vas_object_tracking/detections_30_frames.yml @@ -0,0 +1,216 @@ +%YAML:1.0 +--- +Frame_0: + {} +Frame_1: + box_1: + x: 278. + y: 251. + width: 39. + height: 108. + id: 15 +Frame_2: + box_1: + x: 288. + y: 252. + width: 38. + height: 102. + id: 15 +Frame_3: + box_1: + x: 297. + y: 251. + width: 31. + height: 100. + id: 15 +Frame_4: + box_1: + x: 288. + y: 252. + width: 38. + height: 102. + id: 15 +Frame_5: + box_1: + x: 297. + y: 251. + width: 31. + height: 100. + id: 15 +Frame_6: + box_1: + x: 303. + y: 245. + width: 28. + height: 103. + id: 15 +Frame_7: + box_1: + x: 311. + y: 243. + width: 36. + height: 102. + id: 15 +Frame_8: + box_1: + x: 316. + y: 244. + width: 35. + height: 99. + id: 15 +Frame_9: + box_1: + x: 319. + y: 239. + width: 35. + height: 104. + id: 15 +Frame_10: + box_1: + x: 330. + y: 235. + width: 31. + height: 103. + id: 15 +Frame_11: + box_1: + x: 332. + y: 237. + width: 34. + height: 99. + id: 15 +Frame_12: + box_1: + x: 335. + y: 236. + width: 36. + height: 100. + id: 15 +Frame_13: + box_1: + x: 340. + y: 234. + width: 34. + height: 101. + id: 15 +Frame_14: + box_1: + x: 340. + y: 234. + width: 34. + height: 101. + id: 15 +Frame_15: + box_1: + x: 349. + y: 230. + width: 38. + height: 97. + id: 15 +Frame_16: + box_1: + x: 352. + y: 232. + width: 37. + height: 93. + id: 15 +Frame_17: + box_1: + x: 357. + y: 233. + width: 36. + height: 92. + id: 15 +Frame_18: + box_1: + x: 359. + y: 227. + width: 36. + height: 97. + id: 15 +Frame_19: + box_1: + x: 358. + y: 225. + width: 36. + height: 97. + id: 15 +Frame_20: + box_1: + x: 364. + y: 225. + width: 28. + height: 100. + id: 15 +Frame_21: + box_1: + x: 379. + y: 216. + width: 28. + height: 94. + id: 15 +Frame_22: + {} +Frame_23: + {} +Frame_24: + {} +Frame_25: + box_1: + x: 374. + y: 210. + width: 30. + height: 104. + id: 15 +Frame_26: + box_1: + x: 373. + y: 209. + width: 32. + height: 107. + id: 15 + box_1: + x: 665. + y: 294. + width: 31. + height: 123. + id: 15 +Frame_27: + box_1: + x: 374. + y: 210. + width: 30. + height: 102. + id: 15 + box_2: + x: 659. + y: 291. + width: 34. + height: 117. + id: 15 +Frame_28: + box_1: + x: 374. + y: 209. + width: 30. + height: 105. + id: 15 + box_2: + x: 659. + y: 291. + width: 34. + height: 117. + id: 15 +Frame_29: + box_1: + x: 375. + y: 208. + width: 30. + height: 105. + id: 15 + box_2: + x: 643. + y: 285. + width: 32. + height: 126. + id: 15 diff --git a/testdata/cv/video/vas_object_tracking/trackings_30_frames.yml b/testdata/cv/video/vas_object_tracking/trackings_30_frames.yml new file mode 100644 index 000000000..b74b6ffb0 --- /dev/null +++ b/testdata/cv/video/vas_object_tracking/trackings_30_frames.yml @@ -0,0 +1,298 @@ +%YAML:1.0 +--- +Frame_0: + {} +Frame_1: + box_0: + x: 278 + y: 251 + width: 39 + height: 108 + id: 15 + tracking_id: 1 + tracking_status: NEW +Frame_2: + box_0: + x: 281 + y: 251 + width: 38 + height: 104 + id: 15 + tracking_id: 1 + tracking_status: NEW +Frame_3: + box_0: + x: 291 + y: 251 + width: 33 + height: 101 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_4: + box_0: + x: 289 + y: 251 + width: 36 + height: 101 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_5: + box_0: + x: 295 + y: 250 + width: 32 + height: 100 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_6: + box_0: + x: 301 + y: 246 + width: 29 + height: 102 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_7: + box_0: + x: 309 + y: 243 + width: 33 + height: 102 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_8: + box_0: + x: 315 + y: 243 + width: 34 + height: 100 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_9: + box_0: + x: 319 + y: 240 + width: 34 + height: 102 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_10: + box_0: + x: 328 + y: 235 + width: 32 + height: 102 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_11: + box_0: + x: 332 + y: 235 + width: 33 + height: 100 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_12: + box_0: + x: 335 + y: 235 + width: 34 + height: 100 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_13: + box_0: + x: 340 + y: 234 + width: 34 + height: 100 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_14: + box_0: + x: 341 + y: 233 + width: 34 + height: 100 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_15: + box_0: + x: 348 + y: 230 + width: 36 + height: 98 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_16: + box_0: + x: 352 + y: 230 + width: 36 + height: 95 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_17: + box_0: + x: 356 + y: 231 + width: 36 + height: 93 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_18: + box_0: + x: 359 + y: 228 + width: 36 + height: 95 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_19: + box_0: + x: 359 + y: 225 + width: 36 + height: 96 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_20: + box_0: + x: 363 + y: 224 + width: 30 + height: 98 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_21: + box_0: + x: 375 + y: 217 + width: 29 + height: 95 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_22: + box_0: + x: 381 + y: 215 + width: 28 + height: 94 + id: 15 + tracking_id: 1 + tracking_status: LOST +Frame_23: + box_0: + x: 386 + y: 212 + width: 28 + height: 94 + id: 15 + tracking_id: 1 + tracking_status: LOST +Frame_24: + box_0: + x: 390 + y: 209 + width: 28 + height: 94 + id: 15 + tracking_id: 1 + tracking_status: LOST +Frame_25: + box_0: + x: 374 + y: 210 + width: 30 + height: 104 + id: 15 + tracking_id: 1 + tracking_status: TRACKED +Frame_26: + box_0: + x: 372 + y: 209 + width: 31 + height: 105 + id: 15 + tracking_id: 1 + tracking_status: TRACKED + box_1: + x: 665 + y: 294 + width: 31 + height: 123 + id: 15 + tracking_id: 2 + tracking_status: NEW +Frame_27: + box_0: + x: 373 + y: 209 + width: 30 + height: 103 + id: 15 + tracking_id: 1 + tracking_status: TRACKED + box_1: + x: 662 + y: 293 + width: 32 + height: 120 + id: 15 + tracking_id: 2 + tracking_status: NEW +Frame_28: + box_0: + x: 373 + y: 209 + width: 30 + height: 104 + id: 15 + tracking_id: 1 + tracking_status: TRACKED + box_1: + x: 660 + y: 292 + width: 33 + height: 118 + id: 15 + tracking_id: 2 + tracking_status: TRACKED +Frame_29: + box_0: + x: 374 + y: 208 + width: 30 + height: 104 + id: 15 + tracking_id: 1 + tracking_status: TRACKED + box_1: + x: 648 + y: 287 + width: 32 + height: 123 + id: 15 + tracking_id: 2 + tracking_status: TRACKED + diff --git a/testdata/dnn/darknet/crop.cfg b/testdata/dnn/darknet/crop.cfg new file mode 100644 index 000000000..6020056e8 --- /dev/null +++ b/testdata/dnn/darknet/crop.cfg @@ -0,0 +1,13 @@ +[net] +batch=1 +channels=3 +height=5 +width=6 + +[crop] +crop_height=2 +crop_width=3 +flip=1 +exposure=1 +saturation=1 +angle=0 diff --git a/testdata/dnn/darknet/crop_in.npy b/testdata/dnn/darknet/crop_in.npy new file mode 100644 index 000000000..06478c7b7 Binary files /dev/null and b/testdata/dnn/darknet/crop_in.npy differ diff --git a/testdata/dnn/darknet/crop_out.npy b/testdata/dnn/darknet/crop_out.npy new file mode 100644 index 000000000..0b7009190 Binary files /dev/null and b/testdata/dnn/darknet/crop_out.npy differ diff --git a/testdata/dnn/darknet/generate_darknet_models.py b/testdata/dnn/darknet/generate_darknet_models.py index 9a38a3cf6..065ecfe46 100644 --- a/testdata/dnn/darknet/generate_darknet_models.py +++ b/testdata/dnn/darknet/generate_darknet_models.py @@ -37,4 +37,4 @@ def genTestData(name, inpShape, outShape): genTestData('route_multi', [1, 6, 3, 6], [1, 4, 2, 3]) genTestData('relu', [1, 2, 3, 4], [1, 2, 3, 4]) genTestData('sam', [1, 2, 3, 4], [1, 4, 3, 4]) - +genTestData('crop', [1, 3, 5, 6], [1, 3, 2, 3]) diff --git a/testdata/dnn/download_models.py b/testdata/dnn/download_models.py index e313a2c85..819b2c2d6 100755 --- a/testdata/dnn/download_models.py +++ b/testdata/dnn/download_models.py @@ -5,215 +5,235 @@ import os import sys import tarfile -import requests import shutil import argparse +import time +from urllib.parse import urlparse from pathlib import Path +try: + import requests +except ImportError: + print("This script requires 'requests' library") + exit(13) -class Model: + +class BuiltinDownloader: MB = 1024*1024 BUFSIZE = 10*MB + TIMEOUT = 60 - def __init__(self, **kwargs): - self.name = kwargs.pop('name', None) - self.url = kwargs.pop('url', None) - self.downloader = kwargs.pop('downloader', None) - self.filename = Path(kwargs.pop('filename')) - self.sha = kwargs.pop('sha', None) - self.member = kwargs.pop('member', None) - self.sub = kwargs.pop('sub', []) - self.gdrive = kwargs.pop('gdrive', None) + def print_response(self, response): + rcode = response.status_code + rsize = int(response.headers.get('content-length', 0)) / self.MB + print(' {} [{:.2f} Mb]'.format(rcode, rsize)) - def __str__(self): - return 'Model <{}>'.format(self.name) + def make_response(self, url, session): + pieces = urlparse(url) + if pieces.netloc in ["docs.google.com", "drive.google.com"]: + return session.get(url, params={'confirm': True}, stream=True, timeout=self.TIMEOUT) + else: + return session.get(url, stream=True, timeout=self.TIMEOUT) - def printRequest(self, r): - def getMB(r): - d = dict(r.headers) - for c in ['content-length', 'Content-Length']: - if c in d: - return int(d[c]) / self.MB - return 0 - print(' {} [{:.2f} Mb]'.format(r.status_code, getMB(r))) + def download_response(self, response, filename): + with open(filename, 'wb') as f: + print(' progress ', end='') + sys.stdout.flush() + for buf in response.iter_content(self.BUFSIZE): + if not buf: + continue + f.write(buf) + print('>', end='') + sys.stdout.flush() + print('') - def prepare_file(self): - self.filename.parent.mkdir(parents=True, exist_ok=True) + def download(self, url, filename): + try: + session = requests.Session() + response = self.make_response(url, session) + self.print_response(response) + response.raise_for_status() + self.download_response(response, filename) + return True + except Exception as e: + print(' download failed: {}'.format(e)) + return False + + +class BuiltinVerifier: + MB = 1024*1024 + BUFSIZE = 100*MB - def verify(self): - if not self.sha: + def verify(self, filename, expected_sum): + if not filename.is_file(): return False - print(' expect {}'.format(self.sha)) - sha = hashlib.sha1() + sha_calculator = hashlib.sha1() try: - if not self.filename.is_file(): - print(' verify - file does not exist') - return False - with open(self.filename, 'rb') as f: + with open(filename, 'rb') as f: while True: buf = f.read(self.BUFSIZE) if not buf: break - sha.update(buf) - print(' actual {}'.format(sha.hexdigest())) - self.sha_actual = sha.hexdigest() - return self.sha == self.sha_actual + sha_calculator.update(buf) + if expected_sum != sha_calculator.hexdigest(): + print(' checksum mismatch:') + print(' expect {}'.format(expected_sum)) + print(' actual {}'.format(sha_calculator.hexdigest())) + return False + return True except Exception as e: - print(' verify {}'.format(e)) + print(' verify failed: {}'.format(e)) + return False + - def ref_copy(self, ref): - if not ref: +class BuiltinExtractor: + MB = 1024*1024 + BUFSIZE = 100*MB + + def extract(self, arch, member, filename): + if not arch.is_file(): return False try: - candidate = ref / self.filename - if candidate.is_file(): - print(' ref {} -> {}'.format(candidate, self.filename)) - if candidate.absolute() == self.filename.absolute(): - print(' ref - skip copying the same file') - else: - self.prepare_file() - shutil.copy(candidate, self.filename) - if self.verify(): - return True - else: - print(' ref - hash mismatch, removing') - self.filename.unlink() + with tarfile.open(arch) as f: + if member not in f.getnames(): + print(' extract - missing member: {}'.format(member)) + return False + r = f.extractfile(member) + with open(filename, 'wb') as f: + # print(' progress ', end='') + sys.stdout.flush() + while True: + buf = r.read(self.BUFSIZE) + if not buf: + break + f.write(buf) + # print('>', end='') + sys.stdout.flush() + # print('') + return True except Exception as e: - print(' ref {}'.format(e)) + print(' extract failed: {}'.format(e)) + return False - def get_sub(self, ref, arch): - print('** {}'.format(self.filename)) - if self.verify(): +class Processor: + def __init__(self, **kwargs): + self.reference = kwargs.pop('reference', None) + self.verifier = BuiltinVerifier() + self.downloader = BuiltinDownloader() + self.extractor = BuiltinExtractor() + + def prepare_folder(self, filename): + filename.parent.mkdir(parents=True, exist_ok=True) + + def download(self, url, filename): + return self.downloader.download(url, filename) + + def verify(self, mdl): + return self.verifier.verify(mdl.filename, mdl.sha) + + def extract(self, arch, mdl): + return self.extractor.extract(arch, mdl.member, mdl.filename) + + def ref_copy(self, mdl): + if not self.reference: + return False + candidate = self.reference / mdl.filename + if not candidate.is_file(): + return False + print(' ref {} -> {}'.format(candidate, mdl.filename)) + try: + if candidate.absolute() != mdl.filename.absolute(): + self.prepare_folder(mdl.filename) + shutil.copy(candidate, mdl.filename) + if self.verify(mdl): + return True + else: + print(' ref - hash mismatch, removing') + mdl.filename.unlink() + return False + except Exception as e: + print(' ref failed: {}'.format(e)) + + def cleanup(self, filename): + print(" cleanup - {}".format(filename)) + try: + filename.unlink() + except Exception as e: + print(" cleanup failed: {}".format(e)) + + def handle_bad_download(self, filename): + # rename file for further investigation + rename_target = filename.with_suffix(filename.suffix + '.invalid') + print(' renaming invalid file to {}'.format(rename_target)) + try: + if rename_target.is_file(): # avoid FileExistsError on Windows from os.rename() + rename_target.unlink() + filename.rename(rename_target) + except Exception as e: + print(' rename failed: {}'.format(e)) + + def get_sub(self, arch, mdl): + print('** {}'.format(mdl.filename)) + if self.verify(mdl): return True - if self.ref_copy(ref): + if self.ref_copy(mdl): return True - if arch.is_file(): - self.extract(arch) - return self.verify() + self.prepare_folder(mdl.filename) + return self.extract(arch, mdl) and self.verify(mdl) - def get(self, ref, arch=None): - print("* {}".format(m.name)) + def get(self, mdl): + print("* {}".format(mdl.name)) # Sub elements - first attempt (ref) - if len(self.sub) > 0: - res = [m.get_sub(ref, self.filename) for m in self.sub] - if all(res): + if len(mdl.sub) > 0: + if all(self.get_sub(mdl.filename, m) for m in mdl.sub): return True # File - exists or get from ref or download from internet verified = False - if self.verify() or self.ref_copy(ref): + if self.verify(mdl) or self.ref_copy(mdl): verified = True - elif self.url: - print(' hash check failed - downloading') - print(' get {}'.format(self.url)) - self.download() - elif self.gdrive: - print(' hash check failed - downloading') - print(' get {}'.format(self.gdrive)) - self.download_gdrive() - else: - raise Exception(info="Invalid model record", name=self.name) - if verified or self.verify(): + if not verified: + self.prepare_folder(mdl.filename) + for one_url in mdl.url: + print(' get {}'.format(one_url)) + if self.download(one_url, mdl.filename): + if self.verify(mdl): + verified = True + break + # TODO: we lose all failed files except the last one + if not verified and mdl.filename.is_file(): + self.handle_bad_download(mdl.filename) + + if verified or self.verify(mdl): # Sub elements - second attempt (extract) - if len(self.sub) > 0: - res = [m.get_sub(ref, self.filename) for m in self.sub] - return all(res) + if len(mdl.sub) > 0: + return all(self.get_sub(mdl.filename, m) for m in mdl.sub) else: return True else: - self.handle_bad_download() return False - def download_response(self, response): - self.printRequest(response) - try: - self.prepare_file() - with open(self.filename, 'wb') as f: - print(' progress ', end='') - sys.stdout.flush() - for buf in response.iter_content(self.BUFSIZE): - if not buf: - continue - f.write(buf) - print('>', end='') - sys.stdout.flush() - print('') - except Exception as e: - print(' download {}'.format(e)) - - def download(self, response=None): - try: - session = requests.Session() - response = session.get(self.url, stream=True, timeout=60) - self.download_response(response) - except Exception as e: - print(' download {}'.format(e)) - def download_gdrive(self): - try: - session = requests.Session() # re-use cookies - URL = "https://docs.google.com/uc?export=download" - response = session.get(URL, params={'id': self.gdrive}, stream=True, timeout=60) - def get_confirm_token(response): # in case of large files - for key, value in response.cookies.items(): - if key.startswith('download_warning'): - return value - token = get_confirm_token(response) - if token: - params = { 'id' : self.gdrive, 'confirm' : token } - response = session.get(URL, params = params, stream = True) - self.download_response(response) - except Exception as e: - print(' download {}'.format(e)) +class Model: - def extract(self, arch): - try: - with tarfile.open(arch) as f: - assert self.member in f.getnames() - r = f.extractfile(self.member) - self.prepare_file() - with open(self.filename, 'wb') as f: - print(' progress ', end='') - sys.stdout.flush() - while True: - buf = r.read(self.BUFSIZE) - if not buf: - break - f.write(buf) - print('>', end='') - sys.stdout.flush() - except Exception as e: - print(' extract {}'.format(e)) + def __init__(self, **kwargs): + self.name = kwargs.pop('name', None) + self.url = kwargs.pop('url', []) + self.filename = Path(kwargs.pop('filename')) + self.sha = kwargs.pop('sha', None) + self.member = kwargs.pop('member', None) + self.sub = kwargs.pop('sub', []) + if not isinstance(self.url, list) and self.url: + self.url = [self.url] + # TODO: add completeness assertion - def cleanup(self): - try: - if self.filename.is_file() and ".tar" in self.filename.suffixes: - print(" cleanup - {}".format(self.filename)) - self.filename.unlink() - except Exception as e: - print(" cleanup failed for {} - {}".format(self.filename, e)) + def __str__(self): + return 'Model <{}>'.format(self.name) - def handle_bad_download(self): - if self.filename.is_file(): - # rename file for further investigation - try: - # NB: using `self.sha_actual` may create unbounded number of files - rename_target = self.filename.with_suffix(self.filename.suffix + '.invalid') - try: - if rename_target.is_file(): # avoid FileExistsError on Windows from os.rename() - rename_target.unlink() - finally: - self.filename.rename(rename_target) - print(' renaming invalid file to {}'.format(rename_target)) - except: - import traceback - traceback.print_exc() - finally: - if self.filename.is_file(): - print(' deleting invalid file') - self.filename.unlink() + def is_archive(self): + return self.filename.is_file() and ".tar" in self.filename.suffixes models = [ @@ -244,7 +264,10 @@ def handle_bad_download(self): filename='VGG_ILSVRC2016_SSD_300x300_iter_440000.caffemodel'), Model( name='ResNet50', - url='https://onedrive.live.com/download?cid=4006CBB8476FF777&resid=4006CBB8476FF777%2117895&authkey=%21AAFW2%2DFVoxeVRck', + url=[ + 'https://onedrive.live.com/download?cid=4006CBB8476FF777&resid=4006CBB8476FF777%2117895&authkey=%21AAFW2%2DFVoxeVRck', + 'https://dl.opencv.org/models/ResNet-50-model.caffemodel' + ], sha='b7c79ccc21ad0479cddc0dd78b1d20c4d722908d', filename='ResNet-50-model.caffemodel'), Model( @@ -284,7 +307,9 @@ def handle_bad_download(self): filename='DenseNet_121.prototxt'), Model( name='Fast-Neural-Style', - url='https://media.githubusercontent.com/media/onnx/models/main/vision/style_transfer/fast_neural_style/model/mosaic-9.onnx', + url=[ + 'https://media.githubusercontent.com/media/onnx/models/main/vision/style_transfer/fast_neural_style/model/mosaic-9.onnx', + ], sha='dc3ef19f7f8a5d906c97c84cd4dd2732bb73960a', filename='mosaic-9.onnx'), Model( @@ -329,7 +354,10 @@ def handle_bad_download(self): filename='colorization_deploy_v2.prototxt'), Model( name='Colorization (caffemodel)', - url='http://eecs.berkeley.edu/~rich.zhang/projects/2016_colorization/files/demo_v2/colorization_release_v2.caffemodel', + url=[ + 'http://eecs.berkeley.edu/~rich.zhang/projects/2016_colorization/files/demo_v2/colorization_release_v2.caffemodel', + 'https://dl.opencv.org/models/colorization_release_v2.caffemodel' + ], sha='21e61293a3fa6747308171c11b6dd18a68a26e7f', filename='colorization_release_v2.caffemodel'), Model( @@ -360,7 +388,10 @@ def handle_bad_download(self): ]), Model( name='Faster-RCNN', # https://github.com/rbgirshick/py-faster-rcnn - url='https://dl.dropboxusercontent.com/s/o6ii098bu51d139/faster_rcnn_models.tgz?dl=0', + url=[ + 'https://dl.dropboxusercontent.com/s/o6ii098bu51d139/faster_rcnn_models.tgz?dl=0', + 'https://dl.opencv.org/models/faster_rcnn_models.tgz' + ], sha='51bca62727c3fe5d14b66e9331373c1e297df7d1', filename='faster_rcnn_models.tgz', sub=[ @@ -375,7 +406,10 @@ def handle_bad_download(self): ]), Model( name='R-FCN', # https://github.com/YuwenXiong/py-R-FCN - url='https://onedrive.live.com/download?cid=10B28C0E28BF7B83&resid=10B28C0E28BF7B83%215317&authkey=%21AIeljruhoLuail8', + url=[ + 'https://onedrive.live.com/download?cid=10B28C0E28BF7B83&resid=10B28C0E28BF7B83%215317&authkey=%21AIeljruhoLuail8', + 'https://dl.opencv.org/models/rfcn_models.tar.gz' + ], sha='bb3180da68b2b71494f8d3eb8f51b2d47467da3e', filename='rfcn_models.tar.gz', sub=[ @@ -386,12 +420,18 @@ def handle_bad_download(self): ]), Model( name='OpenPose/pose/coco', # https://github.com/CMU-Perceptual-Computing-Lab/openpose - url='http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/coco/pose_iter_440000.caffemodel', + url=[ + 'http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/coco/pose_iter_440000.caffemodel', + 'https://dl.opencv.org/models/openpose_pose_coco.caffemodel' + ], sha='ac7e97da66f3ab8169af2e601384c144e23a95c1', filename='openpose_pose_coco.caffemodel'), Model( name='OpenPose/pose/mpi', # https://github.com/CMU-Perceptual-Computing-Lab/openpose - url='http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/mpi/pose_iter_160000.caffemodel', + url=[ + 'http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/mpi/pose_iter_160000.caffemodel', + 'https://dl.opencv.org/models/openpose_pose_mpi.caffemodel' + ], sha='a344f4da6b52892e44a0ca8a4c68ee605fc611cf', filename='openpose_pose_mpi.caffemodel'), Model( @@ -597,10 +637,13 @@ def handle_bad_download(self): sha='6d45d2f06150e9045631c7928093728b07c8b12d', filename='onnx/data/output_resnet50_int8.pb'), ]), - + # TODO: bad file Model( name='ResNet101_DUC_HDC (ONNX)', - url='https://github.com/onnx/models/raw/69c5d3751dda5349fd3fc53f525395d180420c07/vision/classification/resnet/model/resnet101-v1-7.tar.gz', + url=[ + 'https://github.com/onnx/models/raw/69c5d3751dda5349fd3fc53f525395d180420c07/vision/classification/resnet/model/resnet101-v1-7.tar.gz', + 'https://dl.opencv.org/models/ResNet101_DUC_HDC.tar.gz' + ], sha='f8314f381939d01045ac31dbb53d7d35fe3ff9a0', filename='ResNet101_DUC_HDC.tar.gz', sub=[ @@ -844,7 +887,10 @@ def handle_bad_download(self): filename='yolov4x-mish.weights'), Model( name='GSOC2016-GOTURN', # https://github.com/opencv/opencv_contrib/issues/941 - gdrive='1j4UTqVE4EGaUFiK7a5I_CYX7twO9c5br', + url=[ + 'https://docs.google.com/uc?export=download&id=1j4UTqVE4EGaUFiK7a5I_CYX7twO9c5br', + 'https://dl.opencv.org/models/goturn.caffemodel' + ], sha='49776d262993c387542f84d9cd16566840404f26', filename='gsoc2016-goturn/goturn.caffemodel'), Model( @@ -918,9 +964,30 @@ def handle_bad_download(self): filename='wechat_2021-01/sr.caffemodel'), Model( name='yolov7_not_simplified', - gdrive='1rm3mIqjJNu0xPTCjMKnXccspazV1B2zv', + url=[ + 'https://docs.google.com/uc?export=download&id=1ljSh81ydO5ylsnDoV_mt3zj5RX_cgLu8', + 'https://dl.opencv.org/models/yolov7/yolov7_not_simplified.onnx' + ], sha='fcd0fa401c83bf2b29e18239a9c2c989c9b8669d', filename='onnx/models/yolov7_not_simplified.onnx'), + Model( + name='yolox_s_inf_decoder', + url=[ + 'https://drive.google.com/u/0/uc?id=12dVy3ob7T4fYHOkLYnrpUmlysq6JEc5P&export=download', + 'https://dl.opencv.org/models/yolox/yolox_s_inf_decoder.onnx' + ], + sha='b205b00122cc7bf559a0e845680408320df3a898', + filename='onnx/models/yolox_s_inf_decoder.onnx'), + Model( + name='yolov6n', + url='https://dl.opencv.org/models/yolov6/yolov6n.onnx', + sha='a704c0ace51103a43920c50a396b2c8b09d2daec', + filename='onnx/models/yolov6n.onnx'), + Model( + name='yolov8n', + url='https://dl.opencv.org/models/yolov8/yolov8n.onnx', + sha='136807b88d0b02bc226bdeb9741141d857752e10', + filename='onnx/models/yolov8n.onnx'), Model( name='NanoTrackV1 (ONNX, backbone)', url='https://raw.githubusercontent.com/zihaomu/opencv_extra_data_backup/main/NanoTrack/models/nanotrack_backbone_sim.onnx', @@ -1039,6 +1106,21 @@ def handle_bad_download(self): url='https://github.com/opencv/opencv_zoo/raw/281d232cd99cd920853106d853c440edd35eb442/models/optical_flow_estimation_raft/optical_flow_estimation_raft_2023aug.onnx', sha='8165e43c7bd37cc651f66509532acdb3c292832b', filename='onnx/models/optical_flow_estimation_raft_2023aug.onnx'), + Model( + name='vit_b_32', + url=[ + 'https://drive.google.com/u/0/uc?id=1UEeAyBs76XVkypk56ou7B8rBEIAlirkD&export=download', # See https://github.com/opencv/opencv_extra/pull/1128 to generate this model from torchvision + 'https://dl.opencv.org/models/vit/vit_b_32.onnx', + ], + sha='88144dca52cf3c6fee3aed8f8ca5c0b431e0afbd', + filename='onnx/models/vit_b_32.onnx'), + Model( + name='object_tracking_vittrack', + url=[ + 'https://github.com/opencv/opencv_zoo/raw/fef72f8fa7c52eaf116d3df358d24e6e959ada0e/models/object_tracking_vittrack/object_tracking_vittrack_2023sep.onnx', + ], + sha='50008bb4f6a27b1aa940ad886b1bd1936ac4ed3e', + filename='onnx/models/object_tracking_vittrack_2023sep.onnx'), ] # Note: models will be downloaded to current working directory @@ -1071,8 +1153,8 @@ def handle_bad_download(self): # List models if args.list: - for m in filtered: - print(m.name) + for mdl in filtered: + print(mdl.name) exit() # Destination directory @@ -1083,17 +1165,19 @@ def handle_bad_download(self): os.chdir(dest) # Actual download + proc = Processor(reference=ref) results = dict() - for m in filtered: - results[m] = m.get(ref=ref) - print("* OK" if results[m] else "* FAIL") + for mdl in filtered: + t = time.time() + results[mdl] = proc.get(mdl) + print("* {} ({:.2f} sec)".format("OK" if results[mdl] else "FAIL", time.time() - t)) # Result handling - for (m, res) in results.items(): - if args.cleanup and res: - m.cleanup() + for (mdl, res) in results.items(): + if args.cleanup and res and mdl.is_archive(): + proc.cleanup(mdl.filename) if not res: - print("FAILED: {} - {}".format(m.name, m.filename)) + print("FAILED: {} - {}".format(mdl.name, mdl.filename)) if list(results.values()).count(False) > 0: exit(15) else: diff --git a/testdata/dnn/onnx/models/test_layer_normalization_2d_axis0.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/model.onnx similarity index 50% rename from testdata/dnn/onnx/models/test_layer_normalization_2d_axis0.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/model.onnx index 985677833..fdc5f486f 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_2d_axis0.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis0_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis0_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis0_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis0_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis0_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis0_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_2d_axis0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_2d_axis0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/output_1.pb new file mode 100644 index 000000000..148269b82 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJي?? \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/output_2.pb new file mode 100644 index 000000000..43e398028 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis0/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ? \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/model.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/model.onnx new file mode 100644 index 000000000..b5ba7fc9e Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis1_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis1_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis1_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis1_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis1_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis1_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_2d_axis1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_2d_axis1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/output_1.pb new file mode 100644 index 000000000..98181fe95 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ lH?1>> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/output_2.pb new file mode 100644 index 000000000..2515b32d3 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis1/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ ɴ?Lm?? \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_2d_axis_negative_1.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/model.onnx similarity index 52% rename from testdata/dnn/onnx/models/test_layer_normalization_2d_axis_negative_1.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/model.onnx index 3a18cb7f7..76810c717 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_2d_axis_negative_1.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis_negative_1_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis_negative_1_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis_negative_1_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis_negative_1_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis_negative_1_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis_negative_1_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_2d_axis_negative_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_2d_axis_negative_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_1.pb new file mode 100644 index 000000000..98181fe95 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ lH?1>> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_2.pb new file mode 100644 index 000000000..2515b32d3 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ ɴ?Lm?? \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_2d_axis_negative_2.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/model.onnx similarity index 53% rename from testdata/dnn/onnx/models/test_layer_normalization_2d_axis_negative_2.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/model.onnx index 5a5b010f3..570a3bd5e 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_2d_axis_negative_2.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis_negative_2_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis_negative_2_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis_negative_2_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis_negative_2_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis_negative_2_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_2d_axis_negative_2_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_2d_axis_negative_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_2d_axis_negative_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_1.pb new file mode 100644 index 000000000..148269b82 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJي?? \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_2.pb new file mode 100644 index 000000000..43e398028 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ? \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_3d_axis0_epsilon.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/model.onnx similarity index 56% rename from testdata/dnn/onnx/models/test_layer_normalization_3d_axis0_epsilon.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/model.onnx index c53aa3edb..0c06b4d62 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_3d_axis0_epsilon.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis0_epsilon_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis0_epsilon_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis0_epsilon_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis0_epsilon_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis0_epsilon_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis0_epsilon_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_3d_axis0_epsilon.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_3d_axis0_epsilon.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0106db6a9 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_2.pb new file mode 100644 index 000000000..a76b1d4b4 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJp!c? \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_3d_axis1_epsilon.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/model.onnx similarity index 54% rename from testdata/dnn/onnx/models/test_layer_normalization_3d_axis1_epsilon.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/model.onnx index 4ceb21b1a..2f451c512 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_3d_axis1_epsilon.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis1_epsilon_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis1_epsilon_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis1_epsilon_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis1_epsilon_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis1_epsilon_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis1_epsilon_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_3d_axis1_epsilon.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_3d_axis1_epsilon.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_1.pb new file mode 100644 index 000000000..2494f05b3 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ/?7yK> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_2.pb new file mode 100644 index 000000000..acedd02d3 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ>?KI? \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_3d_axis2_epsilon.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/model.onnx similarity index 53% rename from testdata/dnn/onnx/models/test_layer_normalization_3d_axis2_epsilon.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/model.onnx index de4c0edec..d06ef7d01 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_3d_axis2_epsilon.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis2_epsilon_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis2_epsilon_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis2_epsilon_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis2_epsilon_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis2_epsilon_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis2_epsilon_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_3d_axis2_epsilon.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_3d_axis2_epsilon.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_1.pb new file mode 100644 index 000000000..bd9b55802 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJĢ?}<(?C]>=> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_2.pb new file mode 100644 index 000000000..469229d8b --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJt?X??q??\? \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_3d_axis_negative_1_epsilon.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/model.onnx similarity index 59% rename from testdata/dnn/onnx/models/test_layer_normalization_3d_axis_negative_1_epsilon.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/model.onnx index 232d7a701..f59572ea1 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_3d_axis_negative_1_epsilon.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_1_epsilon_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_1_epsilon_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_1_epsilon_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_1_epsilon_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_1_epsilon_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_1_epsilon_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_3d_axis_negative_1_epsilon.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_3d_axis_negative_1_epsilon.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_1.pb new file mode 100644 index 000000000..bd9b55802 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJĢ?}<(?C]>=> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_2.pb new file mode 100644 index 000000000..469229d8b --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJt?X??q??\? \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_3d_axis_negative_2_epsilon.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/model.onnx similarity index 60% rename from testdata/dnn/onnx/models/test_layer_normalization_3d_axis_negative_2_epsilon.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/model.onnx index 6eecff5f5..ea52be584 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_3d_axis_negative_2_epsilon.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_2_epsilon_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_2_epsilon_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_2_epsilon_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_2_epsilon_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_2_epsilon_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_2_epsilon_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_3d_axis_negative_2_epsilon.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_3d_axis_negative_2_epsilon.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_1.pb new file mode 100644 index 000000000..2494f05b3 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ/?7yK> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_2.pb new file mode 100644 index 000000000..acedd02d3 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ>?KI? \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_3d_axis_negative_3_epsilon.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/model.onnx similarity index 58% rename from testdata/dnn/onnx/models/test_layer_normalization_3d_axis_negative_3_epsilon.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/model.onnx index 21d55bb34..3cb5d8462 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_3d_axis_negative_3_epsilon.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_3_epsilon_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_3_epsilon_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_3_epsilon_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_3_epsilon_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_3_epsilon_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_3d_axis_negative_3_epsilon_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_3d_axis_negative_3_epsilon.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_3d_axis_negative_3_epsilon.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0106db6a9 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_2.pb new file mode 100644 index 000000000..a76b1d4b4 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJp!c? \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis0.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/model.onnx similarity index 53% rename from testdata/dnn/onnx/models/test_layer_normalization_4d_axis0.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/model.onnx index a0b2b5116..cd8300882 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis0.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis0_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis0_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis0_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis0_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis0_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis0_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0c4a329dc --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ`> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/output_2.pb new file mode 100644 index 000000000..3c75e1e5c --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis0/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJt? \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis1.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/model.onnx similarity index 51% rename from testdata/dnn/onnx/models/test_layer_normalization_4d_axis1.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/model.onnx index d53b2502c..4960adea5 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis1.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis1_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis1_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis1_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis1_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis1_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis1_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/output_1.pb new file mode 100644 index 000000000..cfe5baaba --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ=A> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/output_2.pb new file mode 100644 index 000000000..3f98a1912 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis1/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJmq?6y? \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis2.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/model.onnx similarity index 50% rename from testdata/dnn/onnx/models/test_layer_normalization_4d_axis2.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/model.onnx index 662267915..662e6eccc 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis2.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis2_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis2_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis2_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis2_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis2_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis2_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/output_1.pb new file mode 100644 index 000000000..2226bc2ce --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ?~Zd=SHʾO>XF> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/output_2.pb new file mode 100644 index 000000000..4b0b73a6e --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis2/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ?W?Ց??|?'_? \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/model.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/model.onnx new file mode 100644 index 000000000..43791e663 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis3_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis3_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis3_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis3_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis3_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis3_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis3.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis3.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/output_1.pb new file mode 100644 index 000000000..f1d0d7f58 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/output_1.pb differ diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/output_2.pb new file mode 100644 index 000000000..996fa15b2 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis3/test_data_set_0/output_2.pb @@ -0,0 +1,2 @@ +B InvStdDevJ`??@ ҥ??d?Z??8C?O?E?v@g?a?z?eF@, +Y?oq???]=? Z?0e?@ \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis_negative_1.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/model.onnx similarity index 54% rename from testdata/dnn/onnx/models/test_layer_normalization_4d_axis_negative_1.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/model.onnx index b8263c697..3b71adb8d 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis_negative_1.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_1_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_1_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_1_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_1_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_1_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_1_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis_negative_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis_negative_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_1.pb new file mode 100644 index 000000000..f1d0d7f58 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_1.pb differ diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_2.pb new file mode 100644 index 000000000..996fa15b2 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_2.pb @@ -0,0 +1,2 @@ +B InvStdDevJ`??@ ҥ??d?Z??8C?O?E?v@g?a?z?eF@, +Y?oq???]=? Z?0e?@ \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis_negative_2.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/model.onnx similarity index 56% rename from testdata/dnn/onnx/models/test_layer_normalization_4d_axis_negative_2.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/model.onnx index 0bd96ea36..83524076d 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis_negative_2.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_2_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_2_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_2_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_2_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_2_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_2_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis_negative_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis_negative_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_1.pb new file mode 100644 index 000000000..2226bc2ce --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ?~Zd=SHʾO>XF> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_2.pb new file mode 100644 index 000000000..4b0b73a6e --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ?W?Ց??|?'_? \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis_negative_3.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/model.onnx similarity index 57% rename from testdata/dnn/onnx/models/test_layer_normalization_4d_axis_negative_3.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/model.onnx index 547ae07b9..6c3a2a76c 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis_negative_3.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_3_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_3_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_3_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_3_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_3_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_3_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis_negative_3.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis_negative_3.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_1.pb new file mode 100644 index 000000000..cfe5baaba --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ=A> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_2.pb new file mode 100644 index 000000000..3f98a1912 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJmq?6y? \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis_negative_4.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/model.onnx similarity index 55% rename from testdata/dnn/onnx/models/test_layer_normalization_4d_axis_negative_4.onnx rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/model.onnx index c76787ad3..8f34b8029 100644 Binary files a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis_negative_4.onnx and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_4_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_4_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_4_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_4_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_4_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_4d_axis_negative_4_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis_negative_4.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_4d_axis_negative_4.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0c4a329dc --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ`> \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_2.pb new file mode 100644 index 000000000..3c75e1e5c --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJt? \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/model.onnx b/testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/model.onnx new file mode 100644 index 000000000..9360997fc Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/model.onnx differ diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_default_axis_0.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/input_0.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_default_axis_0.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/input_0.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_default_axis_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/input_1.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_default_axis_1.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/input_1.pb diff --git a/testdata/dnn/onnx/data/input_test_layer_normalization_default_axis_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/input_2.pb similarity index 100% rename from testdata/dnn/onnx/data/input_test_layer_normalization_default_axis_2.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/input_2.pb diff --git a/testdata/dnn/onnx/data/output_test_layer_normalization_default_axis.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/output_0.pb similarity index 100% rename from testdata/dnn/onnx/data/output_test_layer_normalization_default_axis.pb rename to testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/output_0.pb diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/output_1.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/output_1.pb new file mode 100644 index 000000000..f1d0d7f58 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/output_1.pb differ diff --git a/testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/output_2.pb b/testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/output_2.pb new file mode 100644 index 000000000..996fa15b2 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_layer_normalization_default_axis/test_data_set_0/output_2.pb @@ -0,0 +1,2 @@ +B InvStdDevJ`??@ ҥ??d?Z??8C?O?E?v@g?a?z?eF@, +Y?oq???]=? Z?0e?@ \ No newline at end of file diff --git a/testdata/dnn/onnx/data/input_attention.npy b/testdata/dnn/onnx/data/input_attention.npy new file mode 100644 index 000000000..48dfe7efe Binary files /dev/null and b/testdata/dnn/onnx/data/input_attention.npy differ diff --git a/testdata/dnn/onnx/data/input_attention_single_head.npy b/testdata/dnn/onnx/data/input_attention_single_head.npy new file mode 100644 index 000000000..b8acb1288 Binary files /dev/null and b/testdata/dnn/onnx/data/input_attention_single_head.npy differ diff --git a/testdata/dnn/onnx/data/input_bias_gelu.npy b/testdata/dnn/onnx/data/input_bias_gelu.npy new file mode 100644 index 000000000..7d60fe1d6 Binary files /dev/null and b/testdata/dnn/onnx/data/input_bias_gelu.npy differ diff --git a/testdata/dnn/onnx/data/input_einsum_const_inputs.npy b/testdata/dnn/onnx/data/input_einsum_const_inputs.npy new file mode 100644 index 000000000..5fe09d644 Binary files /dev/null and b/testdata/dnn/onnx/data/input_einsum_const_inputs.npy differ diff --git a/testdata/dnn/onnx/data/input_two_resizes_with_shared_subgraphs_0.npy b/testdata/dnn/onnx/data/input_two_resizes_with_shared_subgraphs_0.npy new file mode 100644 index 000000000..b4059848a Binary files /dev/null and b/testdata/dnn/onnx/data/input_two_resizes_with_shared_subgraphs_0.npy differ diff --git a/testdata/dnn/onnx/data/input_two_resizes_with_shared_subgraphs_1.npy b/testdata/dnn/onnx/data/input_two_resizes_with_shared_subgraphs_1.npy new file mode 100644 index 000000000..1435d978c Binary files /dev/null and b/testdata/dnn/onnx/data/input_two_resizes_with_shared_subgraphs_1.npy differ diff --git a/testdata/dnn/onnx/data/input_two_resizes_with_shared_subgraphs_2.npy b/testdata/dnn/onnx/data/input_two_resizes_with_shared_subgraphs_2.npy new file mode 100644 index 000000000..76c2731ae Binary files /dev/null and b/testdata/dnn/onnx/data/input_two_resizes_with_shared_subgraphs_2.npy differ diff --git a/testdata/dnn/onnx/data/output_attention.npy b/testdata/dnn/onnx/data/output_attention.npy new file mode 100644 index 000000000..405063a6c Binary files /dev/null and b/testdata/dnn/onnx/data/output_attention.npy differ diff --git a/testdata/dnn/onnx/data/output_attention_single_head.npy b/testdata/dnn/onnx/data/output_attention_single_head.npy new file mode 100644 index 000000000..7c209683a Binary files /dev/null and b/testdata/dnn/onnx/data/output_attention_single_head.npy differ diff --git a/testdata/dnn/onnx/data/output_bias_gelu.npy b/testdata/dnn/onnx/data/output_bias_gelu.npy new file mode 100644 index 000000000..89762b94c Binary files /dev/null and b/testdata/dnn/onnx/data/output_bias_gelu.npy differ diff --git a/testdata/dnn/onnx/data/output_einsum_const_inputs.npy b/testdata/dnn/onnx/data/output_einsum_const_inputs.npy new file mode 100644 index 000000000..f0dba5f85 Binary files /dev/null and b/testdata/dnn/onnx/data/output_einsum_const_inputs.npy differ diff --git a/testdata/dnn/onnx/data/output_object_tracking_vittrack_2023sep_0.npy b/testdata/dnn/onnx/data/output_object_tracking_vittrack_2023sep_0.npy new file mode 100644 index 000000000..6360992c7 Binary files /dev/null and b/testdata/dnn/onnx/data/output_object_tracking_vittrack_2023sep_0.npy differ diff --git a/testdata/dnn/onnx/data/output_object_tracking_vittrack_2023sep_1.npy b/testdata/dnn/onnx/data/output_object_tracking_vittrack_2023sep_1.npy new file mode 100644 index 000000000..c92b5b197 Binary files /dev/null and b/testdata/dnn/onnx/data/output_object_tracking_vittrack_2023sep_1.npy differ diff --git a/testdata/dnn/onnx/data/output_object_tracking_vittrack_2023sep_2.npy b/testdata/dnn/onnx/data/output_object_tracking_vittrack_2023sep_2.npy new file mode 100644 index 000000000..c4dd5f33e Binary files /dev/null and b/testdata/dnn/onnx/data/output_object_tracking_vittrack_2023sep_2.npy differ diff --git a/testdata/dnn/onnx/data/output_two_resizes_with_shared_subgraphs.npy b/testdata/dnn/onnx/data/output_two_resizes_with_shared_subgraphs.npy new file mode 100644 index 000000000..50f517b80 Binary files /dev/null and b/testdata/dnn/onnx/data/output_two_resizes_with_shared_subgraphs.npy differ diff --git a/testdata/dnn/onnx/data/output_vit_b_32.npy b/testdata/dnn/onnx/data/output_vit_b_32.npy new file mode 100644 index 000000000..eee2ec36d Binary files /dev/null and b/testdata/dnn/onnx/data/output_vit_b_32.npy differ diff --git a/testdata/dnn/onnx/generate_onnx_models_with_onnxscript.py b/testdata/dnn/onnx/generate_onnx_models_with_onnxscript.py index ae160eba7..dc5942247 100644 --- a/testdata/dnn/onnx/generate_onnx_models_with_onnxscript.py +++ b/testdata/dnn/onnx/generate_onnx_models_with_onnxscript.py @@ -36,7 +36,7 @@ def make_model_and_data(model, *args, **kwargs): np.save(input_file, inputs[0]) else: for idx, input in enumerate(inputs, start=0): - input_files = os.path.join("data", "input_" + name + "_" + str(index)) + input_files = os.path.join("data", "input_" + name + "_" + str(idx)) np.save(input_files, input) if "force_saving_output_as_dtype_float32" in kwargs and kwargs["force_saving_output_as_dtype_float32"]: output = output.astype(np.float32) @@ -68,3 +68,245 @@ def greater_input_dtype_int64(x: ost.FLOAT[27, 9]) ->ost.BOOL[27, 9]: y = op.Greater(x, op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [], np.array([61], dtype=np.int64)))) return y make_model_and_data(greater_input_dtype_int64, np.random.randint(0, 100, size=[27, 9], dtype=np.int64), force_saving_input_as_dtype_float32=True, force_saving_output_as_dtype_float32=True) + +from onnxscript import opset11 + +@ost.script() +def two_resizes_with_shared_subgraphs(x: ost.FLOAT["batch", 1, "height", "width"], y: ost.FLOAT[1, 1, 3, 2], z: ost.FLOAT[1, 1, 2, 1]) ->ost.FLOAT["batch", 1, "height", "width"]: + shape_src_1 = opset11.Shape(x) + shape_src_2 = opset11.Shape(x) + gather_h = opset11.Gather(shape_src_1, opset11.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [], np.array([2], dtype=np.int64))), axis=0) + gather_w = opset11.Gather(shape_src_2, opset11.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [], np.array([3], dtype=np.int64))), axis=0) + unsqueeze_w_1 = opset11.Unsqueeze(gather_w, axes=[0]) + unsqueeze_w_2 = opset11.Unsqueeze(gather_w, axes=[0]) + unsqueeze_h_1 = opset11.Unsqueeze(gather_h, axes=[0]) + unsqueeze_h_2 = opset11.Unsqueeze(gather_h, axes=[0]) + concat_1 = opset11.Cast(opset11.Concat(unsqueeze_h_1, unsqueeze_w_1, axis=0), to=ost.INT64.dtype) + concat_2 = opset11.Cast(opset11.Concat(unsqueeze_h_2, unsqueeze_w_2, axis=0), to=ost.INT64.dtype) + + # This op is required to test double node removal + y = opset11.Add(y, opset11.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [1], np.array([0.5], dtype=np.float32)))) + + # First branch + sliced = opset11.Slice(opset11.Shape(y), + starts=opset11.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([0], dtype=np.int64))), + ends=opset11.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([2], dtype=np.int64))), + axes=opset11.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([0], dtype=np.int64))), + ) + concat_y = opset11.Concat(sliced, concat_1, axis=0) + resized_y = opset11.Resize(y, + roi=opset11.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [0], np.empty([0]))), + scales=opset11.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [0], np.empty([0]))), + sizes=concat_y, + coordinate_transformation_mode='pytorch_half_pixel', + cubic_coeff_a=-0.75, + mode='linear', + nearest_mode='floor' + ) + + # Second branch + sliced = opset11.Slice(opset11.Shape(z), + starts=opset11.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([0], dtype=np.int64))), + ends=opset11.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([2], dtype=np.int64))), + axes=opset11.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([0], dtype=np.int64))), + ) + concat_z = opset11.Concat(sliced, concat_2, axis=0) + resized_z = opset11.Resize(z, + roi=opset11.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [0], np.empty([0]))), + scales=opset11.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [0], np.empty([0]))), + sizes=concat_z, + coordinate_transformation_mode='pytorch_half_pixel', + cubic_coeff_a=-0.75, + mode='linear', + nearest_mode='floor' + ) + + return opset11.Add(resized_y, resized_z) + +make_model_and_data(two_resizes_with_shared_subgraphs, np.random.rand(1, 1, 4, 5).astype(np.float32), np.random.rand(1, 1, 3, 2).astype(np.float32), np.random.rand(1, 1, 2, 1).astype(np.float32)) + + +@ost.script() +def bias_gelu(x: ost.FLOAT[1, 2, 3]) -> ost.FLOAT[1, 2, 3]: + bias = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [3], np.array([0.1, 0.3, 0.2], dtype=np.float32))) + add1 = op.Add(x, bias) + tmp = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [], np.array([np.sqrt(2)], dtype=np.float32))) + div = op.Div(add1, tmp) + erf = op.Erf(div) + tmp_0 = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [], np.array([1], dtype=np.float32))) + add2 = op.Add(erf, tmp_0) + mul = op.Mul(add1, add2) + tmp_1 = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [], np.array([0.5], dtype=np.float32))) + return op.Mul(mul, tmp_1) + +make_model_and_data(bias_gelu, np.random.rand(1, 2, 3).astype(np.float32)) + +batch_size = 1 +sequence_length = 320 +input_hidden_size = 48 +qk_hidden_size = 48 +v_hidden_size = 48 +num_heads = 4 +qk_head_size = int(qk_hidden_size / num_heads) +v_head_size = int(v_hidden_size / num_heads) +attention_weight = np.random.rand(input_hidden_size, qk_hidden_size + qk_hidden_size + v_hidden_size).astype(np.float32) +attention_bias = np.random.rand(qk_hidden_size + qk_hidden_size + v_hidden_size).astype(np.float32) + +''' + Attention Subgraph. + + [Input](BxSxW) + | + LayerNorm + | + Transpose(perm=[1, 0, 2]) + | + | (SxBxW) + | + Matmul[Weight(Wx3W)] + | + Add[Bias(3W)] + / | \ + q_Slice k_Slice v_Slice (output(SxBxW)) + | | | + q_Reshape k_Reshape v_Reshape (output(Sx(BxN)xH), could be optional if N=1) + | | | + q_Transpose k_Transpose v_Transpose + (1,0,2) (1,2,0) (perm=1,0,2) + |((BxN)xSxH) |((BxN)xHxS) | + q_Div / / + \ / / + qk_MatMul / + | / + qk_Softmax / + | ((BxN)xSxS) / ((BxN)xSxH) + \ / + qkv_MatMul (output((BxN)xSxH)) + | + Transpose(perm=1,2,0) + | + Reshape (output(SxH)) + | + MatMul + | + Add + | + [Output](BxSxW) +''' + +@ost.script() +def attention(x: ost.FLOAT[batch_size, sequence_length, input_hidden_size]) -> ost.FLOAT[batch_size, sequence_length, input_hidden_size]: + transpose = op.Transpose(x, perm=[1, 0, 2]) + qkv_matmul_weight = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, attention_weight.shape, attention_weight)) + qkv_matmul = op.MatMul(transpose, qkv_matmul_weight) + + qkv_add_bias = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, attention_bias.shape, attention_bias)) + qkv_add = op.Add(qkv_add_bias, qkv_matmul) + + # q path + q_path_slice = op.Slice(qkv_add, + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([0], dtype=np.int64))), + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([qk_hidden_size], dtype=np.int64))), + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([-1], dtype=np.int64)))) + q_path_reshape = op.Reshape(q_path_slice, op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [3], np.array([sequence_length, batch_size * num_heads, qk_head_size], dtype=np.int64))), allowzero=0) + q_path_transpose = op.Transpose(q_path_reshape, perm=[1, 0, 2]) + q_path_div = op.Div(q_path_transpose, op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [], np.array([np.sqrt(qk_hidden_size)], dtype=np.float32)))) + # k path + k_path_slice = op.Slice(qkv_add, + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([qk_hidden_size], dtype=np.int64))), + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([qk_hidden_size + qk_hidden_size], dtype=np.int64))), + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([-1], dtype=np.int64)))) + k_path_reshape = op.Reshape(k_path_slice, op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [3], np.array([sequence_length, batch_size * num_heads, qk_head_size], dtype=np.int64))), allowzero=0) + k_path_transpose = op.Transpose(k_path_reshape, perm=[1, 2, 0]) + + # qk path + qk_matmul = op.MatMul(q_path_div, k_path_transpose) + qk_softmax = op.Softmax(qk_matmul, axis=-1) + + # v path + v_path_slice = op.Slice(qkv_add, + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([qk_hidden_size + qk_hidden_size], dtype=np.int64))), + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([qk_hidden_size + qk_hidden_size + v_hidden_size], dtype=np.int64))), + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([-1], dtype=np.int64)))) + v_path_reshape = op.Reshape(v_path_slice, op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [3], np.array([sequence_length, batch_size * num_heads, v_head_size], dtype=np.int64))), allowzero=0) + v_path_transpose = op.Transpose(v_path_reshape, perm=[1, 0, 2]) + + # matmul + matmul = op.MatMul(qk_softmax, v_path_transpose) + trans = op.Transpose(matmul, perm=[1, 0, 2]) + reshape = op.Reshape(trans, op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [3], np.array([batch_size, sequence_length, v_hidden_size], dtype=np.int64)))) + + return reshape + +make_model_and_data(attention, np.random.rand(batch_size, sequence_length, input_hidden_size).astype(np.float32)) + +batch_size = 1 +sequence_length = 320 +input_hidden_size = 48 +qk_hidden_size = 48 +v_hidden_size = 48 +num_heads = 1 +qk_head_size = int(qk_hidden_size / num_heads) +v_head_size = int(v_hidden_size / num_heads) +attention_weight = np.random.rand(input_hidden_size, qk_hidden_size + qk_hidden_size + v_hidden_size).astype(np.float32) +attention_bias = np.random.rand(qk_hidden_size + qk_hidden_size + v_hidden_size).astype(np.float32) + +''' + Single-head attention subgraph like the above one but without the appended Reshape after each Slice. + Also v_Slice.end = INT64_MAX which stands for slicing till the end of dimension of the actual tensor. +''' + +@ost.script() +def attention_single_head(x: ost.FLOAT[batch_size, sequence_length, input_hidden_size]) -> ost.FLOAT[batch_size, sequence_length, input_hidden_size]: + transpose = op.Transpose(x, perm=[1, 0, 2]) + qkv_matmul_weight = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, attention_weight.shape, attention_weight)) + qkv_matmul = op.MatMul(transpose, qkv_matmul_weight) + + qkv_add_bias = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, attention_bias.shape, attention_bias)) + qkv_add = op.Add(qkv_add_bias, qkv_matmul) + + # q path + q_path_slice = op.Slice(qkv_add, + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([0], dtype=np.int64))), + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([qk_hidden_size], dtype=np.int64))), + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([-1], dtype=np.int64)))) + q_path_transpose = op.Transpose(q_path_slice, perm=[1, 0, 2]) + q_path_div = op.Div(q_path_transpose, op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [], np.array([np.sqrt(qk_hidden_size)], dtype=np.float32)))) + # k path + k_path_slice = op.Slice(qkv_add, + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([qk_hidden_size], dtype=np.int64))), + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([qk_hidden_size + qk_hidden_size], dtype=np.int64))), + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([-1], dtype=np.int64)))) + k_path_transpose = op.Transpose(k_path_slice, perm=[1, 2, 0]) + + # qk path + qk_matmul = op.MatMul(q_path_div, k_path_transpose) + qk_softmax = op.Softmax(qk_matmul, axis=-1) + + # v path + v_path_slice = op.Slice(qkv_add, + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([qk_hidden_size + qk_hidden_size], dtype=np.int64))), + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([np.iinfo(np.int64).max], dtype=np.int64))), + op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [1], np.array([-1], dtype=np.int64)))) + v_path_transpose = op.Transpose(v_path_slice, perm=[1, 0, 2]) + + # matmul + matmul = op.MatMul(qk_softmax, v_path_transpose) + trans = op.Transpose(matmul, perm=[1, 0, 2]) + reshape = op.Reshape(trans, op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.INT64, [3], np.array([batch_size, sequence_length, v_hidden_size], dtype=np.int64)))) + + return reshape + +make_model_and_data(attention_single_head, np.random.rand(batch_size, sequence_length, input_hidden_size).astype(np.float32)) + +# Einsum_const_inputs + +input_0_data = np.random.rand(3, 2, 2, 4).astype(np.float32) +input_1_data = np.random.rand(2, 2, 4).astype(np.float32) + +@ost.script() +def einsum_const_inputs(input_0: ost.FLOAT[3, 2, 2, 4]) -> ost.FLOAT[3, 2, 2, 2]: + input_1 = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, input_1_data.shape, input_1_data)) + return op.Einsum(input_0, input_1, equation="bhwc, hkc -> bhwk") + +make_model_and_data(einsum_const_inputs, input_0_data) diff --git a/testdata/dnn/onnx/models/attention.onnx b/testdata/dnn/onnx/models/attention.onnx new file mode 100644 index 000000000..0828623d0 Binary files /dev/null and b/testdata/dnn/onnx/models/attention.onnx differ diff --git a/testdata/dnn/onnx/models/attention_single_head.onnx b/testdata/dnn/onnx/models/attention_single_head.onnx new file mode 100644 index 000000000..f112e87d0 Binary files /dev/null and b/testdata/dnn/onnx/models/attention_single_head.onnx differ diff --git a/testdata/dnn/onnx/models/bias_gelu.onnx b/testdata/dnn/onnx/models/bias_gelu.onnx new file mode 100644 index 000000000..2d23e8f49 Binary files /dev/null and b/testdata/dnn/onnx/models/bias_gelu.onnx differ diff --git a/testdata/dnn/onnx/models/einsum_const_inputs.onnx b/testdata/dnn/onnx/models/einsum_const_inputs.onnx new file mode 100644 index 000000000..e0ccd8902 Binary files /dev/null and b/testdata/dnn/onnx/models/einsum_const_inputs.onnx differ diff --git a/testdata/dnn/onnx/models/test_layer_normalization_2d_axis1.onnx b/testdata/dnn/onnx/models/test_layer_normalization_2d_axis1.onnx deleted file mode 100644 index 9866c900d..000000000 --- a/testdata/dnn/onnx/models/test_layer_normalization_2d_axis1.onnx +++ /dev/null @@ -1,22 +0,0 @@ -7backend-test modified by github.com/opencv/opencv_extra: -- -X -W -BY"LayerNormalization* -axis!test_layer_normalization_2d_axis1Z -X -  - -Z -W - - -Z -B - - -b -Y -  - -B \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis3.onnx b/testdata/dnn/onnx/models/test_layer_normalization_4d_axis3.onnx deleted file mode 100644 index 568a51758..000000000 --- a/testdata/dnn/onnx/models/test_layer_normalization_4d_axis3.onnx +++ /dev/null @@ -1,26 +0,0 @@ -7backend-test modified by github.com/opencv/opencv_extra: -- -X -W -BY"LayerNormalization* -axis!test_layer_normalization_4d_axis3Z -X - - - - -Z -W - - -Z -B - - -b -Y - - - - -B \ No newline at end of file diff --git a/testdata/dnn/onnx/models/test_layer_normalization_default_axis.onnx b/testdata/dnn/onnx/models/test_layer_normalization_default_axis.onnx deleted file mode 100644 index 3acea168d..000000000 --- a/testdata/dnn/onnx/models/test_layer_normalization_default_axis.onnx +++ /dev/null @@ -1,25 +0,0 @@ -7backend-test modified by github.com/opencv/opencv_extra: - -X -W -BY"LayerNormalization%test_layer_normalization_default_axisZ -X - - - - -Z -W - - -Z -B - - -b -Y - - - - -B \ No newline at end of file diff --git a/testdata/dnn/onnx/models/two_resizes_with_shared_subgraphs.onnx b/testdata/dnn/onnx/models/two_resizes_with_shared_subgraphs.onnx new file mode 100644 index 000000000..14c89af15 Binary files /dev/null and b/testdata/dnn/onnx/models/two_resizes_with_shared_subgraphs.onnx differ