소스 검색

Add kmodel test file (#871)

Lutz Roeder 3 년 전
부모
커밋
697ea71964
2개의 변경된 파일17개의 추가작업 그리고 1개의 파일을 삭제
  1. 10 1
      source/kmodel.js
  2. 7 0
      test/models.json

+ 10 - 1
source/kmodel.js

@@ -732,6 +732,11 @@ kmodel.Reader = class {
                         };
                         if (memory.memory_type === 'const') {
                             value.data = constants.slice(memory.start, memory.start + memory.size);
+                            switch (value.datatype) {
+                                case 'uint8': value.shape = [ value.data.length ]; break;
+                                case 'float32': value.shape = [ value.data.length >> 2 ]; break;
+                                default: break;
+                            }
                         }
                         return value;
                     };
@@ -845,6 +850,7 @@ kmodel.Reader = class {
                         layer.a_rows = reader.int32();
                         layer.a_cols = reader.int32();
                         layer.b_cols = reader.int32();
+                        layer.inputs[1].arguments[0].shape = [ layer.a_cols, layer.b_cols ];
                         layer.fused_activation = [ reader.float32(), reader.float32() ];
                         const bias = reader.read(4 * layer.b_cols);
                         if (!bias.every((value) => value === 0)) {
@@ -931,7 +937,10 @@ kmodel.Reader = class {
                         layer.output_mul = reader.int32();
                         layer.output_shift = reader.int32();
                     });
-                    register(  0x12, 'table_lookup1d', '');
+                    register(  0x12, 'table_lookup1d', '', (layer, reader) => {
+                        layer.inputs = [ reader.parameter('input'), reader.parameter('table') ];
+                        layer.outputs = [ reader.parameter('output') ];
+                    });
                     register(  0x13, 'conv2d_transpose', 'Layer');
                     register(  0x14, 'nnil_unary_method', '');
                     register(0x1001, 'cpu_conv2d', 'Layer');

+ 7 - 0
test/models.json

@@ -2379,6 +2379,13 @@
     "format":   "kmodel v4",
     "link":     "https://github.com/lutzroeder/netron/issues/871"
   },
+  {
+    "type":     "kmodel",
+    "target":   "test1.kmodel",
+    "source":   "https://github.com/lutzroeder/netron/files/8568261/test1.kmodel.zip[test1.kmodel]",
+    "format":   "kmodel v4",
+    "link":     "https://github.com/lutzroeder/netron/issues/871"
+  },
   {
     "type":     "kmodel",
     "target":   "ulffd_landmark.kmodel",