qairt-visualizer 0.5.1__py3-none-win_amd64.whl → 0.7.0__py3-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. qairt_visualizer/core/helpers/version.py +23 -0
  2. qairt_visualizer/core/launchers/base_ui_launcher_context.py +28 -7
  3. qairt_visualizer/core/launchers/electron_launcher_context.py +72 -3
  4. qairt_visualizer/core/parsers/dlc_parser/dlc_parser.py +105 -33
  5. qairt_visualizer/core/parsers/dlc_parser/get_source_topology.py +47 -0
  6. qairt_visualizer/core/parsers/dlc_parser/libDlModelToolsPy.pyd +0 -0
  7. qairt_visualizer/core/parsers/dlc_parser/libDlModelToolsPy.so +0 -0
  8. qairt_visualizer/core/parsers/dlc_parser/libPyIrGraph.pyd +0 -0
  9. qairt_visualizer/core/parsers/dlc_parser/libPyIrGraph.so +0 -0
  10. qairt_visualizer/core/parsers/dlc_parser/models/op_tensor_mappings.py +8 -4
  11. qairt_visualizer/core/ui/dist/browser/__init__.py +47 -0
  12. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/acuity.js → acuity.js} +3 -3
  13. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/app.js → app.js} +63 -57
  14. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/armnn-schema.js → armnn-schema.js} +590 -5
  15. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/armnn.js → armnn.js} +3 -5
  16. qairt_visualizer/core/ui/dist/browser/assets/i18n/common/en.json +8 -2
  17. qairt_visualizer/core/ui/dist/browser/assets/i18n/graph/en.json +44 -36
  18. qairt_visualizer/core/ui/dist/browser/assets/i18n/panels/en.json +9 -3
  19. qairt_visualizer/core/ui/dist/browser/assets/i18n/panels/model-diff/en.json +6 -0
  20. qairt_visualizer/core/ui/dist/browser/assets/i18n/workspaces/en.json +3 -0
  21. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/barracuda.js → barracuda.js} +3 -3
  22. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/base.js → base.js} +20 -16
  23. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/bigdl.js → bigdl.js} +2 -2
  24. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/browser.js → browser.js} +59 -49
  25. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe.js → caffe.js} +3 -3
  26. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe2-proto.js → caffe2-proto.js} +26 -26
  27. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe2.js → caffe2.js} +113 -114
  28. qairt_visualizer/core/ui/dist/browser/chunk-3SMGFPTN.js +11 -0
  29. qairt_visualizer/core/ui/dist/browser/chunk-43LQFSHA.js +1 -0
  30. qairt_visualizer/core/ui/dist/browser/chunk-447NKSFT.js +1 -0
  31. qairt_visualizer/core/ui/dist/browser/chunk-5MAR72QP.js +1 -0
  32. qairt_visualizer/core/ui/dist/browser/chunk-7PTY53DS.js +5 -0
  33. qairt_visualizer/core/ui/dist/browser/chunk-GAUD627J.js +1 -0
  34. qairt_visualizer/core/ui/dist/browser/chunk-H7TLLCSI.js +1 -0
  35. qairt_visualizer/core/ui/dist/browser/chunk-HISUA6LZ.js +4 -0
  36. qairt_visualizer/core/ui/dist/browser/chunk-HXB7IAZI.js +1 -0
  37. qairt_visualizer/core/ui/dist/browser/chunk-JPD5T7FP.js +120 -0
  38. qairt_visualizer/core/ui/dist/browser/chunk-L3QJ7DR2.js +1 -0
  39. qairt_visualizer/core/ui/dist/browser/{chunk-HBP6TEQ6.js → chunk-MCR4N53U.js} +1 -1
  40. qairt_visualizer/core/ui/dist/browser/chunk-QD7PA2I4.js +19 -0
  41. qairt_visualizer/core/ui/dist/browser/chunk-TKZG6FLW.js +12 -0
  42. qairt_visualizer/core/ui/dist/browser/chunk-WFAVWONI.js +5 -0
  43. qairt_visualizer/core/ui/dist/browser/chunk-WRMDGTCT.js +35 -0
  44. qairt_visualizer/core/ui/dist/browser/chunk-X25J6H7V.js +1 -0
  45. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/circle-schema.js → circle-schema.js} +17 -0
  46. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/circle.js → circle.js} +3 -3
  47. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/cntk.js → cntk.js} +1 -1
  48. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/coreml-proto.js → coreml-proto.js} +1 -0
  49. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/coreml.js → coreml.js} +24 -21
  50. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dagre.js → dagre.js} +5 -5
  51. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/darknet-metadata.json → darknet-metadata.json} +0 -1
  52. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/darknet.js → darknet.js} +3 -3
  53. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/electron.mjs → desktop.mjs} +44 -131
  54. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dl4j.js → dl4j.js} +5 -2
  55. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dlc-schema.js → dlc-schema.js} +8 -8
  56. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dlc.js → dlc.js} +110 -29
  57. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dnn.js → dnn.js} +2 -4
  58. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dot.js → dot.js} +1 -1
  59. qairt_visualizer/core/ui/dist/browser/eaix.js +24 -0
  60. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/espresso.js → espresso.js} +1 -1
  61. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/executorch-schema.js → executorch-schema.js} +363 -42
  62. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/executorch.js → executorch.js} +108 -40
  63. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flatbuffers.js → flatbuffers.js} +1 -1
  64. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flax.js → flax.js} +1 -1
  65. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flux.js → flux.js} +2 -2
  66. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/gguf.js → gguf.js} +44 -24
  67. qairt_visualizer/core/ui/dist/browser/grapher.css +145 -0
  68. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/grapher.js → grapher.js} +24 -48
  69. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/hailo.js → hailo.js} +1 -1
  70. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/hickle.js → hickle.js} +1 -1
  71. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/imgdnn.js → imgdnn.js} +1 -1
  72. qairt_visualizer/core/ui/dist/browser/index.html +15 -16
  73. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/index.js → index.js} +2 -24
  74. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/json.js → json.js} +28 -3
  75. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/kann.js → kann.js} +1 -1
  76. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/keras-metadata.json → keras-metadata.json} +15 -7
  77. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/keras.js → keras.js} +13 -7
  78. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/kmodel.js → kmodel.js} +3 -3
  79. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/lasagne.js → lasagne.js} +2 -2
  80. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/lightgbm.js → lightgbm.js} +1 -1
  81. qairt_visualizer/core/ui/dist/browser/main-EVI665MB.js +1 -0
  82. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mediapipe.js → mediapipe.js} +1 -1
  83. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/megengine.js → megengine.js} +1 -1
  84. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/message.js → message.js} +3 -2
  85. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mlir.js → mlir.js} +53 -17
  86. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mlnet.js → mlnet.js} +2 -3
  87. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mnn-schema.js → mnn-schema.js} +9 -6
  88. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mnn.js → mnn.js} +2 -2
  89. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mslite.js → mslite.js} +3 -3
  90. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mxnet.js → mxnet.js} +2 -2
  91. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/ncnn.js → ncnn.js} +3 -2
  92. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnabla.js → nnabla.js} +4 -4
  93. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnef.js → nnef.js} +1 -1
  94. qairt_visualizer/core/ui/dist/browser/node.js +102 -0
  95. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/numpy.js → numpy.js} +9 -9
  96. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/om.js → om.js} +2 -2
  97. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onednn.js → onednn.js} +1 -1
  98. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onnx-metadata.json → onnx-metadata.json} +3500 -233
  99. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onnx-proto.js → onnx-proto.js} +436 -4
  100. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onnx.js → onnx.js} +284 -199
  101. qairt_visualizer/core/ui/dist/browser/onnx.py +231 -0
  102. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/openvino.js → openvino.js} +36 -31
  103. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/paddle-proto.js → paddle-proto.js} +54 -54
  104. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/paddle.js → paddle.js} +22 -3
  105. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pickle.js → pickle.js} +3 -3
  106. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/python.js → python.js} +743 -325
  107. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pytorch-metadata.json → pytorch-metadata.json} +3217 -2934
  108. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pytorch-proto.js → pytorch-proto.js} +4 -4
  109. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pytorch.js → pytorch.js} +172 -86
  110. qairt_visualizer/core/ui/dist/browser/pytorch.py +304 -0
  111. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/qnn.js → qnn.js} +6 -2
  112. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/rknn.js → rknn.js} +3 -3
  113. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/safetensors.js → safetensors.js} +2 -2
  114. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/sentencepiece.js → sentencepiece.js} +1 -1
  115. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/server.py → server.py} +95 -103
  116. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/sklearn-metadata.json → sklearn-metadata.json} +15 -10
  117. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/sklearn.js → sklearn.js} +5 -5
  118. qairt_visualizer/core/ui/dist/browser/{styles-MRR6DOT2.css → styles-2Z5PB4WZ.css} +1 -1
  119. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tar.js → tar.js} +18 -1
  120. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tengine.js → tengine.js} +1 -1
  121. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tensorrt.js → tensorrt.js} +1 -1
  122. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tf-metadata.json → tf-metadata.json} +1255 -163
  123. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tf-proto.js → tf-proto.js} +46 -12
  124. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tf.js → tf.js} +36 -13
  125. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tflite.js → tflite.js} +18 -21
  126. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tnn.js → tnn.js} +1 -3
  127. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/torch.js → torch.js} +1 -1
  128. qairt_visualizer/core/ui/dist/browser/transformers.js +171 -0
  129. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tvm.js → tvm.js} +2 -2
  130. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/uff.js → uff.js} +2 -2
  131. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/view.js → view.js} +1406 -1115
  132. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/weka.js → weka.js} +3 -4
  133. qairt_visualizer/core/ui/dist/browser/worker-EHYFMTM7.js +1 -0
  134. qairt_visualizer/core/ui/dist/browser/worker-KX5DA6GL.js +4 -0
  135. qairt_visualizer/core/ui/dist/browser/xgboost.js +59 -0
  136. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/xml.js → xml.js} +2 -2
  137. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/xmodel.js → xmodel.js} +1 -1
  138. qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/zip.js → zip.js} +38 -41
  139. qairt_visualizer/core/ui/dist/qairt_visualizer.exe +0 -0
  140. qairt_visualizer/core/ui/dist/resources/app.asar +0 -0
  141. {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.7.0.dist-info}/METADATA +1 -1
  142. qairt_visualizer-0.7.0.dist-info/RECORD +265 -0
  143. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/CITATION.cff +0 -10
  144. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/CONTRIBUTING.md +0 -29
  145. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/LICENSE +0 -21
  146. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/README.md +0 -36
  147. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/jenkins/Jenkinsfile +0 -69
  148. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/package-lock.json +0 -5743
  149. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/package.js +0 -689
  150. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/package.json +0 -53
  151. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/package.py +0 -87
  152. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/background.png +0 -0
  153. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/background.svg +0 -5
  154. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/background@2x.png +0 -0
  155. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/electron-builder.json +0 -109
  156. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/eslint.config.js +0 -231
  157. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/forge.config.js +0 -87
  158. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.html +0 -27
  159. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.icns +0 -0
  160. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.icns.svg +0 -175
  161. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.ico +0 -0
  162. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.png +0 -0
  163. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.svg +0 -179
  164. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/notarize.cjs +0 -24
  165. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/pyproject.toml +0 -63
  166. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/setup.py +0 -43
  167. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/resolve_upgrade_merge.sh +0 -10
  168. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/__init__.py +0 -41
  169. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/cambricon.js +0 -32
  170. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/favicon.ico +0 -0
  171. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/grapher.css +0 -602
  172. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/index.html +0 -2222
  173. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/modular.js +0 -81
  174. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/onnx.py +0 -227
  175. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/pytorch.py +0 -298
  176. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/qais/qcontrol.js +0 -207
  177. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/qais/qgraph-toolkit.js +0 -123
  178. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/qais/qsubgraph.js +0 -226
  179. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/qais/qsummary-panel.js +0 -89
  180. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/server.js +0 -250
  181. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/backend.py +0 -80
  182. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/measures.py +0 -27
  183. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/models.js +0 -359
  184. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/models.json +0 -8523
  185. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/worker.js +0 -859
  186. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/armnn +0 -33
  187. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/bigdl +0 -33
  188. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/caffe +0 -37
  189. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/caffe-script.js +0 -12
  190. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/circle +0 -43
  191. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/circle-script.js +0 -87
  192. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/circle_script.js +0 -73
  193. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/cntk +0 -33
  194. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/coreml +0 -49
  195. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/dlc +0 -20
  196. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/dlc.fbs +0 -165
  197. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/dnn +0 -20
  198. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/dnn.proto +0 -79
  199. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/executorch +0 -41
  200. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/flatc.js +0 -1315
  201. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/gguf +0 -22
  202. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/kann +0 -33
  203. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/keras +0 -62
  204. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/keras_metadata.py +0 -205
  205. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/keras_script.py +0 -204
  206. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mediapipe +0 -72
  207. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/megengine +0 -47
  208. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/megengine-script.js +0 -113
  209. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/megengine_script.js +0 -112
  210. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mnn +0 -40
  211. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mslite +0 -45
  212. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mslite-script.js +0 -83
  213. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mslite_metadata.js +0 -82
  214. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/nnabla +0 -79
  215. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/nnabla_script.py +0 -145
  216. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/om +0 -26
  217. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/om.proto +0 -204
  218. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/onnx +0 -135
  219. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/onnx_metadata.py +0 -233
  220. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/onnx_script.py +0 -332
  221. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/paddle +0 -38
  222. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/protoc.js +0 -1609
  223. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/pytorch +0 -85
  224. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/pytorch_metadata.py +0 -166
  225. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/pytorch_script.py +0 -404
  226. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/rknn +0 -20
  227. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/rknn.fbs +0 -78
  228. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/sentencepiece +0 -39
  229. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/sklearn +0 -65
  230. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/sklearn_metadata.py +0 -126
  231. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/sklearn_script.py +0 -129
  232. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tf +0 -97
  233. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tf_metadata.py +0 -403
  234. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tf_script.py +0 -422
  235. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tflite-script.js +0 -87
  236. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tflite_metadata.js +0 -73
  237. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/uff +0 -20
  238. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/uff.proto +0 -127
  239. qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/xmodel +0 -36
  240. qairt_visualizer/core/ui/dist/browser/chunk-3NAQCYEU.js +0 -1
  241. qairt_visualizer/core/ui/dist/browser/chunk-NFKTPX3Z.js +0 -11
  242. qairt_visualizer/core/ui/dist/browser/chunk-OMI6HJ5Y.js +0 -19
  243. qairt_visualizer/core/ui/dist/browser/chunk-TTZXMRJ5.js +0 -34
  244. qairt_visualizer/core/ui/dist/browser/main-NXPVOKMG.js +0 -1
  245. qairt_visualizer/core/ui/dist/browser/worker-5VPKG2GV.js +0 -4
  246. qairt_visualizer/core/ui/dist/browser/worker-UVGWDZ5K.js +0 -1
  247. qairt_visualizer-0.5.1.dist-info/RECORD +0 -337
  248. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/acuity-metadata.json → acuity-metadata.json} +0 -0
  249. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/armnn-metadata.json → armnn-metadata.json} +0 -0
  250. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/bigdl-metadata.json → bigdl-metadata.json} +0 -0
  251. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/bigdl-proto.js → bigdl-proto.js} +0 -0
  252. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe-metadata.json → caffe-metadata.json} +0 -0
  253. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe-proto.js → caffe-proto.js} +0 -0
  254. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe2-metadata.json → caffe2-metadata.json} +0 -0
  255. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/catboost.js → catboost.js} +0 -0
  256. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/circle-metadata.json → circle-metadata.json} +0 -0
  257. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/cntk-metadata.json → cntk-metadata.json} +0 -0
  258. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/cntk-proto.js → cntk-proto.js} +0 -0
  259. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/coreml-metadata.json → coreml-metadata.json} +0 -0
  260. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dl4j-metadata.json → dl4j-metadata.json} +0 -0
  261. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dlc-metadata.json → dlc-metadata.json} +0 -0
  262. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dnn-metadata.json → dnn-metadata.json} +0 -0
  263. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dnn-proto.js → dnn-proto.js} +0 -0
  264. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/espresso-metadata.json → espresso-metadata.json} +0 -0
  265. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flexbuffers.js → flexbuffers.js} +0 -0
  266. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flux-metadata.json → flux-metadata.json} +0 -0
  267. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/hailo-metadata.json → hailo-metadata.json} +0 -0
  268. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/hdf5.js → hdf5.js} +0 -0
  269. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/icon.png → icon.png} +0 -0
  270. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/kann-metadata.json → kann-metadata.json} +0 -0
  271. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/kann-schema.js → kann-schema.js} +0 -0
  272. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/keras-proto.js → keras-proto.js} +0 -0
  273. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/lasagne-metadata.json → lasagne-metadata.json} +0 -0
  274. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/megengine-metadata.json → megengine-metadata.json} +0 -0
  275. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/megengine-schema.js → megengine-schema.js} +0 -0
  276. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mlnet-metadata.json → mlnet-metadata.json} +0 -0
  277. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mnn-metadata.json → mnn-metadata.json} +0 -0
  278. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mslite-metadata.json → mslite-metadata.json} +0 -0
  279. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mslite-schema.js → mslite-schema.js} +0 -0
  280. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mxnet-metadata.json → mxnet-metadata.json} +0 -0
  281. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/ncnn-metadata.json → ncnn-metadata.json} +0 -0
  282. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnabla-metadata.json → nnabla-metadata.json} +0 -0
  283. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnabla-proto.js → nnabla-proto.js} +0 -0
  284. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnc.js → nnc.js} +0 -0
  285. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/om-metadata.json → om-metadata.json} +0 -0
  286. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/om-proto.js → om-proto.js} +0 -0
  287. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onednn-metadata.json → onednn-metadata.json} +0 -0
  288. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onnx-schema.js → onnx-schema.js} +0 -0
  289. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/openvino-metadata.json → openvino-metadata.json} +0 -0
  290. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/paddle-metadata.json → paddle-metadata.json} +0 -0
  291. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/paddle-schema.js → paddle-schema.js} +0 -0
  292. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/protobuf.js → protobuf.js} +0 -0
  293. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pytorch-schema.js → pytorch-schema.js} +0 -0
  294. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/qnn-metadata.json → qnn-metadata.json} +0 -0
  295. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/rknn-metadata.json → rknn-metadata.json} +0 -0
  296. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/rknn-schema.js → rknn-schema.js} +0 -0
  297. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/sentencepiece-proto.js → sentencepiece-proto.js} +0 -0
  298. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tengine-metadata.json → tengine-metadata.json} +0 -0
  299. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/text.js → text.js} +0 -0
  300. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tflite-metadata.json → tflite-metadata.json} +0 -0
  301. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tflite-schema.js → tflite-schema.js} +0 -0
  302. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tnn-metadata.json → tnn-metadata.json} +0 -0
  303. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/torch-metadata.json → torch-metadata.json} +0 -0
  304. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/uff-metadata.json → uff-metadata.json} +0 -0
  305. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/uff-proto.js → uff-proto.js} +0 -0
  306. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/worker.js → worker.js} +0 -0
  307. /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/xmodel-proto.js → xmodel-proto.js} +0 -0
  308. {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.7.0.dist-info}/LICENSE.pdf +0 -0
  309. {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.7.0.dist-info}/WHEEL +0 -0
  310. {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.7.0.dist-info}/entry_points.txt +0 -0
  311. {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.7.0.dist-info}/top_level.txt +0 -0
