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
|
@@ -1,81 +1,80 @@
|
|
|
1
|
-
|
|
1
|
+
""" Python Server implementation """
|
|
2
2
|
|
|
3
3
|
import errno
|
|
4
4
|
import http.server
|
|
5
|
-
import importlib
|
|
5
|
+
import importlib
|
|
6
|
+
import importlib.metadata
|
|
6
7
|
import json
|
|
8
|
+
import logging
|
|
7
9
|
import os
|
|
8
10
|
import random
|
|
9
11
|
import re
|
|
10
12
|
import socket
|
|
11
13
|
import socketserver
|
|
12
|
-
import sys
|
|
13
14
|
import threading
|
|
14
15
|
import time
|
|
15
|
-
import webbrowser
|
|
16
16
|
import urllib.parse
|
|
17
|
+
import webbrowser
|
|
18
|
+
|
|
19
|
+
__version__ = "0.0.0"
|
|
17
20
|
|
|
18
|
-
|
|
21
|
+
logger = logging.getLogger(__name__)
|
|
19
22
|
|
|
20
|
-
class _ContentProvider:
|
|
23
|
+
class _ContentProvider:
|
|
21
24
|
data = bytearray()
|
|
22
|
-
base_dir =
|
|
23
|
-
base =
|
|
24
|
-
identifier =
|
|
25
|
+
base_dir = ""
|
|
26
|
+
base = ""
|
|
27
|
+
identifier = ""
|
|
25
28
|
def __init__(self, data, path, file, name):
|
|
26
29
|
self.data = data if data else bytearray()
|
|
27
|
-
self.identifier = os.path.basename(file) if file else
|
|
30
|
+
self.identifier = os.path.basename(file) if file else ""
|
|
28
31
|
self.name = name
|
|
29
32
|
if path:
|
|
30
|
-
self.dir = os.path.dirname(path) if os.path.dirname(path) else
|
|
33
|
+
self.dir = os.path.dirname(path) if os.path.dirname(path) else "."
|
|
31
34
|
self.base = os.path.basename(path)
|
|
32
35
|
def read(self, path):
|
|
33
|
-
''' Read content '''
|
|
34
36
|
if path == self.base and self.data:
|
|
35
37
|
return self.data
|
|
36
38
|
base_dir = os.path.realpath(self.dir)
|
|
37
|
-
filename = os.path.normpath(os.path.realpath(base_dir +
|
|
39
|
+
filename = os.path.normpath(os.path.realpath(base_dir + "/" + path))
|
|
38
40
|
if os.path.commonprefix([ base_dir, filename ]) == base_dir:
|
|
39
41
|
if os.path.exists(filename) and not os.path.isdir(filename):
|
|
40
|
-
with open(filename,
|
|
42
|
+
with open(filename, "rb") as file:
|
|
41
43
|
return file.read()
|
|
42
44
|
return None
|
|
43
45
|
|
|
44
46
|
class _HTTPRequestHandler(http.server.BaseHTTPRequestHandler):
|
|
45
47
|
content = None
|
|
46
|
-
verbosity = 1
|
|
47
48
|
mime_types = {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
49
|
+
".html": "text/html",
|
|
50
|
+
".js": "text/javascript",
|
|
51
|
+
".css": "text/css",
|
|
52
|
+
".png": "image/png",
|
|
53
|
+
".gif": "image/gif",
|
|
54
|
+
".jpg": "image/jpeg",
|
|
55
|
+
".ico": "image/x-icon",
|
|
56
|
+
".json": "application/json",
|
|
57
|
+
".pb": "application/octet-stream",
|
|
58
|
+
".ttf": "font/truetype",
|
|
59
|
+
".otf": "font/opentype",
|
|
60
|
+
".eot": "application/vnd.ms-fontobject",
|
|
61
|
+
".woff": "font/woff",
|
|
62
|
+
".woff2": "application/font-woff2",
|
|
63
|
+
".svg": "image/svg+xml"
|
|
63
64
|
}
|
|
64
|
-
def do_HEAD(self):
|
|
65
|
-
''' Serve a HEAD request '''
|
|
65
|
+
def do_HEAD(self):
|
|
66
66
|
self.do_GET()
|
|
67
|
-
def do_GET(self):
|
|
68
|
-
''' Serve a GET request '''
|
|
67
|
+
def do_GET(self):
|
|
69
68
|
path = urllib.parse.urlparse(self.path).path
|
|
70
|
-
path =
|
|
69
|
+
path = "/index.html" if path == "/" else path
|
|
71
70
|
status_code = 404
|
|
72
71
|
content = None
|
|
73
72
|
content_type = None
|
|
74
|
-
if path.startswith(
|
|
75
|
-
path = urllib.parse.unquote(path[len(
|
|
73
|
+
if path.startswith("/data/"):
|
|
74
|
+
path = urllib.parse.unquote(path[len("/data/"):])
|
|
76
75
|
content = self.content.read(path)
|
|
77
76
|
if content:
|
|
78
|
-
content_type =
|
|
77
|
+
content_type = "application/octet-stream"
|
|
79
78
|
status_code = 200
|
|
80
79
|
else:
|
|
81
80
|
base_dir = os.path.dirname(os.path.realpath(__file__))
|
|
@@ -85,10 +84,10 @@ class _HTTPRequestHandler(http.server.BaseHTTPRequestHandler):
|
|
|
85
84
|
os.path.exists(filename) and not os.path.isdir(filename) and \
|
|
86
85
|
extension in self.mime_types:
|
|
87
86
|
content_type = self.mime_types[extension]
|
|
88
|
-
with open(filename,
|
|
87
|
+
with open(filename, "rb") as file:
|
|
89
88
|
content = file.read()
|
|
90
|
-
if path ==
|
|
91
|
-
content = content.decode(
|
|
89
|
+
if path == "/index.html":
|
|
90
|
+
content = content.decode("utf-8")
|
|
92
91
|
meta = [
|
|
93
92
|
'<meta name="type" content="Python">',
|
|
94
93
|
'<meta name="version" content="' + __version__ + '">'
|
|
@@ -101,24 +100,24 @@ class _HTTPRequestHandler(http.server.BaseHTTPRequestHandler):
|
|
|
101
100
|
meta.append('<meta name="name" content="' + name + '">')
|
|
102
101
|
identifier = self.content.identifier
|
|
103
102
|
if identifier:
|
|
104
|
-
meta.append('<meta name="identifier" content="
|
|
105
|
-
meta =
|
|
106
|
-
|
|
107
|
-
content =
|
|
103
|
+
meta.append(f'<meta name="identifier" content="{identifier}">')
|
|
104
|
+
meta = "\n".join(meta)
|
|
105
|
+
regex = r'<meta name="version" content=".*">'
|
|
106
|
+
content = re.sub(regex, lambda _: meta, content)
|
|
107
|
+
content = content.encode("utf-8")
|
|
108
108
|
status_code = 200
|
|
109
|
-
_log(self.verbosity > 1, str(status_code) + ' ' + self.command + ' ' + self.path + '\n')
|
|
110
109
|
self._write(status_code, content_type, content)
|
|
111
|
-
def log_message(self, format, *args):
|
|
112
|
-
|
|
110
|
+
def log_message(self, format, *args):
|
|
111
|
+
logger.debug(" ".join(args))
|
|
113
112
|
def _write(self, status_code, content_type, content):
|
|
114
113
|
self.send_response(status_code)
|
|
115
114
|
if content:
|
|
116
|
-
self.send_header(
|
|
117
|
-
self.send_header(
|
|
115
|
+
self.send_header("Content-Type", content_type)
|
|
116
|
+
self.send_header("Content-Length", len(content))
|
|
118
117
|
self.end_headers()
|
|
119
|
-
if self.command !=
|
|
118
|
+
if self.command != "HEAD":
|
|
120
119
|
if status_code == 404 and content is None:
|
|
121
|
-
self.wfile.write(str(status_code).encode(
|
|
120
|
+
self.wfile.write(str(status_code).encode("utf-8"))
|
|
122
121
|
elif (status_code in (200, 404)) and content is not None:
|
|
123
122
|
self.wfile.write(content)
|
|
124
123
|
|
|
@@ -126,16 +125,14 @@ class _ThreadedHTTPServer(socketserver.ThreadingMixIn, http.server.HTTPServer):
|
|
|
126
125
|
pass
|
|
127
126
|
|
|
128
127
|
class _HTTPServerThread(threading.Thread):
|
|
129
|
-
def __init__(self, content, address
|
|
128
|
+
def __init__(self, content, address):
|
|
130
129
|
threading.Thread.__init__(self)
|
|
131
|
-
self.verbosity = verbosity
|
|
132
130
|
self.address = address
|
|
133
|
-
self.url =
|
|
131
|
+
self.url = "http://" + address[0] + ":" + str(address[1])
|
|
134
132
|
self.server = _ThreadedHTTPServer(address, _HTTPRequestHandler)
|
|
135
133
|
self.server.timeout = 0.25
|
|
136
134
|
self.server.block_on_close = False
|
|
137
135
|
self.server.RequestHandlerClass.content = content
|
|
138
|
-
self.server.RequestHandlerClass.verbosity = verbosity
|
|
139
136
|
self.terminate_event = threading.Event()
|
|
140
137
|
self.terminate_event.set()
|
|
141
138
|
self.stop_event = threading.Event()
|
|
@@ -146,37 +143,35 @@ class _HTTPServerThread(threading.Thread):
|
|
|
146
143
|
try:
|
|
147
144
|
while not self.stop_event.is_set():
|
|
148
145
|
self.server.handle_request()
|
|
149
|
-
except: #
|
|
146
|
+
except: # noqa: E722
|
|
150
147
|
pass
|
|
151
148
|
self.terminate_event.set()
|
|
152
149
|
self.stop_event.clear()
|
|
153
150
|
|
|
154
151
|
def stop(self):
|
|
155
|
-
''' Stop server '''
|
|
156
152
|
if self.alive():
|
|
157
|
-
|
|
153
|
+
logger.info("Stopping " + self.url)
|
|
158
154
|
self.stop_event.set()
|
|
159
155
|
self.server.server_close()
|
|
160
|
-
self.terminate_event.wait(
|
|
156
|
+
self.terminate_event.wait(1)
|
|
161
157
|
|
|
162
158
|
def alive(self):
|
|
163
|
-
''' Check server status '''
|
|
164
159
|
value = not self.terminate_event.is_set()
|
|
165
160
|
return value
|
|
166
161
|
|
|
167
162
|
def _open(data):
|
|
168
163
|
registry = dict([
|
|
169
|
-
(
|
|
170
|
-
(
|
|
171
|
-
(
|
|
172
|
-
(
|
|
173
|
-
(
|
|
164
|
+
("onnx.onnx_ml_pb2.ModelProto", ".onnx"),
|
|
165
|
+
("torch.jit._script.ScriptModule", ".pytorch"),
|
|
166
|
+
("torch.Graph", ".pytorch"),
|
|
167
|
+
("torch._C.Graph", ".pytorch"),
|
|
168
|
+
("torch.nn.modules.module.Module", ".pytorch")
|
|
174
169
|
])
|
|
175
170
|
queue = [ data.__class__ ]
|
|
176
171
|
while len(queue) > 0:
|
|
177
172
|
current = queue.pop(0)
|
|
178
173
|
if current.__module__ and current.__name__:
|
|
179
|
-
name = current.__module__ +
|
|
174
|
+
name = current.__module__ + "." + current.__name__
|
|
180
175
|
if name in registry:
|
|
181
176
|
module_name = registry[name]
|
|
182
177
|
module = importlib.import_module(module_name, package=__package__)
|
|
@@ -186,7 +181,10 @@ def _open(data):
|
|
|
186
181
|
return None
|
|
187
182
|
|
|
188
183
|
def _threads(address=None):
|
|
189
|
-
threads = [
|
|
184
|
+
threads = []
|
|
185
|
+
for thread in threading.enumerate():
|
|
186
|
+
if isinstance(thread, _HTTPServerThread) and thread.alive():
|
|
187
|
+
threads.append(thread)
|
|
190
188
|
if address is not None:
|
|
191
189
|
address = _make_address(address)
|
|
192
190
|
threads = [ _ for _ in threads if address[0] == _.address[0] ]
|
|
@@ -194,21 +192,16 @@ def _threads(address=None):
|
|
|
194
192
|
threads = [ _ for _ in threads if address[1] == _.address[1] ]
|
|
195
193
|
return threads
|
|
196
194
|
|
|
197
|
-
def _log(condition, message):
|
|
198
|
-
if condition:
|
|
199
|
-
sys.stdout.write(message)
|
|
200
|
-
sys.stdout.flush()
|
|
201
|
-
|
|
202
195
|
def _make_address(address):
|
|
203
196
|
if address is None or isinstance(address, int):
|
|
204
197
|
port = address
|
|
205
|
-
address = (
|
|
198
|
+
address = ("localhost", port)
|
|
206
199
|
if isinstance(address, tuple) and len(address) == 2:
|
|
207
200
|
host = address[0]
|
|
208
201
|
port = address[1]
|
|
209
202
|
if isinstance(host, str) and (port is None or isinstance(port, int)):
|
|
210
203
|
return address
|
|
211
|
-
raise ValueError(
|
|
204
|
+
raise ValueError("Invalid address.")
|
|
212
205
|
|
|
213
206
|
def _make_port(address):
|
|
214
207
|
if address[1] is None or address[1] == 0:
|
|
@@ -231,56 +224,56 @@ def _make_port(address):
|
|
|
231
224
|
sockname = temp_socket.getsockname()
|
|
232
225
|
address = (address[0], sockname[1])
|
|
233
226
|
return address
|
|
234
|
-
except: #
|
|
227
|
+
except: # noqa: E722
|
|
235
228
|
pass
|
|
236
229
|
finally:
|
|
237
230
|
temp_socket.close()
|
|
238
231
|
if isinstance(address[1], int):
|
|
239
232
|
return address
|
|
240
|
-
raise ValueError(
|
|
233
|
+
raise ValueError("Failed to allocate port.")
|
|
241
234
|
|
|
242
235
|
def stop(address=None):
|
|
243
|
-
|
|
236
|
+
"""Stop serving model at address.
|
|
244
237
|
|
|
245
238
|
Args:
|
|
246
239
|
address (tuple, optional): A (host, port) tuple, or a port number.
|
|
247
|
-
|
|
240
|
+
"""
|
|
248
241
|
threads = _threads(address)
|
|
249
242
|
for thread in threads:
|
|
250
243
|
thread.stop()
|
|
251
244
|
|
|
252
|
-
def status(
|
|
253
|
-
|
|
245
|
+
def status(address=None):
|
|
246
|
+
"""Is model served at address.
|
|
254
247
|
|
|
255
248
|
Args:
|
|
256
249
|
address (tuple, optional): A (host, port) tuple, or a port number.
|
|
257
|
-
|
|
258
|
-
threads = _threads(
|
|
250
|
+
"""
|
|
251
|
+
threads = _threads(address)
|
|
259
252
|
return len(threads) > 0
|
|
260
253
|
|
|
261
254
|
def wait():
|
|
262
|
-
|
|
255
|
+
"""Wait for console exit and stop all model servers."""
|
|
263
256
|
try:
|
|
264
257
|
while len(_threads()) > 0:
|
|
265
258
|
time.sleep(0.1)
|
|
266
259
|
except (KeyboardInterrupt, SystemExit):
|
|
267
|
-
|
|
260
|
+
logger.info("")
|
|
268
261
|
stop()
|
|
269
262
|
|
|
270
|
-
def serve(file, data=None, address=None, browse=False
|
|
271
|
-
|
|
263
|
+
def serve(file, data=None, address=None, browse=False):
|
|
264
|
+
"""Start serving model from file or data buffer at address and open in web browser.
|
|
272
265
|
|
|
273
266
|
Args:
|
|
274
267
|
file (string): Model file to serve. Required to detect format.
|
|
275
268
|
data (bytes): Model data to serve. None will load data from file.
|
|
276
269
|
address (tuple, optional): A (host, port) tuple, or a port number.
|
|
277
270
|
browse (bool, optional): Launch web browser. Default: True
|
|
278
|
-
log (bool, optional): Log details to console. Default: False
|
|
279
271
|
|
|
280
272
|
Returns:
|
|
281
273
|
A (host, port) address tuple.
|
|
282
|
-
|
|
283
|
-
|
|
274
|
+
"""
|
|
275
|
+
if not logging.getLogger().hasHandlers():
|
|
276
|
+
logging.basicConfig(level=logging.INFO, format="%(message)s")
|
|
284
277
|
|
|
285
278
|
if not data and file and not os.path.exists(file):
|
|
286
279
|
raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), file)
|
|
@@ -288,11 +281,11 @@ def serve(file, data=None, address=None, browse=False, verbosity=1):
|
|
|
288
281
|
content = _ContentProvider(data, file, file, file)
|
|
289
282
|
|
|
290
283
|
if data and not isinstance(data, bytearray) and isinstance(data.__class__, type):
|
|
291
|
-
|
|
284
|
+
logger.info("Experimental")
|
|
292
285
|
model = _open(data)
|
|
293
286
|
if model:
|
|
294
287
|
text = json.dumps(model.to_json(), indent=2, ensure_ascii=False)
|
|
295
|
-
content = _ContentProvider(text.encode(
|
|
288
|
+
content = _ContentProvider(text.encode("utf-8"), "model.netron", None, file)
|
|
296
289
|
|
|
297
290
|
address = _make_address(address)
|
|
298
291
|
if isinstance(address[1], int) and address[1] != 0:
|
|
@@ -300,33 +293,32 @@ def serve(file, data=None, address=None, browse=False, verbosity=1):
|
|
|
300
293
|
else:
|
|
301
294
|
address = _make_port(address)
|
|
302
295
|
|
|
303
|
-
thread = _HTTPServerThread(content, address
|
|
296
|
+
thread = _HTTPServerThread(content, address)
|
|
304
297
|
thread.start()
|
|
305
298
|
while not thread.alive():
|
|
306
299
|
time.sleep(0.01)
|
|
307
|
-
|
|
308
|
-
|
|
300
|
+
state = ("Serving '" + file + "'") if file else "Serving"
|
|
301
|
+
logger.info(f"{state} at {thread.url}")
|
|
309
302
|
if browse:
|
|
310
303
|
webbrowser.open(thread.url)
|
|
311
304
|
|
|
312
305
|
return address
|
|
313
306
|
|
|
314
|
-
def start(file=None, address=None, browse=True
|
|
315
|
-
|
|
307
|
+
def start(file=None, address=None, browse=True):
|
|
308
|
+
"""Start serving model file at address and open in web browser.
|
|
316
309
|
|
|
317
310
|
Args:
|
|
318
311
|
file (string): Model file to serve.
|
|
319
|
-
log (bool, optional): Log details to console. Default: False
|
|
320
312
|
browse (bool, optional): Launch web browser, Default: True
|
|
321
313
|
address (tuple, optional): A (host, port) tuple, or a port number.
|
|
322
314
|
|
|
323
315
|
Returns:
|
|
324
316
|
A (host, port) address tuple.
|
|
325
|
-
|
|
326
|
-
return serve(file, None, browse=browse, address=address
|
|
317
|
+
"""
|
|
318
|
+
return serve(file, None, browse=browse, address=address)
|
|
327
319
|
|
|
328
320
|
def widget(address, height=800):
|
|
329
|
-
|
|
321
|
+
""" Open address as Jupyter Notebook IFrame.
|
|
330
322
|
|
|
331
323
|
Args:
|
|
332
324
|
address (tuple, optional): A (host, port) tuple, or a port number.
|
|
@@ -334,8 +326,8 @@ def widget(address, height=800):
|
|
|
334
326
|
|
|
335
327
|
Returns:
|
|
336
328
|
A Jupyter Notebook IFrame.
|
|
337
|
-
|
|
329
|
+
"""
|
|
338
330
|
address = _make_address(address)
|
|
339
331
|
url = f"http://{address[0]}:{address[1]}"
|
|
340
|
-
IPython = __import__(
|
|
332
|
+
IPython = __import__("IPython")
|
|
341
333
|
return IPython.display.IFrame(url, width="100%", height=height)
|
|
@@ -192,7 +192,7 @@
|
|
|
192
192
|
},
|
|
193
193
|
{
|
|
194
194
|
"name": "sklearn.calibration.CalibratedClassifierCV",
|
|
195
|
-
"description": "Probability calibration with isotonic regression or logistic regression.\n\nThis class uses cross-validation to both estimate the parameters of a\nclassifier and subsequently calibrate a classifier. With
|
|
195
|
+
"description": "Probability calibration with isotonic regression or logistic regression.\n\nThis class uses cross-validation to both estimate the parameters of a\nclassifier and subsequently calibrate a classifier. With\n`ensemble=True`, for each cv split it\nfits a copy of the base estimator to the training subset, and calibrates it\nusing the testing subset. For prediction, predicted probabilities are\naveraged across these individual calibrated classifiers. When\n`ensemble=False`, cross-validation is used to obtain unbiased predictions,\nvia :func:`~sklearn.model_selection.cross_val_predict`, which are then\nused for calibration. For prediction, the base estimator, trained using all\nthe data, is used. This is the prediction method implemented when\n`probabilities=True` for :class:`~sklearn.svm.SVC` and :class:`~sklearn.svm.NuSVC`\nestimators (see :ref:`User Guide <scores_probabilities>` for details).\n\nAlready fitted classifiers can be calibrated by wrapping the model in a\n:class:`~sklearn.frozen.FrozenEstimator`. In this case all provided\ndata is used for calibration. The user has to take care manually that data\nfor model fitting and calibration are disjoint.\n\nThe calibration is based on the :term:`decision_function` method of the\n`estimator` if it exists, else on :term:`predict_proba`.\n\nRead more in the :ref:`User Guide <calibration>`.\nIn order to learn more on the CalibratedClassifierCV class, see the\nfollowing calibration examples:\n:ref:`sphx_glr_auto_examples_calibration_plot_calibration.py`,\n:ref:`sphx_glr_auto_examples_calibration_plot_calibration_curve.py`, and\n:ref:`sphx_glr_auto_examples_calibration_plot_calibration_multiclass.py`.\n",
|
|
196
196
|
"attributes": [
|
|
197
197
|
{
|
|
198
198
|
"default": null,
|
|
@@ -280,8 +280,8 @@
|
|
|
280
280
|
},
|
|
281
281
|
{
|
|
282
282
|
"name": "force_int_remainder_cols",
|
|
283
|
-
"default":
|
|
284
|
-
"description": "
|
|
283
|
+
"default": false,
|
|
284
|
+
"description": "This parameter has no effect.\n\n.. note::\nIf you do not access the list of columns for the remainder columns\nin the `transformers_` fitted attribute, you do not need to set\nthis parameter.\n\n.. versionadded:: 1.5\n\n.. versionchanged:: 1.7\nThe default value for `force_int_remainder_cols` will change from\n`True` to `False` in version 1.7.\n\n.. deprecated:: 1.7\n`force_int_remainder_cols` is deprecated and will be removed in 1.9.\n"
|
|
285
285
|
}
|
|
286
286
|
]
|
|
287
287
|
},
|
|
@@ -1043,7 +1043,7 @@
|
|
|
1043
1043
|
},
|
|
1044
1044
|
{
|
|
1045
1045
|
"name": "sklearn.linear_model._logistic.LogisticRegression",
|
|
1046
|
-
"description": "\nLogistic Regression (aka logit, MaxEnt) classifier.\n\nThis class implements regularized logistic regression using the\n'liblinear' library, 'newton-cg', 'sag', 'saga' and 'lbfgs' solvers. **Note\nthat regularization is applied by default**. It can handle both dense\nand sparse input. Use C-ordered arrays or CSR matrices containing 64-bit\nfloats for optimal performance; any other input format will be converted\n(and copied).\n\nThe 'newton-cg', 'sag', and 'lbfgs' solvers support only L2 regularization\nwith primal formulation, or no regularization. The 'liblinear' solver\nsupports both L1 and L2 regularization, with a dual formulation only for\nthe L2 penalty. The Elastic-Net regularization is only supported by the\n'saga' solver.\n\nFor :term:`multiclass` problems,
|
|
1046
|
+
"description": "\nLogistic Regression (aka logit, MaxEnt) classifier.\n\nThis class implements regularized logistic regression using the\n'liblinear' library, 'newton-cg', 'sag', 'saga' and 'lbfgs' solvers. **Note\nthat regularization is applied by default**. It can handle both dense\nand sparse input. Use C-ordered arrays or CSR matrices containing 64-bit\nfloats for optimal performance; any other input format will be converted\n(and copied).\n\nThe 'newton-cg', 'sag', and 'lbfgs' solvers support only L2 regularization\nwith primal formulation, or no regularization. The 'liblinear' solver\nsupports both L1 and L2 regularization, with a dual formulation only for\nthe L2 penalty. The Elastic-Net regularization is only supported by the\n'saga' solver.\n\nFor :term:`multiclass` problems, all solvers but 'liblinear' optimize the\n(penalized) multinomial loss. 'liblinear' only handle binary classification but can\nbe extended to handle multiclass by using\n:class:`~sklearn.multiclass.OneVsRestClassifier`.\n\nRead more in the :ref:`User Guide <logistic_regression>`.\n",
|
|
1047
1047
|
"attributes": [
|
|
1048
1048
|
{
|
|
1049
1049
|
"default": "l2",
|
|
@@ -1093,7 +1093,7 @@
|
|
|
1093
1093
|
},
|
|
1094
1094
|
{
|
|
1095
1095
|
"default": "lbfgs",
|
|
1096
|
-
"description": "\nAlgorithm to use in the optimization problem. Default is 'lbfgs'.\nTo choose a solver, you might want to consider the following aspects:\n\n- For small datasets, 'liblinear' is a good choice, whereas 'sag'\nand 'saga' are faster for large ones;\n- For :term:`multiclass` problems, all solvers except 'liblinear' minimize the\nfull multinomial loss;\n- 'liblinear' can only handle binary classification by default. To apply a\none-versus-rest scheme for the multiclass setting one can wrap it with the\n:class:`~sklearn.multiclass.OneVsRestClassifier`.\n- 'newton-cholesky' is a good choice for\n`n_samples` >> `n_features * n_classes`, especially with one-hot encoded\ncategorical features with rare categories. Be aware that the memory usage\nof this solver has a quadratic dependency on `n_features * n_classes`\nbecause it explicitly computes the full Hessian matrix.\n\n.. warning::\nThe choice of the algorithm depends on the penalty chosen and on\n(multinomial) multiclass support:\n\n================= ============================== ======================\nsolver penalty multinomial multiclass\n================= ============================== ======================\n'lbfgs' 'l2', None yes\n'liblinear' 'l1', 'l2' no\n'newton-cg' 'l2', None yes\n'newton-cholesky' 'l2', None
|
|
1096
|
+
"description": "\nAlgorithm to use in the optimization problem. Default is 'lbfgs'.\nTo choose a solver, you might want to consider the following aspects:\n\n- For small datasets, 'liblinear' is a good choice, whereas 'sag'\nand 'saga' are faster for large ones;\n- For :term:`multiclass` problems, all solvers except 'liblinear' minimize the\nfull multinomial loss;\n- 'liblinear' can only handle binary classification by default. To apply a\none-versus-rest scheme for the multiclass setting one can wrap it with the\n:class:`~sklearn.multiclass.OneVsRestClassifier`.\n- 'newton-cholesky' is a good choice for\n`n_samples` >> `n_features * n_classes`, especially with one-hot encoded\ncategorical features with rare categories. Be aware that the memory usage\nof this solver has a quadratic dependency on `n_features * n_classes`\nbecause it explicitly computes the full Hessian matrix.\n\n.. warning::\nThe choice of the algorithm depends on the penalty chosen and on\n(multinomial) multiclass support:\n\n================= ============================== ======================\nsolver penalty multinomial multiclass\n================= ============================== ======================\n'lbfgs' 'l2', None yes\n'liblinear' 'l1', 'l2' no\n'newton-cg' 'l2', None yes\n'newton-cholesky' 'l2', None yes\n'sag' 'l2', None yes\n'saga' 'elasticnet', 'l1', 'l2', None yes\n================= ============================== ======================\n\n.. note::\n'sag' and 'saga' fast convergence is only guaranteed on features\nwith approximately the same scale. You can preprocess the data with\na scaler from :mod:`sklearn.preprocessing`.\n\n.. seealso::\nRefer to the :ref:`User Guide <Logistic_regression>` for more\ninformation regarding :class:`LogisticRegression` and more specifically the\n:ref:`Table <logistic_regression_solvers>`\nsummarizing solver/penalty supports.\n\n.. versionadded:: 0.17\nStochastic Average Gradient (SAG) descent solver. Multinomial support in\nversion 0.18.\n.. versionadded:: 0.19\nSAGA solver.\n.. versionchanged:: 0.22\nThe default solver changed from 'liblinear' to 'lbfgs' in 0.22.\n.. versionadded:: 1.2\nnewton-cholesky solver. Multinomial support in version 1.6.\n",
|
|
1097
1097
|
"name": "solver"
|
|
1098
1098
|
},
|
|
1099
1099
|
{
|
|
@@ -1249,15 +1249,20 @@
|
|
|
1249
1249
|
},
|
|
1250
1250
|
{
|
|
1251
1251
|
"default": false,
|
|
1252
|
-
"description": "When set to ``True``, forces the coefficients to be positive. This\noption is only supported for dense arrays.\n\n.. versionadded:: 0.24\n",
|
|
1252
|
+
"description": "When set to ``True``, forces the coefficients to be positive. This\noption is only supported for dense arrays.\n\nFor a comparison between a linear regression model with positive constraints\non the regression coefficients and a linear regression without such constraints,\nsee :ref:`sphx_glr_auto_examples_linear_model_plot_nnls.py`.\n\n.. versionadded:: 0.24\n",
|
|
1253
1253
|
"name": "positive",
|
|
1254
1254
|
"type": "boolean"
|
|
1255
|
+
},
|
|
1256
|
+
{
|
|
1257
|
+
"name": "tol",
|
|
1258
|
+
"default": 1e-06,
|
|
1259
|
+
"description": "The precision of the solution (`coef_`) is determined by `tol` which\nspecifies a different convergence criterion for the `lsqr` solver.\n`tol` is set as `atol` and `btol` of `scipy.sparse.linalg.lsqr` when\nfitting on sparse training data. This parameter has no effect when fitting\non dense data.\n\n.. versionadded:: 1.7\n"
|
|
1255
1260
|
}
|
|
1256
1261
|
]
|
|
1257
1262
|
},
|
|
1258
1263
|
{
|
|
1259
1264
|
"name": "sklearn.linear_model.LogisticRegression",
|
|
1260
|
-
"description": "\nLogistic Regression (aka logit, MaxEnt) classifier.\n\nThis class implements regularized logistic regression using the\n'liblinear' library, 'newton-cg', 'sag', 'saga' and 'lbfgs' solvers. **Note\nthat regularization is applied by default**. It can handle both dense\nand sparse input. Use C-ordered arrays or CSR matrices containing 64-bit\nfloats for optimal performance; any other input format will be converted\n(and copied).\n\nThe 'newton-cg', 'sag', and 'lbfgs' solvers support only L2 regularization\nwith primal formulation, or no regularization. The 'liblinear' solver\nsupports both L1 and L2 regularization, with a dual formulation only for\nthe L2 penalty. The Elastic-Net regularization is only supported by the\n'saga' solver.\n\nFor :term:`multiclass` problems,
|
|
1265
|
+
"description": "\nLogistic Regression (aka logit, MaxEnt) classifier.\n\nThis class implements regularized logistic regression using the\n'liblinear' library, 'newton-cg', 'sag', 'saga' and 'lbfgs' solvers. **Note\nthat regularization is applied by default**. It can handle both dense\nand sparse input. Use C-ordered arrays or CSR matrices containing 64-bit\nfloats for optimal performance; any other input format will be converted\n(and copied).\n\nThe 'newton-cg', 'sag', and 'lbfgs' solvers support only L2 regularization\nwith primal formulation, or no regularization. The 'liblinear' solver\nsupports both L1 and L2 regularization, with a dual formulation only for\nthe L2 penalty. The Elastic-Net regularization is only supported by the\n'saga' solver.\n\nFor :term:`multiclass` problems, all solvers but 'liblinear' optimize the\n(penalized) multinomial loss. 'liblinear' only handle binary classification but can\nbe extended to handle multiclass by using\n:class:`~sklearn.multiclass.OneVsRestClassifier`.\n\nRead more in the :ref:`User Guide <logistic_regression>`.\n",
|
|
1261
1266
|
"attributes": [
|
|
1262
1267
|
{
|
|
1263
1268
|
"default": "l2",
|
|
@@ -1315,7 +1320,7 @@
|
|
|
1315
1320
|
},
|
|
1316
1321
|
{
|
|
1317
1322
|
"default": "lbfgs",
|
|
1318
|
-
"description": "\nAlgorithm to use in the optimization problem. Default is 'lbfgs'.\nTo choose a solver, you might want to consider the following aspects:\n\n- For small datasets, 'liblinear' is a good choice, whereas 'sag'\nand 'saga' are faster for large ones;\n- For :term:`multiclass` problems, all solvers except 'liblinear' minimize the\nfull multinomial loss;\n- 'liblinear' can only handle binary classification by default. To apply a\none-versus-rest scheme for the multiclass setting one can wrap it with the\n:class:`~sklearn.multiclass.OneVsRestClassifier`.\n- 'newton-cholesky' is a good choice for\n`n_samples` >> `n_features * n_classes`, especially with one-hot encoded\ncategorical features with rare categories. Be aware that the memory usage\nof this solver has a quadratic dependency on `n_features * n_classes`\nbecause it explicitly computes the full Hessian matrix.\n\n.. warning::\nThe choice of the algorithm depends on the penalty chosen and on\n(multinomial) multiclass support:\n\n================= ============================== ======================\nsolver penalty multinomial multiclass\n================= ============================== ======================\n'lbfgs' 'l2', None yes\n'liblinear' 'l1', 'l2' no\n'newton-cg' 'l2', None yes\n'newton-cholesky' 'l2', None
|
|
1323
|
+
"description": "\nAlgorithm to use in the optimization problem. Default is 'lbfgs'.\nTo choose a solver, you might want to consider the following aspects:\n\n- For small datasets, 'liblinear' is a good choice, whereas 'sag'\nand 'saga' are faster for large ones;\n- For :term:`multiclass` problems, all solvers except 'liblinear' minimize the\nfull multinomial loss;\n- 'liblinear' can only handle binary classification by default. To apply a\none-versus-rest scheme for the multiclass setting one can wrap it with the\n:class:`~sklearn.multiclass.OneVsRestClassifier`.\n- 'newton-cholesky' is a good choice for\n`n_samples` >> `n_features * n_classes`, especially with one-hot encoded\ncategorical features with rare categories. Be aware that the memory usage\nof this solver has a quadratic dependency on `n_features * n_classes`\nbecause it explicitly computes the full Hessian matrix.\n\n.. warning::\nThe choice of the algorithm depends on the penalty chosen and on\n(multinomial) multiclass support:\n\n================= ============================== ======================\nsolver penalty multinomial multiclass\n================= ============================== ======================\n'lbfgs' 'l2', None yes\n'liblinear' 'l1', 'l2' no\n'newton-cg' 'l2', None yes\n'newton-cholesky' 'l2', None yes\n'sag' 'l2', None yes\n'saga' 'elasticnet', 'l1', 'l2', None yes\n================= ============================== ======================\n\n.. note::\n'sag' and 'saga' fast convergence is only guaranteed on features\nwith approximately the same scale. You can preprocess the data with\na scaler from :mod:`sklearn.preprocessing`.\n\n.. seealso::\nRefer to the :ref:`User Guide <Logistic_regression>` for more\ninformation regarding :class:`LogisticRegression` and more specifically the\n:ref:`Table <logistic_regression_solvers>`\nsummarizing solver/penalty supports.\n\n.. versionadded:: 0.17\nStochastic Average Gradient (SAG) descent solver. Multinomial support in\nversion 0.18.\n.. versionadded:: 0.19\nSAGA solver.\n.. versionchanged:: 0.22\nThe default solver changed from 'liblinear' to 'lbfgs' in 0.22.\n.. versionadded:: 1.2\nnewton-cholesky solver. Multinomial support in version 1.6.\n",
|
|
1319
1324
|
"name": "solver",
|
|
1320
1325
|
"optional": true
|
|
1321
1326
|
},
|
|
@@ -1376,7 +1381,7 @@
|
|
|
1376
1381
|
},
|
|
1377
1382
|
{
|
|
1378
1383
|
"default": null,
|
|
1379
|
-
"description": "Strategy to evaluate the performance of the cross-validated model on\nthe test set.\n\nIf `scoring` represents a single score, one can use:\n\n- a single string (see :ref:`
|
|
1384
|
+
"description": "Strategy to evaluate the performance of the cross-validated model on\nthe test set.\n\nIf `scoring` represents a single score, one can use:\n\n- a single string (see :ref:`scoring_string_names`);\n- a callable (see :ref:`scoring_callable`) that returns a single value;\n- `None`, the `estimator`'s\n:ref:`default evaluation criterion <scoring_api_overview>` is used.\n\nIf `scoring` represents multiple scores, one can use:\n\n- a list or tuple of unique strings;\n- a callable returning a dictionary where the keys are the metric\nnames and the values are the metric scores;\n- a dictionary with metric names as keys and callables as values.\n\nSee :ref:`multimetric_grid_search` for an example.\n",
|
|
1380
1385
|
"name": "scoring"
|
|
1381
1386
|
},
|
|
1382
1387
|
{
|
|
@@ -1404,7 +1409,7 @@
|
|
|
1404
1409
|
},
|
|
1405
1410
|
{
|
|
1406
1411
|
"default": "True",
|
|
1407
|
-
"description": "Refit an estimator using the best found parameters on the whole\ndataset.\n\nFor multiple metric evaluation, this needs to be a `str` denoting the\nscorer that would be used to find the best parameters for refitting\nthe estimator at the end.\n\nWhere there are considerations other than maximum score in\nchoosing a best estimator, ``refit`` can be set to a function which\nreturns the selected ``best_index_`` given ``cv_results_``. In that\ncase, the ``best_estimator_`` and ``best_params_`` will be set\naccording to the returned ``best_index_`` while the ``best_score_``\nattribute will not be available.\n\nThe refitted estimator is made available at the ``best_estimator_``\nattribute and permits using ``predict`` directly on this\n``GridSearchCV`` instance.\n\nAlso for multiple metric evaluation, the attributes ``best_index_``,\n``best_score_`` and ``best_params_`` will only be available if\n``refit`` is set and all of them will be determined w.r.t this specific\nscorer.\n\nSee ``scoring`` parameter to know more about multiple metric\nevaluation.\n\nSee :ref:`sphx_glr_auto_examples_model_selection_plot_grid_search_digits.py`\nto see how to design a custom selection strategy using a callable\nvia `refit`.\n\n.. versionchanged:: 0.20\nSupport for callable added.\n",
|
|
1412
|
+
"description": "Refit an estimator using the best found parameters on the whole\ndataset.\n\nFor multiple metric evaluation, this needs to be a `str` denoting the\nscorer that would be used to find the best parameters for refitting\nthe estimator at the end.\n\nWhere there are considerations other than maximum score in\nchoosing a best estimator, ``refit`` can be set to a function which\nreturns the selected ``best_index_`` given ``cv_results_``. In that\ncase, the ``best_estimator_`` and ``best_params_`` will be set\naccording to the returned ``best_index_`` while the ``best_score_``\nattribute will not be available.\n\nThe refitted estimator is made available at the ``best_estimator_``\nattribute and permits using ``predict`` directly on this\n``GridSearchCV`` instance.\n\nAlso for multiple metric evaluation, the attributes ``best_index_``,\n``best_score_`` and ``best_params_`` will only be available if\n``refit`` is set and all of them will be determined w.r.t this specific\nscorer.\n\nSee ``scoring`` parameter to know more about multiple metric\nevaluation.\n\nSee :ref:`sphx_glr_auto_examples_model_selection_plot_grid_search_digits.py`\nto see how to design a custom selection strategy using a callable\nvia `refit`.\n\nSee :ref:`this example\n<sphx_glr_auto_examples_model_selection_plot_grid_search_refit_callable.py>`\nfor an example of how to use ``refit=callable`` to balance model\ncomplexity and cross-validated score.\n\n.. versionchanged:: 0.20\nSupport for callable added.\n",
|
|
1408
1413
|
"name": "refit",
|
|
1409
1414
|
"type": "boolean"
|
|
1410
1415
|
},
|
|
@@ -53,7 +53,7 @@ sklearn.Model = class {
|
|
|
53
53
|
['hmmlearn', 'hmmlearn']
|
|
54
54
|
]);
|
|
55
55
|
this.format = formats.get(type.split('.').shift());
|
|
56
|
-
this.
|
|
56
|
+
this.modules = [];
|
|
57
57
|
const version = [];
|
|
58
58
|
switch (type) {
|
|
59
59
|
case 'sklearn':
|
|
@@ -62,7 +62,7 @@ sklearn.Model = class {
|
|
|
62
62
|
if (obj._sklearn_version) {
|
|
63
63
|
version.push(` v${obj._sklearn_version}`);
|
|
64
64
|
}
|
|
65
|
-
this.
|
|
65
|
+
this.modules.push(new sklearn.Module(metadata, '', obj));
|
|
66
66
|
break;
|
|
67
67
|
}
|
|
68
68
|
case 'sklearn.list':
|
|
@@ -70,7 +70,7 @@ sklearn.Model = class {
|
|
|
70
70
|
const list = obj;
|
|
71
71
|
for (let i = 0; i < list.length; i++) {
|
|
72
72
|
const obj = list[i];
|
|
73
|
-
this.
|
|
73
|
+
this.modules.push(new sklearn.Module(metadata, i.toString(), obj));
|
|
74
74
|
if (obj._sklearn_version) {
|
|
75
75
|
version.push(` v${obj._sklearn_version}`);
|
|
76
76
|
}
|
|
@@ -81,7 +81,7 @@ sklearn.Model = class {
|
|
|
81
81
|
case 'scipy.map': {
|
|
82
82
|
const entries = obj instanceof Map ? Array.from(obj) : Object.entries(obj);
|
|
83
83
|
for (const [name, value] of entries) {
|
|
84
|
-
this.
|
|
84
|
+
this.modules.push(new sklearn.Module(metadata, name, value));
|
|
85
85
|
if (value._sklearn_version) {
|
|
86
86
|
version.push(` v${value._sklearn_version}`);
|
|
87
87
|
}
|
|
@@ -98,7 +98,7 @@ sklearn.Model = class {
|
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
100
|
|
|
101
|
-
sklearn.
|
|
101
|
+
sklearn.Module = class {
|
|
102
102
|
|
|
103
103
|
constructor(metadata, name, obj) {
|
|
104
104
|
this.name = name || '';
|