You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by zh...@apache.org on 2018/01/20 05:00:35 UTC
[incubator-mxnet] branch master updated: host files needed by caffe
converter (#9503)
This is an automated email from the ASF dual-hosted git repository.
zhreshold pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git
The following commit(s) were added to refs/heads/master by this push:
new 1100eca host files needed by caffe converter (#9503)
1100eca is described below
commit 1100eca1e98f97809b7a5c4c611d23cc06a4d99c
Author: Sheng Zha <sz...@users.noreply.github.com>
AuthorDate: Fri Jan 19 21:00:31 2018 -0800
host files needed by caffe converter (#9503)
---
tools/caffe_converter/convert_caffe_modelzoo.py | 81 +++++++++++++++++--------
1 file changed, 55 insertions(+), 26 deletions(-)
diff --git a/tools/caffe_converter/convert_caffe_modelzoo.py b/tools/caffe_converter/convert_caffe_modelzoo.py
index b49165b..68aeb61 100644
--- a/tools/caffe_converter/convert_caffe_modelzoo.py
+++ b/tools/caffe_converter/convert_caffe_modelzoo.py
@@ -23,7 +23,9 @@ from convert_model import convert_model
from convert_mean import convert_mean
import mxnet as mx
-_mx_caffe_model = 'http://data.mxnet.io/models/imagenet/test/caffe/'
+apache_repo_url = 'https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/'
+repo_url = os.environ.get('MXNET_GLUON_REPO', apache_repo_url)
+_mx_caffe_model_root = '{repo}caffe/models/'.format(repo=repo_url)
"""Dictionary for model meta information
@@ -41,53 +43,69 @@ Optionly it takes
model_meta_info = {
# pylint: disable=line-too-long
'bvlc_alexnet' : {
- 'prototxt' : 'https://raw.githubusercontent.com/BVLC/caffe/master/models/bvlc_alexnet/deploy.prototxt',
- 'caffemodel' : 'http://dl.caffe.berkeleyvision.org/bvlc_alexnet.caffemodel',
- 'mean' : 'https://raw.githubusercontent.com/dmlc/web-data/master/mxnet/caffe/imagenet_mean.binaryproto',
+ 'prototxt' : (_mx_caffe_model_root + 'bvlc_alexnet/deploy.prototxt',
+ 'cb77655eb4db32c9c47699c6050926f9e0fc476a'),
+ 'caffemodel' : (_mx_caffe_model_root + 'bvlc_alexnet/bvlc_alexnet.caffemodel',
+ '9116a64c0fbe4459d18f4bb6b56d647b63920377'),
+ 'mean' : (_mx_caffe_model_root + 'bvlc_alexnet/imagenet_mean.binaryproto',
+ '63e4652e656abc1e87b7a8339a7e02fca63a2c0c'),
'top-1-acc' : 0.571,
'top-5-acc' : 0.802
},
'bvlc_googlenet' : {
- 'prototxt' : 'https://raw.githubusercontent.com/BVLC/caffe/master/models/bvlc_googlenet/deploy.prototxt',
- 'caffemodel' : 'http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel',
+ 'prototxt' : (_mx_caffe_model_root + 'bvlc_googlenet/deploy.prototxt',
+ '7060345c8012294baa60eeb5901d2d3fd89d75fc'),
+ 'caffemodel' : (_mx_caffe_model_root + 'bvlc_googlenet/bvlc_googlenet.caffemodel',
+ '405fc5acd08a3bb12de8ee5e23a96bec22f08204'),
'mean' : (123, 117, 104),
'top-1-acc' : 0.687,
'top-5-acc' : 0.889
},
'vgg-16' : {
- 'prototxt' : 'https://gist.githubusercontent.com/ksimonyan/211839e770f7b538e2d8/raw/c3ba00e272d9f48594acef1f67e5fd12aff7a806/VGG_ILSVRC_16_layers_deploy.prototxt',
- # 'caffemodel' : 'http://www.robots.ox.ac.uk/~vgg/software/very_deep/caffe/VGG_ILSVRC_16_layers.caffemodel',
- 'caffemodel' : 'http://data.mxnet.io/models/imagenet/test/caffe/VGG_ILSVRC_16_layers.caffemodel',
+ 'prototxt' : (_mx_caffe_model_root + 'vgg/VGG_ILSVRC_16_layers_deploy.prototxt',
+ '2734e5500f1445bd7c9fee540c99f522485247bd'),
+ 'caffemodel' : (_mx_caffe_model_root + 'vgg/VGG_ILSVRC_16_layers.caffemodel',
+ '9363e1f6d65f7dba68c4f27a1e62105cdf6c4e24'),
'mean': (123.68, 116.779, 103.939),
'top-1-acc' : 0.734,
'top-5-acc' : 0.914
},
'vgg-19' : {
- 'prototxt' : 'https://gist.githubusercontent.com/ksimonyan/3785162f95cd2d5fee77/raw/bb2b4fe0a9bb0669211cf3d0bc949dfdda173e9e/VGG_ILSVRC_19_layers_deploy.prototxt',
- # 'caffemodel' : 'http://www.robots.ox.ac.uk/~vgg/software/very_deep/caffe/VGG_ILSVRC_19_layers.caffemodel',
- 'caffemodel' : 'http://data.mxnet.io/models/imagenet/test/caffe/VGG_ILSVRC_19_layers.caffemodel',
+ 'prototxt' : (_mx_caffe_model_root + 'vgg/VGG_ILSVRC_19_layers_deploy.prototxt',
+ '132d2f60b3d3b1c2bb9d3fdb0c8931a44f89e2ae'),
+ 'caffemodel' : (_mx_caffe_model_root + 'vgg/VGG_ILSVRC_19_layers.caffemodel',
+ '239785e7862442717d831f682bb824055e51e9ba'),
'mean' : (123.68, 116.779, 103.939),
'top-1-acc' : 0.731,
'top-5-acc' : 0.913
},
'resnet-50' : {
- 'prototxt' : _mx_caffe_model+'ResNet-50-deploy.prototxt',
- 'caffemodel' : _mx_caffe_model+'ResNet-50-model.caffemodel',
- 'mean' : _mx_caffe_model+'ResNet_mean.binaryproto',
+ 'prototxt' : (_mx_caffe_model_root + 'resnet/ResNet-50-deploy.prototxt',
+ '5d6fd5aeadd8d4684843c5028b4e5672b9e51638'),
+ 'caffemodel' : (_mx_caffe_model_root + 'resnet/ResNet-50-model.caffemodel',
+ 'b7c79ccc21ad0479cddc0dd78b1d20c4d722908d'),
+ 'mean' : (_mx_caffe_model_root + 'resnet/ResNet_mean.binaryproto',
+ '0b056fd4444f0ae1537af646ba736edf0d4cefaf'),
'top-1-acc' : 0.753,
'top-5-acc' : 0.922
},
'resnet-101' : {
- 'prototxt' : _mx_caffe_model+'ResNet-101-deploy.prototxt',
- 'caffemodel' : _mx_caffe_model+'ResNet-101-model.caffemodel',
- 'mean' : _mx_caffe_model+'ResNet_mean.binaryproto',
+ 'prototxt' : (_mx_caffe_model_root + 'resnet/ResNet-101-deploy.prototxt',
+ 'c165d6b6ccef7cc39ee16a66f00f927f93de198b'),
+ 'caffemodel' : (_mx_caffe_model_root + 'resnet/ResNet-101-model.caffemodel',
+ '1dbf5f493926bb9b6b3363b12d5133c0f8b78904'),
+ 'mean' : (_mx_caffe_model_root + 'resnet/ResNet_mean.binaryproto',
+ '0b056fd4444f0ae1537af646ba736edf0d4cefaf'),
'top-1-acc' : 0.764,
'top-5-acc' : 0.929
},
'resnet-152' : {
- 'prototxt' : _mx_caffe_model+'ResNet-152-deploy.prototxt',
- 'caffemodel' : _mx_caffe_model+'ResNet-152-model.caffemodel',
- 'mean' : _mx_caffe_model+'ResNet_mean.binaryproto',
+ 'prototxt' : (_mx_caffe_model_root + 'resnet/ResNet-152-deploy.prototxt',
+ 'ae15aade2304af8a774c5bfb1d32457f119214ef'),
+ 'caffemodel' : (_mx_caffe_model_root + 'resnet/ResNet-152-model.caffemodel',
+ '251edb93604ac8268c7fd2227a0f15144310e1aa'),
+ 'mean' : (_mx_caffe_model_root + 'resnet/ResNet_mean.binaryproto',
+ '0b056fd4444f0ae1537af646ba736edf0d4cefaf'),
'top-1-acc' : 0.77,
'top-5-acc' : 0.933
},
@@ -95,21 +113,32 @@ model_meta_info = {
def get_model_meta_info(model_name):
"""returns a dict with model information"""
- return dict(dict(model_meta_info)[model_name])
+ return model_meta_info[model_name].copy()
def download_caffe_model(model_name, meta_info, dst_dir='./model'):
"""Download caffe model into disk by the given meta info """
if not os.path.isdir(dst_dir):
os.mkdir(dst_dir)
model_name = os.path.join(dst_dir, model_name)
+
assert 'prototxt' in meta_info, "missing prototxt url"
- prototxt = mx.test_utils.download(meta_info['prototxt'], model_name+'_deploy.prototxt')
+ proto_url, proto_sha1 = meta_info['prototxt']
+ prototxt = mx.gluon.utils.download(proto_url,
+ model_name+'_deploy.prototxt',
+ sha1_hash=proto_sha1)
+
assert 'caffemodel' in meta_info, "mssing caffemodel url"
- caffemodel = mx.test_utils.download(meta_info['caffemodel'], model_name+'.caffemodel')
+ caffemodel_url, caffemodel_sha1 = meta_info['caffemodel']
+ caffemodel = mx.gluon.utils.download(caffemodel_url,
+ model_name+'.caffemodel',
+ sha1_hash=caffemodel_sha1)
assert 'mean' in meta_info, 'no mean info'
mean = meta_info['mean']
- if isinstance(mean, str):
- mean = mx.test_utils.download(mean, model_name+'_mean.binaryproto')
+ if isinstance(mean[0], str):
+ mean_url, mean_sha1 = mean
+ mean = mx.gluon.utils.download(mean_url,
+ model_name+'_mean.binaryproto',
+ sha1_hash=mean_sha1)
return (prototxt, caffemodel, mean)
def convert_caffe_model(model_name, meta_info, dst_dir='./model'):
--
To stop receiving notification emails like this one, please contact
['"commits@mxnet.apache.org" <co...@mxnet.apache.org>'].