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
@@ -1,81 +0,0 @@
1
-
2
- const modular = {};
3
-
4
- modular.ModelFactory = class {
5
-
6
- async match(context) {
7
- const obj = await context.peek('json');
8
- if (obj && obj.signature === "netron:modular") {
9
- return context.set('modular', obj);
10
- }
11
- return null;
12
- }
13
-
14
- async open(context) {
15
- return new modular.Model(context.value);
16
- }
17
- };
18
-
19
- modular.Model = class {
20
-
21
- constructor(obj) {
22
- this.format = 'Modular';
23
- this.graphs = obj.graphs.map((graph) => new modular.Graph(graph));
24
- }
25
- };
26
-
27
- modular.Graph = class {
28
-
29
- constructor(graph) {
30
- this.nodes = Array.from(graph.nodes.map((node) => new modular.Node(node)));
31
- this.inputs = [];
32
- this.outputs = [];
33
- }
34
- };
35
-
36
- modular.Argument = class {
37
-
38
- constructor(name, value) {
39
- this.name = name;
40
- this.value = value;
41
- }
42
- };
43
-
44
- modular.Value = class {
45
-
46
- constructor(name, value) {
47
- if (typeof name !== 'string') {
48
- throw new modular.Error(`Invalid value identifier '${JSON.stringify(name)}'.`);
49
- }
50
- this.name = name;
51
- this.value = value;
52
- }
53
- };
54
-
55
- modular.Node = class {
56
-
57
- constructor(node) {
58
- this.name = '';
59
- this.type = { name: node.type.name };
60
- if (node.type.category === 'List') {
61
- this.type.category = 'Data';
62
- } else if (node.type.category === 'ControlFlow') {
63
- this.type.category = 'Control';
64
- } else {
65
- this.type.category = node.type.category;
66
- }
67
- this.attributes = Array.isArray(node.attributes) ? Array.from(node.attributes).map((attribute) => new modular.Argument(attribute.name, attribute.value)) : [];
68
- this.inputs = Array.from(node.inputs.map((input) => new modular.Argument(input.name, Array.from(input.arguments.map((value) => new modular.Value(value.toString(), input.name))))));
69
- this.outputs = Array.from(node.outputs.map((output) => new modular.Argument(output.name, Array.from(output.arguments.map((value) => new modular.Value(value.toString(), output.name))))));
70
- }
71
- };
72
-
73
- modular.Error = class extends Error {
74
-
75
- constructor(message) {
76
- super(message);
77
- this.name = 'Error loading Modular model.';
78
- }
79
- };
80
-
81
- export const ModelFactory = modular.ModelFactory;
@@ -1,227 +0,0 @@
1
- ''' ONNX backend '''
2
-
3
- import collections
4
- import enum
5
- import json
6
- import os
7
-
8
- class ModelFactory: # pylint: disable=too-few-public-methods
9
- ''' ONNX backend model factory '''
10
- def open(self, model): # pylint: disable=missing-function-docstring
11
- return _Model(model)
12
-
13
- class _Model: # pylint: disable=too-few-public-methods
14
- def __init__(self, model):
15
- ''' Serialize ONNX model to JSON message '''
16
- # import onnx.shape_inference
17
- # model = onnx.shape_inference.infer_shapes(model)
18
- self.value = model
19
- self.metadata = _Metadata()
20
- self.graph = _Graph(model.graph, self.metadata)
21
-
22
- def to_json(self): # pylint: disable=missing-function-docstring
23
- ''' Serialize model to JSON message '''
24
- model = self.value
25
- json_model = {}
26
- json_model['signature'] = 'netron:onnx'
27
- json_model['format'] = 'ONNX' + (' v' + str(model.ir_version) if model.ir_version else '')
28
- if model.producer_name and len(model.producer_name) > 0:
29
- producer_version = ' v' + model.producer_version if model.producer_version else ''
30
- json_model['producer'] = model.producer_name + producer_version
31
- if model.model_version and model.model_version != 0:
32
- json_model['version'] = str(model.model_version)
33
- if model.doc_string and len(model.doc_string):
34
- json_model['description'] = str(model.doc_string)
35
- json_metadata = self._metadata_props(model.metadata_props)
36
- if len(json_metadata) > 0:
37
- json_model['metadata'] = json_metadata
38
- json_model['graphs'] = []
39
- json_model['graphs'].append(self.graph.to_json())
40
- return json_model
41
-
42
- def _metadata_props(self, metadata_props): # pylint: disable=missing-function-docstring
43
- json_metadata = []
44
- metadata_props = [ [ entry.key, entry.value ] for entry in metadata_props ]
45
- metadata = collections.OrderedDict(metadata_props)
46
- value = metadata.get('converted_from')
47
- if value:
48
- json_metadata.append({ 'name': 'source', 'value': value })
49
- value = metadata.get('author')
50
- if value:
51
- json_metadata.append({ 'name': 'author', 'value': value })
52
- value = metadata.get('company')
53
- if value:
54
- json_metadata.append({ 'name': 'company', 'value': value })
55
- value = metadata.get('license')
56
- license_url = metadata.get('license_url')
57
- if license_url:
58
- value = '<a href=\'' + license_url + '\'>' + (value if value else license_url) + '</a>'
59
- if value:
60
- json_metadata.append({ 'name': 'license', 'value': value })
61
- if 'author' in metadata:
62
- metadata.pop('author')
63
- if 'company' in metadata:
64
- metadata.pop('company')
65
- if 'converted_from' in metadata:
66
- metadata.pop('converted_from')
67
- if 'license' in metadata:
68
- metadata.pop('license')
69
- if 'license_url' in metadata:
70
- metadata.pop('license_url')
71
- for name, value in metadata.items():
72
- json_metadata.append({ 'name': name, 'value': value })
73
- return json_metadata
74
-
75
- class _Graph:
76
- def __init__(self, graph, metadata):
77
- self.metadata = metadata
78
- self.graph = graph
79
- self.values_index = {}
80
- self.values = []
81
-
82
- def _tensor(self, tensor): # pylint: disable=unused-argument
83
- return {}
84
-
85
- def value(self, name, tensor_type=None, initializer=None): # pylint: disable=missing-function-docstring
86
- if not name in self.values_index:
87
- argument = _Value(name, tensor_type, initializer)
88
- self.values_index[name] = len(self.values)
89
- self.values.append(argument)
90
- index = self.values_index[name]
91
- # argument.set_initializer(initializer)
92
- return index
93
-
94
- def attribute(self, _, op_type): # pylint: disable=missing-function-docstring,too-many-branches
95
- if _.type == _AttributeType.UNDEFINED:
96
- attribute_type = None
97
- value = None
98
- elif _.type == _AttributeType.FLOAT:
99
- attribute_type = 'float32'
100
- value = _.f
101
- elif _.type == _AttributeType.INT:
102
- attribute_type = 'int64'
103
- value = _.i
104
- elif _.type == _AttributeType.STRING:
105
- attribute_type = 'string'
106
- value = _.s.decode('latin1' if op_type == 'Int8GivenTensorFill' else 'utf-8')
107
- elif _.type == _AttributeType.TENSOR:
108
- attribute_type = 'tensor'
109
- value = self._tensor(_.t)
110
- elif _.type == _AttributeType.GRAPH:
111
- attribute_type = 'tensor'
112
- raise Exception('Unsupported graph attribute type') # pylint: disable=broad-exception-raised
113
- elif _.type == _AttributeType.FLOATS:
114
- attribute_type = 'float32[]'
115
- value = list(_.floats)
116
- elif _.type == _AttributeType.INTS:
117
- attribute_type = 'int64[]'
118
- value = list(_.ints)
119
- elif _.type == _AttributeType.STRINGS:
120
- attribute_type = 'string[]'
121
- value = [ item.decode('utf-8') for item in _.strings ]
122
- elif _.type == _AttributeType.TENSORS:
123
- attribute_type = 'tensor[]'
124
- raise Exception('Unsupported tensors attribute type') # pylint: disable=broad-exception-raised
125
- elif _.type == _AttributeType.GRAPHS:
126
- attribute_type = 'graph[]'
127
- raise Exception('Unsupported graphs attribute type') # pylint: disable=broad-exception-raised
128
- elif _.type == _AttributeType.SPARSE_TENSOR:
129
- attribute_type = 'tensor'
130
- value = self._tensor(_.sparse_tensor)
131
- else:
132
- raise Exception("Unsupported attribute type '" + str(_.type) + "'.") # pylint: disable=broad-exception-raised
133
- json_attribute = {}
134
- json_attribute['name'] = _.name
135
- if attribute_type:
136
- json_attribute['type'] = attribute_type
137
- json_attribute['value'] = value
138
- return json_attribute
139
-
140
- def to_json(self): # pylint: disable=missing-function-docstring
141
- graph = self.graph
142
- json_graph = {
143
- 'nodes': [],
144
- 'inputs': [],
145
- 'outputs': [],
146
- 'values': []
147
- }
148
- for value_info in graph.value_info:
149
- self.value(value_info.name)
150
- for initializer in graph.initializer:
151
- self.value(initializer.name, None, initializer)
152
- for node in graph.node:
153
- op_type = node.op_type
154
- json_node = {}
155
- json_node_type = {}
156
- json_node_type['name'] = op_type
157
- type_metadata = self.metadata.type(op_type)
158
- if type and 'category' in type_metadata:
159
- json_node_type['category'] = type_metadata['category']
160
- json_node['type'] = json_node_type
161
- if node.name:
162
- json_node['name'] = node.name
163
- json_node['inputs'] = []
164
- for value in node.input:
165
- json_node['inputs'].append({
166
- 'name': 'X',
167
- 'value': [ self.value(value) ]
168
- })
169
- json_node['outputs'] = []
170
- for value in node.output:
171
- json_node['outputs'].append({
172
- 'name': 'X',
173
- 'value': [ self.value(value) ]
174
- })
175
- json_node['attributes'] = []
176
- for _ in node.attribute:
177
- json_attribute = self.attribute(_, op_type)
178
- json_node['attributes'].append(json_attribute)
179
- json_graph['nodes'].append(json_node)
180
- for _ in self.values:
181
- json_graph['values'].append(_.to_json())
182
- return json_graph
183
-
184
- class _Value: # pylint: disable=too-few-public-methods
185
- def __init__(self, name, tensor_type=None, initializer=None):
186
- self.name = name
187
- self.type = tensor_type
188
- self.initializer = initializer
189
-
190
- def to_json(self): # pylint: disable=missing-function-docstring
191
- target = {}
192
- target['name'] = self.name
193
- # if self.initializer:
194
- # target['initializer'] = {}
195
- return target
196
-
197
- class _Metadata: # pylint: disable=too-few-public-methods
198
- metadata = {}
199
-
200
- def __init__(self):
201
- metadata_file = os.path.join(os.path.dirname(__file__), 'onnx-metadata.json')
202
- with open(metadata_file, 'r', encoding='utf-8') as file:
203
- for item in json.load(file):
204
- name = item['name']
205
- self.metadata[name] = item
206
-
207
- def type(self, name): # pylint: disable=missing-function-docstring
208
- if name in self.metadata:
209
- return self.metadata[name]
210
- return {}
211
-
212
- class _AttributeType(enum.IntEnum):
213
- UNDEFINED = 0
214
- FLOAT = 1
215
- INT = 2
216
- STRING = 3
217
- TENSOR = 4
218
- GRAPH = 5
219
- FLOATS = 6
220
- INTS = 7
221
- STRINGS = 8
222
- TENSORS = 9
223
- GRAPHS = 10
224
- SPARSE_TENSOR = 11
225
- SPARSE_TENSORS = 12
226
- TYPE_PROTO = 13
227
- TYPE_PROTOS = 14
@@ -1,298 +0,0 @@
1
- ''' PyTorch backend '''
2
-
3
- import json
4
- import os
5
-
6
- class ModelFactory: # pylint: disable=too-few-public-methods
7
- ''' PyTorch backend model factory '''
8
- def open(self, model): # pylint: disable=missing-function-docstring
9
- metadata = {}
10
- metadata_files = [
11
- ('pytorch-metadata.json', ''),
12
- ('onnx-metadata.json', 'onnx::')
13
- ]
14
- path = os.path.dirname(__file__)
15
- for entry in metadata_files:
16
- file = os.path.join(path, entry[0])
17
- with open(file, 'r', encoding='utf-8') as handle:
18
- for item in json.load(handle):
19
- name = entry[1] + item['name'].split('(', 1)[0]
20
- metadata[name] = item
21
- metadata = Metadata(metadata)
22
- return _Model(metadata, model)
23
-
24
- class _Model: # pylint: disable=too-few-public-methods
25
- def __init__(self, metadata, model):
26
- self.graph = _Graph(metadata, model)
27
-
28
- def to_json(self):
29
- ''' Serialize model to JSON message '''
30
- import torch # pylint: disable=import-outside-toplevel,import-error
31
- json_model = {
32
- 'signature': 'netron:pytorch',
33
- 'format': 'TorchScript v' + torch.__version__,
34
- 'graphs': [ self.graph.to_json() ]
35
- }
36
- return json_model
37
-
38
- class _Graph: # pylint: disable=too-few-public-methods
39
-
40
- def __init__(self, metadata, model):
41
- self.metadata = metadata
42
- self.param = model
43
- self.value = model.graph
44
- self.nodes = []
45
-
46
- def _getattr(self, node):
47
- if node.kind() == 'prim::Param':
48
- return (self.param, '')
49
- if node.kind() == 'prim::GetAttr':
50
- name = node.s('name')
51
- obj, parent = self._getattr(node.input().node())
52
- return (getattr(obj, name), parent + '.' + name if len(parent) > 0 else name)
53
- raise NotImplementedError()
54
-
55
- def to_json(self): # pylint: disable=missing-function-docstring,too-many-locals,too-many-statements,too-many-branches
56
- import torch # pylint: disable=import-outside-toplevel,import-error
57
- graph = self.value
58
- json_graph = {
59
- 'values': [],
60
- 'nodes': [],
61
- 'inputs': [],
62
- 'outputs': []
63
- }
64
- data_type_map = dict([
65
- [ torch.float16, 'float16'], # pylint: disable=no-member
66
- [ torch.float32, 'float32'], # pylint: disable=no-member
67
- [ torch.float64, 'float64'], # pylint: disable=no-member
68
- [ torch.int32, 'int32'], # pylint: disable=no-member
69
- [ torch.int64, 'int64'], # pylint: disable=no-member
70
- ])
71
- def constant_value(node):
72
- if node.hasAttribute('value'):
73
- selector = node.kindOf('value')
74
- return getattr(node, selector)('value')
75
- return None
76
- values_index = {}
77
- def argument(value):
78
- if not value in values_index:
79
- json_value = {}
80
- json_value['name'] = str(value.unique())
81
- node = value.node()
82
- if node.kind() == "prim::GetAttr":
83
- tensor, name = self._getattr(node)
84
- if tensor is not None and len(name) > 0 and \
85
- isinstance(tensor, torch.Tensor):
86
- json_tensor_shape = {
87
- 'dimensions': list(tensor.shape)
88
- }
89
- tensor_type = {
90
- 'dataType': data_type_map[tensor.dtype],
91
- 'shape': json_tensor_shape
92
- }
93
- json_value['name'] = name
94
- json_value['type'] = tensor_type
95
- json_value['initializer'] = { 'type': tensor_type }
96
- elif node.kind() == "prim::Constant":
97
- tensor = constant_value(node)
98
- if tensor and isinstance(tensor, torch.Tensor):
99
- json_tensor_shape = {
100
- 'dimensions': list(tensor.shape)
101
- }
102
- tensor_type = {
103
- 'dataType': data_type_map[tensor.dtype],
104
- 'shape': json_tensor_shape
105
- }
106
- json_value['type'] = tensor_type
107
- json_value['initializer'] = { 'type': tensor_type }
108
- elif value.isCompleteTensor():
109
- json_tensor_shape = {
110
- 'dimensions': value.type().sizes()
111
- }
112
- json_value['type'] = {
113
- 'dataType': data_type_map[value.type().dtype()],
114
- 'shape': json_tensor_shape
115
- }
116
- values = json_graph['values']
117
- values_index[value] = len(values)
118
- values.append(json_value)
119
- return values_index[value]
120
-
121
- for value in graph.inputs():
122
- if len(value.uses()) != 0 and value.type().kind() != 'ClassType':
123
- json_graph['inputs'].append({
124
- 'name': value.debugName(),
125
- 'value': [ argument(value) ]
126
- })
127
- for value in graph.outputs():
128
- json_graph['outputs'].append({
129
- 'name': value.debugName(),
130
- 'value': [ argument(value) ]
131
- })
132
- constants = {}
133
- for node in graph.nodes():
134
- if node.kind() == 'prim::Constant':
135
- constants[node] = 0
136
-
137
- lists = {}
138
- for node in graph.nodes():
139
- if node.kind() == 'prim::ListConstruct':
140
- if all(_.node() in constants for _ in node.inputs()):
141
- for _ in node.inputs():
142
- constants[_.node()] += 1
143
- lists[node] = 0
144
-
145
- def create_node(node):
146
- identifier = node.schema()
147
- schema, category = self.metadata.type(identifier)
148
- json_node = {
149
- 'type': {
150
- 'name': node.kind(),
151
- 'category': category
152
- },
153
- 'inputs': [],
154
- 'outputs': [],
155
- 'attributes': []
156
- }
157
- json_graph['nodes'].append(json_node)
158
- for name in node.attributeNames():
159
- selector = node.kindOf(name)
160
- value = getattr(node, selector)(name)
161
- json_attribute = {
162
- 'name': name,
163
- 'value': value
164
- }
165
- if torch.is_tensor(value):
166
- json_node['inputs'].append({
167
- 'name': name,
168
- 'value': []
169
- })
170
- else:
171
- json_node['attributes'].append(json_attribute)
172
-
173
- for i, value in enumerate(node.inputs()):
174
- arg = schema.arguments[i] if schema and i < len(schema.arguments) else None
175
- parameter_name = arg.name if arg else 'input'
176
- real_type = arg.real_type if arg else None
177
- input_node = value.node()
178
- if input_node in constants:
179
- if (real_type and real_type.kind() == 'TensorType') or \
180
- value.type().kind() == 'TensorType':
181
- json_node['inputs'].append({
182
- 'name': parameter_name,
183
- 'value': [ argument(value) ]
184
- })
185
- else:
186
- json_attribute = {
187
- 'name': parameter_name,
188
- 'value': constant_value(input_node)
189
- }
190
- if real_type:
191
- json_attribute['type'] = self._argument_type(real_type)
192
- json_node['attributes'].append(json_attribute)
193
- constants[input_node] = constants[input_node] + 1
194
- continue
195
- if input_node in lists:
196
- json_attribute = {
197
- 'name': parameter_name,
198
- 'value': [ constant_value(_.node()) for _ in input_node.inputs() ]
199
- }
200
- json_node['attributes'].append(json_attribute)
201
- lists[input_node] += 1
202
- continue
203
- if input_node.kind() == 'prim::TupleUnpack':
204
- continue
205
- if input_node.kind() == 'prim::TupleConstruct':
206
- continue
207
- json_node['inputs'].append({
208
- 'name': parameter_name,
209
- 'value': [ argument(value) ]
210
- })
211
-
212
- for i, value in enumerate(node.outputs()):
213
- ret = schema.returns[i] if schema and i < len(schema.returns) else None
214
- name = ret.name if ret else 'output'
215
- json_node['outputs'].append({
216
- 'name': name,
217
- 'value': [ argument(value) ]
218
- })
219
-
220
- for node in graph.nodes():
221
- if node in lists:
222
- continue
223
- if node in constants:
224
- continue
225
- if node.kind() == 'prim::GetAttr':
226
- continue
227
- create_node(node)
228
-
229
- for node in graph.nodes():
230
- if node.kind() == 'prim::Constant' and \
231
- node in constants and constants[node] != len(node.output().uses()):
232
- create_node(node)
233
- if node.kind() == 'prim::ListConstruct' and \
234
- node in lists and lists[node] != len(node.output().uses()):
235
- create_node(node)
236
-
237
- return json_graph
238
-
239
- def _argument_type(self, value): # pylint: disable=too-many-branches,too-many-return-statements
240
- if value.kind() == 'TensorType':
241
- return 'Tensor'
242
- if value.kind() == 'OptionalType':
243
- element_type = self._argument_type(value.getElementType())
244
- return f'{element_type}?'
245
- if value.kind() == 'ListType':
246
- element_type = self._argument_type(value.getElementType())
247
- size = str(value.size) if hasattr(value, 'size') else ''
248
- return f'{element_type}[{size}]'
249
- if value.kind() == 'DictType':
250
- key_type = self._argument_type(value.getKeyType())
251
- value_type = self._argument_type(value.getValueType())
252
- return f'Dict({key_type}, {value_type})'
253
- if value.kind() == 'TupleType':
254
- elements = []
255
- for element in value.elements():
256
- elements.append(self._argument_type(element))
257
- return f'({', '.join(elements)})'
258
- if value.kind() == 'IntType':
259
- return 'int64'
260
- if value.kind() == 'SymIntType':
261
- return 'SymInt'
262
- if value.kind() == 'FloatType':
263
- return 'float32'
264
- if value.kind() == 'BoolType':
265
- return 'boolean'
266
- if value.kind() == 'StringType':
267
- return 'string'
268
- if value.kind() == 'NumberType':
269
- return 'Scalar'
270
- if value.kind() == 'ScalarTypeType':
271
- return 'ScalarType'
272
- if value.kind() == 'LayoutType':
273
- return 'Layout'
274
- if value.kind() == 'MemoryFormatType':
275
- return 'MemoryFormat'
276
- if value.kind() == 'DeviceObjType':
277
- return 'Device'
278
- if value.kind() == 'GeneratorType':
279
- return 'Generator'
280
- if value.kind() == 'VarType':
281
- return value.annotation_str
282
- raise NotImplementedError()
283
-
284
- class Metadata: # pylint: disable=too-few-public-methods,missing-class-docstring
285
-
286
- def __init__(self, metadata):
287
- self.types = metadata
288
-
289
- def type(self, identifier): # pylint: disable=missing-function-docstring
290
- if identifier == '(no schema)':
291
- return (None, '')
292
- key = identifier.split('(', 1)[0]
293
- value = self.types.get(key)
294
- category = value['category'] if value and 'category' in value else ''
295
- name, overload_name = key.split('.', 1) if key.find('.') > 0 else (key, '')
296
- import torch # pylint: disable=import-outside-toplevel,import-error
297
- schema = torch._C._get_schema(name, overload_name) # pylint: disable=protected-access
298
- return (schema, category)