@@ -227,7 +227,7 @@
227
227
  "name": "AveragePooling2D",
228
228
  "module": "keras.layers",
229
229
  "category": "Pool",
230
- "description": "Average pooling operation for 2D spatial data.\n\nDownsamples the input along its spatial dimensions (height and width)\nby taking the average value over an input window\n(of size defined by `pool_size`) for each channel of the input.\nThe window is shifted by `strides` along each dimension.\n\nThe resulting output when using the `\"valid\"` padding option has a spatial\nshape (number of rows or columns) of:\n`output_shape = math.floor((input_shape - pool_size) / strides) + 1`\n(when `input_shape >= pool_size`)\n\nThe resulting output shape when using the `\"same\"` padding option is:\n`output_shape = math.floor((input_shape - 1) / strides) + 1`",
230
+ "description": "Average pooling operation for 2D spatial data.\n\nDownsamples the input along its spatial dimensions (height and width)\nby taking the average value over an input window\n(of size defined by `pool_size`) for each channel of the input.\nThe window is shifted by `strides` along each dimension.\n\nThe resulting output when using the `\"valid\"` padding option has a spatial\nshape (number of rows or columns) of:\n`output_shape = math.floor((input_shape - pool_size) / strides) + 1`\n(when `input_shape >= pool_size`)\n\nThe resulting output shape when using the `\"same\"` padding option is:\n`output_shape = input_shape`",
231
231
  "attributes": [
232
232
  {
233
233
  "default": "channels_last",
@@ -339,7 +339,7 @@
339
339
  },
340
340
  {
341
341
  "name": "rms_scaling",
342
- "description": "If True, `center` and `scale` are ignored, and the\n inputs are scaled by `gamma` and the inverse square root\n of the square of all inputs. This is an approximate and faster\n approach that avoids ever computing the mean of the input."
342
+ "description": "If True, `center` and `scale` are ignored, and the\n inputs are scaled by `gamma` and the inverse square root\n of the square of all inputs. This is an approximate and faster\n approach that avoids ever computing the mean of the input. Note that\n this *isn't* equivalent to the computation that the\n `keras.layers.RMSNormalization` layer performs."
343
343
  },
344
344
  {
345
345
  "name": "beta_initializer",
@@ -998,7 +998,7 @@
998
998
  },
999
999
  {
1000
1000
  "default": "channels_last",
1001
- "description": "string, either `\"channels_last\"` or `\"channels_first\"`.\n The ordering of the dimensions in the inputs. `\"channels_last\"`\n corresponds to inputs with shape\n `(batch_size, height, width, channels)`\n while `\"channels_first\"` corresponds to inputs with shape\n `(batch_size, channels, height, width)`. It defaults to the\n `image_data_format` value found in your Keras config file at\n `~/.keras/keras.json`. If you never set it, then it will be\n `\"channels_last\"`.",
1001
+ "description": "string, either `\"channels_last\"` or `\"channels_first\"`.\n The ordering of the dimensions in the inputs. `\"channels_last\"`\n corresponds to inputs with shape\n `(batch_size, height, width, channels)`\n while `\"channels_first\"` corresponds to inputs with shape\n `(batch_size, channels, height, width)`. It defaults to the\n `image_data_format` value found in your Keras config file at\n `~/.keras/keras.json`. If you never set it, then it will be\n `\"channels_last\"`.\n dilation_rate: An integer or tuple/list of 2 integers,\n specifying the dilation rate for\n all spatial dimensions for dilated convolution.\n Specifying different dilation rates\n for different dimensions is not supported.\n Currently, specifying any `dilation_rate` value != 1 is\n incompatible with specifying any stride value != 1.",
1002
1002
  "name": "data_format"
1003
1003
  },
1004
1004
  {
@@ -1062,7 +1062,7 @@
1062
1062
  "name": "bias_constraint"
1063
1063
  },
1064
1064
  {
1065
- "description": "An integer or tuple/list of 2 integers,\n specifying the amount of padding along the height and width\n of the output tensor.\n Can be a single integer to specify the same value for all\n spatial dimensions.\n The amount of output padding along a given dimension must be\n lower than the stride along that same dimension.\n If set to `None` (default), the output shape is inferred.",
1065
+ "description": "An integer or tuple/list of 2 integers,\n specifying the amount of padding along the height and width\n of the output tensor.\n Can be a single integer to specify the same value for all\n spatial dimensions.\n The amount of output padding along a given dimension must be\n lower than the stride along that same dimension.\n If set to `None` (default), the output shape is inferred.",
1066
1066
  "name": "output_padding"
1067
1067
  }
1068
1068
  ],
