Ver código fonte

Format clean-up

Lutz Roeder 8 anos atrás
pai
commit
5bbf1ba8e5
5 arquivos alterados com 40 adições e 13 exclusões
  1. 9 3
      package.json
  2. 1 0
      src/app.js
  3. 7 1
      src/view-template.js
  4. 21 9
      src/view-tf.js
  5. 2 0
      src/view.css

+ 9 - 3
package.json

@@ -39,6 +39,13 @@
             "buildResources": "setup"
         },
         "fileAssociations": [
+            {
+                "ext": [
+                    "onnx",
+                    "pb"
+                ],
+                "name": "ONNX Model"
+            },
             {
                 "ext": [
                     "saved_model.pb"
@@ -47,10 +54,9 @@
             },
             {
                 "ext": [
-                    "pb",
-                    "onnx"
+                    "pb"
                 ],
-                "name": "ONNX Model"
+                "name": "TensorFlow Graph Definition"
             },
             {
                 "ext": [

+ 1 - 0
src/app.js

@@ -33,6 +33,7 @@ function openFileDialog() {
         filters: [
             { name: 'ONNX Model', extensions: [ 'onnx', 'pb' ] },
             { name: 'TensorFlow Saved Model', extensions: [ 'saved_model.pb' ] },
+            { name: 'TensorFlow Graph Definition', extensions: [ 'pb' ] },
             { name: 'TensorFlow Lite Model', extensions: [ 'tflite' ]}
         ]
     };

+ 7 - 1
src/view-template.js

@@ -274,6 +274,12 @@ var summaryTemplate = `
 {{#if name}}
 <tr><td>Name</td><td>{{{name}}}</td></tr>
 {{/if}}
+{{#if version}}
+<tr><td>Version</td><td>{{{version}}}</td></tr>
+{{/if}}
+{{#if tags}}
+<tr><td>Tags</td><td>{{{tags}}}</td></tr>
+{{/if}}
 <tr>
 {{#if inputs}}
 <td>Inputs</td>
@@ -295,7 +301,7 @@ var summaryTemplate = `
 </tr>
 {{/if}}
 {{#if description}}
-<tr><td>{{{name}}}</td><td>{{{value}}}</td></tr>
+<tr><td>{{{Description}}}</td><td>{{{description}}}</td></tr>
 {{/if}}
 </table>
 <button style='float: right; width: 80px;' onclick='javascript:updateActiveGraph("{{{name}}}");'>View</button>

+ 21 - 9
src/view-tf.js

@@ -15,15 +15,21 @@ class TensorFlowModel {
             if (identifier == 'saved_model.pb') {
                 this.model = tensorflow.SavedModel.decode(buffer);
                 this.activeGraph = (this.model.metaGraphs.length > 0) ? this.model.metaGraphs[0] : null;
+                this.format = 'TensorFlow Saved Model';
+                if (this.model.savedModelSchemaVersion) {
+                    this.format += ' v' + this.model.savedModelSchemaVersion.toString();
+                }
             }
             else {
                 var graphDef = tensorflow.GraphDef.decode(buffer);
                 var metaGraph = new tensorflow.MetaGraphDef();
                 metaGraph.graphDef = graphDef;
+                metaGraph.anyInfo = identifier;
                 var savedModel = new tensorflow.SavedModel();
                 savedModel.metaGraphs.push(metaGraph);
                 this.model = savedModel;
                 this.activeGraph = metaGraph;
+                this.format = 'TensorFlow Graph Defintion';
             }
         }
         catch (err) {
@@ -42,19 +48,25 @@ class TensorFlowModel {
 
     formatModelSummary() {
         var summary = { properties: [], graphs: [] };
-
-        var format = 'TensorFlow Saved Model' + (this.model.savedModelSchemaVersion ? (' v' + this.model.savedModelSchemaVersion.toString()) : '');
-        summary.properties.push({ name: 'Format', value: format });
+        summary.properties.push({ name: 'Format', value: this.format });
 
         for (var i = 0; i < this.model.metaGraphs.length; i++) {
-            var graph = this.model.metaGraphs[i];
-            summary.graphs.push({
-                name: graph.anyInfo ? graph.anyInfo.toString() : ('(' + i.toString() + ')')
-            });
+            var metaGraph = this.model.metaGraphs[i];
+            var result = {};
+            result.name = metaGraph.anyInfo ? metaGraph.anyInfo.toString() : ('(' + i.toString() + ')');
+            if (metaGraph.metaInfoDef) {
+                if (metaGraph.metaInfoDef.tensorflowVersion) {
+                    result.version = 'TensorFlow ' + metaGraph.metaInfoDef.tensorflowVersion;
+                }
+                if (metaGraph.metaInfoDef.tags) {
+                    result.tags = metaGraph.metaInfoDef.tags.join(', ');
+                }
+            }
+            // metaInfoDef.tensorflowGitVersion
+            // TODO signature
+            summary.graphs.push(result);
         }
-        // model.metaGraphs[x].metaInfoDef.tensorflowGitVersion/tensorflowVersion
 
-        // TODO
         return summary;
     }
 

+ 2 - 0
src/view.css

@@ -15,6 +15,8 @@
     bottom: 0;
     left: 0;
     right: 0;
+    user-select: none;
+    -webkit-user-select: none;
 }
 
 body {