qairt-visualizer 0.5.1__py3-none-win_amd64.whl → 0.6.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.
- qairt_visualizer/core/helpers/version.py +23 -0
- qairt_visualizer/core/launchers/base_ui_launcher_context.py +28 -7
- qairt_visualizer/core/launchers/electron_launcher_context.py +72 -3
- qairt_visualizer/core/parsers/dlc_parser/dlc_parser.py +105 -33
- qairt_visualizer/core/parsers/dlc_parser/get_source_topology.py +47 -0
- qairt_visualizer/core/parsers/dlc_parser/libDlModelToolsPy.pyd +0 -0
- qairt_visualizer/core/parsers/dlc_parser/libDlModelToolsPy.so +0 -0
- qairt_visualizer/core/parsers/dlc_parser/libPyIrGraph.pyd +0 -0
- qairt_visualizer/core/parsers/dlc_parser/libPyIrGraph.so +0 -0
- qairt_visualizer/core/parsers/dlc_parser/models/op_tensor_mappings.py +8 -4
- qairt_visualizer/core/ui/dist/browser/__init__.py +47 -0
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/acuity.js → acuity.js} +3 -3
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/app.js → app.js} +63 -57
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/armnn-schema.js → armnn-schema.js} +590 -5
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/armnn.js → armnn.js} +3 -5
- qairt_visualizer/core/ui/dist/browser/assets/i18n/common/en.json +8 -2
- qairt_visualizer/core/ui/dist/browser/assets/i18n/graph/en.json +32 -36
- qairt_visualizer/core/ui/dist/browser/assets/i18n/panels/en.json +9 -3
- qairt_visualizer/core/ui/dist/browser/assets/i18n/panels/model-diff/en.json +6 -0
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/barracuda.js → barracuda.js} +3 -3
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/base.js → base.js} +20 -16
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/bigdl.js → bigdl.js} +2 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/browser.js → browser.js} +59 -49
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe.js → caffe.js} +3 -3
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe2-proto.js → caffe2-proto.js} +26 -26
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe2.js → caffe2.js} +113 -114
- qairt_visualizer/core/ui/dist/browser/chunk-3SMGFPTN.js +11 -0
- qairt_visualizer/core/ui/dist/browser/chunk-43LQFSHA.js +1 -0
- qairt_visualizer/core/ui/dist/browser/chunk-447NKSFT.js +1 -0
- qairt_visualizer/core/ui/dist/browser/chunk-5MAR72QP.js +1 -0
- qairt_visualizer/core/ui/dist/browser/chunk-7PTY53DS.js +5 -0
- qairt_visualizer/core/ui/dist/browser/chunk-GAUD627J.js +1 -0
- qairt_visualizer/core/ui/dist/browser/chunk-H7TLLCSI.js +1 -0
- qairt_visualizer/core/ui/dist/browser/chunk-HISUA6LZ.js +4 -0
- qairt_visualizer/core/ui/dist/browser/chunk-HXB7IAZI.js +1 -0
- qairt_visualizer/core/ui/dist/browser/chunk-L3QJ7DR2.js +1 -0
- qairt_visualizer/core/ui/dist/browser/chunk-M7SD7HRU.js +129 -0
- qairt_visualizer/core/ui/dist/browser/{chunk-HBP6TEQ6.js → chunk-MCR4N53U.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/chunk-QD7PA2I4.js +19 -0
- qairt_visualizer/core/ui/dist/browser/chunk-TKZG6FLW.js +12 -0
- qairt_visualizer/core/ui/dist/browser/chunk-WFAVWONI.js +5 -0
- qairt_visualizer/core/ui/dist/browser/chunk-WRMDGTCT.js +35 -0
- qairt_visualizer/core/ui/dist/browser/chunk-X25J6H7V.js +1 -0
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/circle-schema.js → circle-schema.js} +17 -0
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/circle.js → circle.js} +3 -3
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/cntk.js → cntk.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/coreml-proto.js → coreml-proto.js} +1 -0
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/coreml.js → coreml.js} +24 -21
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dagre.js → dagre.js} +5 -5
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/darknet-metadata.json → darknet-metadata.json} +0 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/darknet.js → darknet.js} +3 -3
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/electron.mjs → desktop.mjs} +44 -131
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dl4j.js → dl4j.js} +5 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dlc-schema.js → dlc-schema.js} +8 -8
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dlc.js → dlc.js} +110 -29
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dnn.js → dnn.js} +2 -4
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dot.js → dot.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/espresso.js → espresso.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/executorch-schema.js → executorch-schema.js} +363 -42
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/executorch.js → executorch.js} +108 -40
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flatbuffers.js → flatbuffers.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flax.js → flax.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flux.js → flux.js} +2 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/gguf.js → gguf.js} +44 -24
- qairt_visualizer/core/ui/dist/browser/grapher.css +145 -0
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/grapher.js → grapher.js} +24 -48
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/hailo.js → hailo.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/hickle.js → hickle.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/imgdnn.js → imgdnn.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/index.html +15 -16
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/index.js → index.js} +2 -24
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/json.js → json.js} +28 -3
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/kann.js → kann.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/keras-metadata.json → keras-metadata.json} +15 -7
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/keras.js → keras.js} +13 -7
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/kmodel.js → kmodel.js} +3 -3
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/lasagne.js → lasagne.js} +2 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/lightgbm.js → lightgbm.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/main-VGWU2273.js +1 -0
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mediapipe.js → mediapipe.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/megengine.js → megengine.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/message.js → message.js} +3 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mlir.js → mlir.js} +53 -17
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mlnet.js → mlnet.js} +2 -3
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mnn-schema.js → mnn-schema.js} +9 -6
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mnn.js → mnn.js} +2 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mslite.js → mslite.js} +3 -3
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mxnet.js → mxnet.js} +2 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/ncnn.js → ncnn.js} +3 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnabla.js → nnabla.js} +4 -4
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnef.js → nnef.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/node.js +102 -0
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/numpy.js → numpy.js} +9 -9
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/om.js → om.js} +2 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onednn.js → onednn.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onnx-metadata.json → onnx-metadata.json} +3500 -233
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onnx-proto.js → onnx-proto.js} +436 -4
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onnx.js → onnx.js} +284 -199
- qairt_visualizer/core/ui/dist/browser/onnx.py +231 -0
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/openvino.js → openvino.js} +36 -31
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/paddle-proto.js → paddle-proto.js} +54 -54
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/paddle.js → paddle.js} +22 -3
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pickle.js → pickle.js} +3 -3
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/python.js → python.js} +743 -325
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pytorch-metadata.json → pytorch-metadata.json} +3217 -2934
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pytorch-proto.js → pytorch-proto.js} +4 -4
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pytorch.js → pytorch.js} +172 -86
- qairt_visualizer/core/ui/dist/browser/pytorch.py +304 -0
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/qnn.js → qnn.js} +6 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/rknn.js → rknn.js} +3 -3
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/safetensors.js → safetensors.js} +2 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/sentencepiece.js → sentencepiece.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/server.py → server.py} +95 -103
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/sklearn-metadata.json → sklearn-metadata.json} +15 -10
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/sklearn.js → sklearn.js} +5 -5
- qairt_visualizer/core/ui/dist/browser/{styles-MRR6DOT2.css → styles-52VQCFP5.css} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tar.js → tar.js} +18 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tengine.js → tengine.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tensorrt.js → tensorrt.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tf-metadata.json → tf-metadata.json} +1255 -163
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tf-proto.js → tf-proto.js} +46 -12
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tf.js → tf.js} +36 -13
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tflite.js → tflite.js} +18 -21
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tnn.js → tnn.js} +1 -3
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/torch.js → torch.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/transformers.js +171 -0
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tvm.js → tvm.js} +2 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/uff.js → uff.js} +2 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/view.js → view.js} +1405 -1115
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/weka.js → weka.js} +3 -4
- qairt_visualizer/core/ui/dist/browser/worker-CECUQ4FG.js +1 -0
- qairt_visualizer/core/ui/dist/browser/worker-IGSZ74QJ.js +4 -0
- qairt_visualizer/core/ui/dist/browser/xgboost.js +59 -0
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/xml.js → xml.js} +2 -2
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/xmodel.js → xmodel.js} +1 -1
- qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/zip.js → zip.js} +38 -41
- qairt_visualizer/core/ui/dist/qairt_visualizer.exe +0 -0
- qairt_visualizer/core/ui/dist/resources/app.asar +0 -0
- {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.6.0.dist-info}/METADATA +1 -1
- qairt_visualizer-0.6.0.dist-info/RECORD +264 -0
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/CITATION.cff +0 -10
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/CONTRIBUTING.md +0 -29
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/LICENSE +0 -21
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/README.md +0 -36
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/jenkins/Jenkinsfile +0 -69
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/package-lock.json +0 -5743
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/package.js +0 -689
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/package.json +0 -53
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/package.py +0 -87
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/background.png +0 -0
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/background.svg +0 -5
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/background@2x.png +0 -0
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/electron-builder.json +0 -109
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/eslint.config.js +0 -231
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/forge.config.js +0 -87
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.html +0 -27
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.icns +0 -0
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.icns.svg +0 -175
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.ico +0 -0
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.png +0 -0
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/icon.svg +0 -179
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/notarize.cjs +0 -24
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/pyproject.toml +0 -63
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/publish/setup.py +0 -43
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/resolve_upgrade_merge.sh +0 -10
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/__init__.py +0 -41
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/cambricon.js +0 -32
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/favicon.ico +0 -0
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/grapher.css +0 -602
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/index.html +0 -2222
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/modular.js +0 -81
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/onnx.py +0 -227
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/pytorch.py +0 -298
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/qais/qcontrol.js +0 -207
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/qais/qgraph-toolkit.js +0 -123
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/qais/qsubgraph.js +0 -226
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/qais/qsummary-panel.js +0 -89
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/source/server.js +0 -250
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/backend.py +0 -80
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/measures.py +0 -27
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/models.js +0 -359
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/models.json +0 -8523
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/test/worker.js +0 -859
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/armnn +0 -33
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/bigdl +0 -33
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/caffe +0 -37
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/caffe-script.js +0 -12
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/circle +0 -43
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/circle-script.js +0 -87
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/circle_script.js +0 -73
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/cntk +0 -33
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/coreml +0 -49
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/dlc +0 -20
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/dlc.fbs +0 -165
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/dnn +0 -20
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/dnn.proto +0 -79
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/executorch +0 -41
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/flatc.js +0 -1315
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/gguf +0 -22
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/kann +0 -33
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/keras +0 -62
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/keras_metadata.py +0 -205
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/keras_script.py +0 -204
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mediapipe +0 -72
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/megengine +0 -47
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/megengine-script.js +0 -113
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/megengine_script.js +0 -112
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mnn +0 -40
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mslite +0 -45
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mslite-script.js +0 -83
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/mslite_metadata.js +0 -82
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/nnabla +0 -79
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/nnabla_script.py +0 -145
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/om +0 -26
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/om.proto +0 -204
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/onnx +0 -135
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/onnx_metadata.py +0 -233
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/onnx_script.py +0 -332
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/paddle +0 -38
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/protoc.js +0 -1609
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/pytorch +0 -85
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/pytorch_metadata.py +0 -166
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/pytorch_script.py +0 -404
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/rknn +0 -20
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/rknn.fbs +0 -78
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/sentencepiece +0 -39
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/sklearn +0 -65
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/sklearn_metadata.py +0 -126
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/sklearn_script.py +0 -129
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tf +0 -97
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tf_metadata.py +0 -403
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tf_script.py +0 -422
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tflite-script.js +0 -87
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/tflite_metadata.js +0 -73
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/uff +0 -20
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/uff.proto +0 -127
- qairt_visualizer/core/ui/dist/browser/assets/netron_plugin/tools/xmodel +0 -36
- qairt_visualizer/core/ui/dist/browser/chunk-3NAQCYEU.js +0 -1
- qairt_visualizer/core/ui/dist/browser/chunk-NFKTPX3Z.js +0 -11
- qairt_visualizer/core/ui/dist/browser/chunk-OMI6HJ5Y.js +0 -19
- qairt_visualizer/core/ui/dist/browser/chunk-TTZXMRJ5.js +0 -34
- qairt_visualizer/core/ui/dist/browser/main-NXPVOKMG.js +0 -1
- qairt_visualizer/core/ui/dist/browser/worker-5VPKG2GV.js +0 -4
- qairt_visualizer/core/ui/dist/browser/worker-UVGWDZ5K.js +0 -1
- qairt_visualizer-0.5.1.dist-info/RECORD +0 -337
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/acuity-metadata.json → acuity-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/armnn-metadata.json → armnn-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/bigdl-metadata.json → bigdl-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/bigdl-proto.js → bigdl-proto.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe-metadata.json → caffe-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe-proto.js → caffe-proto.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/caffe2-metadata.json → caffe2-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/catboost.js → catboost.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/circle-metadata.json → circle-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/cntk-metadata.json → cntk-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/cntk-proto.js → cntk-proto.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/coreml-metadata.json → coreml-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dl4j-metadata.json → dl4j-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dlc-metadata.json → dlc-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dnn-metadata.json → dnn-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/dnn-proto.js → dnn-proto.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/espresso-metadata.json → espresso-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flexbuffers.js → flexbuffers.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/flux-metadata.json → flux-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/hailo-metadata.json → hailo-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/hdf5.js → hdf5.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/icon.png → icon.png} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/kann-metadata.json → kann-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/kann-schema.js → kann-schema.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/keras-proto.js → keras-proto.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/lasagne-metadata.json → lasagne-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/megengine-metadata.json → megengine-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/megengine-schema.js → megengine-schema.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mlnet-metadata.json → mlnet-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mnn-metadata.json → mnn-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mslite-metadata.json → mslite-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mslite-schema.js → mslite-schema.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/mxnet-metadata.json → mxnet-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/ncnn-metadata.json → ncnn-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnabla-metadata.json → nnabla-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnabla-proto.js → nnabla-proto.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/nnc.js → nnc.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/om-metadata.json → om-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/om-proto.js → om-proto.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onednn-metadata.json → onednn-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/onnx-schema.js → onnx-schema.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/openvino-metadata.json → openvino-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/paddle-metadata.json → paddle-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/paddle-schema.js → paddle-schema.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/protobuf.js → protobuf.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/pytorch-schema.js → pytorch-schema.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/qnn-metadata.json → qnn-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/rknn-metadata.json → rknn-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/rknn-schema.js → rknn-schema.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/sentencepiece-proto.js → sentencepiece-proto.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tengine-metadata.json → tengine-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/text.js → text.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tflite-metadata.json → tflite-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tflite-schema.js → tflite-schema.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/tnn-metadata.json → tnn-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/torch-metadata.json → torch-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/uff-metadata.json → uff-metadata.json} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/uff-proto.js → uff-proto.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/worker.js → worker.js} +0 -0
- /qairt_visualizer/core/ui/dist/browser/{assets/netron_plugin/source/xmodel-proto.js → xmodel-proto.js} +0 -0
- {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.6.0.dist-info}/LICENSE.pdf +0 -0
- {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.6.0.dist-info}/WHEEL +0 -0
- {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.6.0.dist-info}/entry_points.txt +0 -0
- {qairt_visualizer-0.5.1.dist-info → qairt_visualizer-0.6.0.dist-info}/top_level.txt +0 -0
|
@@ -18,7 +18,8 @@ onnx.ModelFactory = class {
|
|
|
18
18
|
onnx.TextReader,
|
|
19
19
|
onnx.JsonReader,
|
|
20
20
|
onnx.PickleReader,
|
|
21
|
-
onnx.DataReader
|
|
21
|
+
onnx.DataReader,
|
|
22
|
+
onnx.MetaReader
|
|
22
23
|
];
|
|
23
24
|
for (const entry of entries) {
|
|
24
25
|
/* eslint-disable no-await-in-loop */
|
|
@@ -40,7 +41,7 @@ onnx.ModelFactory = class {
|
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
filter(context, type) {
|
|
43
|
-
return context.type !== 'onnx.proto' || (type !== 'onnx.data' && type !== 'dot');
|
|
44
|
+
return context.type !== 'onnx.proto' || (type !== 'onnx.data' && type !== 'onnx.meta' && type !== 'dot');
|
|
44
45
|
}
|
|
45
46
|
};
|
|
46
47
|
|
|
@@ -48,7 +49,7 @@ onnx.Model = class {
|
|
|
48
49
|
|
|
49
50
|
constructor(metadata, target) {
|
|
50
51
|
const model = target.model;
|
|
51
|
-
this.
|
|
52
|
+
this._modules = [];
|
|
52
53
|
this._format = target.format;
|
|
53
54
|
this._producer = model.producer_name && model.producer_name.length > 0 ? model.producer_name + (model.producer_version && model.producer_version.length > 0 ? ` ${model.producer_version}` : '') : null;
|
|
54
55
|
this._domain = model.domain;
|
|
@@ -116,9 +117,11 @@ onnx.Model = class {
|
|
|
116
117
|
imageFormat = [imageMetadata['Image.BitmapPixelFormat'], imageMetadata['Image.ColorSpaceGamma'], imageMetadata['Image.NominalPixelRange']].filter((item) => item);
|
|
117
118
|
}
|
|
118
119
|
const context = new onnx.Context.Model(metadata, target.locations, imageFormat, imports, model.graph, model.functions);
|
|
119
|
-
|
|
120
|
-
|
|
120
|
+
const graph = context.graph(null);
|
|
121
|
+
if (graph) {
|
|
122
|
+
this._modules.push(graph);
|
|
121
123
|
}
|
|
124
|
+
this._functions = context.functions;
|
|
122
125
|
}
|
|
123
126
|
|
|
124
127
|
get format() {
|
|
@@ -153,8 +156,12 @@ onnx.Model = class {
|
|
|
153
156
|
return this._metadata;
|
|
154
157
|
}
|
|
155
158
|
|
|
156
|
-
get
|
|
157
|
-
return this.
|
|
159
|
+
get modules() {
|
|
160
|
+
return this._modules;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
get functions() {
|
|
164
|
+
return this._functions;
|
|
158
165
|
}
|
|
159
166
|
};
|
|
160
167
|
|
|
@@ -177,23 +184,20 @@ onnx.Graph = class {
|
|
|
177
184
|
}
|
|
178
185
|
}
|
|
179
186
|
}
|
|
180
|
-
if (Array.isArray(graph.value_info)) {
|
|
181
|
-
for (const value of graph.value_info) {
|
|
182
|
-
const tensor = context.tensor(value.name);
|
|
183
|
-
tensor.type = context.createType(value.type);
|
|
184
|
-
tensor.description = value.doc_string;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
187
|
graph.input = graph.input.map((value) => {
|
|
188
188
|
const tensor = context.tensor(value.name);
|
|
189
189
|
tensor.type = context.createType(value.type);
|
|
190
190
|
tensor.description = value.doc_string;
|
|
191
|
+
const metadata_props = value.metadata_props || [];
|
|
192
|
+
tensor.metadata = metadata_props.map((metadata) => new onnx.Argument(metadata.key, metadata.value));
|
|
191
193
|
return tensor;
|
|
192
194
|
});
|
|
193
195
|
graph.output = graph.output.map((value) => {
|
|
194
196
|
const tensor = context.tensor(value.name);
|
|
195
197
|
tensor.type = context.createType(value.type);
|
|
196
198
|
tensor.description = value.doc_string;
|
|
199
|
+
const metadata_props = value.metadata_props || [];
|
|
200
|
+
tensor.metadata = metadata_props.map((metadata) => new onnx.Argument(metadata.key, metadata.value));
|
|
197
201
|
return tensor;
|
|
198
202
|
});
|
|
199
203
|
const inference = new onnx.Inference(graph.node);
|
|
@@ -204,20 +208,20 @@ onnx.Graph = class {
|
|
|
204
208
|
this._nodes = context.pop();
|
|
205
209
|
for (const input of graph.input) {
|
|
206
210
|
const value = context.value(input.name);
|
|
211
|
+
value.metadata = input.metadata || [];
|
|
207
212
|
if (!value.initializer) {
|
|
208
213
|
this._inputs.push(new onnx.Argument(input.name, [value]));
|
|
209
214
|
}
|
|
210
215
|
}
|
|
211
216
|
for (const output of graph.output) {
|
|
212
217
|
const value = context.value(output.name);
|
|
218
|
+
value.metadata = output.metadata || [];
|
|
213
219
|
if (!value.initializer) {
|
|
214
220
|
this._outputs.push(new onnx.Argument(output.name, [value]));
|
|
215
221
|
}
|
|
216
222
|
}
|
|
217
223
|
const metadata_props = graph.metadata_props || [];
|
|
218
|
-
this.metadata = metadata_props.map((metadata) =>
|
|
219
|
-
return new onnx.Argument(metadata.key, metadata.value);
|
|
220
|
-
});
|
|
224
|
+
this.metadata = metadata_props.map((metadata) => new onnx.Argument(metadata.key, metadata.value));
|
|
221
225
|
}
|
|
222
226
|
|
|
223
227
|
get name() {
|
|
@@ -351,92 +355,12 @@ onnx.Node = class {
|
|
|
351
355
|
this.description = node.doc_string || '';
|
|
352
356
|
this.inputs = inputs || [];
|
|
353
357
|
this.outputs = outputs || [];
|
|
354
|
-
this.attributes = attributes.map((
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
let value = null;
|
|
358
|
-
let visible = true;
|
|
359
|
-
if (attribute.ref_attr_name) {
|
|
360
|
-
value = attribute.ref_attr_name;
|
|
361
|
-
type = 'reference';
|
|
362
|
-
} else {
|
|
363
|
-
switch (attribute.type) {
|
|
364
|
-
case onnx.AttributeType.UNDEFINED:
|
|
365
|
-
break;
|
|
366
|
-
case onnx.AttributeType.FLOAT:
|
|
367
|
-
value = attribute.f;
|
|
368
|
-
type = 'float32';
|
|
369
|
-
break;
|
|
370
|
-
case onnx.AttributeType.INT:
|
|
371
|
-
value = BigInt(attribute.i);
|
|
372
|
-
type = 'int64';
|
|
373
|
-
break;
|
|
374
|
-
case onnx.AttributeType.STRING:
|
|
375
|
-
value = op_type === 'Int8GivenTensorFill' ? Array.from(attribute.s) : context.decodeText(attribute.s);
|
|
376
|
-
type = 'string';
|
|
377
|
-
break;
|
|
378
|
-
case onnx.AttributeType.TENSOR:
|
|
379
|
-
value = new onnx.Tensor(context, attribute.t);
|
|
380
|
-
type = 'tensor';
|
|
381
|
-
break;
|
|
382
|
-
case onnx.AttributeType.GRAPH:
|
|
383
|
-
value = context.graph(attribute.g);
|
|
384
|
-
type = 'graph';
|
|
385
|
-
break;
|
|
386
|
-
case onnx.AttributeType.FLOATS:
|
|
387
|
-
value = ArrayBuffer.isView(attribute.floats) ? Array.from(attribute.floats) : attribute.floats;
|
|
388
|
-
type = 'float32[]';
|
|
389
|
-
break;
|
|
390
|
-
case onnx.AttributeType.INTS:
|
|
391
|
-
value = ArrayBuffer.isView(attribute.ints) ? Array.from(attribute.ints) : attribute.ints.map((value) => BigInt(value));
|
|
392
|
-
type = 'int64[]';
|
|
393
|
-
break;
|
|
394
|
-
case onnx.AttributeType.STRINGS:
|
|
395
|
-
value = attribute.strings.map((s) => context.decodeText(s));
|
|
396
|
-
type = 'string[]';
|
|
397
|
-
break;
|
|
398
|
-
case onnx.AttributeType.TENSORS:
|
|
399
|
-
value = attribute.tensors.map((tensor) => new onnx.Tensor(context, tensor));
|
|
400
|
-
type = 'tensor[]';
|
|
401
|
-
break;
|
|
402
|
-
case onnx.AttributeType.GRAPHS:
|
|
403
|
-
value = attribute.graphs.map((graph) => context.graph(graph));
|
|
404
|
-
type = 'graph[]';
|
|
405
|
-
break;
|
|
406
|
-
case onnx.AttributeType.SPARSE_TENSOR:
|
|
407
|
-
value = new onnx.Tensor(context, attribute.sparse_tensor);
|
|
408
|
-
type = 'tensor';
|
|
409
|
-
break;
|
|
410
|
-
case onnx.AttributeType.SPARSE_TENSORS:
|
|
411
|
-
value = attribute.sparse_tensors.map((tensor) => new onnx.Tensor(context, tensor));
|
|
412
|
-
type = 'tensor[]';
|
|
413
|
-
break;
|
|
414
|
-
case onnx.AttributeType.TYPE_PROTO:
|
|
415
|
-
value = context.createType(attribute.tp);
|
|
416
|
-
type = 'type';
|
|
417
|
-
break;
|
|
418
|
-
case onnx.AttributeType.TYPE_PROTOS:
|
|
419
|
-
value = attribute.type_protos.map((type) => context.createType(type));
|
|
420
|
-
type = 'type[]';
|
|
421
|
-
break;
|
|
422
|
-
default:
|
|
423
|
-
throw new onnx.Error(`Unsupported attribute type '${attribute.type}'.`);
|
|
424
|
-
}
|
|
425
|
-
const metadata = context.attribute(domain, op_type, overload, attribute.name);
|
|
426
|
-
if (metadata) {
|
|
427
|
-
if (metadata.default !== undefined) {
|
|
428
|
-
const defaultValue = type === 'int64' ? BigInt(metadata.default) : metadata.default;
|
|
429
|
-
if (value === defaultValue) {
|
|
430
|
-
visible = false;
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
if (metadata.type === 'DataType') {
|
|
434
|
-
type = metadata.type;
|
|
435
|
-
value = context.createDataType(value);
|
|
436
|
-
}
|
|
437
|
-
}
|
|
358
|
+
this.attributes = attributes.map((attr) => {
|
|
359
|
+
if (op_type === 'Int8GivenTensorFill' && attr.s && attr.s.length > 0) {
|
|
360
|
+
return new onnx.Argument(attr.name, Array.from(attr.s), 'byte[]');
|
|
438
361
|
}
|
|
439
|
-
|
|
362
|
+
const metadata = context.attribute(domain, op_type, overload, attr.name);
|
|
363
|
+
return context.createAttribute(attr, metadata);
|
|
440
364
|
});
|
|
441
365
|
this.chain = [];
|
|
442
366
|
const identifier = domain ? `${domain}.${op_type}` : op_type;
|
|
@@ -853,9 +777,15 @@ onnx.Function = class {
|
|
|
853
777
|
this.description = func.doc_string;
|
|
854
778
|
this.inputs = [];
|
|
855
779
|
this.outputs = [];
|
|
856
|
-
this.attributes =
|
|
857
|
-
|
|
858
|
-
|
|
780
|
+
this.attributes = [];
|
|
781
|
+
for (let i = 0; i < func.attribute.length; i++) {
|
|
782
|
+
const attribute = new onnx.Argument(i.toString(), func.attribute[i]);
|
|
783
|
+
this.attributes.push(attribute);
|
|
784
|
+
}
|
|
785
|
+
for (const attr of func.attribute_proto) {
|
|
786
|
+
const attribute = context.createAttribute(attr, func.domain, func.name, func.overload);
|
|
787
|
+
this.attributes.push(attribute);
|
|
788
|
+
}
|
|
859
789
|
context = new onnx.Context.Graph(context, func);
|
|
860
790
|
func.input = func.input.map((input) => context.tensor(input));
|
|
861
791
|
func.output = func.output.map((output) => context.tensor(output));
|
|
@@ -883,11 +813,17 @@ onnx.Context.Model = class {
|
|
|
883
813
|
constructor(metadata, locations, imageFormat, imports, graph, functions) {
|
|
884
814
|
this._metadata = metadata;
|
|
885
815
|
this._locations = locations;
|
|
816
|
+
this._dataTypes = new Map(Object.entries(onnx.DataType).map(([name, value]) => [value, name.toLowerCase()]));
|
|
817
|
+
this._dataTypes.set(onnx.DataType.UNDEFINED, 'undefined');
|
|
818
|
+
this._dataTypes.set(onnx.DataType.BOOL, 'boolean');
|
|
819
|
+
this._dataTypes.set(onnx.DataType.FLOAT, 'float32');
|
|
820
|
+
this._dataTypes.set(onnx.DataType.DOUBLE, 'float64');
|
|
886
821
|
this._imageFormat = imageFormat;
|
|
887
822
|
this._imports = imports;
|
|
888
823
|
this._types = new Map();
|
|
889
824
|
this._attributes = new Map();
|
|
890
825
|
this._graph = null;
|
|
826
|
+
this._graphs = new Map();
|
|
891
827
|
this._functions = new Map();
|
|
892
828
|
for (const func of functions || []) {
|
|
893
829
|
const key = func.overload ? `${func.domain}:${func.name}:${func.overload}` : `${func.domain}:${func.name}`;
|
|
@@ -986,12 +922,23 @@ onnx.Context.Model = class {
|
|
|
986
922
|
}
|
|
987
923
|
}
|
|
988
924
|
|
|
989
|
-
|
|
990
|
-
|
|
925
|
+
graph(value) {
|
|
926
|
+
if (value === null) {
|
|
927
|
+
return this._graph;
|
|
928
|
+
}
|
|
929
|
+
if (!this._graphs.has(value)) {
|
|
930
|
+
this._graphs.set(value, new onnx.Graph(this, value));
|
|
931
|
+
}
|
|
932
|
+
return this._graphs.get(value);
|
|
991
933
|
}
|
|
992
934
|
|
|
993
|
-
get
|
|
994
|
-
|
|
935
|
+
get functions() {
|
|
936
|
+
for (const [, func] of this._functions) {
|
|
937
|
+
if (func instanceof onnx.Function === false) {
|
|
938
|
+
this.type(func.domain, func.name, func.overload);
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
return Array.from(this._functions.values());
|
|
995
942
|
}
|
|
996
943
|
|
|
997
944
|
location(name) {
|
|
@@ -1011,7 +958,7 @@ onnx.Context.Model = class {
|
|
|
1011
958
|
let value = null;
|
|
1012
959
|
if (this._functions.has(key)) {
|
|
1013
960
|
value = this._functions.get(key);
|
|
1014
|
-
if (value.
|
|
961
|
+
if (value && value instanceof onnx.Function === false) {
|
|
1015
962
|
value = new onnx.Function(this, value);
|
|
1016
963
|
this._functions.set(key, value);
|
|
1017
964
|
}
|
|
@@ -1039,6 +986,180 @@ onnx.Context.Model = class {
|
|
|
1039
986
|
}
|
|
1040
987
|
return this._attributes.get(key);
|
|
1041
988
|
}
|
|
989
|
+
|
|
990
|
+
decodeText(value) {
|
|
991
|
+
if (typeof value === 'string') {
|
|
992
|
+
return value;
|
|
993
|
+
}
|
|
994
|
+
this._decoder = this._decoder || new TextDecoder('utf-8');
|
|
995
|
+
return this._decoder.decode(value);
|
|
996
|
+
}
|
|
997
|
+
|
|
998
|
+
createAttribute(attribute, metadata) {
|
|
999
|
+
const name = attribute.name;
|
|
1000
|
+
let type = null;
|
|
1001
|
+
let value = null;
|
|
1002
|
+
let visible = true;
|
|
1003
|
+
if (attribute.ref_attr_name) {
|
|
1004
|
+
value = attribute.ref_attr_name;
|
|
1005
|
+
type = 'reference';
|
|
1006
|
+
} else {
|
|
1007
|
+
switch (attribute.type) {
|
|
1008
|
+
case onnx.AttributeType.UNDEFINED:
|
|
1009
|
+
break;
|
|
1010
|
+
case onnx.AttributeType.FLOAT:
|
|
1011
|
+
value = attribute.f;
|
|
1012
|
+
type = 'float32';
|
|
1013
|
+
break;
|
|
1014
|
+
case onnx.AttributeType.INT:
|
|
1015
|
+
value = BigInt(attribute.i);
|
|
1016
|
+
type = 'int64';
|
|
1017
|
+
break;
|
|
1018
|
+
case onnx.AttributeType.STRING:
|
|
1019
|
+
value = this.decodeText(attribute.s);
|
|
1020
|
+
type = 'string';
|
|
1021
|
+
break;
|
|
1022
|
+
case onnx.AttributeType.TENSOR:
|
|
1023
|
+
value = new onnx.Tensor(this, attribute.t);
|
|
1024
|
+
type = 'tensor';
|
|
1025
|
+
break;
|
|
1026
|
+
case onnx.AttributeType.GRAPH:
|
|
1027
|
+
value = this.graph(attribute.g);
|
|
1028
|
+
type = 'graph';
|
|
1029
|
+
break;
|
|
1030
|
+
case onnx.AttributeType.FLOATS:
|
|
1031
|
+
value = ArrayBuffer.isView(attribute.floats) ? Array.from(attribute.floats) : attribute.floats;
|
|
1032
|
+
type = 'float32[]';
|
|
1033
|
+
break;
|
|
1034
|
+
case onnx.AttributeType.INTS:
|
|
1035
|
+
value = ArrayBuffer.isView(attribute.ints) ? Array.from(attribute.ints) : attribute.ints.map((value) => BigInt(value));
|
|
1036
|
+
type = 'int64[]';
|
|
1037
|
+
break;
|
|
1038
|
+
case onnx.AttributeType.STRINGS:
|
|
1039
|
+
value = attribute.strings.map((s) => this.decodeText(s));
|
|
1040
|
+
type = 'string[]';
|
|
1041
|
+
break;
|
|
1042
|
+
case onnx.AttributeType.TENSORS:
|
|
1043
|
+
value = attribute.tensors.map((tensor) => new onnx.Tensor(this, tensor));
|
|
1044
|
+
type = 'tensor[]';
|
|
1045
|
+
break;
|
|
1046
|
+
case onnx.AttributeType.GRAPHS:
|
|
1047
|
+
value = attribute.graphs.map((graph) => this.graph(graph));
|
|
1048
|
+
type = 'graph[]';
|
|
1049
|
+
break;
|
|
1050
|
+
case onnx.AttributeType.SPARSE_TENSOR:
|
|
1051
|
+
value = new onnx.Tensor(this, attribute.sparse_tensor);
|
|
1052
|
+
type = 'tensor';
|
|
1053
|
+
break;
|
|
1054
|
+
case onnx.AttributeType.SPARSE_TENSORS:
|
|
1055
|
+
value = attribute.sparse_tensors.map((tensor) => new onnx.Tensor(this, tensor));
|
|
1056
|
+
type = 'tensor[]';
|
|
1057
|
+
break;
|
|
1058
|
+
case onnx.AttributeType.TYPE_PROTO:
|
|
1059
|
+
value = this.createType(attribute.tp);
|
|
1060
|
+
type = 'type';
|
|
1061
|
+
break;
|
|
1062
|
+
case onnx.AttributeType.TYPE_PROTOS:
|
|
1063
|
+
value = attribute.type_protos.map((type) => this.createType(type));
|
|
1064
|
+
type = 'type[]';
|
|
1065
|
+
break;
|
|
1066
|
+
default:
|
|
1067
|
+
throw new onnx.Error(`Unsupported attribute type '${attribute.type}'.`);
|
|
1068
|
+
}
|
|
1069
|
+
if (metadata) {
|
|
1070
|
+
if (metadata.default !== undefined) {
|
|
1071
|
+
const defaultValue = type === 'int64' ? BigInt(metadata.default) : metadata.default;
|
|
1072
|
+
if (value === defaultValue) {
|
|
1073
|
+
visible = false;
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
if (metadata.type === 'DataType') {
|
|
1077
|
+
type = metadata.type;
|
|
1078
|
+
value = this.createDataType(value);
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
return new onnx.Argument(name, value, type, attribute.doc_string, visible);
|
|
1083
|
+
}
|
|
1084
|
+
|
|
1085
|
+
createType(type) {
|
|
1086
|
+
if (!type) {
|
|
1087
|
+
return null;
|
|
1088
|
+
}
|
|
1089
|
+
let denotation = '';
|
|
1090
|
+
switch (type.denotation) {
|
|
1091
|
+
case undefined:
|
|
1092
|
+
case null:
|
|
1093
|
+
case '':
|
|
1094
|
+
break;
|
|
1095
|
+
case 'TENSOR':
|
|
1096
|
+
denotation = 'Tensor';
|
|
1097
|
+
break;
|
|
1098
|
+
case 'IMAGE':
|
|
1099
|
+
denotation = `Image${this._imageFormat ? `(${this._imageFormat.join(',')})` : ''}`;
|
|
1100
|
+
break;
|
|
1101
|
+
case 'AUDIO':
|
|
1102
|
+
denotation = 'Audio';
|
|
1103
|
+
break;
|
|
1104
|
+
case 'TEXT':
|
|
1105
|
+
denotation = 'Text';
|
|
1106
|
+
break;
|
|
1107
|
+
default:
|
|
1108
|
+
throw new onnx.Error(`Unsupported tensor type denotation '${type.denotation}'.`);
|
|
1109
|
+
}
|
|
1110
|
+
if (type.tensor_type) {
|
|
1111
|
+
const tensor_type = type.tensor_type;
|
|
1112
|
+
const shape = tensor_type.shape && tensor_type.shape.dim ? tensor_type.shape.dim.map((dim) => dim.dim_param ? dim.dim_param : dim.dim_value || null) : [];
|
|
1113
|
+
return this.createTensorType(tensor_type.elem_type, shape, null, denotation);
|
|
1114
|
+
} else if (type.sparse_tensor_type) {
|
|
1115
|
+
type = type.sparse_tensor_type;
|
|
1116
|
+
const shape = type.shape && type.shape.dim ? type.shape.dim.map((dim) => dim.dim_param ? dim.dim_param : dim.dim_value || null) : [];
|
|
1117
|
+
return this.createTensorType(type.elem_type, shape, 'sparse', denotation);
|
|
1118
|
+
} else if (type.map_type) {
|
|
1119
|
+
const keyType = this.createDataType(type.map_type.key_type);
|
|
1120
|
+
const valueType = this.createType(type.map_type.value_type);
|
|
1121
|
+
return new onnx.MapType(keyType, valueType, denotation);
|
|
1122
|
+
} else if (type.sequence_type) {
|
|
1123
|
+
return new onnx.SequenceType(this.createType(type.sequence_type.elem_type), denotation);
|
|
1124
|
+
} else if (type.opaque_type) {
|
|
1125
|
+
return new onnx.OpaqueType(type.opaque_type.domain, type.opaque_type.name);
|
|
1126
|
+
} else if (type.optional_type) {
|
|
1127
|
+
return new onnx.OptionalType(this.createType(type.optional_type.elem_type), denotation);
|
|
1128
|
+
} else if (Object.keys(type).length === 0) {
|
|
1129
|
+
return null;
|
|
1130
|
+
}
|
|
1131
|
+
throw new onnx.Error(`Unsupported tensor type '${JSON.stringify(type)}'.`);
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
createDataType(value) {
|
|
1135
|
+
if (!Number.isInteger(value)) {
|
|
1136
|
+
if (typeof value === 'bigint') {
|
|
1137
|
+
value = value.toNumber();
|
|
1138
|
+
} else if (value && typeof value === 'string' && onnx.DataType[value.toUpperCase()] !== undefined) {
|
|
1139
|
+
value = onnx.DataType[value.toUpperCase()];
|
|
1140
|
+
} else {
|
|
1141
|
+
throw new onnx.Error(`Unsupported data type '${JSON.stringify(value)}'.`);
|
|
1142
|
+
}
|
|
1143
|
+
}
|
|
1144
|
+
if (this._dataTypes.has(value)) {
|
|
1145
|
+
return this._dataTypes.get(value);
|
|
1146
|
+
}
|
|
1147
|
+
throw new onnx.Error(`Unsupported data type '${JSON.stringify(value)}'.`);
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1150
|
+
createLocation(value) {
|
|
1151
|
+
switch (value) {
|
|
1152
|
+
case undefined:
|
|
1153
|
+
case onnx.DataLocation.DEFAULT: return '';
|
|
1154
|
+
case onnx.DataLocation.EXTERNAL: return 'external';
|
|
1155
|
+
default: return 'undefined';
|
|
1156
|
+
}
|
|
1157
|
+
}
|
|
1158
|
+
|
|
1159
|
+
createTensorType(dataType, shape, layout, denotation) {
|
|
1160
|
+
dataType = this.createDataType(dataType);
|
|
1161
|
+
return new onnx.TensorType(dataType, new onnx.TensorShape(shape), layout, denotation);
|
|
1162
|
+
}
|
|
1042
1163
|
};
|
|
1043
1164
|
|
|
1044
1165
|
onnx.Metadata = class {
|
|
@@ -1177,12 +1298,6 @@ onnx.Context.Graph = class {
|
|
|
1177
1298
|
|
|
1178
1299
|
constructor(context, graph) {
|
|
1179
1300
|
this._context = context;
|
|
1180
|
-
this._dataTypes = new Map(Object.entries(onnx.DataType).map(([name, value]) => [value, name.toLowerCase()]));
|
|
1181
|
-
this._dataTypes.set(onnx.DataType.UNDEFINED, 'undefined');
|
|
1182
|
-
this._dataTypes.set(onnx.DataType.BOOL, 'boolean');
|
|
1183
|
-
this._dataTypes.set(onnx.DataType.FLOAT, 'float32');
|
|
1184
|
-
this._dataTypes.set(onnx.DataType.DOUBLE, 'float64');
|
|
1185
|
-
this._graphs = new Map();
|
|
1186
1301
|
this._initializers = new Map();
|
|
1187
1302
|
this._tensors = new Map();
|
|
1188
1303
|
this._values = new Map();
|
|
@@ -1200,6 +1315,13 @@ onnx.Context.Graph = class {
|
|
|
1200
1315
|
this._initializers.set(sparse_initializer.values.name, tensor);
|
|
1201
1316
|
}
|
|
1202
1317
|
}
|
|
1318
|
+
if (Array.isArray(graph.value_info)) {
|
|
1319
|
+
for (const value of graph.value_info) {
|
|
1320
|
+
const tensor = this.tensor(value.name);
|
|
1321
|
+
tensor.type = this.createType(value.type);
|
|
1322
|
+
tensor.description = value.doc_string;
|
|
1323
|
+
}
|
|
1324
|
+
}
|
|
1203
1325
|
for (const node of graph.node) {
|
|
1204
1326
|
node.input = node.input.map((name) => this.tensor(name));
|
|
1205
1327
|
node.output = node.output.map((name) => this.tensor(name));
|
|
@@ -1245,13 +1367,6 @@ onnx.Context.Graph = class {
|
|
|
1245
1367
|
return this._context.attribute(domain, type, overload, name);
|
|
1246
1368
|
}
|
|
1247
1369
|
|
|
1248
|
-
graph(value) {
|
|
1249
|
-
if (!this._graphs.has(value)) {
|
|
1250
|
-
this._graphs.set(value, new onnx.Graph(this, value));
|
|
1251
|
-
}
|
|
1252
|
-
return this._graphs.get(value);
|
|
1253
|
-
}
|
|
1254
|
-
|
|
1255
1370
|
initializer(name) {
|
|
1256
1371
|
if (this._initializers.has(name)) {
|
|
1257
1372
|
return this._initializers.get(name);
|
|
@@ -1292,90 +1407,27 @@ onnx.Context.Graph = class {
|
|
|
1292
1407
|
}
|
|
1293
1408
|
|
|
1294
1409
|
createType(type) {
|
|
1295
|
-
|
|
1296
|
-
return null;
|
|
1297
|
-
}
|
|
1298
|
-
let denotation = '';
|
|
1299
|
-
switch (type.denotation) {
|
|
1300
|
-
case undefined:
|
|
1301
|
-
case null:
|
|
1302
|
-
case '':
|
|
1303
|
-
break;
|
|
1304
|
-
case 'TENSOR':
|
|
1305
|
-
denotation = 'Tensor';
|
|
1306
|
-
break;
|
|
1307
|
-
case 'IMAGE':
|
|
1308
|
-
denotation = `Image${this._context.imageFormat ? `(${this._context.imageFormat.join(',')})` : ''}`;
|
|
1309
|
-
break;
|
|
1310
|
-
case 'AUDIO':
|
|
1311
|
-
denotation = 'Audio';
|
|
1312
|
-
break;
|
|
1313
|
-
case 'TEXT':
|
|
1314
|
-
denotation = 'Text';
|
|
1315
|
-
break;
|
|
1316
|
-
default:
|
|
1317
|
-
throw new onnx.Error(`Unsupported tensor type denotation '${type.denotation}'.`);
|
|
1318
|
-
}
|
|
1319
|
-
if (type.tensor_type) {
|
|
1320
|
-
const tensor_type = type.tensor_type;
|
|
1321
|
-
const shape = tensor_type.shape && tensor_type.shape.dim ? tensor_type.shape.dim.map((dim) => dim.dim_param ? dim.dim_param : dim.dim_value || null) : [];
|
|
1322
|
-
return this.createTensorType(tensor_type.elem_type, shape, null, denotation);
|
|
1323
|
-
} else if (type.sparse_tensor_type) {
|
|
1324
|
-
type = type.sparse_tensor_type;
|
|
1325
|
-
const shape = type.shape && type.shape.dim ? type.shape.dim.map((dim) => dim.dim_param ? dim.dim_param : dim.dim_value || null) : [];
|
|
1326
|
-
return this.createTensorType(type.elem_type, shape, 'sparse', denotation);
|
|
1327
|
-
} else if (type.map_type) {
|
|
1328
|
-
const keyType = this.createDataType(type.map_type.key_type);
|
|
1329
|
-
const valueType = this.createType(type.map_type.value_type);
|
|
1330
|
-
return new onnx.MapType(keyType, valueType, denotation);
|
|
1331
|
-
} else if (type.sequence_type) {
|
|
1332
|
-
return new onnx.SequenceType(this.createType(type.sequence_type.elem_type), denotation);
|
|
1333
|
-
} else if (type.opaque_type) {
|
|
1334
|
-
return new onnx.OpaqueType(type.opaque_type.domain, type.opaque_type.name);
|
|
1335
|
-
} else if (type.optional_type) {
|
|
1336
|
-
return new onnx.OptionalType(this.createType(type.optional_type.elem_type), denotation);
|
|
1337
|
-
} else if (Object.keys(type).length === 0) {
|
|
1338
|
-
return null;
|
|
1339
|
-
}
|
|
1340
|
-
throw new onnx.Error(`Unsupported tensor type '${JSON.stringify(type)}'.`);
|
|
1410
|
+
return this._context.createType(type);
|
|
1341
1411
|
}
|
|
1342
1412
|
|
|
1343
1413
|
createTensorType(dataType, shape, layout, denotation) {
|
|
1344
|
-
|
|
1345
|
-
return new onnx.TensorType(dataType, new onnx.TensorShape(shape), layout, denotation);
|
|
1414
|
+
return this._context.createTensorType(dataType, shape, layout, denotation);
|
|
1346
1415
|
}
|
|
1347
1416
|
|
|
1348
1417
|
createDataType(value) {
|
|
1349
|
-
|
|
1350
|
-
if (typeof value === 'bigint') {
|
|
1351
|
-
value = value.toNumber();
|
|
1352
|
-
} else if (value && typeof value === 'string' && onnx.DataType[value.toUpperCase()] !== undefined) {
|
|
1353
|
-
value = onnx.DataType[value.toUpperCase()];
|
|
1354
|
-
} else {
|
|
1355
|
-
throw new onnx.Error(`Unsupported data type '${JSON.stringify(value)}'.`);
|
|
1356
|
-
}
|
|
1357
|
-
}
|
|
1358
|
-
if (this._dataTypes.has(value)) {
|
|
1359
|
-
return this._dataTypes.get(value);
|
|
1360
|
-
}
|
|
1361
|
-
throw new onnx.Error(`Unsupported data type '${JSON.stringify(value)}'.`);
|
|
1418
|
+
return this._context.createDataType(value);
|
|
1362
1419
|
}
|
|
1363
1420
|
|
|
1364
1421
|
createLocation(value) {
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
}
|
|
1422
|
+
return this._context.createLocation(value);
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
createAttribute(attribute, metadata) {
|
|
1426
|
+
return this._context.createAttribute(attribute, metadata);
|
|
1371
1427
|
}
|
|
1372
1428
|
|
|
1373
1429
|
decodeText(value) {
|
|
1374
|
-
|
|
1375
|
-
return value;
|
|
1376
|
-
}
|
|
1377
|
-
this._decoder = this._decoder || new TextDecoder('utf-8');
|
|
1378
|
-
return this._decoder.decode(value);
|
|
1430
|
+
return this._context.decodeText(value);
|
|
1379
1431
|
}
|
|
1380
1432
|
|
|
1381
1433
|
push(nodes, inputs, outputs) {
|
|
@@ -1553,7 +1605,7 @@ onnx.ProtoReader = class {
|
|
|
1553
1605
|
return new onnx.ProtoReader(context, 'text', 'model');
|
|
1554
1606
|
}
|
|
1555
1607
|
const identifier = context.identifier;
|
|
1556
|
-
const extension = identifier.split('.').pop().toLowerCase();
|
|
1608
|
+
const extension = identifier.lastIndexOf('.') > 0 ? identifier.split('.').pop().toLowerCase() : '';
|
|
1557
1609
|
if (tags.has('graph') && extension !== 'model') {
|
|
1558
1610
|
return new onnx.ProtoReader(context, 'text', 'model');
|
|
1559
1611
|
}
|
|
@@ -1678,7 +1730,7 @@ onnx.ProtoReader = class {
|
|
|
1678
1730
|
const location = (tensor) => {
|
|
1679
1731
|
if (onnx.proto && tensor instanceof onnx.proto.SparseTensorProto) {
|
|
1680
1732
|
location(tensor.indices);
|
|
1681
|
-
location(tensor.
|
|
1733
|
+
location(tensor.values);
|
|
1682
1734
|
} else if (tensor.data_location === onnx.DataLocation.EXTERNAL && Array.isArray(tensor.external_data)) {
|
|
1683
1735
|
for (const entry of tensor.external_data) {
|
|
1684
1736
|
if (entry.key === 'location') {
|
|
@@ -1743,7 +1795,7 @@ onnx.OrtReader = class {
|
|
|
1743
1795
|
|
|
1744
1796
|
static async open(context) {
|
|
1745
1797
|
const identifier = context.identifier;
|
|
1746
|
-
const extension = identifier.split('.').pop().toLowerCase();
|
|
1798
|
+
const extension = identifier.lastIndexOf('.') > 0 ? identifier.split('.').pop().toLowerCase() : '';
|
|
1747
1799
|
const reader = await context.peek('flatbuffers.binary');
|
|
1748
1800
|
if (reader && reader.identifier === 'ORTM') {
|
|
1749
1801
|
return new onnx.OrtReader(context);
|
|
@@ -2743,7 +2795,7 @@ onnx.PickleReader = class {
|
|
|
2743
2795
|
|
|
2744
2796
|
static async open(context) {
|
|
2745
2797
|
const identifier = context.identifier;
|
|
2746
|
-
const extension = identifier.split('.').pop().toLowerCase();
|
|
2798
|
+
const extension = identifier.lastIndexOf('.') > 0 ? identifier.split('.').pop().toLowerCase() : '';
|
|
2747
2799
|
const stream = context.stream;
|
|
2748
2800
|
if (extension === 'onnx' && stream && stream.length > 3) {
|
|
2749
2801
|
const signature = stream.peek(2);
|
|
@@ -2792,6 +2844,39 @@ onnx.DataReader = class {
|
|
|
2792
2844
|
}
|
|
2793
2845
|
};
|
|
2794
2846
|
|
|
2847
|
+
onnx.MetaReader = class {
|
|
2848
|
+
|
|
2849
|
+
static async open(context) {
|
|
2850
|
+
const identifier = context.identifier.toLowerCase();
|
|
2851
|
+
if (identifier.endsWith('.onnx.meta')) {
|
|
2852
|
+
const stream = context.stream;
|
|
2853
|
+
const buffer = context.stream.peek(Math.min(stream.length, 32));
|
|
2854
|
+
const content = String.fromCharCode.apply(null, buffer);
|
|
2855
|
+
if (content.startsWith('fileFormatVersion:') || content.startsWith('- !<AssetImportMetadata/')) {
|
|
2856
|
+
return new onnx.MetaReader(context, identifier);
|
|
2857
|
+
}
|
|
2858
|
+
}
|
|
2859
|
+
return null;
|
|
2860
|
+
}
|
|
2861
|
+
|
|
2862
|
+
constructor(context, identifier) {
|
|
2863
|
+
this.name = 'onnx.meta';
|
|
2864
|
+
this.context = context;
|
|
2865
|
+
this.identifier = identifier;
|
|
2866
|
+
this.locations = new Map();
|
|
2867
|
+
}
|
|
2868
|
+
|
|
2869
|
+
async read() {
|
|
2870
|
+
const file = this.identifier.substring(0, this.identifier.length - 5);
|
|
2871
|
+
const context = await this.context.fetch(file);
|
|
2872
|
+
const reader = new onnx.ProtoReader(context, 'binary', 'model');
|
|
2873
|
+
reader.locations = this.locations;
|
|
2874
|
+
await reader.read();
|
|
2875
|
+
this.format = reader.format;
|
|
2876
|
+
this.model = reader.model;
|
|
2877
|
+
}
|
|
2878
|
+
};
|
|
2879
|
+
|
|
2795
2880
|
onnx.Location = class {
|
|
2796
2881
|
|
|
2797
2882
|
constructor(context, name) {
|