瀏覽代碼

Update Caffe2 test files (#126)

Lutz Roeder 6 年之前
父節點
當前提交
152c18e309
共有 2 個文件被更改,包括 39 次插入45 次删除
  1. 32 10
      src/caffe2.js
  2. 7 35
      test/models.json

+ 32 - 10
src/caffe2.js

@@ -86,10 +86,10 @@ caffe2.ModelFactory = class {
                             throw new caffe2.Error("File text format is not caffe2.NetDef (" + error.message + ") in '" + identifier + "'.");
                             throw new caffe2.Error("File text format is not caffe2.NetDef (" + error.message + ") in '" + identifier + "'.");
                         }
                         }
                         try {
                         try {
-                            if (init) {
-                                caffe2.proto = protobuf.roots.caffe2.caffe2;
-                                init_net = caffe2.proto.NetDef.decodeText(prototxt.TextReader.create(init));
-                            }
+                            caffe2.proto = protobuf.roots.caffe2.caffe2;
+                            init_net = (typeof init === 'string') ?
+                                caffe2.proto.NetDef.decodeText(prototxt.TextReader.create(init)) :
+                                caffe2.proto.NetDef.decode(init);
                         }
                         }
                         catch (error) {
                         catch (error) {
                             // continue regardless of error
                             // continue regardless of error
@@ -111,14 +111,22 @@ caffe2.ModelFactory = class {
                         });
                         });
                     }
                     }
                     else if (base.toLowerCase().endsWith('predict_net') || base.toLowerCase().startsWith('predict_net')) {
                     else if (base.toLowerCase().endsWith('predict_net') || base.toLowerCase().startsWith('predict_net')) {
-                        return context.request(identifier.replace('predict_net', 'init_net'), 'utf-8').then((text) => {
-                            return open_text(context.text, text);
+                        return context.request(identifier.replace('predict_net', 'init_net').replace(/\.pbtxt/, '.pb'), null).then((buffer) => {
+                            return open_text(context.text, buffer);
                         }).catch(() => {
                         }).catch(() => {
-                            return open_text(context.text, null);
+                            return context.request(identifier.replace('predict_net', 'init_net'), 'utf-8').then((text) => {
+                                return open_text(context.text, text);
+                            }).catch(() => {
+                                return open_text(context.text, null);
+                            });
                         });
                         });
                     }
                     }
                     else {
                     else {
-                        return open_text(context.text, null);
+                        return context.request(base + '_init.pb', null).then((buffer) => {
+                            return open_text(context.text, buffer);
+                        }).catch(() => {
+                            return open_text(context.text, null);
+                        });
                     }
                     }
                 }
                 }
                 else {
                 else {
@@ -151,14 +159,28 @@ caffe2.ModelFactory = class {
                         }
                         }
                     };
                     };
                     if (base.toLowerCase().endsWith('init_net')) {
                     if (base.toLowerCase().endsWith('init_net')) {
-                        return context.request(base.substring(0, base.length - 8) + 'predict_net.' + extension, null).then((buffer) => {
+                        return context.request(base.replace(/init_net$/, '') + 'predict_net.' + extension, null).then((buffer) => {
                             return open_binary(buffer, context.buffer);
                             return open_binary(buffer, context.buffer);
                         }).catch(() => {
                         }).catch(() => {
                             return open_binary(context.buffer, null);
                             return open_binary(context.buffer, null);
                         });
                         });
                     }
                     }
