bigdl-core-npu 2.6.0b20250114__cp311-cp311-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. bigdl-core-npu/__init__.py +0 -0
  2. bigdl-core-npu/include/common.h +96 -0
  3. bigdl-core-npu/include/npu_llm.h +74 -0
  4. bigdl-core-npu/npu_llm.dll +0 -0
  5. bigdl-core-npu/npu_llm.lib +0 -0
  6. bigdl_core_npu-2.6.0b20250114.dist-info/METADATA +44 -0
  7. bigdl_core_npu-2.6.0b20250114.dist-info/RECORD +234 -0
  8. bigdl_core_npu-2.6.0b20250114.dist-info/WHEEL +5 -0
  9. bigdl_core_npu-2.6.0b20250114.dist-info/top_level.txt +2 -0
  10. intel_npu_acceleration_library/__init__.py +24 -0
  11. intel_npu_acceleration_library/_version.py +6 -0
  12. intel_npu_acceleration_library/backend/__init__.py +37 -0
  13. intel_npu_acceleration_library/backend/base.py +250 -0
  14. intel_npu_acceleration_library/backend/bindings.py +383 -0
  15. intel_npu_acceleration_library/backend/compression.py +24 -0
  16. intel_npu_acceleration_library/backend/convolution.py +58 -0
  17. intel_npu_acceleration_library/backend/factory.py +1161 -0
  18. intel_npu_acceleration_library/backend/linear.py +60 -0
  19. intel_npu_acceleration_library/backend/matmul.py +59 -0
  20. intel_npu_acceleration_library/backend/mlp.py +58 -0
  21. intel_npu_acceleration_library/backend/ops.py +142 -0
  22. intel_npu_acceleration_library/backend/qlinear.py +75 -0
  23. intel_npu_acceleration_library/backend/qmatmul.py +66 -0
  24. intel_npu_acceleration_library/backend/runtime.py +215 -0
  25. intel_npu_acceleration_library/backend/sdpa.py +107 -0
  26. intel_npu_acceleration_library/backend/tensor.py +1120 -0
  27. intel_npu_acceleration_library/backend/utils.py +70 -0
  28. intel_npu_acceleration_library/compiler.py +194 -0
  29. intel_npu_acceleration_library/device.py +230 -0
  30. intel_npu_acceleration_library/dtypes.py +155 -0
  31. intel_npu_acceleration_library/external/openvino/__init__.py +72 -0
  32. intel_npu_acceleration_library/external/openvino/_offline_transformations/__init__.py +21 -0
  33. intel_npu_acceleration_library/external/openvino/_pyopenvino.cp310-win_amd64.pyd +0 -0
  34. intel_npu_acceleration_library/external/openvino/_pyopenvino.cp311-win_amd64.pyd +0 -0
  35. intel_npu_acceleration_library/external/openvino/_pyopenvino.cp312-win_amd64.pyd +0 -0
  36. intel_npu_acceleration_library/external/openvino/_pyopenvino.cp38-win_amd64.pyd +0 -0
  37. intel_npu_acceleration_library/external/openvino/_pyopenvino.cp39-win_amd64.pyd +0 -0
  38. intel_npu_acceleration_library/external/openvino/experimental/__init__.py +14 -0
  39. intel_npu_acceleration_library/external/openvino/frontend/__init__.py +34 -0
  40. intel_npu_acceleration_library/external/openvino/frontend/frontend.py +44 -0
  41. intel_npu_acceleration_library/external/openvino/frontend/jax/__init__.py +15 -0
  42. intel_npu_acceleration_library/external/openvino/frontend/jax/jaxpr_decoder.py +293 -0
  43. intel_npu_acceleration_library/external/openvino/frontend/jax/passes.py +65 -0
  44. intel_npu_acceleration_library/external/openvino/frontend/jax/utils.py +182 -0
  45. intel_npu_acceleration_library/external/openvino/frontend/onnx/__init__.py +15 -0
  46. intel_npu_acceleration_library/external/openvino/frontend/onnx/py_onnx_frontend.cp310-win_amd64.pyd +0 -0
  47. intel_npu_acceleration_library/external/openvino/frontend/onnx/py_onnx_frontend.cp311-win_amd64.pyd +0 -0
  48. intel_npu_acceleration_library/external/openvino/frontend/onnx/py_onnx_frontend.cp312-win_amd64.pyd +0 -0
  49. intel_npu_acceleration_library/external/openvino/frontend/onnx/py_onnx_frontend.cp38-win_amd64.pyd +0 -0
  50. intel_npu_acceleration_library/external/openvino/frontend/onnx/py_onnx_frontend.cp39-win_amd64.pyd +0 -0
  51. intel_npu_acceleration_library/external/openvino/frontend/paddle/__init__.py +15 -0
  52. intel_npu_acceleration_library/external/openvino/frontend/paddle/py_paddle_frontend.cp310-win_amd64.pyd +0 -0
  53. intel_npu_acceleration_library/external/openvino/frontend/paddle/py_paddle_frontend.cp311-win_amd64.pyd +0 -0
  54. intel_npu_acceleration_library/external/openvino/frontend/paddle/py_paddle_frontend.cp312-win_amd64.pyd +0 -0
  55. intel_npu_acceleration_library/external/openvino/frontend/paddle/py_paddle_frontend.cp38-win_amd64.pyd +0 -0
  56. intel_npu_acceleration_library/external/openvino/frontend/paddle/py_paddle_frontend.cp39-win_amd64.pyd +0 -0
  57. intel_npu_acceleration_library/external/openvino/frontend/pytorch/__init__.py +19 -0
  58. intel_npu_acceleration_library/external/openvino/frontend/pytorch/fx_decoder.py +370 -0
  59. intel_npu_acceleration_library/external/openvino/frontend/pytorch/gptq.py +180 -0
  60. intel_npu_acceleration_library/external/openvino/frontend/pytorch/module_extension.py +39 -0
  61. intel_npu_acceleration_library/external/openvino/frontend/pytorch/patch_model.py +118 -0
  62. intel_npu_acceleration_library/external/openvino/frontend/pytorch/py_pytorch_frontend.cp310-win_amd64.pyd +0 -0
  63. intel_npu_acceleration_library/external/openvino/frontend/pytorch/py_pytorch_frontend.cp311-win_amd64.pyd +0 -0
  64. intel_npu_acceleration_library/external/openvino/frontend/pytorch/py_pytorch_frontend.cp312-win_amd64.pyd +0 -0
  65. intel_npu_acceleration_library/external/openvino/frontend/pytorch/py_pytorch_frontend.cp38-win_amd64.pyd +0 -0
  66. intel_npu_acceleration_library/external/openvino/frontend/pytorch/py_pytorch_frontend.cp39-win_amd64.pyd +0 -0
  67. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/backend.py +131 -0
  68. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/backend_utils.py +85 -0
  69. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/compile.py +141 -0
  70. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/decompositions.py +116 -0
  71. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/execute.py +189 -0
  72. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/op_support.py +290 -0
  73. intel_npu_acceleration_library/external/openvino/frontend/pytorch/torchdynamo/partition.py +126 -0
  74. intel_npu_acceleration_library/external/openvino/frontend/pytorch/ts_decoder.py +568 -0
  75. intel_npu_acceleration_library/external/openvino/frontend/pytorch/utils.py +258 -0
  76. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/__init__.py +16 -0
  77. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/graph_iterator.py +116 -0
  78. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/node_decoder.py +219 -0
  79. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/py_tensorflow_frontend.cp310-win_amd64.pyd +0 -0
  80. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/py_tensorflow_frontend.cp311-win_amd64.pyd +0 -0
  81. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/py_tensorflow_frontend.cp312-win_amd64.pyd +0 -0
  82. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/py_tensorflow_frontend.cp38-win_amd64.pyd +0 -0
  83. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/py_tensorflow_frontend.cp39-win_amd64.pyd +0 -0
  84. intel_npu_acceleration_library/external/openvino/frontend/tensorflow/utils.py +481 -0
  85. intel_npu_acceleration_library/external/openvino/helpers/__init__.py +6 -0
  86. intel_npu_acceleration_library/external/openvino/helpers/packing.py +87 -0
  87. intel_npu_acceleration_library/external/openvino/preprocess/README.md +60 -0
  88. intel_npu_acceleration_library/external/openvino/preprocess/__init__.py +28 -0
  89. intel_npu_acceleration_library/external/openvino/preprocess/torchvision/__init__.py +15 -0
  90. intel_npu_acceleration_library/external/openvino/preprocess/torchvision/preprocess_converter.py +47 -0
  91. intel_npu_acceleration_library/external/openvino/preprocess/torchvision/requirements.txt +5 -0
  92. intel_npu_acceleration_library/external/openvino/preprocess/torchvision/torchvision_preprocessing.py +347 -0
  93. intel_npu_acceleration_library/external/openvino/properties/__init__.py +22 -0
  94. intel_npu_acceleration_library/external/openvino/properties/_properties.py +55 -0
  95. intel_npu_acceleration_library/external/openvino/properties/device/__init__.py +14 -0
  96. intel_npu_acceleration_library/external/openvino/properties/hint/__init__.py +15 -0
  97. intel_npu_acceleration_library/external/openvino/properties/intel_auto/__init__.py +12 -0
  98. intel_npu_acceleration_library/external/openvino/properties/intel_cpu/__init__.py +8 -0
  99. intel_npu_acceleration_library/external/openvino/properties/intel_gpu/__init__.py +12 -0
  100. intel_npu_acceleration_library/external/openvino/properties/intel_gpu/hint/__init__.py +11 -0
  101. intel_npu_acceleration_library/external/openvino/properties/log/__init__.py +11 -0
  102. intel_npu_acceleration_library/external/openvino/properties/streams/__init__.py +11 -0
  103. intel_npu_acceleration_library/external/openvino/runtime/__init__.py +85 -0
  104. intel_npu_acceleration_library/external/openvino/runtime/exceptions.py +17 -0
  105. intel_npu_acceleration_library/external/openvino/runtime/ie_api.py +631 -0
  106. intel_npu_acceleration_library/external/openvino/runtime/op/__init__.py +19 -0
  107. intel_npu_acceleration_library/external/openvino/runtime/op/util/__init__.py +22 -0
  108. intel_npu_acceleration_library/external/openvino/runtime/opset1/__init__.py +112 -0
  109. intel_npu_acceleration_library/external/openvino/runtime/opset1/ops.py +3068 -0
  110. intel_npu_acceleration_library/external/openvino/runtime/opset10/__init__.py +179 -0
  111. intel_npu_acceleration_library/external/openvino/runtime/opset10/ops.py +173 -0
  112. intel_npu_acceleration_library/external/openvino/runtime/opset11/__init__.py +179 -0
  113. intel_npu_acceleration_library/external/openvino/runtime/opset11/ops.py +107 -0
  114. intel_npu_acceleration_library/external/openvino/runtime/opset12/__init__.py +180 -0
  115. intel_npu_acceleration_library/external/openvino/runtime/opset12/ops.py +120 -0
  116. intel_npu_acceleration_library/external/openvino/runtime/opset13/__init__.py +188 -0
  117. intel_npu_acceleration_library/external/openvino/runtime/opset13/ops.py +398 -0
  118. intel_npu_acceleration_library/external/openvino/runtime/opset14/__init__.py +190 -0
  119. intel_npu_acceleration_library/external/openvino/runtime/opset14/ops.py +171 -0
  120. intel_npu_acceleration_library/external/openvino/runtime/opset15/__init__.py +17 -0
  121. intel_npu_acceleration_library/external/openvino/runtime/opset15/ops.py +276 -0
  122. intel_npu_acceleration_library/external/openvino/runtime/opset2/__init__.py +118 -0
  123. intel_npu_acceleration_library/external/openvino/runtime/opset2/ops.py +216 -0
  124. intel_npu_acceleration_library/external/openvino/runtime/opset3/__init__.py +134 -0
  125. intel_npu_acceleration_library/external/openvino/runtime/opset3/ops.py +638 -0
  126. intel_npu_acceleration_library/external/openvino/runtime/opset4/__init__.py +145 -0
  127. intel_npu_acceleration_library/external/openvino/runtime/opset4/ops.py +464 -0
  128. intel_npu_acceleration_library/external/openvino/runtime/opset5/__init__.py +152 -0
  129. intel_npu_acceleration_library/external/openvino/runtime/opset5/ops.py +372 -0
  130. intel_npu_acceleration_library/external/openvino/runtime/opset6/__init__.py +154 -0
  131. intel_npu_acceleration_library/external/openvino/runtime/opset6/ops.py +215 -0
  132. intel_npu_acceleration_library/external/openvino/runtime/opset7/__init__.py +158 -0
  133. intel_npu_acceleration_library/external/openvino/runtime/opset7/ops.py +169 -0
  134. intel_npu_acceleration_library/external/openvino/runtime/opset8/__init__.py +169 -0
  135. intel_npu_acceleration_library/external/openvino/runtime/opset8/ops.py +787 -0
  136. intel_npu_acceleration_library/external/openvino/runtime/opset9/__init__.py +175 -0
  137. intel_npu_acceleration_library/external/openvino/runtime/opset9/ops.py +341 -0
  138. intel_npu_acceleration_library/external/openvino/runtime/opset_utils.py +22 -0
  139. intel_npu_acceleration_library/external/openvino/runtime/passes/__init__.py +19 -0
  140. intel_npu_acceleration_library/external/openvino/runtime/passes/graph_rewrite.py +33 -0
  141. intel_npu_acceleration_library/external/openvino/runtime/passes/manager.py +26 -0
  142. intel_npu_acceleration_library/external/openvino/runtime/properties/__init__.py +40 -0
  143. intel_npu_acceleration_library/external/openvino/runtime/properties/hint/__init__.py +25 -0
  144. intel_npu_acceleration_library/external/openvino/runtime/utils/__init__.py +7 -0
  145. intel_npu_acceleration_library/external/openvino/runtime/utils/broadcasting.py +44 -0
  146. intel_npu_acceleration_library/external/openvino/runtime/utils/data_helpers/__init__.py +8 -0
  147. intel_npu_acceleration_library/external/openvino/runtime/utils/data_helpers/data_dispatcher.py +447 -0
  148. intel_npu_acceleration_library/external/openvino/runtime/utils/data_helpers/wrappers.py +148 -0
  149. intel_npu_acceleration_library/external/openvino/runtime/utils/decorators.py +156 -0
  150. intel_npu_acceleration_library/external/openvino/runtime/utils/input_validation.py +133 -0
  151. intel_npu_acceleration_library/external/openvino/runtime/utils/node_factory.py +127 -0
  152. intel_npu_acceleration_library/external/openvino/runtime/utils/reduction.py +25 -0
  153. intel_npu_acceleration_library/external/openvino/runtime/utils/types.py +175 -0
  154. intel_npu_acceleration_library/external/openvino/tools/__init__.py +4 -0
  155. intel_npu_acceleration_library/external/openvino/tools/benchmark/__init__.py +3 -0
  156. intel_npu_acceleration_library/external/openvino/tools/benchmark/benchmark.py +186 -0
  157. intel_npu_acceleration_library/external/openvino/tools/benchmark/main.py +695 -0
  158. intel_npu_acceleration_library/external/openvino/tools/benchmark/parameters.py +199 -0
  159. intel_npu_acceleration_library/external/openvino/tools/benchmark/utils/__init__.py +3 -0
  160. intel_npu_acceleration_library/external/openvino/tools/benchmark/utils/constants.py +26 -0
  161. intel_npu_acceleration_library/external/openvino/tools/benchmark/utils/inputs_filling.py +482 -0
  162. intel_npu_acceleration_library/external/openvino/tools/benchmark/utils/logging.py +8 -0
  163. intel_npu_acceleration_library/external/openvino/tools/benchmark/utils/statistics_report.py +296 -0
  164. intel_npu_acceleration_library/external/openvino/tools/benchmark/utils/utils.py +836 -0
  165. intel_npu_acceleration_library/external/openvino/tools/ovc/__init__.py +20 -0
  166. intel_npu_acceleration_library/external/openvino/tools/ovc/__main__.py +10 -0
  167. intel_npu_acceleration_library/external/openvino/tools/ovc/cli_parser.py +633 -0
  168. intel_npu_acceleration_library/external/openvino/tools/ovc/convert.py +102 -0
  169. intel_npu_acceleration_library/external/openvino/tools/ovc/convert_data_type.py +82 -0
  170. intel_npu_acceleration_library/external/openvino/tools/ovc/convert_impl.py +550 -0
  171. intel_npu_acceleration_library/external/openvino/tools/ovc/environment_setup_utils.py +50 -0
  172. intel_npu_acceleration_library/external/openvino/tools/ovc/error.py +49 -0
  173. intel_npu_acceleration_library/external/openvino/tools/ovc/get_ov_update_message.py +16 -0
  174. intel_npu_acceleration_library/external/openvino/tools/ovc/help.py +45 -0
  175. intel_npu_acceleration_library/external/openvino/tools/ovc/logger.py +91 -0
  176. intel_npu_acceleration_library/external/openvino/tools/ovc/main.py +40 -0
  177. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/__init__.py +2 -0
  178. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/analysis.py +46 -0
  179. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/check_config.py +57 -0
  180. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/extractor.py +447 -0
  181. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/jax_frontend_utils.py +19 -0
  182. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/layout_utils.py +73 -0
  183. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/moc_emit_ir.py +32 -0
  184. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/offline_transformations.py +107 -0
  185. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/paddle_frontend_utils.py +83 -0
  186. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/pipeline.py +298 -0
  187. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/preprocessing.py +220 -0
  188. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/pytorch_frontend_utils.py +214 -0
  189. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/shape_utils.py +109 -0
  190. intel_npu_acceleration_library/external/openvino/tools/ovc/moc_frontend/type_utils.py +82 -0
  191. intel_npu_acceleration_library/external/openvino/tools/ovc/ovc.py +13 -0
  192. intel_npu_acceleration_library/external/openvino/tools/ovc/telemetry_params.py +6 -0
  193. intel_npu_acceleration_library/external/openvino/tools/ovc/telemetry_stub.py +28 -0
  194. intel_npu_acceleration_library/external/openvino/tools/ovc/telemetry_utils.py +118 -0
  195. intel_npu_acceleration_library/external/openvino/tools/ovc/utils.py +196 -0
  196. intel_npu_acceleration_library/external/openvino/tools/ovc/version.py +80 -0
  197. intel_npu_acceleration_library/external/openvino/torch/__init__.py +5 -0
  198. intel_npu_acceleration_library/external/openvino/utils.py +115 -0
  199. intel_npu_acceleration_library/functional/__init__.py +8 -0
  200. intel_npu_acceleration_library/functional/scaled_dot_product_attention.py +47 -0
  201. intel_npu_acceleration_library/lib/Release/cache.json +113732 -0
  202. intel_npu_acceleration_library/lib/Release/intel_npu_acceleration_library.dll +0 -0
  203. intel_npu_acceleration_library/lib/Release/openvino.dll +0 -0
  204. intel_npu_acceleration_library/lib/Release/openvino_auto_batch_plugin.dll +0 -0
  205. intel_npu_acceleration_library/lib/Release/openvino_auto_plugin.dll +0 -0
  206. intel_npu_acceleration_library/lib/Release/openvino_c.dll +0 -0
  207. intel_npu_acceleration_library/lib/Release/openvino_hetero_plugin.dll +0 -0
  208. intel_npu_acceleration_library/lib/Release/openvino_intel_cpu_plugin.dll +0 -0
  209. intel_npu_acceleration_library/lib/Release/openvino_intel_gpu_plugin.dll +0 -0
  210. intel_npu_acceleration_library/lib/Release/openvino_intel_npu_plugin.dll +0 -0
  211. intel_npu_acceleration_library/lib/Release/openvino_ir_frontend.dll +0 -0
  212. intel_npu_acceleration_library/lib/Release/openvino_onnx_frontend.dll +0 -0
  213. intel_npu_acceleration_library/lib/Release/openvino_paddle_frontend.dll +0 -0
  214. intel_npu_acceleration_library/lib/Release/openvino_pytorch_frontend.dll +0 -0
  215. intel_npu_acceleration_library/lib/Release/openvino_tensorflow_frontend.dll +0 -0
  216. intel_npu_acceleration_library/lib/Release/openvino_tensorflow_lite_frontend.dll +0 -0
  217. intel_npu_acceleration_library/lib/Release/tbb12.dll +0 -0
  218. intel_npu_acceleration_library/lib/Release/tbb12_debug.dll +0 -0
  219. intel_npu_acceleration_library/lib/Release/tbbbind_2_5.dll +0 -0
  220. intel_npu_acceleration_library/lib/Release/tbbbind_2_5_debug.dll +0 -0
  221. intel_npu_acceleration_library/lib/Release/tbbmalloc.dll +0 -0
  222. intel_npu_acceleration_library/lib/Release/tbbmalloc_debug.dll +0 -0
  223. intel_npu_acceleration_library/lib/Release/tbbmalloc_proxy.dll +0 -0
  224. intel_npu_acceleration_library/lib/Release/tbbmalloc_proxy_debug.dll +0 -0
  225. intel_npu_acceleration_library/modelling.py +150 -0
  226. intel_npu_acceleration_library/nn/__init__.py +20 -0
  227. intel_npu_acceleration_library/nn/autograd.py +68 -0
  228. intel_npu_acceleration_library/nn/conv.py +257 -0
  229. intel_npu_acceleration_library/nn/functional.py +1207 -0
  230. intel_npu_acceleration_library/nn/linear.py +162 -0
  231. intel_npu_acceleration_library/nn/llm.py +417 -0
  232. intel_npu_acceleration_library/nn/module.py +393 -0
  233. intel_npu_acceleration_library/optimizations.py +157 -0
  234. intel_npu_acceleration_library/quantization.py +174 -0