@@ -1779,6 +1779,10 @@
1779
1779
  {
1780
1780
  "name": "lora_rank",
1781
1781
  "description": "Optional integer. If set, the layer's forward pass\n will implement LoRA (Low-Rank Adaptation)\n with the provided rank. LoRA sets the layer's kernel\n to non-trainable and replaces it with a delta over the\n original kernel, obtained via multiplying two lower-rank\n trainable matrices. This can be useful to reduce the\n computation cost of fine-tuning large dense layers.\n You can also enable LoRA on an existing\n `Dense` layer by calling `layer.enable_lora(rank)`."
1782
+ },
1783
+ {
1784
+ "name": "lora_alpha",
1785
+ "description": "Optional integer. If set, this parameter scales the\n low-rank adaptation delta (computed as the product of two lower-rank\n trainable matrices) during the forward pass. The delta is scaled by\n `lora_alpha / lora_rank`, allowing you to fine-tune the strength of\n the LoRA adjustment independently of `lora_rank`."
1782
1786
  }
1783
1787
  ],
1784
1788
  "inputs": [
@@ -2057,6 +2061,10 @@
2057
2061
  {
2058
2062
  "name": "weights",
2059
2063
  "description": "Optional floating-point matrix of size\n `(input_dim, output_dim)`. The initial embeddings values\n to use."
2064
+ },
2065
+ {
2066
+ "name": "lora_alpha",
2067
+ "description": "Optional integer. If set, this parameter scales the\n low-rank adaptation delta (computed as the product of two lower-rank\n trainable matrices) during the forward pass. The delta is scaled by\n `lora_alpha / lora_rank`, allowing you to fine-tune the strength of\n the LoRA adjustment independently of `lora_rank`."
2060
2068
  }
2061
2069
  ],
