Skip to content

Commit ff3b9ef

Browse files
authored
Merge pull request #1080 from dkurt:actualize_dnn_links
Actualize some of DNN models links * Update DNN test data URLs * More fixes * Update MobileNet-SSD from Caffe. Restore ResNet-50 * Add OpenVINO OMZ models * Better exception localisation * Replace urllib to requests * Fix extract * Older commit for ONNX models * More ONNX models update * ZFNet and VGG-16 * Yolo and others * Remove OpenVINO models
1 parent 7c077a7 commit ff3b9ef

File tree

1 file changed

+56
-62
lines changed

1 file changed

+56
-62
lines changed

testdata/dnn/download_models.py

Lines changed: 56 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,6 @@
77
import tarfile
88
import requests
99

10-
if sys.version_info[0] < 3:
11-
from urllib2 import urlopen
12-
else:
13-
from urllib.request import urlopen
14-
15-
1610
class Model:
1711
MB = 1024*1024
1812
BUFSIZE = 10*MB
@@ -31,12 +25,12 @@ def __str__(self):
3125

3226
def printRequest(self, r):
3327
def getMB(r):
34-
d = dict(r.info())
28+
d = dict(r.headers)
3529
for c in ['content-length', 'Content-Length']:
3630
if c in d:
3731
return int(d[c]) / self.MB
3832
return '<unknown>'
39-
print(' {} {} [{} Mb]'.format(r.getcode(), r.msg, getMB(r)))
33+
print(' {} [{} Mb]'.format(r.status_code, getMB(r)))
4034

4135
def verify(self):
4236
if not self.sha:
@@ -54,7 +48,7 @@ def verify(self):
5448
self.sha_actual = sha.hexdigest()
5549
return self.sha == self.sha_actual
5650
except Exception as e:
57-
print(' catch {}'.format(e))
51+
print(' verify {}'.format(e))
5852

5953
def get(self):
6054
if self.verify():
@@ -90,31 +84,42 @@ def get(self):
9084

9185
def download(self):
9286
try:
93-
r = urlopen(self.url, timeout=60)
87+
session = requests.Session()
88+
r = session.get(self.url, stream=True, timeout=60)
9489
self.printRequest(r)
95-
self.save(r)
90+
91+
with open(self.filename, 'wb') as f:
92+
print(' progress ', end='')
93+
sys.stdout.flush()
94+
for buf in r.iter_content(self.BUFSIZE):
95+
if not buf:
96+
continue
97+
f.write(buf)
98+
print('>', end='')
99+
sys.stdout.flush()
100+
96101
except Exception as e:
97-
print(' catch {}'.format(e))
102+
print(' download {}'.format(e))
98103

99104
def extract(self):
100105
try:
101106
with tarfile.open(self.archive) as f:
102107
assert self.member in f.getnames()
103-
self.save(f.extractfile(self.member))
104-
except Exception as e:
105-
print(' catch {}'.format(e))
108+
r = f.extractfile(self.member)
106109

107-
def save(self, r):
108-
with open(self.filename, 'wb') as f:
109-
print(' progress ', end='')
110-
sys.stdout.flush()
111-
while True:
112-
buf = r.read(self.BUFSIZE)
113-
if not buf:
114-
break
115-
f.write(buf)
116-
print('>', end='')
117-
sys.stdout.flush()
110+
with open(self.filename, 'wb') as f:
111+
print(' progress ', end='')
112+
sys.stdout.flush()
113+
while True:
114+
buf = r.read(self.BUFSIZE)
115+
if not buf:
116+
break
117+
f.write(buf)
118+
print('>', end='')
119+
sys.stdout.flush()
120+
121+
except Exception as e:
122+
print(' extract {}'.format(e))
118123