@@ -0,0 +1,47 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from typing import Callable, Any, Union
6
+ import logging
7
+
8
+ import openvino.runtime as ov
9
+
10
+
11
+ class PreprocessConverter():
12
+ def __init__(self, model: ov.Model):
13
+ self._model = model
14
+
15
+ @staticmethod
16
+ def from_torchvision(model: ov.Model, transform: Callable, input_example: Any,
17
+ input_name: Union[str, None] = None) -> ov.Model:
18
+ """Embed torchvision preprocessing in an OpenVINO model.
19
+
20
+ Arguments:
21
+ model (ov.Model):
22
+ Result name
23
+ transform (Callable):
24
+ torchvision transform to convert
25
+ input_example (torch.Tensor or np.ndarray or PIL.Image):
26
+ Example of input data for transform to trace its structure.
27
+ Don't confuse with the model input.
28
+ input_name (str, optional):
29
+ Name of the current model's input node to connect with preprocessing.
30
+ Not needed if the model has one input.
31
+
32
+ Returns:
33
+ ov.Mode: OpenVINO Model object with embedded preprocessing
34
+ Example:
35
+ >>> model = PreprocessorConvertor.from_torchvision(model, "input", transform, input_example)
36
+ """
37
+ try:
38
+ import PIL
39
+ import torch
40
+ from torchvision import transforms
41
+ from .torchvision_preprocessing import _from_torchvision
42
+ return _from_torchvision(model, transform, input_example, input_name)
43
+ except ImportError as e:
44
+ raise ImportError(f"Please install torch, torchvision and pillow packages:\n{e}")
45
+ except Exception as e:
46
+ logging.error(f"Unexpected error: {e}")
47
+ raise e
@@ -0,0 +1,5 @@
1
+ --extra-index-url https://download.pytorch.org/whl/cpu
2
+ torch>=1.13
3
+ torchvision; platform_machine == 'arm64' and python_version >= '3.8'
4
+ torchvision; platform_machine != 'arm64'
5
+ pillow>=9.0
@@ -0,0 +1,347 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ # mypy: disable-error-code="no-redef"
6
+
7
+ import numbers
8
+ import logging
9
+ import copy
10
+ import numpy as np
11
+ from typing import List, Dict
12
+ from abc import ABCMeta, abstractmethod
13
+ from functools import singledispatch
14
+ from typing import Callable, Any, Union, Tuple
15
+ from typing import Sequence as SequenceType
16
+ from collections.abc import Sequence
17
+ from PIL import Image
18
+
19
+ import torch
20
+ import torchvision.transforms as transforms
21
+ from torchvision.transforms import InterpolationMode
22
+
23
+ import openvino.runtime as ov
24
+ import openvino.runtime.opset11 as ops
25
+ from openvino.runtime import Layout, Type
26
+ from openvino.runtime.utils.decorators import custom_preprocess_function
27
+ from openvino.preprocess import PrePostProcessor, ResizeAlgorithm, ColorFormat
28
+
29
+
30
+ TORCHTYPE_TO_OVTYPE = {
31
+ float: ov.Type.f32,
32
+ int: ov.Type.i32,
33
+ bool: ov.Type.boolean,
34
+ torch.float16: ov.Type.f16,
35
+ torch.float32: ov.Type.f32,
36
+ torch.float64: ov.Type.f64,
37
+ torch.uint8: ov.Type.u8,
38
+ torch.int8: ov.Type.i8,
39
+ torch.int32: ov.Type.i32,
40
+ torch.int64: ov.Type.i64,
41
+ torch.bool: ov.Type.boolean,
42
+ torch.DoubleTensor: ov.Type.f64,
43
+ torch.FloatTensor: ov.Type.f32,
44
+ torch.IntTensor: ov.Type.i32,
45
+ torch.LongTensor: ov.Type.i64,
46
+ torch.BoolTensor: ov.Type.boolean,
47
+ }
48
+
49
+
50
+ @singledispatch
51
+ def _setup_size(size: Any, error_msg: str) -> SequenceType[int]:
52
+ raise ValueError(error_msg)
53
+
54
+
55
+ @_setup_size.register
56
+ def _setup_size_number(size: numbers.Number, error_msg: str) -> SequenceType[int]:
57
+ return int(size), int(size) # type: ignore
58
+
59
+
60
+ @_setup_size.register
61
+ def _setup_size_sequence(size: Sequence, error_msg: str) -> SequenceType[int]:
62
+ if len(size) == 1:
63
+ return size[0], size[0]
64
+ elif len(size) == 2:
65
+ return size[0], size[1]
66
+ raise ValueError(error_msg)
67
+
68
+
69
+ def _NHWC_to_NCHW(input_shape: List) -> List: # noqa N802
70
+ new_shape = copy.deepcopy(input_shape)
71
+ new_shape[1] = input_shape[3]
72
+ new_shape[2] = input_shape[1]
73
+ new_shape[3] = input_shape[2]
74
+ return new_shape
75
+
76
+
77
+ @singledispatch
78
+ def _to_list(transform: Callable) -> List:
79
+ raise TypeError(f"Unsupported transform type: {type(transform)}")
80
+
81
+
82
+ @_to_list.register
83
+ def _to_list_torch_sequential(transform: torch.nn.Sequential) -> List:
84
+ return list(transform)
85
+
86
+
87
+ @_to_list.register
88
+ def _to_list_transforms_compose(transform: transforms.Compose) -> List:
89
+ return transform.transforms
90
+
91
+
92
+ def _get_shape_layout_from_data(input_example: Union[torch.Tensor, np.ndarray, Image.Image]) -> Tuple[List, Layout]:
93
+ if isinstance(input_example, (torch.Tensor, np.ndarray, Image.Image)): # PyTorch, OpenCV, numpy, PILLOW
94
+ shape = list(np.array(input_example, copy=False).shape)
95
+ layout = Layout("NCHW") if isinstance(input_example, torch.Tensor) else Layout("NHWC")
96
+ else:
97
+ raise TypeError(f"Unsupported input type: {type(input_example)}")
98
+
99
+ if len(shape) == 3:
100
+ shape = [1] + shape
101
+ elif len(shape) != 4:
102
+ raise ValueError(f"Unsupported number of input dimensions: {len(shape)}")
103
+
104
+ return shape, layout
105
+
106
+
107
+ class TransformConverterBase(metaclass=ABCMeta):
108
+
109
+ def __init__(self, **kwargs: Any) -> None: # noqa B027
110
+ pass
111
+
112
+ @abstractmethod
113
+ def convert(self, input_idx: int, ppp: PrePostProcessor, transform: Callable, meta: Dict) -> None:
114
+ pass
115
+
116
+
117
+ class TransformConverterFactory:
118
+
119
+ registry: Dict[str, Callable] = {}
120
+
121
+ @classmethod
122
+ def register(cls: Callable, target_type: Union[Callable, None] = None) -> Callable:
123
+ def inner_wrapper(wrapped_class: TransformConverterBase) -> Callable:
124
+ registered_name = wrapped_class.__name__ if target_type is None else target_type.__name__
125
+ if registered_name in cls.registry:
126
+ logging.warning(f"Executor {registered_name} already exists. {wrapped_class.__name__} will replace it.")
127
+ cls.registry[registered_name] = wrapped_class
128
+ return wrapped_class # type: ignore
129
+
130
+ return inner_wrapper
131
+
132
+ @classmethod
133
+ def convert(cls: Callable, converter_type: Callable, *args: Any, **kwargs: Any) -> Callable:
134
+ transform_name = converter_type.__name__
135
+ if transform_name not in cls.registry:
136
+ raise ValueError(f"{transform_name} is not supported.")
137
+
138
+ converter = cls.registry[transform_name]()
139
+ return converter.convert(*args, **kwargs)
140
+
141
+
142
+ @TransformConverterFactory.register(transforms.Normalize)
143
+ class _(TransformConverterBase):
144
+ def convert(self, input_idx: int, ppp: PrePostProcessor, transform: Callable, meta: Dict) -> None:
145
+ if transform.inplace:
146
+ raise ValueError("Inplace Normaliziation is not supported.")
147
+ ppp.input(input_idx).preprocess().mean(transform.mean).scale(transform.std)
148
+
149
+
150
+ @TransformConverterFactory.register(transforms.ConvertImageDtype)
151
+ class _(TransformConverterBase):
152
+ def convert(self, input_idx: int, ppp: PrePostProcessor, transform: Callable, meta: Dict) -> None:
153
+ ppp.input(input_idx).preprocess().convert_element_type(TORCHTYPE_TO_OVTYPE[transform.dtype])
154
+
155
+
156
+ @TransformConverterFactory.register(transforms.Grayscale)
157
+ class _(TransformConverterBase):
158
+ def convert(self, input_idx: int, ppp: PrePostProcessor, transform: Callable, meta: Dict) -> None:
159
+ input_shape = meta["input_shape"]
160
+ layout = meta["layout"]
161
+
162
+ input_shape[layout.get_index_by_name("C")] = 1
163
+
164
+ ppp.input(input_idx).preprocess().convert_color(ColorFormat.GRAY)
165
+ if transform.num_output_channels != 1:
166
+ input_shape[layout.get_index_by_name("C")] = transform.num_output_channels
167
+
168
+ @custom_preprocess_function
169
+ def broadcast_node(output: ov.Output) -> Callable:
170
+ return ops.broadcast(
171
+ data=output,
172
+ target_shape=input_shape,
173
+ )
174
+ ppp.input(input_idx).preprocess().custom(broadcast_node)
175
+
176
+ meta["input_shape"] = input_shape
177
+
178
+
179
+ @TransformConverterFactory.register(transforms.Pad)
180
+ class _(TransformConverterBase):
181
+ def convert(self, input_idx: int, ppp: PrePostProcessor, transform: Callable, meta: Dict) -> None:
182
+ image_dimensions = list(meta["image_dimensions"])
183
+ layout = meta["layout"]
184
+ torch_padding = transform.padding
185
+ pad_mode = transform.padding_mode
186
+
187
+ if pad_mode == "constant":
188
+ if isinstance(transform.fill, tuple):
189
+ raise ValueError("Different fill values for R, G, B channels are not supported.")
190
+
191
+ pads_begin = [0 for _ in meta["input_shape"]]
192
+ pads_end = [0 for _ in meta["input_shape"]]
193
+
194
+ # padding equal on all sides
195
+ if isinstance(torch_padding, int):
196
+ image_dimensions[0] += 2 * torch_padding
197
+ image_dimensions[1] += 2 * torch_padding
198
+
199
+ pads_begin[layout.get_index_by_name("H")] = torch_padding
200
+ pads_begin[layout.get_index_by_name("W")] = torch_padding
201
+ pads_end[layout.get_index_by_name("H")] = torch_padding
202
+ pads_end[layout.get_index_by_name("W")] = torch_padding
203
+
204
+ # padding different in horizontal and vertical axis
205
+ elif len(torch_padding) == 2:
206
+ image_dimensions[0] += sum(torch_padding)
207
+ image_dimensions[1] += sum(torch_padding)
208
+
209
+ pads_begin[layout.get_index_by_name("H")] = torch_padding[1]
210
+ pads_begin[layout.get_index_by_name("W")] = torch_padding[0]
211
+ pads_end[layout.get_index_by_name("H")] = torch_padding[1]
212
+ pads_end[layout.get_index_by_name("W")] = torch_padding[0]
213
+
214
+ # padding different on top, bottom, left and right of image
215
+ else:
216
+ image_dimensions[0] += torch_padding[1] + torch_padding[3]
217
+ image_dimensions[1] += torch_padding[0] + torch_padding[2]
218
+
219
+ pads_begin[layout.get_index_by_name("H")] = torch_padding[1]
220
+ pads_begin[layout.get_index_by_name("W")] = torch_padding[0]
221
+ pads_end[layout.get_index_by_name("H")] = torch_padding[3]
222
+ pads_end[layout.get_index_by_name("W")] = torch_padding[2]
223
+
224
+ @custom_preprocess_function
225
+ def pad_node(output: ov.Output) -> Callable:
226
+ return ops.pad(
227
+ output,
228
+ pad_mode=pad_mode,
229
+ pads_begin=pads_begin,
230
+ pads_end=pads_end,
231
+ arg_pad_value=np.array(transform.fill, dtype=np.uint8) if pad_mode == "constant" else None,
232
+ )
233
+
234
+ ppp.input(input_idx).preprocess().custom(pad_node)
235
+ meta["image_dimensions"] = tuple(image_dimensions)
236
+
237
+
238
+ @TransformConverterFactory.register(transforms.ToTensor)
239
+ class _(TransformConverterBase):
240
+ def convert(self, input_idx: int, ppp: PrePostProcessor, transform: Callable, meta: Dict) -> None:
241
+ input_shape = meta["input_shape"]
242
+ layout = meta["layout"]
243
+
244
+ ppp.input(input_idx).tensor().set_element_type(Type.u8).set_layout(Layout("NHWC")).set_color_format(ColorFormat.RGB) # noqa ECE001
245
+
246
+ if layout == Layout("NHWC"):
247
+ input_shape = _NHWC_to_NCHW(input_shape)
248
+ layout = Layout("NCHW")
249
+ ppp.input(input_idx).preprocess().convert_layout(layout)
250
+ ppp.input(input_idx).preprocess().convert_element_type(Type.f32)
251
+ ppp.input(input_idx).preprocess().scale(255.0)
252
+
253
+ meta["input_shape"] = input_shape
254
+ meta["layout"] = layout
255
+
256
+
257
+ @TransformConverterFactory.register(transforms.CenterCrop)
258
+ class _(TransformConverterBase):
259
+ def convert(self, input_idx: int, ppp: PrePostProcessor, transform: Callable, meta: Dict) -> None:
260
+ input_shape = meta["input_shape"]
261
+ source_size = meta["image_dimensions"]
262
+ target_size = _setup_size(transform.size, "Incorrect size type for CenterCrop operation")
263
+
264
+ if target_size[0] > source_size[0] or target_size[1] > source_size[1]:
265
+ ValueError(f"CenterCrop size={target_size} is greater than source_size={source_size}")
266
+
267
+ bottom_left = []
268
+ bottom_left.append(int((source_size[0] - target_size[0]) / 2))
269
+ bottom_left.append(int((source_size[1] - target_size[1]) / 2))
270
+
271
+ top_right = []
272
+ top_right.append(min(bottom_left[0] + target_size[0], source_size[0] - 1))
273
+ top_right.append(min(bottom_left[1] + target_size[1], source_size[1] - 1))
274
+
275
+ bottom_left = [0] * len(input_shape[:-2]) + bottom_left if meta["layout"] == Layout("NCHW") else [0] + bottom_left + [0] # noqa ECE001
276
+ top_right = input_shape[:-2] + top_right if meta["layout"] == Layout("NCHW") else input_shape[:1] + top_right + input_shape[-1:]
277
+
278
+ ppp.input(input_idx).preprocess().crop(bottom_left, top_right)
279
+ meta["image_dimensions"] = (target_size[-2], target_size[-1])
280
+
281
+
282
+ @TransformConverterFactory.register(transforms.Resize)
283
+ class _(TransformConverterBase):
284
+ def convert(self, input_idx: int, ppp: PrePostProcessor, transform: Callable, meta: Dict) -> None:
285
+ resize_mode_map = {
286
+ InterpolationMode.NEAREST: ResizeAlgorithm.RESIZE_NEAREST,
287
+ InterpolationMode.BILINEAR: ResizeAlgorithm.RESIZE_BILINEAR_PILLOW,
288
+ InterpolationMode.BICUBIC: ResizeAlgorithm.RESIZE_BICUBIC_PILLOW,
289
+ }
290
+ if transform.max_size:
291
+ raise ValueError("Resize with max_size if not supported")
292
+ if transform.interpolation not in resize_mode_map.keys():
293
+ raise ValueError(f"Interpolation mode {transform.interpolation} is not supported.")
294
+
295
+ target_h, target_w = _setup_size(transform.size, "Incorrect size type for Resize operation")
296
+
297
+ # rescale the smaller image edge
298
+ current_h, current_w = meta["image_dimensions"]
299
+ if current_h > current_w:
300
+ target_h = int(transform.size * (current_h / current_w))
301
+ elif current_w > current_h:
302
+ target_w = int(transform.size * (current_w / current_h))
303
+
304
+ ppp.input(input_idx).tensor().set_layout(Layout("NCHW"))
305
+
306
+ input_shape = meta["input_shape"]
307
+
308
+ input_shape[meta["layout"].get_index_by_name("H")] = -1
309
+ input_shape[meta["layout"].get_index_by_name("W")] = -1
310
+
311
+ ppp.input(input_idx).tensor().set_shape(input_shape)
312
+ ppp.input(input_idx).preprocess().resize(resize_mode_map[transform.interpolation], target_h, target_w)
313
+ meta["input_shape"] = input_shape
314
+ meta["image_dimensions"] = (target_h, target_w)
315
+
316
+
317
+ def _from_torchvision(model: ov.Model, transform: Callable, input_example: Any, input_name: Union[str, None] = None) -> ov.Model:
318
+
319
+ if input_name is not None:
320
+ input_idx = next((i for i, p in enumerate(model.get_parameters()) if p.get_friendly_name() == input_name), None)
321
+ else:
322
+ if len(model.get_parameters()) == 1:
323
+ input_idx = 0
324
+ else:
325
+ raise ValueError("Model contains multiple inputs. Please specify the name of the input to which prepocessing is added.")
326
+
327
+ if input_idx is None:
328
+ raise ValueError(f"Input with name {input_name} is not found")
329
+
330
+ input_shape, layout = _get_shape_layout_from_data(input_example)
331
+
332
+ ppp = PrePostProcessor(model)
333
+ ppp.input(input_idx).tensor().set_layout(layout)
334
+ ppp.input(input_idx).tensor().set_shape(input_shape)
335
+
336
+ image_dimensions = [input_shape[layout.get_index_by_name("H")], input_shape[layout.get_index_by_name("W")]]
337
+ global_meta = {
338
+ "input_shape": input_shape,
339
+ "image_dimensions": image_dimensions,
340
+ "layout": layout,
341
+ }
342
+
343
+ for tm in _to_list(transform):
344
+ TransformConverterFactory.convert(type(tm), input_idx, ppp, tm, global_meta)
345
+
346
+ updated_model = ppp.build()
347
+ return updated_model
@@ -0,0 +1,22 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ # Enums
6
+ from openvino._pyopenvino.properties import Affinity
7
+ from openvino._pyopenvino.properties import CacheMode
8
+ from openvino._pyopenvino.properties import WorkloadType
9
+
10
+ # Properties
11
+ import openvino._pyopenvino.properties as __properties
12
+ from openvino.properties._properties import __make_properties
13
+ __make_properties(__properties, __name__)
14
+
15
+ # Submodules
16
+ from openvino.properties import hint
17
+ from openvino.properties import intel_cpu
18
+ from openvino.properties import intel_gpu
19
+ from openvino.properties import intel_auto
20
+ from openvino.properties import device
21
+ from openvino.properties import log
22
+ from openvino.properties import streams
@@ -0,0 +1,55 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ import sys
6
+ from types import BuiltinFunctionType, ModuleType
7
+ from typing import Callable, Any, Union
8
+
9
+
10
+ class Property(str):
11
+ """This class allows to make a string object callable. Call returns underlying string's data."""
12
+ def __new__(cls, prop: Callable[..., Any]): # type: ignore
13
+ instance = super().__new__(cls, prop())
14
+ instance.prop = prop
15
+ return instance
16
+
17
+ def __call__(self, *args: Any) -> Callable[..., Any]:
18
+ if args is not None:
19
+ return self.prop(*args)
20
+ return self.prop()
21
+
22
+
23
+ def __append_property_to_module(func: Callable[..., Any], target_module_name: str) -> None:
24
+ """Modifies the target module's __getattr__ method to expose a python property wrapper by the function's name.
25
+
26
+ :param func: the function which will be transformed to behave as python property.
27
+ :param target_module_name: the name of the module to which properties are added.
28
+ """
29
+ module = sys.modules[target_module_name]
30
+
31
+ def base_getattr(name: str) -> None:
32
+ raise AttributeError(
33
+ f"Module '{module.__name__}' doesn't have the attribute with name '{name}'.")
34
+
35
+ getattr_old = getattr(module, "__getattr__", base_getattr)
36
+
37
+ def getattr_new(name: str) -> Union[Callable[..., Any], Any]:
38
+ if func.__name__ == name:
39
+ return Property(func)
40
+ else:
41
+ return getattr_old(name)
42
+
43
+ module.__getattr__ = getattr_new # type: ignore
44
+
45
+
46
+ def __make_properties(source_module_of_properties: ModuleType, target_module_name: str) -> None:
47
+ """Makes python properties in target module from functions found in the source module.
48
+
49
+ :param source_module_of_properties: the source module from which functions should be taken.
50
+ :param target_module_name: the name of the module to which properties are added.
51
+ """
52
+ for attr in dir(source_module_of_properties):
53
+ func = getattr(source_module_of_properties, attr)
54
+ if isinstance(func, BuiltinFunctionType):
55
+ __append_property_to_module(func, target_module_name)
@@ -0,0 +1,14 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ # Enums
6
+ from openvino._pyopenvino.properties.device import Type
7
+
8
+ # Properties
9
+ import openvino._pyopenvino.properties.device as __device
10
+ from openvino.properties._properties import __make_properties
11
+ __make_properties(__device, __name__)
12
+
13
+ # Classes
14
+ from openvino._pyopenvino.properties.device import Capability
@@ -0,0 +1,15 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ # Enums
6
+ from openvino._pyopenvino.properties.hint import Priority
7
+ from openvino._pyopenvino.properties.hint import SchedulingCoreType
8
+ from openvino._pyopenvino.properties.hint import ModelDistributionPolicy
9
+ from openvino._pyopenvino.properties.hint import ExecutionMode
10
+ from openvino._pyopenvino.properties.hint import PerformanceMode
11
+
12
+ # Properties
13
+ import openvino._pyopenvino.properties.hint as __hint
14
+ from openvino.properties._properties import __make_properties
15
+ __make_properties(__hint, __name__)
@@ -0,0 +1,12 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ # Enums
6
+ from openvino._pyopenvino.properties.intel_auto import SchedulePolicy
7
+
8
+ # Properties
9
+ import openvino._pyopenvino.properties.intel_auto as __intel_auto
10
+ from openvino.properties._properties import __make_properties
11
+
12
+ __make_properties(__intel_auto, __name__)
@@ -0,0 +1,8 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ # Properties
6
+ import openvino._pyopenvino.properties.intel_cpu as __intel_cpu
7
+ from openvino.properties._properties import __make_properties
8
+ __make_properties(__intel_cpu, __name__)
@@ -0,0 +1,12 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ # Properties
6
+ import openvino._pyopenvino.properties.intel_gpu as __intel_gpu
7
+ from openvino.properties._properties import __make_properties
8
+ __make_properties(__intel_gpu, __name__)
9
+
10
+ # Classes
11
+ from openvino._pyopenvino.properties.intel_gpu import MemoryType
12
+ from openvino._pyopenvino.properties.intel_gpu import CapabilityGPU
@@ -0,0 +1,11 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ # Properties
6
+ import openvino._pyopenvino.properties.intel_gpu.hint as __hint
7
+ from openvino.properties._properties import __make_properties
8
+ __make_properties(__hint, __name__)
9
+
10
+ # Classes
11
+ from openvino._pyopenvino.properties.intel_gpu.hint import ThrottleLevel
@@ -0,0 +1,11 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ # Enums
6
+ from openvino._pyopenvino.properties.log import Level
7
+
8
+ # Properties
9
+ import openvino._pyopenvino.properties.log as __log
10
+ from openvino.properties._properties import __make_properties
11
+ __make_properties(__log, __name__)
@@ -0,0 +1,11 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ # Classes
6
+ from openvino._pyopenvino.properties.streams import Num
7
+
8
+ # Properties
9
+ import openvino._pyopenvino.properties.streams as __streams
10
+ from openvino.properties._properties import __make_properties
11
+ __make_properties(__streams, __name__)
@@ -0,0 +1,85 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2018-2024 Intel Corporation
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ """openvino module namespace, exposing factory functions for all ops and other classes."""
6
+ # noqa: F401
7
+
8
+ from openvino._pyopenvino import get_version
9
+
10
+ __version__ = get_version()
11
+
12
+ # Openvino pybind bindings and python extended classes
13
+ from openvino._pyopenvino import Symbol
14
+ from openvino._pyopenvino import Dimension
15
+ from openvino._pyopenvino import Input
16
+ from openvino._pyopenvino import Output
17
+ from openvino._pyopenvino import Node
18
+ from openvino._pyopenvino import Type
19
+ from openvino._pyopenvino import PartialShape
20
+ from openvino._pyopenvino import Shape
21
+ from openvino._pyopenvino import Strides
22
+ from openvino._pyopenvino import CoordinateDiff
23
+ from openvino._pyopenvino import DiscreteTypeInfo
24
+ from openvino._pyopenvino import AxisSet
25
+ from openvino._pyopenvino import AxisVector
26
+ from openvino._pyopenvino import Coordinate
27
+ from openvino._pyopenvino import Layout
28
+ from openvino._pyopenvino import ConstOutput
29
+ from openvino._pyopenvino import layout_helpers
30
+ from openvino._pyopenvino import OVAny
31
+ from openvino._pyopenvino import RTMap
32
+ from openvino.runtime.ie_api import Core
33
+ from openvino.runtime.ie_api import CompiledModel
34
+ from openvino.runtime.ie_api import InferRequest
35
+ from openvino.runtime.ie_api import Model
36
+ from openvino.runtime.ie_api import AsyncInferQueue
37
+ from openvino._pyopenvino import Version
38
+ from openvino._pyopenvino import Tensor
39
+ from openvino._pyopenvino import Extension
40
+ from openvino._pyopenvino import ProfilingInfo
41
+ from openvino._pyopenvino import get_batch
42
+ from openvino._pyopenvino import set_batch
43
+ from openvino._pyopenvino import serialize
44
+ from openvino._pyopenvino import save_model
45
+ from openvino._pyopenvino import shutdown
46
+
47
+ # Import opsets
48
+ from openvino.runtime import opset1
49
+ from openvino.runtime import opset2
50
+ from openvino.runtime import opset3
51
+ from openvino.runtime import opset4
52
+ from openvino.runtime import opset5
53
+ from openvino.runtime import opset6
54
+ from openvino.runtime import opset7
55
+ from openvino.runtime import opset8
56
+ from openvino.runtime import opset9
57
+ from openvino.runtime import opset10
58
+ from openvino.runtime import opset11
59
+ from openvino.runtime import opset12
60
+ from openvino.runtime import opset13
61
+
62
+ # Import properties API
63
+ from openvino.runtime import properties
64
+
65
+ # Helper functions for openvino module
66
+ from openvino.runtime.ie_api import tensor_from_file
67
+ from openvino.runtime.ie_api import compile_model
68
+
69
+ # Extend Node class to support binary operators
70
+ Node.__add__ = opset13.add
71
+ Node.__sub__ = opset13.subtract
72
+ Node.__mul__ = opset13.multiply
73
+ Node.__div__ = opset13.divide
74
+ Node.__truediv__ = opset13.divide
75
+ Node.__radd__ = lambda left, right: opset13.add(right, left)
76
+ Node.__rsub__ = lambda left, right: opset13.subtract(right, left)
77
+ Node.__rmul__ = lambda left, right: opset13.multiply(right, left)
78
+ Node.__rdiv__ = lambda left, right: opset13.divide(right, left)
79
+ Node.__rtruediv__ = lambda left, right: opset13.divide(right, left)
80
+ Node.__eq__ = opset13.equal
81
+ Node.__ne__ = opset13.not_equal
82
+ Node.__lt__ = opset13.less
83
+ Node.__le__ = opset13.less_equal
84
+ Node.__gt__ = opset13.greater
85
+ Node.__ge__ = opset13.greater_equal