+                    else if (base.toLowerCase().endsWith('_init')) {
+                        return context.request(base.replace(/_init$/, '') + '.' + extension, null).then((buffer) => {
+                            return open_binary(buffer, context.buffer);
+                        }).catch(() => {
+                            return open_binary(context.buffer, null);
+                        });
+                    }
+                    else if (base.toLowerCase().endsWith('predict_net') || base.toLowerCase().startsWith('predict_net')) {
+                        return context.request(identifier.replace('predict_net', 'init_net'), null).then((buffer) => {
+                            return open_binary(context.buffer, buffer);
+                        }).catch(() => {
+                            return open_binary(context.buffer, null);
+                        });
+                    }
                     else {
                     else {
-                        return context.request(base.substring(0, base.length - 11) + 'init_net.' + extension, null).then((buffer) => {
+                        return context.request(base + '_init.' + extension, null).then((buffer) => {
                             return open_binary(context.buffer, buffer);
                             return open_binary(context.buffer, buffer);
                         }).catch(() => {
                         }).catch(() => {
                             return open_binary(context.buffer, null);
                             return open_binary(context.buffer, null);

+ 7 - 35
test/models.json

@@ -747,20 +747,6 @@
     "format": "Caffe2",
     "format": "Caffe2",
     "link":   "https://github.com/caffe2/models"
     "link":   "https://github.com/caffe2/models"
   },
   },
-  {
-    "type":   "caffe2",
-    "target": "bvlc_reference_caffenet/predict_net.pb,bvlc_reference_caffenet/init_net.pb",
-    "source": "https://s3.amazonaws.com/download.caffe2.ai/models/bvlc_reference_caffenet/predict_net.pb,https://s3.amazonaws.com/download.caffe2.ai/models/bvlc_reference_caffenet/init_net.pb",
-    "format": "Caffe2",
-    "link":   "https://github.com/caffe2/models"
-  },
-  {
-    "type":   "caffe2",
-    "target": "bvlc_reference_rcnn_ilsvrc13/predict_net.pb,bvlc_reference_rcnn_ilsvrc13/init_net.pb",
-    "source": "https://s3.amazonaws.com/download.caffe2.ai/models/bvlc_reference_rcnn_ilsvrc13/predict_net.pb,https://s3.amazonaws.com/download.caffe2.ai/models/bvlc_reference_rcnn_ilsvrc13/init_net.pb",
-    "format": "Caffe2",
-    "link":   "https://github.com/caffe2/models"
-  },
   {
   {
     "type":   "caffe2",
     "type":   "caffe2",
     "target": "densenet121/predict_net.pb,densenet121/init_net.pb",
     "target": "densenet121/predict_net.pb,densenet121/init_net.pb",
@@ -775,6 +761,13 @@
     "format": "Caffe2",
     "format": "Caffe2",
     "link":   "https://github.com/caffe2/models"
     "link":   "https://github.com/caffe2/models"
   },
   },
+  {
+    "type":   "caffe2",
+    "target": "FBNet-A-int8/model.pbtxt,FBNet-A-int8/model_init.pb",
+    "source": "https://dl.fbaipublicfiles.com/fbnet/models/FBNet_caffe2.zip[FBNet/FBNet-A/int8/model.pbtxt,FBNet/FBNet-A/int8/model_init.pb]",
+    "format": "Caffe2",
+    "link":   "https://github.com/facebookresearch/mobile-vision"
+  },
   {
   {
     "type":   "caffe2",
     "type":   "caffe2",
     "target": "generalized_rcnn/net.pbtxt",
     "target": "generalized_rcnn/net.pbtxt",
@@ -790,13 +783,6 @@
     "format": "Caffe2",
     "format": "Caffe2",
     "link":   "https://github.com/lutzroeder/netron/issues/223"
     "link":   "https://github.com/lutzroeder/netron/issues/223"
   },
   },
-  {
-    "type":   "caffe2",
-    "target": "inception_v1/predict_net.pb,inception_v1/init_net.pb",
-    "source": "https://s3.amazonaws.com/download.caffe2.ai/models/inception_v1/predict_net.pb,https://s3.amazonaws.com/download.caffe2.ai/models/inception_v1/init_net.pb",
-    "format": "Caffe2",
-    "link":   "https://github.com/caffe2/models"
-  },
   {
   {
     "type":   "caffe2",
     "type":   "caffe2",
     "target": "inception_v2/predict_net.pb,inception_v2/init_net.pb",
     "target": "inception_v2/predict_net.pb,inception_v2/init_net.pb",
@@ -818,13 +804,6 @@
     "format": "Caffe2",
     "format": "Caffe2",
     "link":   "https://github.com/lutzroeder/netron/issues/168"
     "link":   "https://github.com/lutzroeder/netron/issues/168"
   },
   },
-  {
-    "type":   "caffe2",
-    "target": "mobilenet/predict_net_int8.pbtxt,mobilenet/init_net_int8.pbtxt",
-    "source": "https://raw.githubusercontent.com/cuiyanx/dnnl-models/master/Image%20Classification/mobilenet/predict_net_int8.pbtxt,https://raw.githubusercontent.com/cuiyanx/dnnl-models/master/Image%20Classification/mobilenet/init_net_int8.pbtxt",
-    "format": "Caffe2",
-    "link":   "https://github.com/lutzroeder/netron/issues/437"
-  },
   {
   {
     "type":   "caffe2",
     "type":   "caffe2",
     "target": "mobilenet_v2/predict_net.pb,mobilenet_v2/init_net.pb",
     "target": "mobilenet_v2/predict_net.pb,mobilenet_v2/init_net.pb",
@@ -888,13 +867,6 @@
     "format": "Caffe2",
     "format": "Caffe2",
     "link":   "https://github.com/caffe2/models"
     "link":   "https://github.com/caffe2/models"
   },
   },
-  {
-    "type":   "caffe2",
-    "target": "zfnet512/predict_net.pb,zfnet512/init_net.pb",
-    "source": "https://s3.amazonaws.com/download.caffe2.ai/models/zfnet512/predict_net.pb,https://s3.amazonaws.com/download.caffe2.ai/models/zfnet512/init_net.pb",
-    "format": "Caffe2",
-    "link":   "https://github.com/caffe2/models"
-  },
   {
   {
     "type":   "chainer",
     "type":   "chainer",
     "target": "generator_model.h5",
     "target": "generator_model.h5",