2062
2070
  "inputs": [
@@ -2251,7 +2259,7 @@
2251
2259
  "name": "GRU",
2252
2260
  "module": "keras.layers",
2253
2261
  "category": "Layer",
2254
- "description": "Gated Recurrent Unit - Cho et al. 2014.\n\nBased on available runtime hardware and constraints, this layer\nwill choose different implementations (cuDNN-based or backend-native)\nto maximize the performance. If a GPU is available and all\nthe arguments to the layer meet the requirement of the cuDNN kernel\n(see below for details), the layer will use a fast cuDNN implementation\nwhen using the TensorFlow backend.\n\nThe requirements to use the cuDNN implementation are:\n\n1. `activation` == `tanh`\n2. `recurrent_activation` == `sigmoid`\n3. `dropout` == 0 and `recurrent_dropout` == 0\n4. `unroll` is `False`\n5. `use_bias` is `True`\n6. `reset_after` is `True`\n7. Inputs, if use masking, are strictly right-padded.\n8. Eager execution is enabled in the outermost context.\n\nThere are two variants of the GRU implementation. The default one is based\non [v3](https://arxiv.org/abs/1406.1078v3) and has reset gate applied to\nhidden state before matrix multiplication. The other one is based on\n[original](https://arxiv.org/abs/1406.1078v1) and has the order reversed.\n\nThe second variant is compatible with CuDNNGRU (GPU-only) and allows\ninference on CPU. Thus it has separate biases for `kernel` and\n`recurrent_kernel`. To use this variant, set `reset_after=True` and\n`recurrent_activation='sigmoid'`.\n\nFor example:\n\n```\n>>> inputs = np.random.random((32, 10, 8))\n>>> gru = keras.layers.GRU(4)\n>>> output = gru(inputs)\n>>> output.shape\n(32, 4)\n>>> gru = keras.layers.GRU(4, return_sequences=True, return_state=True)\n>>> whole_sequence_output, final_state = gru(inputs)\n>>> whole_sequence_output.shape\n(32, 10, 4)\n>>> final_state.shape\n(32, 4)\n```",
2262
+ "description": "Gated Recurrent Unit - Cho et al. 2014.\n\nBased on available runtime hardware and constraints, this layer\nwill choose different implementations (cuDNN-based or backend-native)\nto maximize the performance. If a GPU is available and all\nthe arguments to the layer meet the requirement of the cuDNN kernel\n(see below for details), the layer will use a fast cuDNN implementation\nwhen using the TensorFlow backend.\n\nThe requirements to use the cuDNN implementation are:\n\n1. `activation` == `tanh`\n2. `recurrent_activation` == `sigmoid`\n3. `recurrent_dropout` == 0\n4. `unroll` is `False`\n5. `use_bias` is `True`\n6. `reset_after` is `True`\n7. Inputs, if use masking, are strictly right-padded.\n8. Eager execution is enabled in the outermost context.\n\nThere are two variants of the GRU implementation. The default one is based\non [v3](https://arxiv.org/abs/1406.1078v3) and has reset gate applied to\nhidden state before matrix multiplication. The other one is based on\n[original](https://arxiv.org/abs/1406.1078v1) and has the order reversed.\n\nThe second variant is compatible with CuDNNGRU (GPU-only) and allows\ninference on CPU. Thus it has separate biases for `kernel` and\n`recurrent_kernel`. To use this variant, set `reset_after=True` and\n`recurrent_activation='sigmoid'`.\n\nFor example:\n\n```\n>>> inputs = np.random.random((32, 10, 8))\n>>> gru = keras.layers.GRU(4)\n>>> output = gru(inputs)\n>>> output.shape\n(32, 4)\n>>> gru = keras.layers.GRU(4, return_sequences=True, return_state=True)\n>>> whole_sequence_output, final_state = gru(inputs)\n>>> whole_sequence_output.shape\n(32, 10, 4)\n>>> final_state.shape\n(32, 4)\n```",
2255
2263
  "attributes": [
2256
2264
  {
2257
2265
  "default": "tanh",
@@ -2899,7 +2907,7 @@
2899
2907
  "name": "LSTM",
2900
2908
  "module": "keras.layers",
2901
2909
  "category": "Layer",
2902
- "description": "Long Short-Term Memory layer - Hochreiter 1997.\n\nBased on available runtime hardware and constraints, this layer\nwill choose different implementations (cuDNN-based or backend-native)\nto maximize the performance. If a GPU is available and all\nthe arguments to the layer meet the requirement of the cuDNN kernel\n(see below for details), the layer will use a fast cuDNN implementation\nwhen using the TensorFlow backend.\nThe requirements to use the cuDNN implementation are:\n\n1. `activation` == `tanh`\n2. `recurrent_activation` == `sigmoid`\n3. `dropout` == 0 and `recurrent_dropout` == 0\n4. `unroll` is `False`\n5. `use_bias` is `True`\n6. Inputs, if use masking, are strictly right-padded.\n7. Eager execution is enabled in the outermost context.\n\nFor example:\n\n```\n>>> inputs = np.random.random((32, 10, 8))\n>>> lstm = keras.layers.LSTM(4)\n>>> output = lstm(inputs)\n>>> output.shape\n(32, 4)\n>>> lstm = keras.layers.LSTM(\n... 4, return_sequences=True, return_state=True)\n>>> whole_seq_output, final_memory_state, final_carry_state = lstm(inputs)\n>>> whole_seq_output.shape\n(32, 10, 4)\n>>> final_memory_state.shape\n(32, 4)\n>>> final_carry_state.shape\n(32, 4)\n```",
2910
+ "description": "Long Short-Term Memory layer - Hochreiter 1997.\n\nBased on available runtime hardware and constraints, this layer\nwill choose different implementations (cuDNN-based or backend-native)\nto maximize the performance. If a GPU is available and all\nthe arguments to the layer meet the requirement of the cuDNN kernel\n(see below for details), the layer will use a fast cuDNN implementation\nwhen using the TensorFlow backend.\nThe requirements to use the cuDNN implementation are:\n\n1. `activation` == `tanh`\n2. `recurrent_activation` == `sigmoid`\n3. `recurrent_dropout` == 0\n4. `unroll` is `False`\n5. `use_bias` is `True`\n6. Inputs, if use masking, are strictly right-padded.\n7. Eager execution is enabled in the outermost context.\n\nFor example:\n\n```\n>>> inputs = np.random.random((32, 10, 8))\n>>> lstm = keras.layers.LSTM(4)\n>>> output = lstm(inputs)\n>>> output.shape\n(32, 4)\n>>> lstm = keras.layers.LSTM(\n... 4, return_sequences=True, return_state=True)\n>>> whole_seq_output, final_memory_state, final_carry_state = lstm(inputs)\n>>> whole_seq_output.shape\n(32, 10, 4)\n>>> final_memory_state.shape\n(32, 4)\n>>> final_carry_state.shape\n(32, 4)\n```",
2903
2911
  "attributes": [
2904
2912
  {
2905
2913
  "description": "Positive integer, dimensionality of the output space.",
@@ -3715,7 +3723,7 @@
3715
3723
  ],
3716
3724
  "examples": [
3717
3725
  {
3718
- "code": "from keras.layers import RNN\nfrom keras import ops\n\n# First, let's define a RNN Cell, as a layer subclass.\nclass MinimalRNNCell(keras.Layer):\n\n def __init__(self, units, **kwargs):\n super().__init__(**kwargs)\n self.units = units\n self.state_size = units\n\n def build(self, input_shape):\n self.kernel = self.add_weight(shape=(input_shape[-1], self.units),\n initializer='uniform',\n name='kernel')\n self.recurrent_kernel = self.add_weight(\n shape=(self.units, self.units),\n initializer='uniform',\n name='recurrent_kernel')\n self.built = True\n\n def call(self, inputs, states):\n prev_output = states[0]\n h = ops.matmul(inputs, self.kernel)\n output = h + ops.matmul(prev_output, self.recurrent_kernel)\n return output, [output]\n\n# Let's use this cell in a RNN layer:\n\ncell = MinimalRNNCell(32)\nx = keras.Input((None, 5))\nlayer = RNN(cell)\ny = layer(x)\n\n# Here's how to use the cell to build a stacked RNN:\n\ncells = [MinimalRNNCell(32), MinimalRNNCell(64)]\nx = keras.Input((None, 5))\nlayer = RNN(cells)\ny = layer(x)"
3726
+ "code": "from keras.layers import RNN\nfrom keras import ops\n\n# First, let's define a RNN Cell, as a layer subclass.\nclass MinimalRNNCell(keras.Layer):\n\n def __init__(self, units, **kwargs):\n super().__init__(**kwargs)\n self.units = units\n self.state_size = units\n\n def build(self, input_shape):\n self.kernel = self.add_weight(shape=(input_shape[-1], self.units),\n initializer='uniform',\n name='kernel')\n self.recurrent_kernel = self.add_weight(\n shape=(self.units, self.units),\n initializer='uniform',\n name='recurrent_kernel')\n\n def call(self, inputs, states):\n prev_output = states[0]\n h = ops.matmul(inputs, self.kernel)\n output = h + ops.matmul(prev_output, self.recurrent_kernel)\n return output, [output]\n\n# Let's use this cell in a RNN layer:\n\ncell = MinimalRNNCell(32)\nx = keras.Input((None, 5))\nlayer = RNN(cell)\ny = layer(x)\n\n# Here's how to use the cell to build a stacked RNN:\n\ncells = [MinimalRNNCell(32), MinimalRNNCell(64)]\nx = keras.Input((None, 5))\nlayer = RNN(cells)\ny = layer(x)"
3719
3727
  }
3720
3728
  ]
3721
3729
  },
@@ -9,7 +9,7 @@ keras.ModelFactory = class {
9
9
 
10
10
  async match(context) {
11
11
  const identifier = context.identifier;
12
- const extension = identifier.split('.').pop().toLowerCase();
12
+ const extension = identifier.lastIndexOf('.') > 0 ? identifier.split('.').pop().toLowerCase() : '';
13
13
  const group = await context.peek('hdf5');
14
14
  if (group && group.attributes && group.attributes.get('CLASS') !== 'hickle') {
15
15
  if (identifier === 'model.weights.h5') {
@@ -518,7 +518,7 @@ keras.Model = class {
518
518
  this.runtime = backend;
519
519
  this.producer = producer;
520
520
  metadata = new keras.GraphMetadata(metadata);
521
- this.graphs = [new keras.Graph(metadata, config, weights)];
521
+ this.modules = [new keras.Graph(metadata, config, weights)];
522
522
  }
523
523
  };
524
524
 
@@ -565,15 +565,22 @@ keras.Graph = class {
565
565
  return null;
566
566
  };
567
567
  this.name = config.name || (config.config && config.config.name ? config.config.name : '');
568
- this.type = config.class_name;
568
+ this.description = config.class_name;
569
569
  let baseType = config.class_name;
570
570
  switch (baseType) {
571
- case 'Sequential':
572
571
  case '__Function__':
572
+ this.type = 'function';
573
+ break;
574
+ case 'Sequential':
573
575
  case 'Functional':
574
576
  case 'Model': {
575
577
  break;
576
578
  }
579
+ case 'Tokenizer': {
580
+ config = { config: { layers: [config] } };
581
+ baseType = 'Functional';
582
+ break;
583
+ }
577
584
  default: {
578
585
  const layers = Array.from(config.layers ? config.layers : config);
579
586
  const sequential = layers.every((layer) => layer.inbound_nodes === undefined);
@@ -766,9 +773,7 @@ keras.Graph = class {
766
773
  layer.inputs = [];
767
774
  layer.outputs = [];
768
775
  layer.args = {};
769
- /* eslint-disable prefer-destructuring */
770
- layer.inbound_node = layer.inbound_nodes[0];
771
- /* eslint-enable prefer-destructuring */
776
+ [layer.inbound_node] = layer.inbound_nodes;
772
777
  nodes.set(`${layer.name}[${first_index}]`, layer);
773
778
  } else {
774
779
  let config = {};
@@ -861,6 +866,7 @@ keras.Graph = class {
861
866
  }
862
867
  }
863
868
  } else if (weights) {
869
+ this.type = 'weights';
864
870
  for (const name of weights.keys()) {
865
871
  if (weights.get('', name).length <= 6) {
866
872
  const layer = { class_name: 'Weights', config: { name } };
@@ -24,7 +24,7 @@ kmodel.Model = class {
24
24
 
25
25
  constructor(model) {
26
26
  this.format = `kmodel v${model.version}`;
27
- this.graphs = model.modules.map((module) => new kmodel.Graph(module));
27
+ this.modules = model.modules.map((module) => new kmodel.Graph(module));
28
28
  }
29
29
  };
30
30
 
@@ -32,7 +32,7 @@ kmodel.Graph = class {
32
32
 
33
33
  constructor(module) {
34
34
  this.name = module.name || '';
35
- this.type = module.type || '';
35
+ this.description = module.type || '';
36
36
  this.inputs = [];
37
37
  this.outputs = [];
38
38
  this.nodes = [];
@@ -252,7 +252,7 @@ kmodel.Reader = class {
252
252
  }
253
253
 
254
254
  read() {
255
- if (this.version < 3 || this.version > 5) {
255
+ if (this.version < 3 || this.version > 7) {
256
256
  throw new kmodel.Error(`Unsupported model version '${this.version}'.`);
257
257
  }
258
258
  const types = new Map();
@@ -23,7 +23,7 @@ lasagne.Model = class {
23
23
 
24
24
  constructor(metadata, model) {
25
25
  this.format = 'Lasagne';
26
- this.graphs = [new lasagne.Graph(metadata, model)];
26
+ this.modules = [new lasagne.Graph(metadata, model)];
27
27
  }
28
28
  };
29
29
 
@@ -48,7 +48,7 @@ lasagne.Graph = class {
48
48
  const layer = model.layers_[name];
49
49
  if (layer.input_layer && layer.input_layer.name) {
50
50
  const input_layer = layer.input_layer;
51
- const dataType = input_layer.input_var ? input_layer.input_var.type.dtype : '?';
51
+ const dataType = input_layer.input_var && input_layer.input_var.type ? input_layer.input_var.type.dtype : '?';
52
52
  const shape = layer.input_shape ? new lasagne.TensorShape(layer.input_shape) : null;
53
53
  const type = shape ? new lasagne.TensorType(dataType, shape) : null;
54
54
  values.map(input_layer.name, type);
@@ -45,7 +45,7 @@ lightgbm.Model = class {
45
45
 
46
46
  constructor(obj, format) {
47
47
  this.format = format + (obj && obj.version ? ` ${obj.version}` : '');
48
- this.graphs = [new lightgbm.Graph(obj)];
48
+ this.modules = [new lightgbm.Graph(obj)];
49
49
  }
50
50
  };
51
51
 
@@ -0,0 +1 @@
1
+ Promise.all([]).then(()=>import("./chunk-JPD5T7FP.js")).catch(r=>console.error("error",r));
@@ -33,7 +33,7 @@ mediapipe.Model = class {
33
33
 
34
34
  constructor(config) {
35
35
  this.format = 'MediaPipe';
36
- this.graphs = [new mediapipe.Graph(config)];
36
+ this.modules = [new mediapipe.Graph(config)];
37
37
  }
38
38
  };
39
39
 
@@ -72,7 +72,7 @@ megengine.Model = class {
72
72
  } else if (type === 'megengine.mge') {
73
73
  this.format += ` Mge${obj.model_version ? ` v${obj.model_version}` : ''}`;
74
74
  }
75
- this.graphs = [new megengine.Graph(metadata, obj)];
75
+ this.modules = [new megengine.Graph(metadata, obj)];
76
76
  }
77
77
  };
78
78
 
@@ -37,11 +37,12 @@ message.Model = class {
37
37
  this.metadata = (data.metadata || []).map((entry) => {
38
38
  return { name: entry.name, value: entry.value };
39
39
  });
40
- this.graphs = (data.graphs || []).map((graph) => new message.Graph(graph));
40
+ const modules = data.modules || data.graphs || [];
41
+ this.modules = modules.map((module) => new message.Module(module));
41
42
  }
42
43
  };
43
44
 
44
- message.Graph = class {
45
+ message.Module = class {
45
46
 
46
47
  constructor(data) {
47
48
  this.inputs = [];
@@ -34,13 +34,14 @@ mlir.ModelFactory = class {
34
34
  const decoder = await context.read('text.decoder');
35
35
  const parser = new mlir.Parser(decoder);
36
36
  const obj = await parser.read();
37
- return new mlir.Model(obj);
37
+ const metadata = new mlir.Metadata();
38
+ return new mlir.Model(metadata, obj);
38
39
  }
39
40
  case 'mlir.binary': {
40
41
  const reader = await context.read('binary');
41
42
  const parser = new mlir.BytecodeReader(reader);
42
43
  parser.read();
43
- throw new mlir.Error('Invalid file content. File contains MLIR bytecode data.');
44
+ throw new mlir.Error('File contains unsupported MLIR bytecode data.');
44
45
  }
45
46
  default: {
46
47
  throw new mlir.Error(`Unsupported MLIR format '${context.type}'.`);
@@ -51,22 +52,22 @@ mlir.ModelFactory = class {
51
52
 
52
53
  mlir.Model = class {
53
54
 
54
- constructor(obj) {
55
+ constructor(metadata, obj) {
55
56
  this.format = 'MLIR';
56
- this.graphs = [];
57
+ this.modules = [];
57
58
  this.metadata = [];
58
59
  for (const op of obj.operations) {
59
60
  if (op.name.endsWith('.func')) {
60
- const graph = new mlir.Graph(op);
61
- this.graphs.push(graph);
61
+ const graph = new mlir.Graph(metadata, op);
62
+ this.modules.push(graph);
62
63
  }
63
64
  if (op.name.endsWith('.module')) {
64
65
  for (const region of op.regions) {
65
66
  for (const block of region.blocks) {
66
67
  for (const op of block.operations) {
67
68
  if (op.name.endsWith('.func')) {
68
- const graph = new mlir.Graph(op);
69
- this.graphs.push(graph);
69
+ const graph = new mlir.Graph(metadata, op);
70
+ this.modules.push(graph);
70
71
  }
71
72
  }
72
73
  }
@@ -75,7 +76,8 @@ mlir.Model = class {
75
76
  }
76
77
  if (obj.definitions) {
77
78
  for (const attribute of obj.definitions) {
78
- const metadata = new mlir.Argument(attribute.name, attribute.value, attribute.type);
79
+ const value = typeof attribute.value === 'string' ? attribute.value : JSON.stringify(attribute.value);
80
+ const metadata = new mlir.Argument(attribute.name, value, 'attribute');
79
81
  this.metadata.push(metadata);
80
82
  }
81
83
  }
@@ -84,10 +86,11 @@ mlir.Model = class {
84
86
 
85
87
  mlir.Graph = class {
86
88
 
87
- constructor(func) {
89
+ constructor(metadata, func) {
88
90
  const attr = Object.fromEntries(func.attributes.map((attr) => [attr.name, attr.value]));
89
91
  this.name = attr.sym_name || '';
90
- this.type = func.name;
92
+ this.type = func.name === 'func' || func.name.endsWith('.func') ? 'function' : '';
93
+ this.description = func.name;
91
94
  this.inputs = [];
92
95
  this.outputs = [];
93
96
  this.nodes = [];
@@ -285,7 +288,7 @@ mlir.Graph = class {
285
288
  // const map = new Map(metadata.inputs.map((input) => [ input.name, index++ ]));
286
289
  // op.inputs.sort((a, b) => (map.get(a.name) || map.size) - (map.get(b.name) || map.size));
287
290
  // }
288
- const node = new mlir.Node(op);
291
+ const node = new mlir.Node(metadata, op);
289
292
  this.nodes.push(node);
290
293
  }
291
294
  }
@@ -301,8 +304,8 @@ mlir.Argument = class {
301
304
  case 'i64': this.type = 'int64'; break;
302
305
  case 'si64': this.type = 'int64'; break;
303
306
  case 'i32': this.type = 'int32'; break;
304
- case 'f32': this.type = 'float32'; break;
305
- case 'f64': this.type = 'float64'; break;
307
+ case 'f32': case 'float32': this.type = 'float32'; break;
308
+ case 'f64': case 'float64': this.type = 'float64'; break;
306
309
  case null:
307
310
  case 'attribute':
308
311
  case 'boolean':
@@ -331,11 +334,13 @@ mlir.Value = class {
331
334
 
332
335
  mlir.Node = class {
333
336
 
334
- constructor(op) {
337
+ constructor(metadata, op) {
335
338
  if (!op.type) {
336
339
  throw new mlir.Error('Undefined node type.');
337
340
  }
338
- this.type = { name: op.type || '', identifier: op.identifier || '' };
341
+ this.type = { ...metadata.type(op.identifier || '') };
342
+ this.type.name = op.type || '';
343
+ this.type.identifier = op.identifier || '';
339
344
  this.name = op.name || '';
340
345
  this.inputs = op.operands || [];
341
346
  this.outputs = op.results || [];
@@ -1214,7 +1219,7 @@ mlir.Parser = class {
1214
1219
  const open = this._eat('(');
1215
1220
  while (!this._match(')') && !this._match('->') && !this._match('{')) {
1216
1221
  const input = {};
1217
- if (this._token.kind === 'id' && this._token.value !== 'dense') {
1222
+ if (this._token.kind === 'id' && this._token.value !== 'dense' && this._token.value !== 'dense_resource') {
1218
1223
  const identifier = this._read('id');
1219
1224
  if (this._eat('(')) {
1220
1225
  const args = this._parseArguments();
@@ -1455,6 +1460,16 @@ mlir.Parser = class {
1455
1460
  value.type = 'type';
1456
1461
  return value;
1457
1462
  }
1463
+ if (this._eat('id', 'dense_resource')) {
1464
+ value.value = null;
1465
+ value.type = 'dense';
1466
+ this._read('<');
1467
+ if (!this._match('>')) {
1468
+ value.value = this._read();
1469
+ }
1470
+ this._read('>');
1471
+ return value;
1472
+ }
1458
1473
  if (this._eat('id', 'dense')) {
1459
1474
  value.value = null;
1460
1475
  value.type = 'dense';
@@ -1872,6 +1887,27 @@ mlir.Utility = class {
1872
1887
  }
1873
1888
  };
1874
1889
 
1890
+ mlir.Metadata = class {
1891
+
1892
+ constructor() {
1893
+ this._types = new Map();
1894
+ this.register('stablehlo.reshape', 'Shape');
1895
+ this.register('asuka.split', 'Tensor');
1896
+ this.register('stablehlo.transpose', 'Transform');
1897
+ this.register('toy.transpose', 'Transform');
1898
+ this.register('asuka.softmax', 'Activation');
1899
+ this.register('stablehlo.slice', 'Tensor');
1900
+ }
1901
+
1902
+ register(name, category) {
1903
+ this._types.set(name, { name, category });
1904
+ }
1905
+
1906
+ type(name) {
1907
+ return this._types.get(name) || { name };
1908
+ }
1909
+ };
1910
+
1875
1911
  mlir.Error = class extends Error {
1876
1912
 
1877
1913
  constructor(message) {
@@ -32,12 +32,11 @@ mlnet.Model = class {
32
32
  if (reader.version && reader.version.length > 0) {
33
33
  this.format += ` v${reader.version}`;
34
34
  }
35
- const graph = new mlnet.Graph(metadata, reader);
36
- this.graphs = [graph];
35
+ this.modules = [new mlnet.Module(metadata, reader)];
37
36
  }
38
37
  };
39
38
 
40
- mlnet.Graph = class {
39
+ mlnet.Module = class {
41
40
 
42
41
  constructor(metadata, reader) {
43
42
  this.inputs = [];
@@ -269,7 +269,7 @@ MNN.IDSTQuan = class IDSTQuan {
269
269
  $.quantScale = reader.float32_(position, 12, 0);
270
270
  $.scaleIn = reader.float32_(position, 14, 0);
271
271
  $.scaleOut = reader.float32_(position, 16, 0);
272
- $.aMax = reader.int32_(position, 18, 0);
272
+ $.aMaxOrBits = reader.int32_(position, 18, 0);
273
273
  $.aMin = reader.int32_(position, 20, 0);
274
274
  $.readType = reader.int32_(position, 22, 0);
275
275
  $.has_scaleInt = reader.bool_(position, 24, false);
@@ -288,7 +288,7 @@ MNN.IDSTQuan = class IDSTQuan {
288
288
  $.quantScale = reader.value(json.quantScale, 0);
289
289
  $.scaleIn = reader.value(json.scaleIn, 0);
290
290
  $.scaleOut = reader.value(json.scaleOut, 0);
291
- $.aMax = reader.value(json.aMax, 0);
291
+ $.aMaxOrBits = reader.value(json.aMaxOrBits, 0);
292
292
  $.aMin = reader.value(json.aMin, 0);
293
293
  $.readType = reader.value(json.readType, 0);
294
294
  $.has_scaleInt = reader.value(json.has_scaleInt, false);
@@ -2489,7 +2489,7 @@ MNN.OpType = {
2489
2489
  LRN: 37,
2490
2490
  LSTM: 38,
2491
2491
  MatMul: 39,
2492
- MVN: 40,
2492
+ MoE: 40,
2493
2493
  NonMaxSuppression: 41,
2494
2494
  NonMaxSuppressionV2: 42,
2495
2495
  Normalize: 43,
@@ -3157,9 +3157,12 @@ MNN.TensorDescribe = class TensorDescribe {
3157
3157
  MNN.ForwardType = {
3158
3158
  CPU: 0,
3159
3159
  METAL: 1,
3160
- OPENCL: 2,
3161
- OPENGLES: 3,
3162
- VULKAN: 4
3160
+ CUDA: 2,
3161
+ OPENCL: 3,
3162
+ AUTO: 4,
3163
+ NNAPI: 5,
3164
+ OPENGLES: 6,
3165
+ VULKAN: 7
3163
3166
  };
3164
3167
 
3165
3168
  MNN.Usage = {
@@ -64,7 +64,7 @@ mnn.Model = class {
64
64
  throw new mnn.Error(`Unsupported model source '${net.sourceType}'.`);
65
65
  }
66
66
  this.source = sources.get(net.sourceType);
67
- this.graphs = [new mnn.Graph(metadata, net)];
67
+ this.modules = [new mnn.Graph(metadata, net)];
68
68
  }
69
69
  };
70
70
 
@@ -178,7 +178,7 @@ mnn.Node = class {
178
178
  delete param.symmetricQuan;
179
179
  } else if (param instanceof mnn.schema.InnerProduct) {
180
180
  const outputCount = param.outputCount;
181
- const inputCount = param.weightSize / outputCount;
181
+ const inputCount = outputCount > 0 ? param.weightSize / outputCount : 0;
182
182
  this._buildTensor('weight', mnn.schema.DataType.DT_FLOAT, [outputCount, inputCount], param.weight);
183
183
  this._buildTensor('bias', mnn.schema.DataType.DT_FLOAT, [outputCount], param.bias);
184
184
  delete param.weight;
@@ -47,17 +47,17 @@ mslite.Model = class {
47
47
 
48
48
  constructor(metadata, model) {
49
49
  this.name = model.name || '';
50
- this.graphs = [];
50
+ this.modules = [];
51
51
  const version = model.version ? model.version.match(/^.*(\d\.\d\.\d)$/) : null;
52
52
  this.format = `MindSpore Lite${version ? ` v${version[1]}` : ''}`;
53
53
  const subgraphs = model.subGraph;
54
54
  if (Array.isArray(subgraphs)) {
55
55
  for (const subgraph of subgraphs) {
56
- this.graphs.push(new mslite.Graph(metadata, subgraph, model));
56
+ this.modules.push(new mslite.Graph(metadata, subgraph, model));
57
57
  }
58
58
  } else {
59
59
  const graph = new mslite.Graph(metadata, model, model);
60
- this.graphs.push(graph);
60
+ this.modules.push(graph);
61
61
  }
62
62
  }
63
63
  };
@@ -7,7 +7,7 @@ mxnet.ModelFactory = class {
7
7
 
8
8
  async match(context) {
9
9
  const identifier = context.identifier;
10
- const extension = identifier.split('.').pop().toLowerCase();
10
+ const extension = identifier.lastIndexOf('.') > 0 ? identifier.split('.').pop().toLowerCase() : '';
11
11
  if (extension === 'json') {
12
12
  const obj = await context.peek('json');
13
13
  if (obj && Array.isArray(obj.nodes) && Array.isArray(obj.arg_nodes) && Array.isArray(obj.heads) && !obj.nodes.some((node) => node && node.op === 'tvm_op')) {
@@ -259,7 +259,7 @@ mxnet.Model = class {
259
259
  if (manifest.license) {
260
260
  this.metadata.push(new mxnet.Argument('license', manifest.license));
261
261
  }
262
- this.graphs = [new mxnet.Graph(metadata, manifest, symbol, params)];
262
+ this.modules = [new mxnet.Graph(metadata, manifest, symbol, params)];
263
263
  }
264
264
  };
265
265
 
@@ -191,7 +191,7 @@ ncnn.Model = class {
191
191
 
192
192
  constructor(metadata, format, param, blobs) {
193
193
  this.format = format === 'pnnx' ? 'PNNX' : 'ncnn';
194
- this.graphs = [new ncnn.Graph(metadata, format, param, blobs)];
194
+ this.modules = [new ncnn.Graph(metadata, format, param, blobs)];
195
195
  }
196
196
  };
197
197
 
@@ -367,7 +367,8 @@ ncnn.Node = class {
367
367
  const weight_data_size = parseInt(params.get('2') || 0, 10);
368
368
  const int8_scale_term = parseInt(params.get('8') || 0, 10);
369
369
  const activation_type = parseInt(params.get('9') || 0, 10);
370
- blobs.weight('weight', [num_output, weight_data_size / num_output]);
370
+ const input_size = num_output > 0 ? Math.floor(weight_data_size / num_output) : 0;
371
+ blobs.weight('weight', [num_output, input_size]);
371
372
  if (bias_term) {
372
373
  blobs.weight('bias', [num_output], 1);
373
374
  }
@@ -79,7 +79,7 @@ nnabla.Model = class {
79
79
 
80
80
  constructor(metadata, model, version) {
81
81
  this.format = `NNabla${version ? ` v${version}` : ''}`;
82
- this.graphs = [];
82
+ this.modules = [];
83
83
  const tensors = new Map(model.parameter.map((parameter) => {
84
84
  const name = parameter.variable_name;
85
85
  const shape = new nnabla.TensorShape(parameter.shape.dim);
@@ -90,17 +90,17 @@ nnabla.Model = class {
90
90
  for (const executor of model.executor) {
91
91
  const network = networks.get(executor.network_name);
92
92
  const graph = new nnabla.Graph(metadata, network, executor.data_variable, executor.output_variable, tensors);
93
- this.graphs.push(graph);
93
+ this.modules.push(graph);
94
94
  }
95
95
  for (const optimizer of model.optimizer) {
96
96
  const network = networks.get(optimizer.network_name);
97
97
  const graph = new nnabla.Graph(metadata, network, optimizer.data_variable, optimizer.loss_variable, tensors);
98
- this.graphs.push(graph);
98
+ this.modules.push(graph);
99
99
  }
100
100
  for (const monitor of model.monitor) {
101
101
  const network = networks.get(monitor.network_name);
102
102
  const graph = new nnabla.Graph(metadata, network, monitor.data_variable, monitor.monitor_variable, tensors);
103
- this.graphs.push(graph);
103
+ this.modules.push(graph);
104
104
  }
105
105
  }
106
106
  };
@@ -5,7 +5,7 @@ nnef.ModelFactory = class {
5
5
 
6
6
  async match(context) {
7
7
  const identifier = context.identifier;
8
- const extension = identifier.split('.').pop().toLowerCase();
8
+ const extension = identifier.lastIndexOf('.') > 0 ? identifier.split('.').pop().toLowerCase() : '';
9
9
  switch (extension) {
10
10
  case 'nnef': {
11
11
  const reader = await nnef.TextReader.open(context);