119124
def handle_bad_download(self):
120125
if os.path.exists(self.filename):
@@ -220,14 +225,14 @@ def get_confirm_token(response): # in case of large files
220225
filename='squeezenet_v1.1.caffemodel'),
221226
Model(
222227
name='MobileNet-SSD', # https://github.com/chuanqi305/MobileNet-SSD
223-
url='https://drive.google.com/uc?export=download&id=0B3gersZ2cHIxRm5PMWRoTkdHdHc',
224-
sha='994d30a8afaa9e754d17d2373b2d62a7dfbaaf7a',
225-
filename='MobileNetSSD_deploy.caffemodel'),
228+
url='https://raw.githubusercontent.com/chuanqi305/MobileNet-SSD/97406996b1eee2d40eb0a00ae567cf41e23369f9/mobilenet_iter_73000.caffemodel',
229+
sha='19e3ec38842f3e68b02c07a1c24424a1e9db57e9',
230+
filename='MobileNetSSD_deploy_19e3ec3.caffemodel'),
226231
Model(
227232
name='MobileNet-SSD',
228-
url='https://raw.githubusercontent.com/chuanqi305/MobileNet-SSD/daef68a6c2f5fbb8c88404266aa28180646d17e0/MobileNetSSD_deploy.prototxt',
229-
sha='d77c9cf09619470d49b82a9dd18704813a2043cd',
230-
filename='MobileNetSSD_deploy.prototxt'),
233+
url='https://raw.githubusercontent.com/chuanqi305/MobileNet-SSD/97406996b1eee2d40eb0a00ae567cf41e23369f9/deploy.prototxt',
234+
sha='50cf80235a8fcccc641bf9f8efc803edbf21c615',
235+
filename='MobileNetSSD_deploy_19e3ec3.prototxt'),
231236
Model(
232237
name='OpenFace', # https://github.com/cmusatyalab/openface
233238
url='https://storage.cmusatyalab.org/openface-models/nn4.small2.v1.t7',
@@ -298,7 +303,7 @@ def get_confirm_token(response): # in case of large files
298303
filename='ssd_mobilenet_v2_coco_2018_03_29.pb'),
299304
Model(
300305
name='Colorization',
301-
url='https://raw.githubusercontent.com/richzhang/colorization/master/models/colorization_deploy_v2.prototxt',
306+
url='https://raw.githubusercontent.com/richzhang/colorization/caffe/models/colorization_deploy_v2.prototxt',
302307
sha='f528334e386a69cbaaf237a7611d833bef8e5219',
303308
filename='colorization_deploy_v2.prototxt'),
304309
Model(
@@ -432,29 +437,18 @@ def get_confirm_token(response): # in case of large files
432437
filename='faster_rcnn_resnet50_coco_2018_01_28.pb'),
433438
Model(
434439
name='AlexNet (ONNX)',
435-
url='https://s3.amazonaws.com/download.onnx/models/opset_8/bvlc_alexnet.tar.gz',
436-
sha='c713be2852472582224fa7395e2ab4641f8b6356',
437-
filename='bvlc_alexnet.tar.gz'),
438-
Model(
439-
name='AlexNet (ONNX)',
440-
archive='bvlc_alexnet.tar.gz',
441-
member='bvlc_alexnet/model.onnx',
440+
url='https://github.com/onnx/models/raw/69c5d3751dda5349fd3fc53f525395d180420c07/vision/classification/alexnet/model/bvlcalexnet-8.onnx',
442441
sha='b256703f2b125d8681a0a6e5a40a6c9deb7d2b4b',
443442
filename='onnx/models/alexnet.onnx'),
444-
Model(
445-
name='GoogleNet (ONNX)',
446-
url='https://s3.amazonaws.com/download.onnx/models/opset_8/bvlc_googlenet.tar.gz',
447-
sha='739732220ba2e3efa88f7c26f13badad9b7514bc',
448-
filename='bvlc_googlenet.tar.gz'),
449443
Model(
450444
name='GoogleNet (ONNX)',
451445
archive='bvlc_googlenet.tar.gz',
452-
member='bvlc_googlenet/model.onnx',
446+
url='https://github.com/onnx/models/raw/69c5d3751dda5349fd3fc53f525395d180420c07/vision/classification/inception_and_googlenet/googlenet/model/googlenet-8.onnx',
453447
sha='534a16d7e2472f6a9a1925a5ee6c9abc2f5c02b0',
454448
filename='onnx/models/googlenet.onnx'),
455449
Model(
456450
name='CaffeNet (ONNX)',
457-
url='https://s3.amazonaws.com/download.onnx/models/opset_8/bvlc_reference_caffenet.tar.gz',
451+
url='https://github.com/onnx/models/raw/4eff8f9b9189672de28d087684e7085ad977747c/vision/classification/caffenet/model/caffenet-8.tar.gz',
458452
sha='f9f5dd60d4c9172a7e26bd4268eab7ecddb37393',
459453
filename='bvlc_reference_caffenet.tar.gz'),
460454
Model(
@@ -477,7 +471,7 @@ def get_confirm_token(response): # in case of large files
477471
filename='onnx/data/output_caffenet.pb'),
478472
Model(
479473
name='RCNN_ILSVRC13 (ONNX)',
480-
url='https://s3.amazonaws.com/download.onnx/models/opset_8/bvlc_reference_rcnn_ilsvrc13.tar.gz',
474+
url='https://github.com/onnx/models/raw/cbda9ebd037241c6c6a0826971741d5532af8fa4/vision/classification/rcnn_ilsvrc13/model/rcnn-ilsvrc13-8.tar.gz',
481475
sha='b1b27a41066c26f824d57e99036dc885459017f0',
482476
filename='bvlc_reference_rcnn_ilsvrc13.tar.gz'),
483477
Model(
@@ -500,7 +494,7 @@ def get_confirm_token(response): # in case of large files
500494
filename='onnx/data/output_rcnn_ilsvrc13.pb'),
501495
Model(
502496
name='ZFNet512 (ONNX)',
503-
url='https://s3.amazonaws.com/download.onnx/models/opset_8/zfnet512.tar.gz',
497+
url='https://github.com/onnx/models/raw/f884b33c3e2371952aad7ea091898f418c830fe5/vision/classification/zfnet-512/model/zfnet512-8.tar.gz',
504498
sha='c040c455c8aac71c8cda57595b698b76449e4ff4',
505499
filename='zfnet512.tar.gz'),
506500
Model(
@@ -523,7 +517,7 @@ def get_confirm_token(response): # in case of large files
523517
filename='onnx/data/output_zfnet512.pb'),
524518
Model(
525519
name='VGG16_bn (ONNX)',
526-
url='https://s3.amazonaws.com/onnx-model-zoo/vgg/vgg16-bn/vgg16-bn.tar.gz',
520+
url='https://github.com/onnx/models/raw/f884b33c3e2371952aad7ea091898f418c830fe5/vision/classification/vgg/model/vgg16-bn-7.tar.gz',
527521
sha='60f4685aed632d2ce3b137017cf44ae1a5c55459',
528522
filename='vgg16-bn.tar.gz'),
529523
Model(
@@ -546,7 +540,7 @@ def get_confirm_token(response): # in case of large files
546540
filename='onnx/data/output_vgg16-bn.pb'),
547541
Model(
548542
name='ResNet-18v1 (ONNX)',
549-
url='https://s3.amazonaws.com/onnx-model-zoo/resnet/resnet18v1/resnet18v1.tar.gz',
543+
url='https://github.com/onnx/models/raw/69c5d3751dda5349fd3fc53f525395d180420c07/vision/classification/resnet/model/resnet18-v1-7.tar.gz',
550544
sha='d132be4857d024de9caa21fd5300dee7c063bc35',
551545
filename='resnet18v1.tar.gz'),
552546
Model(
@@ -569,7 +563,7 @@ def get_confirm_token(response): # in case of large files
569563
filename='onnx/data/output_resnet18v1.pb'),
570564
Model(
571565
name='ResNet-50v1 (ONNX)',
572-
url='https://s3.amazonaws.com/onnx-model-zoo/resnet/resnet50v1/resnet50v1.tar.gz',
566+
url='https://github.com/onnx/models/raw/69c5d3751dda5349fd3fc53f525395d180420c07/vision/classification/resnet/model/resnet50-v1-7.tar.gz',
573567
sha='a4ac2da7e0024d61fdb80481496ba966b48b9fea',
574568
filename='resnet50v1.tar.gz'),
575569
Model(
@@ -592,7 +586,7 @@ def get_confirm_token(response): # in case of large files
592586
filename='onnx/data/output_resnet50v1.pb'),
593587
Model(
594588
name='ResNet50-Int8 (ONNX)',
595-
url='https://github.com/onnx/models/raw/master/vision/classification/resnet/model/resnet50-v1-12-int8.tar.gz',
589+
url='https://github.com/onnx/models/raw/771185265efbdc049fb223bd68ab1aeb1aecde76/vision/classification/resnet/model/resnet50-v1-12-int8.tar.gz',
596590
sha='2ff2a58f4a27362ee6234915452e86287cdcf269',
597591
filename='resnet50-v1-12-int8.tar.gz'),
598592
Model(
@@ -626,7 +620,7 @@ def get_confirm_token(response): # in case of large files
626620
filename='ssd_mobilenet_v1_ppn_coco.pb'),
627621
Model(
628622
name='ResNet101_DUC_HDC (ONNX)',
629-
url='https://s3.amazonaws.com/onnx-model-zoo/duc/ResNet101_DUC_HDC.tar.gz',
623+
url='https://github.com/onnx/models/raw/69c5d3751dda5349fd3fc53f525395d180420c07/vision/classification/resnet/model/resnet101-v1-7.tar.gz',
630624
sha='f8314f381939d01045ac31dbb53d7d35fe3ff9a0',
631625
filename='ResNet101_DUC_HDC.tar.gz'),
632626
Model(
@@ -649,7 +643,7 @@ def get_confirm_token(response): # in case of large files
649643
filename='onnx/data/output_resnet101_duc_hdc.pb'),
650644
Model(
651645
name='TinyYolov2 (ONNX)',
652-
url='https://www.cntk.ai/OnnxModels/tiny_yolov2/opset_1/tiny_yolov2.tar.gz',
646+
url='https://github.com/onnx/models/raw/3d4b2c28f951064ab35c89d5f5c3ffe74a149e4b/vision/object_detection_segmentation/tiny-yolov2/model/tinyyolov2-1.tar.gz',
653647
sha='b9102abb8fa6f51368119b52146c30189353164a',
654648
filename='tiny_yolov2.tar.gz'),
655649
Model(
@@ -672,7 +666,7 @@ def get_confirm_token(response): # in case of large files
672666
filename='onnx/data/output_tiny_yolo2.pb'),
673667
Model(
674668
name='CNN Mnist (ONNX)',
675-
url='https://www.cntk.ai/OnnxModels/mnist/opset_7/mnist.tar.gz',
669+
url='https://github.com/onnx/models/raw/cbda9ebd037241c6c6a0826971741d5532af8fa4/vision/classification/mnist/model/mnist-7.tar.gz',
676670
sha='8bcd3372e44bd95dc8a211bc31fb3025d8edf9f9',
677671
filename='mnist.tar.gz'),
678672
Model(
@@ -741,7 +735,7 @@ def get_confirm_token(response): # in case of large files
741735
filename='onnx/data/output_LResNet100E_IR.pb'),
742736
Model(
743737
name='Emotion FERPlus (ONNX)',
744-
url='https://www.cntk.ai/OnnxModels/emotion_ferplus/opset_7/emotion_ferplus.tar.gz',
738+
url='https://github.com/onnx/models/raw/7cee9777a86dd6e80040d6b786869a83d2ad1273/vision/body_analysis/emotion_ferplus/model/emotion-ferplus-7.tar.gz',
745739
sha='9ff80899c0cd468999db5d8ffde98780ef85455e',
746740
filename='emotion_ferplus.tar.gz'),
747741
Model(
@@ -764,7 +758,7 @@ def get_confirm_token(response): # in case of large files
764758
filename='onnx/data/output_emotion_ferplus.pb'),
765759
Model(
766760
name='Squeezenet (ONNX)',
767-
url='https://s3.amazonaws.com/download.onnx/models/opset_8/squeezenet.tar.gz',
761+
url='https://github.com/onnx/models/raw/f884b33c3e2371952aad7ea091898f418c830fe5/vision/classification/squeezenet/model/squeezenet1.0-8.tar.gz',
768762
sha='57348321d4d460c07c41af814def3abe728b3a03',
769763
filename='squeezenet.tar.gz'),
770764
Model(
@@ -787,7 +781,7 @@ def get_confirm_token(response): # in case of large files
787781
filename='onnx/data/output_squeezenet.pb'),
788782
Model(
789783
name='DenseNet121 (ONNX)',
790-
url='https://s3.amazonaws.com/download.onnx/models/opset_8/densenet121.tar.gz',
784+
url='https://github.com/onnx/models/raw/4eff8f9b9189672de28d087684e7085ad977747c/vision/classification/densenet-121/model/densenet-8.tar.gz',
791785
sha='338b70e871e73b0550fc8ccc0863b8382e90e8e5',
792786
filename='densenet121.tar.gz'),
793787
Model(
@@ -810,7 +804,7 @@ def get_confirm_token(response): # in case of large files
810804
filename='onnx/data/output_densenet121.pb'),
811805
Model(
812806
name='Inception v1 (ONNX)',
813-
url='https://s3.amazonaws.com/download.onnx/models/opset_8/inception_v1.tar.gz',
807+
url='https://github.com/onnx/models/raw/4eff8f9b9189672de28d087684e7085ad977747c/vision/classification/inception_and_googlenet/inception_v1/model/inception-v1-8.tar.gz',
814808
sha='94ecb2bd1426704dca578dc746e3c27bedf22352',
815809
filename='inception_v1.tar.gz'),
816810
Model(
@@ -833,7 +827,7 @@ def get_confirm_token(response): # in case of large files
833827
filename='onnx/data/output_inception_v1.pb'),
834828
Model(
835829
name='Inception v2 (ONNX)',
836-
url='https://s3.amazonaws.com/download.onnx/models/opset_8/inception_v2.tar.gz',
830+
url='https://github.com/onnx/models/raw/4eff8f9b9189672de28d087684e7085ad977747c/vision/classification/inception_and_googlenet/inception_v2/model/inception-v2-8.tar.gz',
837831
sha='d07a442a84d939232c37c976fd8d624fa9f82026',
838832
filename='inception_v2.tar.gz'),
839833
Model(
@@ -856,7 +850,7 @@ def get_confirm_token(response): # in case of large files
856850
filename='onnx/data/output_inception_v2.pb'),
857851
Model(
858852
name='Shufflenet (ONNX)',
859-
url='https://s3.amazonaws.com/download.onnx/models/opset_9/shufflenet.tar.gz',
853+
url='https://github.com/onnx/models/raw/f884b33c3e2371952aad7ea091898f418c830fe5/vision/classification/shufflenet/model/shufflenet-9.tar.gz',
860854
sha='c99afcb7fcc809c0688cc99cb3709a052fde1de7',
861855
filename='shufflenet.tar.gz'),
862856
Model(

0 commit comments

Comments
 (0)