mindspore 2.4.0__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.

Potentially problematic release.


This version of mindspore might be problematic. Click here for more details.

Files changed (1406) hide show
  1. mindspore/.commit_id +1 -0
  2. mindspore/ConcurrencyCheck.dll +0 -0
  3. mindspore/CppBuildInsights.dll +0 -0
  4. mindspore/CppCoreCheck.dll +0 -0
  5. mindspore/EnumIndex.dll +0 -0
  6. mindspore/EspXEngine.dll +0 -0
  7. mindspore/HResultCheck.dll +0 -0
  8. mindspore/KernelTraceControl.dll +0 -0
  9. mindspore/LocalESPC.dll +0 -0
  10. mindspore/Microsoft.Diagnostics.Tracing.EventSource.dll +0 -0
  11. mindspore/Microsoft.VisualStudio.RemoteControl.dll +0 -0
  12. mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
  13. mindspore/Microsoft.VisualStudio.Utilities.Internal.dll +0 -0
  14. mindspore/Newtonsoft.Json.dll +0 -0
  15. mindspore/System.Runtime.CompilerServices.Unsafe.dll +0 -0
  16. mindspore/VariantClear.dll +0 -0
  17. mindspore/__init__.py +53 -0
  18. mindspore/_c_dataengine.cp311-win_amd64.pyd +0 -0
  19. mindspore/_c_expression.cp311-win_amd64.pyd +0 -0
  20. mindspore/_c_mindrecord.cp311-win_amd64.pyd +0 -0
  21. mindspore/_check_jit_forbidden_api.py +106 -0
  22. mindspore/_checkparam.py +1419 -0
  23. mindspore/_extends/__init__.py +23 -0
  24. mindspore/_extends/builtin_operations.py +224 -0
  25. mindspore/_extends/graph_kernel/__init__.py +17 -0
  26. mindspore/_extends/graph_kernel/model/__init__.py +19 -0
  27. mindspore/_extends/graph_kernel/model/graph_parallel.py +311 -0
  28. mindspore/_extends/graph_kernel/model/graph_split.py +1348 -0
  29. mindspore/_extends/graph_kernel/model/model.py +553 -0
  30. mindspore/_extends/graph_kernel/model/model_builder.py +216 -0
  31. mindspore/_extends/graph_kernel/parallel_estimate.py +60 -0
  32. mindspore/_extends/graph_kernel/splitter.py +140 -0
  33. mindspore/_extends/graph_kernel/utils.py +28 -0
  34. mindspore/_extends/parallel_compile/__init__.py +19 -0
  35. mindspore/_extends/parallel_compile/akg_compiler/__init__.py +19 -0
  36. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +269 -0
  37. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +529 -0
  38. mindspore/_extends/parallel_compile/akg_compiler/compiler.py +56 -0
  39. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +96 -0
  40. mindspore/_extends/parallel_compile/akg_compiler/get_file_path.py +36 -0
  41. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +556 -0
  42. mindspore/_extends/parallel_compile/akg_compiler/util.py +159 -0
  43. mindspore/_extends/parse/__init__.py +49 -0
  44. mindspore/_extends/parse/compile_config.py +299 -0
  45. mindspore/_extends/parse/namespace.py +136 -0
  46. mindspore/_extends/parse/parser.py +1448 -0
  47. mindspore/_extends/parse/resources.py +213 -0
  48. mindspore/_extends/parse/standard_method.py +4475 -0
  49. mindspore/_extends/parse/trope.py +97 -0
  50. mindspore/_extends/pijit/__init__.py +23 -0
  51. mindspore/_extends/pijit/pijit_func_white_list.py +669 -0
  52. mindspore/_extends/remote/__init__.py +19 -0
  53. mindspore/_extends/remote/kernel_build_server.py +199 -0
  54. mindspore/_extends/remote/kernel_build_server_akg.py +55 -0
  55. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  56. mindspore/_extends/remote/kernel_build_server_ascend.py +75 -0
  57. mindspore/_extends/utils.py +68 -0
  58. mindspore/_install_custom.py +43 -0
  59. mindspore/_profiler.py +30 -0
  60. mindspore/amp.py +433 -0
  61. mindspore/atlprov.dll +0 -0
  62. mindspore/avcodec-59.dll +0 -0
  63. mindspore/avdevice-59.dll +0 -0
  64. mindspore/avfilter-8.dll +0 -0
  65. mindspore/avformat-59.dll +0 -0
  66. mindspore/avutil-57.dll +0 -0
  67. mindspore/boost/__init__.py +42 -0
  68. mindspore/boost/adasum.py +319 -0
  69. mindspore/boost/base.py +535 -0
  70. mindspore/boost/boost.py +400 -0
  71. mindspore/boost/boost_cell_wrapper.py +790 -0
  72. mindspore/boost/dim_reduce.py +323 -0
  73. mindspore/boost/grad_accumulation.py +79 -0
  74. mindspore/boost/grad_freeze.py +382 -0
  75. mindspore/boost/group_loss_scale_manager.py +166 -0
  76. mindspore/boost/less_batch_normalization.py +174 -0
  77. mindspore/c1.dll +0 -0
  78. mindspore/c1xx.dll +0 -0
  79. mindspore/c2.dll +0 -0
  80. mindspore/cfgpersist.dll +0 -0
  81. mindspore/clang_rt.asan_dbg_dynamic-x86_64.dll +0 -0
  82. mindspore/clang_rt.asan_dynamic-x86_64.dll +0 -0
  83. mindspore/common/__init__.py +86 -0
  84. mindspore/common/_auto_dynamic.py +68 -0
  85. mindspore/common/_decorator.py +50 -0
  86. mindspore/common/_jit_fallback_utils.py +110 -0
  87. mindspore/common/_monad.py +25 -0
  88. mindspore/common/_pijit_context.py +190 -0
  89. mindspore/common/_register_for_adapter.py +74 -0
  90. mindspore/common/_register_for_recompute.py +48 -0
  91. mindspore/common/_register_for_tensor.py +46 -0
  92. mindspore/common/_stub_tensor.py +210 -0
  93. mindspore/common/_tensor_overload.py +139 -0
  94. mindspore/common/_utils.py +122 -0
  95. mindspore/common/api.py +2064 -0
  96. mindspore/common/auto_dynamic_shape.py +507 -0
  97. mindspore/common/dtype.py +422 -0
  98. mindspore/common/dump.py +130 -0
  99. mindspore/common/file_system.py +48 -0
  100. mindspore/common/generator.py +254 -0
  101. mindspore/common/hook_handle.py +143 -0
  102. mindspore/common/initializer.py +880 -0
  103. mindspore/common/jit_config.py +98 -0
  104. mindspore/common/lazy_inline.py +240 -0
  105. mindspore/common/mindir_util.py +111 -0
  106. mindspore/common/mutable.py +234 -0
  107. mindspore/common/no_inline.py +54 -0
  108. mindspore/common/np_dtype.py +25 -0
  109. mindspore/common/parameter.py +1081 -0
  110. mindspore/common/recompute.py +292 -0
  111. mindspore/common/seed.py +260 -0
  112. mindspore/common/sparse_tensor.py +1175 -0
  113. mindspore/common/symbol.py +122 -0
  114. mindspore/common/tensor.py +5039 -0
  115. mindspore/communication/__init__.py +37 -0
  116. mindspore/communication/_comm_helper.py +501 -0
  117. mindspore/communication/_hccl_management.py +297 -0
  118. mindspore/communication/comm_func.py +1395 -0
  119. mindspore/communication/management.py +673 -0
  120. mindspore/config/op_info.config +533 -0
  121. mindspore/context.py +2077 -0
  122. mindspore/d3dcompiler_47.dll +0 -0
  123. mindspore/dataset/__init__.py +90 -0
  124. mindspore/dataset/audio/__init__.py +61 -0
  125. mindspore/dataset/audio/transforms.py +3690 -0
  126. mindspore/dataset/audio/utils.py +386 -0
  127. mindspore/dataset/audio/validators.py +1172 -0
  128. mindspore/dataset/callback/__init__.py +20 -0
  129. mindspore/dataset/callback/ds_callback.py +368 -0
  130. mindspore/dataset/callback/validators.py +32 -0
  131. mindspore/dataset/core/__init__.py +13 -0
  132. mindspore/dataset/core/config.py +1095 -0
  133. mindspore/dataset/core/datatypes.py +101 -0
  134. mindspore/dataset/core/py_util_helpers.py +65 -0
  135. mindspore/dataset/core/validator_helpers.py +781 -0
  136. mindspore/dataset/debug/__init__.py +21 -0
  137. mindspore/dataset/debug/debug_hook.py +97 -0
  138. mindspore/dataset/debug/pre_defined_hook.py +67 -0
  139. mindspore/dataset/engine/__init__.py +124 -0
  140. mindspore/dataset/engine/cache_admin.py +47 -0
  141. mindspore/dataset/engine/cache_client.py +129 -0
  142. mindspore/dataset/engine/datasets.py +4582 -0
  143. mindspore/dataset/engine/datasets_audio.py +911 -0
  144. mindspore/dataset/engine/datasets_standard_format.py +543 -0
  145. mindspore/dataset/engine/datasets_text.py +2161 -0
  146. mindspore/dataset/engine/datasets_user_defined.py +1184 -0
  147. mindspore/dataset/engine/datasets_vision.py +4816 -0
  148. mindspore/dataset/engine/iterators.py +371 -0
  149. mindspore/dataset/engine/obs/__init__.py +23 -0
  150. mindspore/dataset/engine/obs/config_loader.py +68 -0
  151. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +508 -0
  152. mindspore/dataset/engine/obs/util.py +482 -0
  153. mindspore/dataset/engine/offload.py +596 -0
  154. mindspore/dataset/engine/queue.py +304 -0
  155. mindspore/dataset/engine/samplers.py +895 -0
  156. mindspore/dataset/engine/serializer_deserializer.py +159 -0
  157. mindspore/dataset/engine/validators.py +2895 -0
  158. mindspore/dataset/text/__init__.py +51 -0
  159. mindspore/dataset/text/transforms.py +1703 -0
  160. mindspore/dataset/text/utils.py +715 -0
  161. mindspore/dataset/text/validators.py +642 -0
  162. mindspore/dataset/transforms/__init__.py +45 -0
  163. mindspore/dataset/transforms/c_transforms.py +638 -0
  164. mindspore/dataset/transforms/py_transforms.py +393 -0
  165. mindspore/dataset/transforms/py_transforms_util.py +255 -0
  166. mindspore/dataset/transforms/transforms.py +1260 -0
  167. mindspore/dataset/transforms/validators.py +410 -0
  168. mindspore/dataset/utils/__init__.py +19 -0
  169. mindspore/dataset/utils/browse_dataset.py +190 -0
  170. mindspore/dataset/utils/line_reader.py +126 -0
  171. mindspore/dataset/vision/__init__.py +65 -0
  172. mindspore/dataset/vision/c_transforms.py +2641 -0
  173. mindspore/dataset/vision/py_transforms.py +2120 -0
  174. mindspore/dataset/vision/py_transforms_util.py +1660 -0
  175. mindspore/dataset/vision/transforms.py +7295 -0
  176. mindspore/dataset/vision/utils.py +863 -0
  177. mindspore/dataset/vision/validators.py +1483 -0
  178. mindspore/default_config.py +2 -0
  179. mindspore/dnnl.dll +0 -0
  180. mindspore/dpcmi.dll +0 -0
  181. mindspore/experimental/__init__.py +20 -0
  182. mindspore/experimental/es/__init__.py +22 -0
  183. mindspore/experimental/es/embedding_service.py +883 -0
  184. mindspore/experimental/es/embedding_service_layer.py +581 -0
  185. mindspore/experimental/llm_boost/__init__.py +21 -0
  186. mindspore/experimental/llm_boost/atb/__init__.py +23 -0
  187. mindspore/experimental/llm_boost/atb/boost_base.py +211 -0
  188. mindspore/experimental/llm_boost/atb/llama_boost.py +115 -0
  189. mindspore/experimental/llm_boost/atb/qwen_boost.py +101 -0
  190. mindspore/experimental/llm_boost/register.py +129 -0
  191. mindspore/experimental/llm_boost/utils.py +31 -0
  192. mindspore/experimental/map_parameter.py +309 -0
  193. mindspore/experimental/optim/__init__.py +40 -0
  194. mindspore/experimental/optim/adadelta.py +161 -0
  195. mindspore/experimental/optim/adagrad.py +168 -0
  196. mindspore/experimental/optim/adam.py +193 -0
  197. mindspore/experimental/optim/adamax.py +170 -0
  198. mindspore/experimental/optim/adamw.py +290 -0
  199. mindspore/experimental/optim/asgd.py +153 -0
  200. mindspore/experimental/optim/lr_scheduler.py +1371 -0
  201. mindspore/experimental/optim/nadam.py +157 -0
  202. mindspore/experimental/optim/optimizer.py +262 -0
  203. mindspore/experimental/optim/radam.py +194 -0
  204. mindspore/experimental/optim/rmsprop.py +154 -0
  205. mindspore/experimental/optim/rprop.py +164 -0
  206. mindspore/experimental/optim/sgd.py +156 -0
  207. mindspore/hal/__init__.py +40 -0
  208. mindspore/hal/_ascend.py +57 -0
  209. mindspore/hal/_base.py +57 -0
  210. mindspore/hal/_cpu.py +56 -0
  211. mindspore/hal/_gpu.py +57 -0
  212. mindspore/hal/contiguous_tensors_handle.py +175 -0
  213. mindspore/hal/device.py +356 -0
  214. mindspore/hal/event.py +179 -0
  215. mindspore/hal/memory.py +326 -0
  216. mindspore/hal/stream.py +357 -0
  217. mindspore/include/OWNERS +7 -0
  218. mindspore/include/api/allocator.h +97 -0
  219. mindspore/include/api/callback/callback.h +93 -0
  220. mindspore/include/api/callback/ckpt_saver.h +41 -0
  221. mindspore/include/api/callback/loss_monitor.h +33 -0
  222. mindspore/include/api/callback/lr_scheduler.h +51 -0
  223. mindspore/include/api/callback/time_monitor.h +34 -0
  224. mindspore/include/api/callback/train_accuracy.h +37 -0
  225. mindspore/include/api/cell.h +90 -0
  226. mindspore/include/api/cfg.h +82 -0
  227. mindspore/include/api/context.h +602 -0
  228. mindspore/include/api/data_type.h +47 -0
  229. mindspore/include/api/delegate.h +178 -0
  230. mindspore/include/api/delegate_api.h +75 -0
  231. mindspore/include/api/dual_abi_helper.h +208 -0
  232. mindspore/include/api/format.h +28 -0
  233. mindspore/include/api/graph.h +46 -0
  234. mindspore/include/api/kernel.h +58 -0
  235. mindspore/include/api/kernel_api.h +168 -0
  236. mindspore/include/api/metrics/accuracy.h +36 -0
  237. mindspore/include/api/metrics/metrics.h +41 -0
  238. mindspore/include/api/model.h +438 -0
  239. mindspore/include/api/model_group.h +91 -0
  240. mindspore/include/api/model_parallel_runner.h +168 -0
  241. mindspore/include/api/serialization.h +185 -0
  242. mindspore/include/api/status.h +192 -0
  243. mindspore/include/api/types.h +431 -0
  244. mindspore/include/api/visible.h +41 -0
  245. mindspore/include/c_api/context_c.h +179 -0
  246. mindspore/include/c_api/data_type_c.h +52 -0
  247. mindspore/include/c_api/format_c.h +46 -0
  248. mindspore/include/c_api/model_c.h +347 -0
  249. mindspore/include/c_api/status_c.h +79 -0
  250. mindspore/include/c_api/tensor_c.h +146 -0
  251. mindspore/include/c_api/types_c.h +67 -0
  252. mindspore/include/dataset/config.h +163 -0
  253. mindspore/include/dataset/constants.h +363 -0
  254. mindspore/include/dataset/execute.h +196 -0
  255. mindspore/include/dataset/text.h +1092 -0
  256. mindspore/include/dataset/transforms.h +638 -0
  257. mindspore/include/dataset/vision.h +2129 -0
  258. mindspore/include/dataset/vision_ascend.h +206 -0
  259. mindspore/include/dataset/vision_lite.h +625 -0
  260. mindspore/jpeg62.dll +0 -0
  261. mindspore/log.py +633 -0
  262. mindspore/mindrecord/__init__.py +43 -0
  263. mindspore/mindrecord/common/__init__.py +17 -0
  264. mindspore/mindrecord/common/constant.py +20 -0
  265. mindspore/mindrecord/common/enums.py +44 -0
  266. mindspore/mindrecord/common/exceptions.py +311 -0
  267. mindspore/mindrecord/config.py +809 -0
  268. mindspore/mindrecord/filereader.py +174 -0
  269. mindspore/mindrecord/filewriter.py +722 -0
  270. mindspore/mindrecord/mindpage.py +210 -0
  271. mindspore/mindrecord/shardheader.py +141 -0
  272. mindspore/mindrecord/shardindexgenerator.py +74 -0
  273. mindspore/mindrecord/shardreader.py +117 -0
  274. mindspore/mindrecord/shardsegment.py +128 -0
  275. mindspore/mindrecord/shardutils.py +185 -0
  276. mindspore/mindrecord/shardwriter.py +237 -0
  277. mindspore/mindrecord/tools/__init__.py +17 -0
  278. mindspore/mindrecord/tools/cifar10.py +140 -0
  279. mindspore/mindrecord/tools/cifar100.py +153 -0
  280. mindspore/mindrecord/tools/cifar100_to_mr.py +185 -0
  281. mindspore/mindrecord/tools/cifar10_to_mr.py +177 -0
  282. mindspore/mindrecord/tools/csv_to_mr.py +200 -0
  283. mindspore/mindrecord/tools/imagenet_to_mr.py +206 -0
  284. mindspore/mindrecord/tools/mnist_to_mr.py +259 -0
  285. mindspore/mindrecord/tools/tfrecord_to_mr.py +360 -0
  286. mindspore/mindspore_backend.dll +0 -0
  287. mindspore/mindspore_common.dll +0 -0
  288. mindspore/mindspore_core.dll +0 -0
  289. mindspore/mindspore_glog.dll +0 -0
  290. mindspore/mindspore_np_dtype.dll +0 -0
  291. mindspore/mindspore_ops.dll +0 -0
  292. mindspore/mint/__init__.py +1586 -0
  293. mindspore/mint/distributed/__init__.py +31 -0
  294. mindspore/mint/distributed/distributed.py +254 -0
  295. mindspore/mint/linalg/__init__.py +22 -0
  296. mindspore/mint/nn/__init__.py +757 -0
  297. mindspore/mint/nn/functional.py +679 -0
  298. mindspore/mint/nn/layer/__init__.py +39 -0
  299. mindspore/mint/nn/layer/activation.py +133 -0
  300. mindspore/mint/nn/layer/normalization.py +477 -0
  301. mindspore/mint/nn/layer/pooling.py +110 -0
  302. mindspore/mint/optim/__init__.py +24 -0
  303. mindspore/mint/optim/adamw.py +206 -0
  304. mindspore/mint/special/__init__.py +63 -0
  305. mindspore/msobj140.dll +0 -0
  306. mindspore/mspdb140.dll +0 -0
  307. mindspore/mspdbcore.dll +0 -0
  308. mindspore/mspdbst.dll +0 -0
  309. mindspore/mspft140.dll +0 -0
  310. mindspore/msvcdis140.dll +0 -0
  311. mindspore/msvcp140.dll +0 -0
  312. mindspore/msvcp140_1.dll +0 -0
  313. mindspore/msvcp140_2.dll +0 -0
  314. mindspore/msvcp140_atomic_wait.dll +0 -0
  315. mindspore/msvcp140_codecvt_ids.dll +0 -0
  316. mindspore/multiprocessing/__init__.py +73 -0
  317. mindspore/nn/__init__.py +47 -0
  318. mindspore/nn/cell.py +2787 -0
  319. mindspore/nn/dynamic_lr.py +482 -0
  320. mindspore/nn/grad/__init__.py +21 -0
  321. mindspore/nn/grad/cell_grad.py +196 -0
  322. mindspore/nn/layer/__init__.py +63 -0
  323. mindspore/nn/layer/activation.py +1822 -0
  324. mindspore/nn/layer/basic.py +1629 -0
  325. mindspore/nn/layer/channel_shuffle.py +90 -0
  326. mindspore/nn/layer/combined.py +248 -0
  327. mindspore/nn/layer/container.py +734 -0
  328. mindspore/nn/layer/conv.py +1505 -0
  329. mindspore/nn/layer/dense.py +204 -0
  330. mindspore/nn/layer/embedding.py +869 -0
  331. mindspore/nn/layer/image.py +661 -0
  332. mindspore/nn/layer/math.py +1069 -0
  333. mindspore/nn/layer/normalization.py +1273 -0
  334. mindspore/nn/layer/padding.py +880 -0
  335. mindspore/nn/layer/pooling.py +2302 -0
  336. mindspore/nn/layer/rnn_cells.py +388 -0
  337. mindspore/nn/layer/rnns.py +849 -0
  338. mindspore/nn/layer/thor_layer.py +963 -0
  339. mindspore/nn/layer/timedistributed.py +155 -0
  340. mindspore/nn/layer/transformer.py +823 -0
  341. mindspore/nn/learning_rate_schedule.py +512 -0
  342. mindspore/nn/loss/__init__.py +36 -0
  343. mindspore/nn/loss/loss.py +2924 -0
  344. mindspore/nn/metrics.py +53 -0
  345. mindspore/nn/optim/__init__.py +45 -0
  346. mindspore/nn/optim/_dist_optimizer_registry.py +111 -0
  347. mindspore/nn/optim/ada_grad.py +217 -0
  348. mindspore/nn/optim/adadelta.py +206 -0
  349. mindspore/nn/optim/adafactor.py +448 -0
  350. mindspore/nn/optim/adam.py +1297 -0
  351. mindspore/nn/optim/adamax.py +220 -0
  352. mindspore/nn/optim/adasum.py +548 -0
  353. mindspore/nn/optim/asgd.py +216 -0
  354. mindspore/nn/optim/ftrl.py +401 -0
  355. mindspore/nn/optim/lamb.py +296 -0
  356. mindspore/nn/optim/lars.py +202 -0
  357. mindspore/nn/optim/lazyadam.py +533 -0
  358. mindspore/nn/optim/momentum.py +239 -0
  359. mindspore/nn/optim/optimizer.py +1034 -0
  360. mindspore/nn/optim/proximal_ada_grad.py +242 -0
  361. mindspore/nn/optim/rmsprop.py +264 -0
  362. mindspore/nn/optim/rprop.py +251 -0
  363. mindspore/nn/optim/sgd.py +237 -0
  364. mindspore/nn/optim/tft_wrapper.py +127 -0
  365. mindspore/nn/optim/thor.py +1310 -0
  366. mindspore/nn/probability/__init__.py +22 -0
  367. mindspore/nn/probability/bijector/__init__.py +35 -0
  368. mindspore/nn/probability/bijector/bijector.py +337 -0
  369. mindspore/nn/probability/bijector/exp.py +65 -0
  370. mindspore/nn/probability/bijector/gumbel_cdf.py +144 -0
  371. mindspore/nn/probability/bijector/invert.py +126 -0
  372. mindspore/nn/probability/bijector/power_transform.py +196 -0
  373. mindspore/nn/probability/bijector/scalar_affine.py +167 -0
  374. mindspore/nn/probability/bijector/softplus.py +189 -0
  375. mindspore/nn/probability/bnn_layers/__init__.py +29 -0
  376. mindspore/nn/probability/bnn_layers/_util.py +46 -0
  377. mindspore/nn/probability/bnn_layers/bnn_cell_wrapper.py +112 -0
  378. mindspore/nn/probability/bnn_layers/conv_variational.py +267 -0
  379. mindspore/nn/probability/bnn_layers/dense_variational.py +302 -0
  380. mindspore/nn/probability/bnn_layers/layer_distribution.py +123 -0
  381. mindspore/nn/probability/distribution/__init__.py +56 -0
  382. mindspore/nn/probability/distribution/_utils/__init__.py +34 -0
  383. mindspore/nn/probability/distribution/_utils/custom_ops.py +96 -0
  384. mindspore/nn/probability/distribution/_utils/utils.py +362 -0
  385. mindspore/nn/probability/distribution/bernoulli.py +334 -0
  386. mindspore/nn/probability/distribution/beta.py +391 -0
  387. mindspore/nn/probability/distribution/categorical.py +435 -0
  388. mindspore/nn/probability/distribution/cauchy.py +383 -0
  389. mindspore/nn/probability/distribution/distribution.py +827 -0
  390. mindspore/nn/probability/distribution/exponential.py +350 -0
  391. mindspore/nn/probability/distribution/gamma.py +391 -0
  392. mindspore/nn/probability/distribution/geometric.py +335 -0
  393. mindspore/nn/probability/distribution/gumbel.py +257 -0
  394. mindspore/nn/probability/distribution/half_normal.py +133 -0
  395. mindspore/nn/probability/distribution/laplace.py +128 -0
  396. mindspore/nn/probability/distribution/log_normal.py +272 -0
  397. mindspore/nn/probability/distribution/logistic.py +379 -0
  398. mindspore/nn/probability/distribution/normal.py +336 -0
  399. mindspore/nn/probability/distribution/poisson.py +288 -0
  400. mindspore/nn/probability/distribution/student_t.py +149 -0
  401. mindspore/nn/probability/distribution/transformed_distribution.py +235 -0
  402. mindspore/nn/probability/distribution/uniform.py +375 -0
  403. mindspore/nn/reinforcement/__init__.py +24 -0
  404. mindspore/nn/reinforcement/_batch_read_write.py +142 -0
  405. mindspore/nn/reinforcement/_tensors_queue.py +152 -0
  406. mindspore/nn/reinforcement/tensor_array.py +145 -0
  407. mindspore/nn/sparse/__init__.py +23 -0
  408. mindspore/nn/sparse/sparse.py +147 -0
  409. mindspore/nn/wrap/__init__.py +49 -0
  410. mindspore/nn/wrap/cell_wrapper.py +968 -0
  411. mindspore/nn/wrap/grad_reducer.py +608 -0
  412. mindspore/nn/wrap/loss_scale.py +694 -0
  413. mindspore/numpy/__init__.py +121 -0
  414. mindspore/numpy/array_creations.py +2731 -0
  415. mindspore/numpy/array_ops.py +2629 -0
  416. mindspore/numpy/dtypes.py +185 -0
  417. mindspore/numpy/fft.py +966 -0
  418. mindspore/numpy/logic_ops.py +936 -0
  419. mindspore/numpy/math_ops.py +5911 -0
  420. mindspore/numpy/utils.py +214 -0
  421. mindspore/numpy/utils_const.py +565 -0
  422. mindspore/opencv_core452.dll +0 -0
  423. mindspore/opencv_imgcodecs452.dll +0 -0
  424. mindspore/opencv_imgproc452.dll +0 -0
  425. mindspore/ops/__init__.py +56 -0
  426. mindspore/ops/_constants.py +30 -0
  427. mindspore/ops/_grad_experimental/__init__.py +31 -0
  428. mindspore/ops/_grad_experimental/grad_array_ops.py +830 -0
  429. mindspore/ops/_grad_experimental/grad_base.py +143 -0
  430. mindspore/ops/_grad_experimental/grad_comm_ops.py +714 -0
  431. mindspore/ops/_grad_experimental/grad_debug_ops.py +31 -0
  432. mindspore/ops/_grad_experimental/grad_implementations.py +203 -0
  433. mindspore/ops/_grad_experimental/grad_inner_ops.py +79 -0
  434. mindspore/ops/_grad_experimental/grad_math_ops.py +802 -0
  435. mindspore/ops/_grad_experimental/grad_nn_ops.py +231 -0
  436. mindspore/ops/_grad_experimental/grad_quant_ops.py +238 -0
  437. mindspore/ops/_grad_experimental/grad_sparse.py +342 -0
  438. mindspore/ops/_grad_experimental/grad_sparse_ops.py +399 -0
  439. mindspore/ops/_grad_experimental/taylor_rule.py +220 -0
  440. mindspore/ops/_op_impl/__init__.py +23 -0
  441. mindspore/ops/_op_impl/_custom_op/__init__.py +39 -0
  442. mindspore/ops/_op_impl/_custom_op/_basic.py +158 -0
  443. mindspore/ops/_op_impl/_custom_op/batch_matmul_impl.py +279 -0
  444. mindspore/ops/_op_impl/_custom_op/batchnorm_fold.py +156 -0
  445. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2.py +109 -0
  446. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad.py +125 -0
  447. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad_reduce.py +105 -0
  448. mindspore/ops/_op_impl/_custom_op/batchnorm_fold_grad.py +124 -0
  449. mindspore/ops/_op_impl/_custom_op/cholesky_trsm_impl.py +116 -0
  450. mindspore/ops/_op_impl/_custom_op/correction_mul.py +89 -0
  451. mindspore/ops/_op_impl/_custom_op/correction_mul_grad.py +196 -0
  452. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +366 -0
  453. mindspore/ops/_op_impl/_custom_op/dsd_impl.py +162 -0
  454. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel.py +136 -0
  455. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad.py +206 -0
  456. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad_reduce.py +88 -0
  457. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer.py +128 -0
  458. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad.py +199 -0
  459. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad_reduce.py +88 -0
  460. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel.py +156 -0
  461. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel_grad.py +184 -0
  462. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer.py +143 -0
  463. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer_grad.py +169 -0
  464. mindspore/ops/_op_impl/_custom_op/fused_abs_max1_impl.py +548 -0
  465. mindspore/ops/_op_impl/_custom_op/img2col_impl.py +881 -0
  466. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +278 -0
  467. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_right_impl.py +200 -0
  468. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_left_cast_impl.py +334 -0
  469. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_right_mul_impl.py +255 -0
  470. mindspore/ops/_op_impl/_custom_op/matmul_cube_impl.py +222 -0
  471. mindspore/ops/_op_impl/_custom_op/matmul_dds_grad_impl.py +644 -0
  472. mindspore/ops/_op_impl/_custom_op/matmul_dds_impl.py +488 -0
  473. mindspore/ops/_op_impl/_custom_op/matrix_combine_impl.py +87 -0
  474. mindspore/ops/_op_impl/_custom_op/minmax_update_perchannel.py +129 -0
  475. mindspore/ops/_op_impl/_custom_op/minmax_update_perlayer.py +121 -0
  476. mindspore/ops/_op_impl/_custom_op/transpose02314_impl.py +352 -0
  477. mindspore/ops/_op_impl/aicpu/__init__.py +441 -0
  478. mindspore/ops/_op_impl/aicpu/abs.py +36 -0
  479. mindspore/ops/_op_impl/aicpu/acos.py +32 -0
  480. mindspore/ops/_op_impl/aicpu/acos_grad.py +33 -0
  481. mindspore/ops/_op_impl/aicpu/acosh.py +34 -0
  482. mindspore/ops/_op_impl/aicpu/acosh_grad.py +35 -0
  483. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d.py +34 -0
  484. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d_grad.py +34 -0
  485. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d.py +39 -0
  486. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d_grad.py +39 -0
  487. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d.py +37 -0
  488. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d_grad.py +37 -0
  489. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d.py +42 -0
  490. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d_grad.py +152 -0
  491. mindspore/ops/_op_impl/aicpu/add.py +43 -0
  492. mindspore/ops/_op_impl/aicpu/add_n.py +41 -0
  493. mindspore/ops/_op_impl/aicpu/add_v2.py +40 -0
  494. mindspore/ops/_op_impl/aicpu/addcdiv.py +41 -0
  495. mindspore/ops/_op_impl/aicpu/addcmul.py +47 -0
  496. mindspore/ops/_op_impl/aicpu/adjust_contrastv2.py +32 -0
  497. mindspore/ops/_op_impl/aicpu/adjust_hue.py +31 -0
  498. mindspore/ops/_op_impl/aicpu/adjust_saturation.py +32 -0
  499. mindspore/ops/_op_impl/aicpu/affine_grid.py +33 -0
  500. mindspore/ops/_op_impl/aicpu/affine_grid_grad.py +35 -0
  501. mindspore/ops/_op_impl/aicpu/angle.py +31 -0
  502. mindspore/ops/_op_impl/aicpu/arg_max.py +75 -0
  503. mindspore/ops/_op_impl/aicpu/arg_min.py +75 -0
  504. mindspore/ops/_op_impl/aicpu/argmax_with_value.py +43 -0
  505. mindspore/ops/_op_impl/aicpu/argmin_with_value.py +43 -0
  506. mindspore/ops/_op_impl/aicpu/asin.py +32 -0
  507. mindspore/ops/_op_impl/aicpu/asin_grad.py +33 -0
  508. mindspore/ops/_op_impl/aicpu/asinh.py +34 -0
  509. mindspore/ops/_op_impl/aicpu/asinh_grad.py +35 -0
  510. mindspore/ops/_op_impl/aicpu/atanh.py +34 -0
  511. mindspore/ops/_op_impl/aicpu/avgpool_grad_v1.py +37 -0
  512. mindspore/ops/_op_impl/aicpu/avgpool_v1.py +36 -0
  513. mindspore/ops/_op_impl/aicpu/bartlett_window.py +36 -0
  514. mindspore/ops/_op_impl/aicpu/batch_matmul.py +43 -0
  515. mindspore/ops/_op_impl/aicpu/batch_norm_grad_grad.py +49 -0
  516. mindspore/ops/_op_impl/aicpu/bernoulli.py +48 -0
  517. mindspore/ops/_op_impl/aicpu/bessel_i0.py +31 -0
  518. mindspore/ops/_op_impl/aicpu/betainc.py +31 -0
  519. mindspore/ops/_op_impl/aicpu/bias_add.py +44 -0
  520. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +42 -0
  521. mindspore/ops/_op_impl/aicpu/bincount.py +33 -0
  522. mindspore/ops/_op_impl/aicpu/blackman_window.py +36 -0
  523. mindspore/ops/_op_impl/aicpu/broadcast_to.py +58 -0
  524. mindspore/ops/_op_impl/aicpu/bucketize.py +34 -0
  525. mindspore/ops/_op_impl/aicpu/cache_swap_table.py +102 -0
  526. mindspore/ops/_op_impl/aicpu/cast.py +225 -0
  527. mindspore/ops/_op_impl/aicpu/cauchy.py +33 -0
  528. mindspore/ops/_op_impl/aicpu/channel_shuffle.py +40 -0
  529. mindspore/ops/_op_impl/aicpu/check_numerics.py +33 -0
  530. mindspore/ops/_op_impl/aicpu/cholesky.py +32 -0
  531. mindspore/ops/_op_impl/aicpu/cholesky_inverse.py +31 -0
  532. mindspore/ops/_op_impl/aicpu/cholesky_solve.py +33 -0
  533. mindspore/ops/_op_impl/aicpu/choleskygrad.py +32 -0
  534. mindspore/ops/_op_impl/aicpu/coalesce.py +37 -0
  535. mindspore/ops/_op_impl/aicpu/col2im.py +38 -0
  536. mindspore/ops/_op_impl/aicpu/combined_non_max_suppression.py +42 -0
  537. mindspore/ops/_op_impl/aicpu/compare_and_bitpack.py +37 -0
  538. mindspore/ops/_op_impl/aicpu/complex.py +32 -0
  539. mindspore/ops/_op_impl/aicpu/complex_abs.py +31 -0
  540. mindspore/ops/_op_impl/aicpu/compute_accidental_hits.py +44 -0
  541. mindspore/ops/_op_impl/aicpu/concat.py +57 -0
  542. mindspore/ops/_op_impl/aicpu/concat_offset.py +42 -0
  543. mindspore/ops/_op_impl/aicpu/concat_offset_v1.py +31 -0
  544. mindspore/ops/_op_impl/aicpu/conj.py +42 -0
  545. mindspore/ops/_op_impl/aicpu/conjugate_transpose.py +58 -0
  546. mindspore/ops/_op_impl/aicpu/cos.py +34 -0
  547. mindspore/ops/_op_impl/aicpu/cosh.py +34 -0
  548. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  549. mindspore/ops/_op_impl/aicpu/crop_and_resize.py +69 -0
  550. mindspore/ops/_op_impl/aicpu/crop_and_resize_grad_boxes.py +68 -0
  551. mindspore/ops/_op_impl/aicpu/crop_and_resize_grad_image.py +38 -0
  552. mindspore/ops/_op_impl/aicpu/cross.py +42 -0
  553. mindspore/ops/_op_impl/aicpu/csr_sparse_matrix_to_dense.py +48 -0
  554. mindspore/ops/_op_impl/aicpu/csr_sparse_matrix_to_sparse_tensor.py +51 -0
  555. mindspore/ops/_op_impl/aicpu/ctc_greedy_decoder.py +35 -0
  556. mindspore/ops/_op_impl/aicpu/ctc_loss_v2.py +43 -0
  557. mindspore/ops/_op_impl/aicpu/ctc_loss_v2_grad.py +45 -0
  558. mindspore/ops/_op_impl/aicpu/ctcloss.py +38 -0
  559. mindspore/ops/_op_impl/aicpu/cummax.py +41 -0
  560. mindspore/ops/_op_impl/aicpu/cumprod.py +58 -0
  561. mindspore/ops/_op_impl/aicpu/cumsum.py +58 -0
  562. mindspore/ops/_op_impl/aicpu/cumulative_logsumexp.py +36 -0
  563. mindspore/ops/_op_impl/aicpu/data_format_vec_permute.py +32 -0
  564. mindspore/ops/_op_impl/aicpu/deformable_offsets.py +38 -0
  565. mindspore/ops/_op_impl/aicpu/deformable_offsets_grad.py +43 -0
  566. mindspore/ops/_op_impl/aicpu/dense_to_csr_sparse_matrix.py +49 -0
  567. mindspore/ops/_op_impl/aicpu/dense_to_dense_set_operation.py +45 -0
  568. mindspore/ops/_op_impl/aicpu/dense_to_sparse_set_operation.py +48 -0
  569. mindspore/ops/_op_impl/aicpu/depth_to_space.py +44 -0
  570. mindspore/ops/_op_impl/aicpu/diag.py +36 -0
  571. mindspore/ops/_op_impl/aicpu/diag_part.py +36 -0
  572. mindspore/ops/_op_impl/aicpu/diagonal.py +35 -0
  573. mindspore/ops/_op_impl/aicpu/digamma.py +31 -0
  574. mindspore/ops/_op_impl/aicpu/div.py +41 -0
  575. mindspore/ops/_op_impl/aicpu/div_no_nan.py +35 -0
  576. mindspore/ops/_op_impl/aicpu/dropout2d.py +42 -0
  577. mindspore/ops/_op_impl/aicpu/dropout3d.py +42 -0
  578. mindspore/ops/_op_impl/aicpu/dropout_genmask.py +41 -0
  579. mindspore/ops/_op_impl/aicpu/dropout_genmask_v3.py +32 -0
  580. mindspore/ops/_op_impl/aicpu/dynamic_stitch.py +42 -0
  581. mindspore/ops/_op_impl/aicpu/edit_distance.py +56 -0
  582. mindspore/ops/_op_impl/aicpu/eig.py +35 -0
  583. mindspore/ops/_op_impl/aicpu/embedding_lookup.py +102 -0
  584. mindspore/ops/_op_impl/aicpu/end_of_sequence.py +30 -0
  585. mindspore/ops/_op_impl/aicpu/environ_create.py +28 -0
  586. mindspore/ops/_op_impl/aicpu/environ_destroy_all.py +28 -0
  587. mindspore/ops/_op_impl/aicpu/environ_get.py +41 -0
  588. mindspore/ops/_op_impl/aicpu/environ_set.py +40 -0
  589. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  590. mindspore/ops/_op_impl/aicpu/equal.py +41 -0
  591. mindspore/ops/_op_impl/aicpu/exp.py +37 -0
  592. mindspore/ops/_op_impl/aicpu/expand.py +45 -0
  593. mindspore/ops/_op_impl/aicpu/expand_dims.py +42 -0
  594. mindspore/ops/_op_impl/aicpu/expm1.py +34 -0
  595. mindspore/ops/_op_impl/aicpu/extract_glimpse.py +35 -0
  596. mindspore/ops/_op_impl/aicpu/eye.py +44 -0
  597. mindspore/ops/_op_impl/aicpu/fft_with_size.py +47 -0
  598. mindspore/ops/_op_impl/aicpu/fill_diagonal.py +39 -0
  599. mindspore/ops/_op_impl/aicpu/fill_v2.py +58 -0
  600. mindspore/ops/_op_impl/aicpu/flatten.py +43 -0
  601. mindspore/ops/_op_impl/aicpu/floor_div.py +38 -0
  602. mindspore/ops/_op_impl/aicpu/fmax.py +36 -0
  603. mindspore/ops/_op_impl/aicpu/fmin.py +37 -0
  604. mindspore/ops/_op_impl/aicpu/fractional_avg_pool.py +41 -0
  605. mindspore/ops/_op_impl/aicpu/fractional_avg_pool_grad.py +41 -0
  606. mindspore/ops/_op_impl/aicpu/fractional_max_pool.py +41 -0
  607. mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_grad_with_fixed_ksize.py +43 -0
  608. mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_with_fixed_ksize.py +65 -0
  609. mindspore/ops/_op_impl/aicpu/fractional_max_pool_grad.py +42 -0
  610. mindspore/ops/_op_impl/aicpu/fractional_max_pool_grad_with_fixed_ksize.py +42 -0
  611. mindspore/ops/_op_impl/aicpu/fractional_max_pool_with_fixed_ksize.py +49 -0
  612. mindspore/ops/_op_impl/aicpu/fse_decode.py +43 -0
  613. mindspore/ops/_op_impl/aicpu/fused_sparse_adam.py +46 -0
  614. mindspore/ops/_op_impl/aicpu/fused_sparse_ftrl.py +41 -0
  615. mindspore/ops/_op_impl/aicpu/fused_sparse_lazy_adam.py +46 -0
  616. mindspore/ops/_op_impl/aicpu/fused_sparse_proximal_adagrad.py +39 -0
  617. mindspore/ops/_op_impl/aicpu/gamma.py +38 -0
  618. mindspore/ops/_op_impl/aicpu/gather.py +46 -0
  619. mindspore/ops/_op_impl/aicpu/gather_d.py +79 -0
  620. mindspore/ops/_op_impl/aicpu/gather_d_grad_v2.py +79 -0
  621. mindspore/ops/_op_impl/aicpu/gather_grad.py +54 -0
  622. mindspore/ops/_op_impl/aicpu/gather_nd.py +56 -0
  623. mindspore/ops/_op_impl/aicpu/gcd.py +32 -0
  624. mindspore/ops/_op_impl/aicpu/generate_eod_mask.py +38 -0
  625. mindspore/ops/_op_impl/aicpu/geqrf.py +32 -0
  626. mindspore/ops/_op_impl/aicpu/get_next.py +39 -0
  627. mindspore/ops/_op_impl/aicpu/glu.py +33 -0
  628. mindspore/ops/_op_impl/aicpu/glu_grad.py +34 -0
  629. mindspore/ops/_op_impl/aicpu/greater.py +41 -0
  630. mindspore/ops/_op_impl/aicpu/greater_equal.py +41 -0
  631. mindspore/ops/_op_impl/aicpu/grid_sampler_2d.py +35 -0
  632. mindspore/ops/_op_impl/aicpu/grid_sampler_2d_grad.py +38 -0
  633. mindspore/ops/_op_impl/aicpu/grid_sampler_3d.py +34 -0
  634. mindspore/ops/_op_impl/aicpu/grid_sampler_3d_grad.py +38 -0
  635. mindspore/ops/_op_impl/aicpu/hamming_window.py +57 -0
  636. mindspore/ops/_op_impl/aicpu/hard_sigmoid.py +32 -0
  637. mindspore/ops/_op_impl/aicpu/hard_sigmoid_grad.py +33 -0
  638. mindspore/ops/_op_impl/aicpu/heaviside.py +40 -0
  639. mindspore/ops/_op_impl/aicpu/histogram.py +35 -0
  640. mindspore/ops/_op_impl/aicpu/hsv_to_rgb.py +32 -0
  641. mindspore/ops/_op_impl/aicpu/hypot.py +32 -0
  642. mindspore/ops/_op_impl/aicpu/identity.py +42 -0
  643. mindspore/ops/_op_impl/aicpu/identity_n.py +41 -0
  644. mindspore/ops/_op_impl/aicpu/igamma.py +30 -0
  645. mindspore/ops/_op_impl/aicpu/igammac.py +30 -0
  646. mindspore/ops/_op_impl/aicpu/igammagrada.py +30 -0
  647. mindspore/ops/_op_impl/aicpu/im2col.py +43 -0
  648. mindspore/ops/_op_impl/aicpu/imag.py +31 -0
  649. mindspore/ops/_op_impl/aicpu/index_fill.py +54 -0
  650. mindspore/ops/_op_impl/aicpu/index_put.py +50 -0
  651. mindspore/ops/_op_impl/aicpu/init_data_set_queue.py +27 -0
  652. mindspore/ops/_op_impl/aicpu/inplace_index_add.py +39 -0
  653. mindspore/ops/_op_impl/aicpu/instance_norm_v2.py +41 -0
  654. mindspore/ops/_op_impl/aicpu/instance_norm_v2_grad.py +44 -0
  655. mindspore/ops/_op_impl/aicpu/is_finite.py +40 -0
  656. mindspore/ops/_op_impl/aicpu/is_inf.py +31 -0
  657. mindspore/ops/_op_impl/aicpu/is_nan.py +31 -0
  658. mindspore/ops/_op_impl/aicpu/kldivloss.py +34 -0
  659. mindspore/ops/_op_impl/aicpu/kldivlossgrad.py +35 -0
  660. mindspore/ops/_op_impl/aicpu/layer_norm_grad_grad.py +47 -0
  661. mindspore/ops/_op_impl/aicpu/lcm.py +32 -0
  662. mindspore/ops/_op_impl/aicpu/left_shift.py +38 -0
  663. mindspore/ops/_op_impl/aicpu/less.py +41 -0
  664. mindspore/ops/_op_impl/aicpu/less_equal.py +41 -0
  665. mindspore/ops/_op_impl/aicpu/lgamma.py +33 -0
  666. mindspore/ops/_op_impl/aicpu/linear_sum_assignment.py +57 -0
  667. mindspore/ops/_op_impl/aicpu/linspace.py +33 -0
  668. mindspore/ops/_op_impl/aicpu/list_diff.py +50 -0
  669. mindspore/ops/_op_impl/aicpu/log.py +37 -0
  670. mindspore/ops/_op_impl/aicpu/log1p.py +34 -0
  671. mindspore/ops/_op_impl/aicpu/log_matrix_determinant.py +31 -0
  672. mindspore/ops/_op_impl/aicpu/log_normal_reverse.py +33 -0
  673. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +37 -0
  674. mindspore/ops/_op_impl/aicpu/logical_xor.py +30 -0
  675. mindspore/ops/_op_impl/aicpu/logit.py +33 -0
  676. mindspore/ops/_op_impl/aicpu/logit_grad.py +34 -0
  677. mindspore/ops/_op_impl/aicpu/logspace.py +36 -0
  678. mindspore/ops/_op_impl/aicpu/lower_bound.py +47 -0
  679. mindspore/ops/_op_impl/aicpu/lstsq.py +34 -0
  680. mindspore/ops/_op_impl/aicpu/lu.py +39 -0
  681. mindspore/ops/_op_impl/aicpu/lu_solve.py +32 -0
  682. mindspore/ops/_op_impl/aicpu/lu_unpack.py +114 -0
  683. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +49 -0
  684. mindspore/ops/_op_impl/aicpu/masked_fill.py +42 -0
  685. mindspore/ops/_op_impl/aicpu/masked_scatter.py +40 -0
  686. mindspore/ops/_op_impl/aicpu/masked_select.py +31 -0
  687. mindspore/ops/_op_impl/aicpu/masked_select_grad.py +35 -0
  688. mindspore/ops/_op_impl/aicpu/matmul.py +39 -0
  689. mindspore/ops/_op_impl/aicpu/matrix_band_part.py +59 -0
  690. mindspore/ops/_op_impl/aicpu/matrix_determinant.py +30 -0
  691. mindspore/ops/_op_impl/aicpu/matrix_diag_part_v3.py +54 -0
  692. mindspore/ops/_op_impl/aicpu/matrix_diag_v3.py +56 -0
  693. mindspore/ops/_op_impl/aicpu/matrix_exp.py +34 -0
  694. mindspore/ops/_op_impl/aicpu/matrix_inverse.py +31 -0
  695. mindspore/ops/_op_impl/aicpu/matrix_logarithm.py +31 -0
  696. mindspore/ops/_op_impl/aicpu/matrix_power.py +37 -0
  697. mindspore/ops/_op_impl/aicpu/matrix_set_diag_v3.py +54 -0
  698. mindspore/ops/_op_impl/aicpu/matrix_solve.py +35 -0
  699. mindspore/ops/_op_impl/aicpu/matrix_solve_ls.py +36 -0
  700. mindspore/ops/_op_impl/aicpu/matrix_triangular_solve.py +36 -0
  701. mindspore/ops/_op_impl/aicpu/max_pool3d_grad_with_argmax.py +60 -0
  702. mindspore/ops/_op_impl/aicpu/max_pool3d_with_argmax.py +59 -0
  703. mindspore/ops/_op_impl/aicpu/max_unpool2d.py +57 -0
  704. mindspore/ops/_op_impl/aicpu/max_unpool2d_grad.py +58 -0
  705. mindspore/ops/_op_impl/aicpu/max_unpool3d.py +57 -0
  706. mindspore/ops/_op_impl/aicpu/max_unpool3d_grad.py +58 -0
  707. mindspore/ops/_op_impl/aicpu/maximum_grad_grad.py +40 -0
  708. mindspore/ops/_op_impl/aicpu/maxpool_grad_v1.py +46 -0
  709. mindspore/ops/_op_impl/aicpu/maxpool_v1.py +42 -0
  710. mindspore/ops/_op_impl/aicpu/median.py +39 -0
  711. mindspore/ops/_op_impl/aicpu/median_grad.py +45 -0
  712. mindspore/ops/_op_impl/aicpu/meshgrid.py +41 -0
  713. mindspore/ops/_op_impl/aicpu/minimum_grad_grad.py +40 -0
  714. mindspore/ops/_op_impl/aicpu/mirror_pad.py +50 -0
  715. mindspore/ops/_op_impl/aicpu/mirror_pad_grad.py +48 -0
  716. mindspore/ops/_op_impl/aicpu/mul.py +43 -0
  717. mindspore/ops/_op_impl/aicpu/mul_no_nan.py +42 -0
  718. mindspore/ops/_op_impl/aicpu/multi_margin_loss.py +37 -0
  719. mindspore/ops/_op_impl/aicpu/multi_margin_loss_grad.py +41 -0
  720. mindspore/ops/_op_impl/aicpu/multilabel_margin_loss_grad.py +37 -0
  721. mindspore/ops/_op_impl/aicpu/multinomial.py +47 -0
  722. mindspore/ops/_op_impl/aicpu/multinomial_with_replacement.py +35 -0
  723. mindspore/ops/_op_impl/aicpu/mvlgamma.py +32 -0
  724. mindspore/ops/_op_impl/aicpu/mvlgamma_grad.py +33 -0
  725. mindspore/ops/_op_impl/aicpu/nan_to_num.py +34 -0
  726. mindspore/ops/_op_impl/aicpu/neg.py +36 -0
  727. mindspore/ops/_op_impl/aicpu/nextafter.py +32 -0
  728. mindspore/ops/_op_impl/aicpu/nllloss.py +38 -0
  729. mindspore/ops/_op_impl/aicpu/nllloss_grad.py +39 -0
  730. mindspore/ops/_op_impl/aicpu/no_repeat_ngram.py +34 -0
  731. mindspore/ops/_op_impl/aicpu/non_deterministic_ints.py +33 -0
  732. mindspore/ops/_op_impl/aicpu/non_max_suppression.py +36 -0
  733. mindspore/ops/_op_impl/aicpu/non_max_suppression_with_overlaps.py +35 -0
  734. mindspore/ops/_op_impl/aicpu/non_zero.py +43 -0
  735. mindspore/ops/_op_impl/aicpu/not_equal.py +39 -0
  736. mindspore/ops/_op_impl/aicpu/nth_element.py +39 -0
  737. mindspore/ops/_op_impl/aicpu/nuclear_norm.py +33 -0
  738. mindspore/ops/_op_impl/aicpu/one_hot.py +116 -0
  739. mindspore/ops/_op_impl/aicpu/ones_like.py +39 -0
  740. mindspore/ops/_op_impl/aicpu/orgqr.py +34 -0
  741. mindspore/ops/_op_impl/aicpu/pad_and_shift.py +33 -0
  742. mindspore/ops/_op_impl/aicpu/pad_v3.py +61 -0
  743. mindspore/ops/_op_impl/aicpu/pad_v3_grad.py +59 -0
  744. mindspore/ops/_op_impl/aicpu/padding.py +41 -0
  745. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +54 -0
  746. mindspore/ops/_op_impl/aicpu/pdist_grad.py +33 -0
  747. mindspore/ops/_op_impl/aicpu/poisson.py +37 -0
  748. mindspore/ops/_op_impl/aicpu/polar.py +32 -0
  749. mindspore/ops/_op_impl/aicpu/polygamma.py +34 -0
  750. mindspore/ops/_op_impl/aicpu/pow.py +39 -0
  751. mindspore/ops/_op_impl/aicpu/print_tensor.py +39 -0
  752. mindspore/ops/_op_impl/aicpu/priority_replay_buffer.py +113 -0
  753. mindspore/ops/_op_impl/aicpu/qr.py +36 -0
  754. mindspore/ops/_op_impl/aicpu/quant_dtype_cast.py +40 -0
  755. mindspore/ops/_op_impl/aicpu/quantile.py +35 -0
  756. mindspore/ops/_op_impl/aicpu/ragged_range.py +49 -0
  757. mindspore/ops/_op_impl/aicpu/ragged_tensor_to_sparse.py +73 -0
  758. mindspore/ops/_op_impl/aicpu/ragged_tensor_to_tensor.py +74 -0
  759. mindspore/ops/_op_impl/aicpu/random_categorical.py +68 -0
  760. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +36 -0
  761. mindspore/ops/_op_impl/aicpu/random_gamma.py +38 -0
  762. mindspore/ops/_op_impl/aicpu/random_poisson.py +134 -0
  763. mindspore/ops/_op_impl/aicpu/random_shuffle.py +47 -0
  764. mindspore/ops/_op_impl/aicpu/randperm.py +38 -0
  765. mindspore/ops/_op_impl/aicpu/randperm_v2.py +41 -0
  766. mindspore/ops/_op_impl/aicpu/range.py +36 -0
  767. mindspore/ops/_op_impl/aicpu/range_v2.py +35 -0
  768. mindspore/ops/_op_impl/aicpu/real.py +31 -0
  769. mindspore/ops/_op_impl/aicpu/real_div.py +40 -0
  770. mindspore/ops/_op_impl/aicpu/reciprocal.py +34 -0
  771. mindspore/ops/_op_impl/aicpu/reciprocal_grad.py +35 -0
  772. mindspore/ops/_op_impl/aicpu/reduce_mean.py +57 -0
  773. mindspore/ops/_op_impl/aicpu/reduce_prod.py +57 -0
  774. mindspore/ops/_op_impl/aicpu/reduce_sum.py +57 -0
  775. mindspore/ops/_op_impl/aicpu/relu_grad_v3.py +41 -0
  776. mindspore/ops/_op_impl/aicpu/relu_v3.py +38 -0
  777. mindspore/ops/_op_impl/aicpu/reservoir_replay_buffer.py +96 -0
  778. mindspore/ops/_op_impl/aicpu/reshape.py +42 -0
  779. mindspore/ops/_op_impl/aicpu/resize_area.py +40 -0
  780. mindspore/ops/_op_impl/aicpu/resize_bicubic.py +20 -0
  781. mindspore/ops/_op_impl/aicpu/resize_bicubic_grad.py +19 -0
  782. mindspore/ops/_op_impl/aicpu/resize_bilinear.py +32 -0
  783. mindspore/ops/_op_impl/aicpu/resize_bilinear_grad.py +32 -0
  784. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2.py +36 -0
  785. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2_grad.py +35 -0
  786. mindspore/ops/_op_impl/aicpu/resize_v2.py +68 -0
  787. mindspore/ops/_op_impl/aicpu/resize_v2_grad.py +68 -0
  788. mindspore/ops/_op_impl/aicpu/reverse_sequence.py +55 -0
  789. mindspore/ops/_op_impl/aicpu/reversev2.py +54 -0
  790. mindspore/ops/_op_impl/aicpu/rgb_to_hsv.py +32 -0
  791. mindspore/ops/_op_impl/aicpu/right_shift.py +38 -0
  792. mindspore/ops/_op_impl/aicpu/rnnt_loss.py +35 -0
  793. mindspore/ops/_op_impl/aicpu/round.py +34 -0
  794. mindspore/ops/_op_impl/aicpu/rsqrt.py +33 -0
  795. mindspore/ops/_op_impl/aicpu/rsqrt_grad.py +36 -0
  796. mindspore/ops/_op_impl/aicpu/sample_distorted_bounding_box_v2.py +49 -0
  797. mindspore/ops/_op_impl/aicpu/scale_and_translate.py +52 -0
  798. mindspore/ops/_op_impl/aicpu/scale_and_translate_grad.py +36 -0
  799. mindspore/ops/_op_impl/aicpu/scatter.py +79 -0
  800. mindspore/ops/_op_impl/aicpu/scatter_add_with_axis.py +53 -0
  801. mindspore/ops/_op_impl/aicpu/scatter_elements.py +39 -0
  802. mindspore/ops/_op_impl/aicpu/scatter_nd.py +59 -0
  803. mindspore/ops/_op_impl/aicpu/scatter_nd_max.py +54 -0
  804. mindspore/ops/_op_impl/aicpu/scatter_nd_min.py +54 -0
  805. mindspore/ops/_op_impl/aicpu/scatter_nd_update.py +59 -0
  806. mindspore/ops/_op_impl/aicpu/search_sorted.py +44 -0
  807. mindspore/ops/_op_impl/aicpu/segment_max.py +52 -0
  808. mindspore/ops/_op_impl/aicpu/segment_mean.py +56 -0
  809. mindspore/ops/_op_impl/aicpu/segment_min.py +52 -0
  810. mindspore/ops/_op_impl/aicpu/segment_prod.py +56 -0
  811. mindspore/ops/_op_impl/aicpu/segment_sum.py +56 -0
  812. mindspore/ops/_op_impl/aicpu/select.py +45 -0
  813. mindspore/ops/_op_impl/aicpu/self_adjoint_eig.py +34 -0
  814. mindspore/ops/_op_impl/aicpu/sequence_add.py +34 -0
  815. mindspore/ops/_op_impl/aicpu/sequence_add_offset.py +34 -0
  816. mindspore/ops/_op_impl/aicpu/sequence_addn.py +38 -0
  817. mindspore/ops/_op_impl/aicpu/sequence_concat.py +40 -0
  818. mindspore/ops/_op_impl/aicpu/sequence_stack.py +40 -0
  819. mindspore/ops/_op_impl/aicpu/set_size.py +38 -0
  820. mindspore/ops/_op_impl/aicpu/sign.py +36 -0
  821. mindspore/ops/_op_impl/aicpu/sin.py +34 -0
  822. mindspore/ops/_op_impl/aicpu/sinc.py +43 -0
  823. mindspore/ops/_op_impl/aicpu/sinh.py +34 -0
  824. mindspore/ops/_op_impl/aicpu/slice.py +59 -0
  825. mindspore/ops/_op_impl/aicpu/slice_grad.py +76 -0
  826. mindspore/ops/_op_impl/aicpu/smooth_l1_loss.py +35 -0
  827. mindspore/ops/_op_impl/aicpu/smooth_l1_loss_grad.py +37 -0
  828. mindspore/ops/_op_impl/aicpu/sort.py +39 -0
  829. mindspore/ops/_op_impl/aicpu/space_to_depth.py +44 -0
  830. mindspore/ops/_op_impl/aicpu/sparse_addmm.py +87 -0
  831. mindspore/ops/_op_impl/aicpu/sparse_apply_adagrad_da.py +80 -0
  832. mindspore/ops/_op_impl/aicpu/sparse_apply_centered_rms_prop.py +105 -0
  833. mindspore/ops/_op_impl/aicpu/sparse_apply_momentum.py +80 -0
  834. mindspore/ops/_op_impl/aicpu/sparse_apply_proximal_gradient_descent.py +79 -0
  835. mindspore/ops/_op_impl/aicpu/sparse_concat.py +59 -0
  836. mindspore/ops/_op_impl/aicpu/sparse_cross.py +42 -0
  837. mindspore/ops/_op_impl/aicpu/sparse_dense_cwise_add.py +58 -0
  838. mindspore/ops/_op_impl/aicpu/sparse_dense_cwise_div.py +58 -0
  839. mindspore/ops/_op_impl/aicpu/sparse_dense_cwise_mul.py +58 -0
  840. mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows.py +63 -0
  841. mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows_grad.py +45 -0
  842. mindspore/ops/_op_impl/aicpu/sparse_matrix_mat_mul.py +56 -0
  843. mindspore/ops/_op_impl/aicpu/sparse_matrix_nnz.py +81 -0
  844. mindspore/ops/_op_impl/aicpu/sparse_matrix_transpose.py +116 -0
  845. mindspore/ops/_op_impl/aicpu/sparse_reorder.py +56 -0
  846. mindspore/ops/_op_impl/aicpu/sparse_reshape.py +34 -0
  847. mindspore/ops/_op_impl/aicpu/sparse_segment_mean_grad.py +36 -0
  848. mindspore/ops/_op_impl/aicpu/sparse_segment_mean_with_num_segments.py +44 -0
  849. mindspore/ops/_op_impl/aicpu/sparse_segment_sqrt_n.py +43 -0
  850. mindspore/ops/_op_impl/aicpu/sparse_segment_sqrt_n_grad.py +38 -0
  851. mindspore/ops/_op_impl/aicpu/sparse_segment_sqrt_n_with_num_segments.py +44 -0
  852. mindspore/ops/_op_impl/aicpu/sparse_segment_sum.py +49 -0
  853. mindspore/ops/_op_impl/aicpu/sparse_segment_sum_with_num_segments.py +68 -0
  854. mindspore/ops/_op_impl/aicpu/sparse_slice.py +63 -0
  855. mindspore/ops/_op_impl/aicpu/sparse_slice_grad.py +61 -0
  856. mindspore/ops/_op_impl/aicpu/sparse_softmax.py +33 -0
  857. mindspore/ops/_op_impl/aicpu/sparse_softmax_cross_entropy_with_logits_v2.py +35 -0
  858. mindspore/ops/_op_impl/aicpu/sparse_sparse_maximum.py +53 -0
  859. mindspore/ops/_op_impl/aicpu/sparse_sparse_minimum.py +53 -0
  860. mindspore/ops/_op_impl/aicpu/sparse_tensor_dense_add.py +84 -0
  861. mindspore/ops/_op_impl/aicpu/sparse_tensor_dense_mat_mul.py +190 -0
  862. mindspore/ops/_op_impl/aicpu/sparse_tensor_to_csr_sparse_matrix.py +51 -0
  863. mindspore/ops/_op_impl/aicpu/sparse_to_dense_v2.py +73 -0
  864. mindspore/ops/_op_impl/aicpu/split.py +45 -0
  865. mindspore/ops/_op_impl/aicpu/sqrt.py +34 -0
  866. mindspore/ops/_op_impl/aicpu/sqrt_grad.py +35 -0
  867. mindspore/ops/_op_impl/aicpu/square.py +35 -0
  868. mindspore/ops/_op_impl/aicpu/squared_difference.py +37 -0
  869. mindspore/ops/_op_impl/aicpu/squeeze.py +42 -0
  870. mindspore/ops/_op_impl/aicpu/sspaddmm.py +97 -0
  871. mindspore/ops/_op_impl/aicpu/stack.py +45 -0
  872. mindspore/ops/_op_impl/aicpu/stack_push_pop.py +87 -0
  873. mindspore/ops/_op_impl/aicpu/standard_laplace.py +34 -0
  874. mindspore/ops/_op_impl/aicpu/standard_normal.py +34 -0
  875. mindspore/ops/_op_impl/aicpu/stateless_dropout_genmask.py +37 -0
  876. mindspore/ops/_op_impl/aicpu/stft.py +70 -0
  877. mindspore/ops/_op_impl/aicpu/strided_slice.py +43 -0
  878. mindspore/ops/_op_impl/aicpu/strided_slice_grad.py +50 -0
  879. mindspore/ops/_op_impl/aicpu/sub.py +41 -0
  880. mindspore/ops/_op_impl/aicpu/sub_and_filter.py +36 -0
  881. mindspore/ops/_op_impl/aicpu/tan.py +34 -0
  882. mindspore/ops/_op_impl/aicpu/tanh.py +34 -0
  883. mindspore/ops/_op_impl/aicpu/tanh_grad.py +35 -0
  884. mindspore/ops/_op_impl/aicpu/tensor_scatter_update.py +59 -0
  885. mindspore/ops/_op_impl/aicpu/tile.py +56 -0
  886. mindspore/ops/_op_impl/aicpu/topk.py +34 -0
  887. mindspore/ops/_op_impl/aicpu/trace.py +40 -0
  888. mindspore/ops/_op_impl/aicpu/tracegrad.py +41 -0
  889. mindspore/ops/_op_impl/aicpu/trans_data.py +35 -0
  890. mindspore/ops/_op_impl/aicpu/transpose.py +58 -0
  891. mindspore/ops/_op_impl/aicpu/tridiagonal_matmul.py +42 -0
  892. mindspore/ops/_op_impl/aicpu/tridiagonal_solve.py +35 -0
  893. mindspore/ops/_op_impl/aicpu/tril.py +42 -0
  894. mindspore/ops/_op_impl/aicpu/tril_indices.py +34 -0
  895. mindspore/ops/_op_impl/aicpu/triplet_margin_loss.py +62 -0
  896. mindspore/ops/_op_impl/aicpu/triu.py +43 -0
  897. mindspore/ops/_op_impl/aicpu/triu_indices.py +34 -0
  898. mindspore/ops/_op_impl/aicpu/truncated_normal.py +39 -0
  899. mindspore/ops/_op_impl/aicpu/uniform.py +36 -0
  900. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +41 -0
  901. mindspore/ops/_op_impl/aicpu/uniform_int.py +36 -0
  902. mindspore/ops/_op_impl/aicpu/uniform_real.py +33 -0
  903. mindspore/ops/_op_impl/aicpu/unique.py +31 -0
  904. mindspore/ops/_op_impl/aicpu/unique_consecutive.py +47 -0
  905. mindspore/ops/_op_impl/aicpu/unique_with_pad.py +32 -0
  906. mindspore/ops/_op_impl/aicpu/unravel_index.py +32 -0
  907. mindspore/ops/_op_impl/aicpu/unsorted_segment_prod.py +53 -0
  908. mindspore/ops/_op_impl/aicpu/unsorted_segment_sum.py +57 -0
  909. mindspore/ops/_op_impl/aicpu/unstack.py +45 -0
  910. mindspore/ops/_op_impl/aicpu/update_cache.py +44 -0
  911. mindspore/ops/_op_impl/aicpu/upper_bound.py +47 -0
  912. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d.py +42 -0
  913. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d_grad.py +49 -0
  914. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d.py +40 -0
  915. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d_grad.py +50 -0
  916. mindspore/ops/_op_impl/aicpu/xdivy.py +35 -0
  917. mindspore/ops/_op_impl/aicpu/xlogy.py +33 -0
  918. mindspore/ops/_op_impl/aicpu/zeros_like.py +42 -0
  919. mindspore/ops/_op_impl/aicpu/zeta.py +31 -0
  920. mindspore/ops/_op_impl/akg/__init__.py +19 -0
  921. mindspore/ops/_op_impl/akg/ascend/__init__.py +48 -0
  922. mindspore/ops/_op_impl/akg/ascend/abs.py +35 -0
  923. mindspore/ops/_op_impl/akg/ascend/add.py +42 -0
  924. mindspore/ops/_op_impl/akg/ascend/add_n.py +37 -0
  925. mindspore/ops/_op_impl/akg/ascend/batchmatmul.py +33 -0
  926. mindspore/ops/_op_impl/akg/ascend/cast.py +46 -0
  927. mindspore/ops/_op_impl/akg/ascend/equal.py +35 -0
  928. mindspore/ops/_op_impl/akg/ascend/exp.py +35 -0
  929. mindspore/ops/_op_impl/akg/ascend/expand_dims.py +33 -0
  930. mindspore/ops/_op_impl/akg/ascend/greater.py +34 -0
  931. mindspore/ops/_op_impl/akg/ascend/greater_equal.py +35 -0
  932. mindspore/ops/_op_impl/akg/ascend/less.py +31 -0
  933. mindspore/ops/_op_impl/akg/ascend/less_equal.py +35 -0
  934. mindspore/ops/_op_impl/akg/ascend/load_im2col.py +33 -0
  935. mindspore/ops/_op_impl/akg/ascend/log.py +34 -0
  936. mindspore/ops/_op_impl/akg/ascend/maximum.py +36 -0
  937. mindspore/ops/_op_impl/akg/ascend/minimum.py +39 -0
  938. mindspore/ops/_op_impl/akg/ascend/mul.py +41 -0
  939. mindspore/ops/_op_impl/akg/ascend/neg.py +37 -0
  940. mindspore/ops/_op_impl/akg/ascend/pow.py +35 -0
  941. mindspore/ops/_op_impl/akg/ascend/prod_force_se_a.py +33 -0
  942. mindspore/ops/_op_impl/akg/ascend/real_div.py +36 -0
  943. mindspore/ops/_op_impl/akg/ascend/reciprocal.py +32 -0
  944. mindspore/ops/_op_impl/akg/ascend/reduce_max.py +32 -0
  945. mindspore/ops/_op_impl/akg/ascend/reduce_min.py +32 -0
  946. mindspore/ops/_op_impl/akg/ascend/reduce_sum.py +37 -0
  947. mindspore/ops/_op_impl/akg/ascend/rsqrt.py +35 -0
  948. mindspore/ops/_op_impl/akg/ascend/select.py +37 -0
  949. mindspore/ops/_op_impl/akg/ascend/sqrt.py +35 -0
  950. mindspore/ops/_op_impl/akg/ascend/square.py +35 -0
  951. mindspore/ops/_op_impl/akg/ascend/sub.py +42 -0
  952. mindspore/ops/_op_impl/akg/cpu/__init__.py +23 -0
  953. mindspore/ops/_op_impl/akg/cpu/coo2csr.py +29 -0
  954. mindspore/ops/_op_impl/akg/cpu/csr2coo.py +29 -0
  955. mindspore/ops/_op_impl/akg/cpu/csr_gather.py +33 -0
  956. mindspore/ops/_op_impl/akg/cpu/csr_mm.py +34 -0
  957. mindspore/ops/_op_impl/akg/cpu/csr_mul.py +33 -0
  958. mindspore/ops/_op_impl/akg/cpu/csr_mv.py +33 -0
  959. mindspore/ops/_op_impl/akg/cpu/csr_reduce_sum.py +31 -0
  960. mindspore/ops/_op_impl/akg/gpu/__init__.py +24 -0
  961. mindspore/ops/_op_impl/akg/gpu/coo2csr.py +29 -0
  962. mindspore/ops/_op_impl/akg/gpu/csr2coo.py +29 -0
  963. mindspore/ops/_op_impl/akg/gpu/csr_div.py +36 -0
  964. mindspore/ops/_op_impl/akg/gpu/csr_gather.py +33 -0
  965. mindspore/ops/_op_impl/akg/gpu/csr_mm.py +37 -0
  966. mindspore/ops/_op_impl/akg/gpu/csr_mul.py +36 -0
  967. mindspore/ops/_op_impl/akg/gpu/csr_mv.py +36 -0
  968. mindspore/ops/_op_impl/akg/gpu/csr_reduce_sum.py +33 -0
  969. mindspore/ops/_op_impl/cpu/__init__.py +78 -0
  970. mindspore/ops/_op_impl/cpu/adam.py +49 -0
  971. mindspore/ops/_op_impl/cpu/adam_weight_decay.py +47 -0
  972. mindspore/ops/_op_impl/cpu/arg_max.py +30 -0
  973. mindspore/ops/_op_impl/cpu/arg_max_with_value.py +31 -0
  974. mindspore/ops/_op_impl/cpu/arg_min_with_value.py +31 -0
  975. mindspore/ops/_op_impl/cpu/buffer_append.py +28 -0
  976. mindspore/ops/_op_impl/cpu/buffer_get.py +28 -0
  977. mindspore/ops/_op_impl/cpu/buffer_sample.py +28 -0
  978. mindspore/ops/_op_impl/cpu/cast.py +171 -0
  979. mindspore/ops/_op_impl/cpu/concat_offset.py +38 -0
  980. mindspore/ops/_op_impl/cpu/conv2d.py +30 -0
  981. mindspore/ops/_op_impl/cpu/conv3d.py +30 -0
  982. mindspore/ops/_op_impl/cpu/div.py +32 -0
  983. mindspore/ops/_op_impl/cpu/dropout.py +31 -0
  984. mindspore/ops/_op_impl/cpu/dropout_grad.py +30 -0
  985. mindspore/ops/_op_impl/cpu/dynamic_shape.py +42 -0
  986. mindspore/ops/_op_impl/cpu/dynamic_stitch.py +41 -0
  987. mindspore/ops/_op_impl/cpu/equal_count.py +30 -0
  988. mindspore/ops/_op_impl/cpu/gather_d.py +49 -0
  989. mindspore/ops/_op_impl/cpu/gather_d_grad.py +38 -0
  990. mindspore/ops/_op_impl/cpu/gather_d_grad_v2.py +40 -0
  991. mindspore/ops/_op_impl/cpu/gather_v2.py +40 -0
  992. mindspore/ops/_op_impl/cpu/hsigmoid.py +33 -0
  993. mindspore/ops/_op_impl/cpu/hsigmoid_grad.py +34 -0
  994. mindspore/ops/_op_impl/cpu/hswish.py +32 -0
  995. mindspore/ops/_op_impl/cpu/hswish_grad.py +33 -0
  996. mindspore/ops/_op_impl/cpu/identity_n.py +40 -0
  997. mindspore/ops/_op_impl/cpu/is_finite.py +39 -0
  998. mindspore/ops/_op_impl/cpu/l2loss.py +30 -0
  999. mindspore/ops/_op_impl/cpu/layer_norm.py +36 -0
  1000. mindspore/ops/_op_impl/cpu/layer_norm_grad.py +38 -0
  1001. mindspore/ops/_op_impl/cpu/maximum.py +35 -0
  1002. mindspore/ops/_op_impl/cpu/maximum_grad.py +47 -0
  1003. mindspore/ops/_op_impl/cpu/minimum.py +40 -0
  1004. mindspore/ops/_op_impl/cpu/minimum_grad.py +51 -0
  1005. mindspore/ops/_op_impl/cpu/mirror_pad.py +36 -0
  1006. mindspore/ops/_op_impl/cpu/mirror_pad_grad.py +36 -0
  1007. mindspore/ops/_op_impl/cpu/mul.py +32 -0
  1008. mindspore/ops/_op_impl/cpu/one_hot.py +31 -0
  1009. mindspore/ops/_op_impl/cpu/pad.py +32 -0
  1010. mindspore/ops/_op_impl/cpu/pow.py +32 -0
  1011. mindspore/ops/_op_impl/cpu/priority_replay_buffer.py +42 -0
  1012. mindspore/ops/_op_impl/cpu/pyexecute.py +29 -0
  1013. mindspore/ops/_op_impl/cpu/pyfunc.py +29 -0
  1014. mindspore/ops/_op_impl/cpu/range.py +34 -0
  1015. mindspore/ops/_op_impl/cpu/real_div.py +33 -0
  1016. mindspore/ops/_op_impl/cpu/reduce_all.py +29 -0
  1017. mindspore/ops/_op_impl/cpu/reduce_any.py +29 -0
  1018. mindspore/ops/_op_impl/cpu/reduce_max.py +32 -0
  1019. mindspore/ops/_op_impl/cpu/reduce_mean.py +40 -0
  1020. mindspore/ops/_op_impl/cpu/reduce_min.py +32 -0
  1021. mindspore/ops/_op_impl/cpu/reduce_prod.py +40 -0
  1022. mindspore/ops/_op_impl/cpu/reduce_std.py +31 -0
  1023. mindspore/ops/_op_impl/cpu/reduce_sum.py +41 -0
  1024. mindspore/ops/_op_impl/cpu/space_to_batch_nd.py +38 -0
  1025. mindspore/ops/_op_impl/cpu/sparse_slice.py +62 -0
  1026. mindspore/ops/_op_impl/cpu/sparse_slice_grad.py +60 -0
  1027. mindspore/ops/_op_impl/cpu/split.py +34 -0
  1028. mindspore/ops/_op_impl/cpu/sspaddmm.py +95 -0
  1029. mindspore/ops/_op_impl/cpu/stack.py +38 -0
  1030. mindspore/ops/_op_impl/cpu/sub.py +32 -0
  1031. mindspore/ops/_op_impl/cpu/tensor_copy_slices.py +41 -0
  1032. mindspore/ops/_op_impl/cpu/tile.py +37 -0
  1033. mindspore/ops/_op_impl/cpu/top_k.py +31 -0
  1034. mindspore/ops/_op_impl/cpu/transpose.py +39 -0
  1035. mindspore/ops/_primitive_cache.py +90 -0
  1036. mindspore/ops/_register_for_op.py +73 -0
  1037. mindspore/ops/_utils/__init__.py +20 -0
  1038. mindspore/ops/_utils/utils.py +147 -0
  1039. mindspore/ops/_vmap/__init__.py +25 -0
  1040. mindspore/ops/_vmap/vmap_array_ops.py +2149 -0
  1041. mindspore/ops/_vmap/vmap_base.py +533 -0
  1042. mindspore/ops/_vmap/vmap_convolution_ops.py +441 -0
  1043. mindspore/ops/_vmap/vmap_debug_ops.py +50 -0
  1044. mindspore/ops/_vmap/vmap_grad_math_ops.py +274 -0
  1045. mindspore/ops/_vmap/vmap_grad_nn_ops.py +806 -0
  1046. mindspore/ops/_vmap/vmap_image_ops.py +194 -0
  1047. mindspore/ops/_vmap/vmap_math_ops.py +993 -0
  1048. mindspore/ops/_vmap/vmap_nn_ops.py +2250 -0
  1049. mindspore/ops/_vmap/vmap_other_ops.py +105 -0
  1050. mindspore/ops/_vmap/vmap_random_ops.py +122 -0
  1051. mindspore/ops/_vmap/vmap_sparse_ops.py +89 -0
  1052. mindspore/ops/auto_generate/__init__.py +31 -0
  1053. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +309 -0
  1054. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +252 -0
  1055. mindspore/ops/auto_generate/gen_arg_handler.py +197 -0
  1056. mindspore/ops/auto_generate/gen_extend_func.py +1701 -0
  1057. mindspore/ops/auto_generate/gen_ops_def.py +8482 -0
  1058. mindspore/ops/auto_generate/gen_ops_prim.py +16704 -0
  1059. mindspore/ops/auto_generate/pyboost_inner_prim.py +549 -0
  1060. mindspore/ops/composite/__init__.py +71 -0
  1061. mindspore/ops/composite/base.py +1318 -0
  1062. mindspore/ops/composite/env_ops.py +41 -0
  1063. mindspore/ops/composite/math_ops.py +125 -0
  1064. mindspore/ops/composite/multitype_ops/__init__.py +77 -0
  1065. mindspore/ops/composite/multitype_ops/_compile_utils.py +1459 -0
  1066. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +897 -0
  1067. mindspore/ops/composite/multitype_ops/add_impl.py +606 -0
  1068. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +56 -0
  1069. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +56 -0
  1070. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +56 -0
  1071. mindspore/ops/composite/multitype_ops/div_impl.py +189 -0
  1072. mindspore/ops/composite/multitype_ops/equal_impl.py +335 -0
  1073. mindspore/ops/composite/multitype_ops/floordiv_impl.py +88 -0
  1074. mindspore/ops/composite/multitype_ops/getitem_impl.py +400 -0
  1075. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +109 -0
  1076. mindspore/ops/composite/multitype_ops/greater_impl.py +110 -0
  1077. mindspore/ops/composite/multitype_ops/in_impl.py +196 -0
  1078. mindspore/ops/composite/multitype_ops/left_shift_impl.py +37 -0
  1079. mindspore/ops/composite/multitype_ops/less_equal_impl.py +111 -0
  1080. mindspore/ops/composite/multitype_ops/less_impl.py +112 -0
  1081. mindspore/ops/composite/multitype_ops/logic_not_impl.py +113 -0
  1082. mindspore/ops/composite/multitype_ops/logical_and_impl.py +60 -0
  1083. mindspore/ops/composite/multitype_ops/logical_or_impl.py +61 -0
  1084. mindspore/ops/composite/multitype_ops/mod_impl.py +86 -0
  1085. mindspore/ops/composite/multitype_ops/mul_impl.py +294 -0
  1086. mindspore/ops/composite/multitype_ops/negative_impl.py +79 -0
  1087. mindspore/ops/composite/multitype_ops/not_equal_impl.py +290 -0
  1088. mindspore/ops/composite/multitype_ops/not_in_impl.py +196 -0
  1089. mindspore/ops/composite/multitype_ops/ones_like_impl.py +96 -0
  1090. mindspore/ops/composite/multitype_ops/pow_impl.py +87 -0
  1091. mindspore/ops/composite/multitype_ops/right_shift_impl.py +37 -0
  1092. mindspore/ops/composite/multitype_ops/setitem_impl.py +884 -0
  1093. mindspore/ops/composite/multitype_ops/sub_impl.py +116 -0
  1094. mindspore/ops/composite/multitype_ops/uadd_impl.py +29 -0
  1095. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +228 -0
  1096. mindspore/ops/deprecated.py +315 -0
  1097. mindspore/ops/function/__init__.py +782 -0
  1098. mindspore/ops/function/array_func.py +7226 -0
  1099. mindspore/ops/function/clip_func.py +384 -0
  1100. mindspore/ops/function/debug_func.py +181 -0
  1101. mindspore/ops/function/fft_func.py +44 -0
  1102. mindspore/ops/function/grad/__init__.py +34 -0
  1103. mindspore/ops/function/grad/grad_func.py +1425 -0
  1104. mindspore/ops/function/image_func.py +292 -0
  1105. mindspore/ops/function/linalg_func.py +416 -0
  1106. mindspore/ops/function/math_func.py +12228 -0
  1107. mindspore/ops/function/nn_func.py +8609 -0
  1108. mindspore/ops/function/other_func.py +115 -0
  1109. mindspore/ops/function/parameter_func.py +134 -0
  1110. mindspore/ops/function/random_func.py +1715 -0
  1111. mindspore/ops/function/reshard_func.py +104 -0
  1112. mindspore/ops/function/sparse_func.py +884 -0
  1113. mindspore/ops/function/sparse_unary_func.py +2422 -0
  1114. mindspore/ops/function/spectral_func.py +150 -0
  1115. mindspore/ops/function/vmap_func.py +117 -0
  1116. mindspore/ops/functional.py +464 -0
  1117. mindspore/ops/op_info_register.py +1572 -0
  1118. mindspore/ops/operations/__init__.py +722 -0
  1119. mindspore/ops/operations/_csr_ops.py +403 -0
  1120. mindspore/ops/operations/_custom_grad.py +181 -0
  1121. mindspore/ops/operations/_embedding_cache_ops.py +307 -0
  1122. mindspore/ops/operations/_grad_ops.py +2978 -0
  1123. mindspore/ops/operations/_infer_ops.py +19 -0
  1124. mindspore/ops/operations/_inner_ops.py +2544 -0
  1125. mindspore/ops/operations/_map_tensor_ops.py +112 -0
  1126. mindspore/ops/operations/_ms_kernel.py +601 -0
  1127. mindspore/ops/operations/_ocr_ops.py +379 -0
  1128. mindspore/ops/operations/_opaque_predicate_registry.py +41 -0
  1129. mindspore/ops/operations/_pyfunc_registry.py +58 -0
  1130. mindspore/ops/operations/_quant_ops.py +1844 -0
  1131. mindspore/ops/operations/_rl_inner_ops.py +1231 -0
  1132. mindspore/ops/operations/_scalar_ops.py +106 -0
  1133. mindspore/ops/operations/_sequence_ops.py +1155 -0
  1134. mindspore/ops/operations/_sparse_grad_ops.py +56 -0
  1135. mindspore/ops/operations/_tensor_array.py +359 -0
  1136. mindspore/ops/operations/_thor_ops.py +807 -0
  1137. mindspore/ops/operations/array_ops.py +6124 -0
  1138. mindspore/ops/operations/comm_ops.py +1985 -0
  1139. mindspore/ops/operations/control_ops.py +127 -0
  1140. mindspore/ops/operations/custom_ops.py +1129 -0
  1141. mindspore/ops/operations/debug_ops.py +678 -0
  1142. mindspore/ops/operations/image_ops.py +1041 -0
  1143. mindspore/ops/operations/inner_ops.py +697 -0
  1144. mindspore/ops/operations/linalg_ops.py +95 -0
  1145. mindspore/ops/operations/manually_defined/__init__.py +24 -0
  1146. mindspore/ops/operations/manually_defined/_inner.py +73 -0
  1147. mindspore/ops/operations/manually_defined/ops_def.py +2271 -0
  1148. mindspore/ops/operations/math_ops.py +5095 -0
  1149. mindspore/ops/operations/nn_ops.py +9575 -0
  1150. mindspore/ops/operations/other_ops.py +874 -0
  1151. mindspore/ops/operations/random_ops.py +1288 -0
  1152. mindspore/ops/operations/reshard_ops.py +53 -0
  1153. mindspore/ops/operations/rl_ops.py +288 -0
  1154. mindspore/ops/operations/sparse_ops.py +2753 -0
  1155. mindspore/ops/operations/spectral_ops.py +111 -0
  1156. mindspore/ops/primitive.py +1046 -0
  1157. mindspore/ops/signature.py +54 -0
  1158. mindspore/ops/vm_impl_registry.py +91 -0
  1159. mindspore/ops_generate/__init__.py +27 -0
  1160. mindspore/ops_generate/arg_dtype_cast.py +252 -0
  1161. mindspore/ops_generate/arg_handler.py +197 -0
  1162. mindspore/ops_generate/gen_aclnn_implement.py +263 -0
  1163. mindspore/ops_generate/gen_constants.py +36 -0
  1164. mindspore/ops_generate/gen_ops.py +1099 -0
  1165. mindspore/ops_generate/gen_ops_inner_prim.py +131 -0
  1166. mindspore/ops_generate/gen_pyboost_func.py +1052 -0
  1167. mindspore/ops_generate/gen_utils.py +209 -0
  1168. mindspore/ops_generate/op_proto.py +145 -0
  1169. mindspore/ops_generate/pyboost_utils.py +367 -0
  1170. mindspore/ops_generate/template.py +261 -0
  1171. mindspore/parallel/__init__.py +30 -0
  1172. mindspore/parallel/_auto_parallel_context.py +1486 -0
  1173. mindspore/parallel/_cell_wrapper.py +174 -0
  1174. mindspore/parallel/_cost_model_context.py +700 -0
  1175. mindspore/parallel/_dp_allreduce_fusion.py +159 -0
  1176. mindspore/parallel/_offload_context.py +275 -0
  1177. mindspore/parallel/_parallel_serialization.py +561 -0
  1178. mindspore/parallel/_ps_context.py +242 -0
  1179. mindspore/parallel/_recovery_context.py +110 -0
  1180. mindspore/parallel/_tensor.py +730 -0
  1181. mindspore/parallel/_transformer/__init__.py +35 -0
  1182. mindspore/parallel/_transformer/layers.py +765 -0
  1183. mindspore/parallel/_transformer/loss.py +251 -0
  1184. mindspore/parallel/_transformer/moe.py +693 -0
  1185. mindspore/parallel/_transformer/op_parallel_config.py +222 -0
  1186. mindspore/parallel/_transformer/transformer.py +3119 -0
  1187. mindspore/parallel/_utils.py +612 -0
  1188. mindspore/parallel/algo_parameter_config.py +400 -0
  1189. mindspore/parallel/checkpoint_transform.py +650 -0
  1190. mindspore/parallel/cluster/__init__.py +15 -0
  1191. mindspore/parallel/cluster/process_entity/__init__.py +18 -0
  1192. mindspore/parallel/cluster/process_entity/_api.py +352 -0
  1193. mindspore/parallel/cluster/process_entity/_utils.py +101 -0
  1194. mindspore/parallel/cluster/run.py +136 -0
  1195. mindspore/parallel/mpi/__init__.py +14 -0
  1196. mindspore/parallel/mpi/_mpi_config.py +116 -0
  1197. mindspore/parallel/parameter_broadcast.py +151 -0
  1198. mindspore/parallel/shard.py +481 -0
  1199. mindspore/parallel/transform_safetensors.py +993 -0
  1200. mindspore/perf_msvcbuildinsights.dll +0 -0
  1201. mindspore/pgodb140.dll +0 -0
  1202. mindspore/pgort140.dll +0 -0
  1203. mindspore/profiler/__init__.py +28 -0
  1204. mindspore/profiler/common/__init__.py +14 -0
  1205. mindspore/profiler/common/constant.py +29 -0
  1206. mindspore/profiler/common/exceptions/__init__.py +14 -0
  1207. mindspore/profiler/common/exceptions/error_code.py +83 -0
  1208. mindspore/profiler/common/exceptions/exceptions.py +286 -0
  1209. mindspore/profiler/common/process_pool.py +41 -0
  1210. mindspore/profiler/common/registry.py +47 -0
  1211. mindspore/profiler/common/singleton.py +28 -0
  1212. mindspore/profiler/common/struct_type.py +118 -0
  1213. mindspore/profiler/common/util.py +472 -0
  1214. mindspore/profiler/common/validator/__init__.py +14 -0
  1215. mindspore/profiler/common/validator/validate_path.py +84 -0
  1216. mindspore/profiler/dynamic_profiler.py +694 -0
  1217. mindspore/profiler/envprofiling.py +254 -0
  1218. mindspore/profiler/parser/__init__.py +14 -0
  1219. mindspore/profiler/parser/aicpu_data_parser.py +272 -0
  1220. mindspore/profiler/parser/ascend_analysis/__init__.py +14 -0
  1221. mindspore/profiler/parser/ascend_analysis/constant.py +71 -0
  1222. mindspore/profiler/parser/ascend_analysis/file_manager.py +180 -0
  1223. mindspore/profiler/parser/ascend_analysis/function_event.py +185 -0
  1224. mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +136 -0
  1225. mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +131 -0
  1226. mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +104 -0
  1227. mindspore/profiler/parser/ascend_analysis/path_manager.py +313 -0
  1228. mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +123 -0
  1229. mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +86 -0
  1230. mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +75 -0
  1231. mindspore/profiler/parser/ascend_cluster_generator.py +116 -0
  1232. mindspore/profiler/parser/ascend_communicate_generator.py +314 -0
  1233. mindspore/profiler/parser/ascend_flops_generator.py +116 -0
  1234. mindspore/profiler/parser/ascend_fpbp_generator.py +82 -0
  1235. mindspore/profiler/parser/ascend_hccl_generator.py +271 -0
  1236. mindspore/profiler/parser/ascend_integrate_generator.py +42 -0
  1237. mindspore/profiler/parser/ascend_memory_generator.py +185 -0
  1238. mindspore/profiler/parser/ascend_msprof_exporter.py +282 -0
  1239. mindspore/profiler/parser/ascend_msprof_generator.py +187 -0
  1240. mindspore/profiler/parser/ascend_op_generator.py +334 -0
  1241. mindspore/profiler/parser/ascend_steptrace_generator.py +94 -0
  1242. mindspore/profiler/parser/ascend_timeline_generator.py +545 -0
  1243. mindspore/profiler/parser/base_timeline_generator.py +483 -0
  1244. mindspore/profiler/parser/container.py +229 -0
  1245. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +697 -0
  1246. mindspore/profiler/parser/flops_parser.py +531 -0
  1247. mindspore/profiler/parser/framework_enum.py +111 -0
  1248. mindspore/profiler/parser/framework_parser.py +464 -0
  1249. mindspore/profiler/parser/framework_struct.py +61 -0
  1250. mindspore/profiler/parser/gpu_analysis/__init__.py +14 -0
  1251. mindspore/profiler/parser/gpu_analysis/function_event.py +44 -0
  1252. mindspore/profiler/parser/gpu_analysis/fwk_file_parser.py +89 -0
  1253. mindspore/profiler/parser/gpu_analysis/profiler_info_parser.py +72 -0
  1254. mindspore/profiler/parser/hccl_parser.py +573 -0
  1255. mindspore/profiler/parser/hwts_log_parser.py +122 -0
  1256. mindspore/profiler/parser/integrator.py +526 -0
  1257. mindspore/profiler/parser/memory_usage_parser.py +277 -0
  1258. mindspore/profiler/parser/minddata_analyzer.py +800 -0
  1259. mindspore/profiler/parser/minddata_parser.py +186 -0
  1260. mindspore/profiler/parser/minddata_pipeline_parser.py +299 -0
  1261. mindspore/profiler/parser/op_intermediate_parser.py +149 -0
  1262. mindspore/profiler/parser/optime_parser.py +250 -0
  1263. mindspore/profiler/parser/profiler_info.py +213 -0
  1264. mindspore/profiler/parser/step_trace_parser.py +666 -0
  1265. mindspore/profiler/profiler.py +153 -0
  1266. mindspore/profiler/profiling.py +1922 -0
  1267. mindspore/rewrite/__init__.py +28 -0
  1268. mindspore/rewrite/api/__init__.py +17 -0
  1269. mindspore/rewrite/api/node.py +519 -0
  1270. mindspore/rewrite/api/node_type.py +53 -0
  1271. mindspore/rewrite/api/pattern_engine.py +490 -0
  1272. mindspore/rewrite/api/scoped_value.py +181 -0
  1273. mindspore/rewrite/api/symbol_tree.py +497 -0
  1274. mindspore/rewrite/ast_helpers/__init__.py +25 -0
  1275. mindspore/rewrite/ast_helpers/ast_converter.py +143 -0
  1276. mindspore/rewrite/ast_helpers/ast_finder.py +404 -0
  1277. mindspore/rewrite/ast_helpers/ast_flattener.py +268 -0
  1278. mindspore/rewrite/ast_helpers/ast_modifier.py +605 -0
  1279. mindspore/rewrite/ast_helpers/ast_replacer.py +79 -0
  1280. mindspore/rewrite/common/__init__.py +19 -0
  1281. mindspore/rewrite/common/config.py +24 -0
  1282. mindspore/rewrite/common/error_log.py +39 -0
  1283. mindspore/rewrite/common/event.py +28 -0
  1284. mindspore/rewrite/common/namer.py +271 -0
  1285. mindspore/rewrite/common/namespace.py +118 -0
  1286. mindspore/rewrite/common/observable.py +44 -0
  1287. mindspore/rewrite/common/observer.py +54 -0
  1288. mindspore/rewrite/node/__init__.py +22 -0
  1289. mindspore/rewrite/node/call_function.py +95 -0
  1290. mindspore/rewrite/node/cell_container.py +139 -0
  1291. mindspore/rewrite/node/control_flow.py +113 -0
  1292. mindspore/rewrite/node/node.py +1428 -0
  1293. mindspore/rewrite/node/node_manager.py +283 -0
  1294. mindspore/rewrite/node/node_topological_manager.py +223 -0
  1295. mindspore/rewrite/parsers/__init__.py +29 -0
  1296. mindspore/rewrite/parsers/arguments_parser.py +63 -0
  1297. mindspore/rewrite/parsers/assign_parser.py +852 -0
  1298. mindspore/rewrite/parsers/attribute_parser.py +57 -0
  1299. mindspore/rewrite/parsers/class_def_parser.py +289 -0
  1300. mindspore/rewrite/parsers/constant_parser.py +104 -0
  1301. mindspore/rewrite/parsers/container_parser.py +88 -0
  1302. mindspore/rewrite/parsers/expr_parser.py +55 -0
  1303. mindspore/rewrite/parsers/for_parser.py +61 -0
  1304. mindspore/rewrite/parsers/function_def_parser.py +84 -0
  1305. mindspore/rewrite/parsers/if_parser.py +85 -0
  1306. mindspore/rewrite/parsers/module_parser.py +117 -0
  1307. mindspore/rewrite/parsers/parser.py +43 -0
  1308. mindspore/rewrite/parsers/parser_register.py +86 -0
  1309. mindspore/rewrite/parsers/return_parser.py +37 -0
  1310. mindspore/rewrite/parsers/while_parser.py +59 -0
  1311. mindspore/rewrite/sparsify/__init__.py +0 -0
  1312. mindspore/rewrite/sparsify/sparse_transformer.py +457 -0
  1313. mindspore/rewrite/sparsify/sparsify.py +112 -0
  1314. mindspore/rewrite/sparsify/utils.py +179 -0
  1315. mindspore/rewrite/symbol_tree/__init__.py +20 -0
  1316. mindspore/rewrite/symbol_tree/symbol_tree.py +1819 -0
  1317. mindspore/rewrite/symbol_tree/symbol_tree_builder.py +76 -0
  1318. mindspore/rewrite/symbol_tree/symbol_tree_dumper.py +142 -0
  1319. mindspore/run_check/__init__.py +20 -0
  1320. mindspore/run_check/_check_version.py +507 -0
  1321. mindspore/run_check/run_check.py +66 -0
  1322. mindspore/safeguard/__init__.py +18 -0
  1323. mindspore/safeguard/rewrite_obfuscation.py +875 -0
  1324. mindspore/swresample-4.dll +0 -0
  1325. mindspore/swscale-6.dll +0 -0
  1326. mindspore/tbbmalloc.dll +0 -0
  1327. mindspore/tinyxml2.dll +0 -0
  1328. mindspore/train/__init__.py +48 -0
  1329. mindspore/train/_utils.py +465 -0
  1330. mindspore/train/amp.py +935 -0
  1331. mindspore/train/anf_ir_pb2.py +1517 -0
  1332. mindspore/train/callback/__init__.py +44 -0
  1333. mindspore/train/callback/_backup_and_restore.py +117 -0
  1334. mindspore/train/callback/_callback.py +613 -0
  1335. mindspore/train/callback/_checkpoint.py +814 -0
  1336. mindspore/train/callback/_cluster_monitor.py +201 -0
  1337. mindspore/train/callback/_dataset_graph.py +150 -0
  1338. mindspore/train/callback/_early_stop.py +239 -0
  1339. mindspore/train/callback/_flops_collector.py +239 -0
  1340. mindspore/train/callback/_history.py +92 -0
  1341. mindspore/train/callback/_lambda_callback.py +80 -0
  1342. mindspore/train/callback/_landscape.py +1049 -0
  1343. mindspore/train/callback/_loss_monitor.py +107 -0
  1344. mindspore/train/callback/_lr_scheduler_callback.py +76 -0
  1345. mindspore/train/callback/_on_request_exit.py +298 -0
  1346. mindspore/train/callback/_reduce_lr_on_plateau.py +226 -0
  1347. mindspore/train/callback/_summary_collector.py +1184 -0
  1348. mindspore/train/callback/_tft_register.py +352 -0
  1349. mindspore/train/callback/_time_monitor.py +141 -0
  1350. mindspore/train/checkpoint_pb2.py +233 -0
  1351. mindspore/train/data_sink.py +219 -0
  1352. mindspore/train/dataset_helper.py +692 -0
  1353. mindspore/train/lineage_pb2.py +1260 -0
  1354. mindspore/train/loss_scale_manager.py +213 -0
  1355. mindspore/train/memory_profiling_pb2.py +298 -0
  1356. mindspore/train/metrics/__init__.py +175 -0
  1357. mindspore/train/metrics/accuracy.py +133 -0
  1358. mindspore/train/metrics/auc.py +129 -0
  1359. mindspore/train/metrics/bleu_score.py +170 -0
  1360. mindspore/train/metrics/confusion_matrix.py +700 -0
  1361. mindspore/train/metrics/cosine_similarity.py +109 -0
  1362. mindspore/train/metrics/dice.py +116 -0
  1363. mindspore/train/metrics/error.py +175 -0
  1364. mindspore/train/metrics/fbeta.py +167 -0
  1365. mindspore/train/metrics/hausdorff_distance.py +333 -0
  1366. mindspore/train/metrics/loss.py +97 -0
  1367. mindspore/train/metrics/mean_surface_distance.py +189 -0
  1368. mindspore/train/metrics/metric.py +373 -0
  1369. mindspore/train/metrics/occlusion_sensitivity.py +225 -0
  1370. mindspore/train/metrics/perplexity.py +133 -0
  1371. mindspore/train/metrics/precision.py +160 -0
  1372. mindspore/train/metrics/recall.py +159 -0
  1373. mindspore/train/metrics/roc.py +223 -0
  1374. mindspore/train/metrics/root_mean_square_surface_distance.py +191 -0
  1375. mindspore/train/metrics/topk.py +167 -0
  1376. mindspore/train/mind_ir_pb2.py +1908 -0
  1377. mindspore/train/model.py +2252 -0
  1378. mindspore/train/node_strategy_pb2.py +653 -0
  1379. mindspore/train/print_pb2.py +184 -0
  1380. mindspore/train/profiling_parallel_pb2.py +151 -0
  1381. mindspore/train/serialization.py +3325 -0
  1382. mindspore/train/summary/__init__.py +23 -0
  1383. mindspore/train/summary/_lineage_adapter.py +41 -0
  1384. mindspore/train/summary/_summary_adapter.py +496 -0
  1385. mindspore/train/summary/_writer_pool.py +207 -0
  1386. mindspore/train/summary/enums.py +56 -0
  1387. mindspore/train/summary/summary_record.py +581 -0
  1388. mindspore/train/summary/writer.py +167 -0
  1389. mindspore/train/summary_pb2.py +1165 -0
  1390. mindspore/train/train_thor/__init__.py +20 -0
  1391. mindspore/train/train_thor/convert_utils.py +268 -0
  1392. mindspore/train/train_thor/dataset_helper.py +192 -0
  1393. mindspore/train/train_thor/model_thor.py +257 -0
  1394. mindspore/turbojpeg.dll +0 -0
  1395. mindspore/utils/__init__.py +21 -0
  1396. mindspore/utils/utils.py +60 -0
  1397. mindspore/vcmeta.dll +0 -0
  1398. mindspore/vcomp140.dll +0 -0
  1399. mindspore/vcruntime140.dll +0 -0
  1400. mindspore/vcruntime140_1.dll +0 -0
  1401. mindspore/version.py +1 -0
  1402. mindspore-2.4.0.dist-info/METADATA +352 -0
  1403. mindspore-2.4.0.dist-info/RECORD +1406 -0
  1404. mindspore-2.4.0.dist-info/WHEEL +5 -0
  1405. mindspore-2.4.0.dist-info/entry_points.txt +3 -0
  1406. mindspore-2.4.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1184 @@
1
+ # Copyright 2019-2024 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
15
+ """
16
+ This file contains basic classes that help users do flexible dataset loading.
17
+ You can define your own dataset loading class, and use GeneratorDataset to help load data.
18
+ After declaring the dataset object, you can further apply dataset operations
19
+ (e.g. filter, skip, concat, map, batch) on it.
20
+ """
21
+ import builtins
22
+ import errno
23
+ import itertools
24
+ import math
25
+ import os
26
+ import signal
27
+ import time
28
+ from types import GeneratorType
29
+ import multiprocessing
30
+ from multiprocessing.util import Finalize
31
+ import queue
32
+ from functools import partial
33
+ import subprocess
34
+ import threading
35
+ import weakref
36
+ import platform
37
+ import psutil
38
+ import numpy as np
39
+
40
+ import mindspore._c_dataengine as cde
41
+
42
+ from mindspore.common import Tensor
43
+ from mindspore import log as logger
44
+
45
+ from .datasets import UnionBaseDataset, MappableDataset, Schema, to_list, _PythonMultiprocessing, _check_shm_usage
46
+ from . import samplers
47
+ from .queue import _SharedQueue
48
+ from .validators import check_generatordataset, check_numpyslicesdataset, check_paddeddataset
49
+ from ..core.config import get_enable_shared_mem, get_prefetch_size, get_multiprocessing_timeout_interval, \
50
+ get_enable_watchdog, get_debug_mode, get_seed, set_seed
51
+ from ..core.datatypes import mstypelist_to_detypelist
52
+ from ..core.py_util_helpers import ExceptionHandler
53
+ from ..transforms import transforms
54
+
55
+
56
+ def _iter_fn(dataset, num_samples):
57
+ """
58
+ Generator function wrapper for iterable dataset.
59
+ """
60
+ if num_samples is not None and num_samples != 0:
61
+ ds_iter = iter(dataset)
62
+ for _ in range(num_samples):
63
+ try:
64
+ val = next(ds_iter)
65
+ except StopIteration:
66
+ return
67
+ # convert output tensors to ndarrays
68
+ yield _convert_row(val)
69
+ else:
70
+ for val in dataset:
71
+ # convert output tensors to ndarrays
72
+ yield _convert_row(val)
73
+
74
+
75
+ def _generator_fn(generator, num_samples):
76
+ """
77
+ Generator function wrapper for generator function dataset.
78
+ """
79
+ if num_samples is not None and num_samples != 0:
80
+ gen_iter = generator()
81
+ for _ in range(num_samples):
82
+ try:
83
+ val = next(gen_iter)
84
+ except StopIteration:
85
+ return
86
+ yield _convert_row(val)
87
+ else:
88
+ gen_iter = generator()
89
+ for val in gen_iter:
90
+ yield _convert_row(val)
91
+
92
+
93
+ def _cpp_sampler_fn(dataset, sample_ids):
94
+ """
95
+ Generator function wrapper for mappable dataset with cpp sampler.
96
+ """
97
+ if not isinstance(sample_ids, np.ndarray):
98
+ raise RuntimeError("Sample IDs are not in a numpy array.")
99
+ if sample_ids.size == 0:
100
+ raise RuntimeError("Sampler passed an empty sample IDs list.")
101
+
102
+ for i in sample_ids:
103
+ val = dataset[i]
104
+ # convert output tensors to ndarrays
105
+ yield _convert_row(val)
106
+
107
+
108
+ def _cpp_sampler_fn_mp(sample_fn, sample_ids):
109
+ """
110
+ Multiprocessing generator function wrapper for mappable dataset with cpp sampler.
111
+ """
112
+ if not isinstance(sample_ids, np.ndarray):
113
+ raise RuntimeError("Sample IDs are not in a numpy array.")
114
+ if sample_ids.size == 0:
115
+ raise RuntimeError("Sampler passed an empty sample IDs list.")
116
+
117
+ return sample_fn.process(sample_ids)
118
+
119
+
120
+ def _generator_fn_wrapper(function, *args):
121
+ """
122
+ Generate a new function that wraps the specified generator function with partial
123
+ application of the given arguments and keywords.
124
+ """
125
+ return partial(function, *args)
126
+
127
+
128
+ def _fill_worker_indices(workers, indices, idx_cursor, worker_to_quit):
129
+ """
130
+ Worker index queue filler, fill worker index queue in round robin order or QUIT flag.
131
+ """
132
+ num_worker = len(workers)
133
+ if idx_cursor < len(indices):
134
+ while idx_cursor < len(indices):
135
+ try:
136
+ workers[idx_cursor % num_worker].put(indices[idx_cursor])
137
+ idx_cursor += 1
138
+ except queue.Full:
139
+ break
140
+ else:
141
+ for i in range(num_worker):
142
+ # just put only one QUIT flag to the sub-thread / sub-process
143
+ if str(i) not in worker_to_quit:
144
+ try:
145
+ workers[i].put("QUIT")
146
+ worker_to_quit[str(i)] = "QUIT"
147
+ except queue.Full:
148
+ continue
149
+ return idx_cursor, worker_to_quit
150
+
151
+
152
+ def _convert_row(row):
153
+ """
154
+ Convert Op return value to numpy, or keep as a dict (if already a dict)
155
+ """
156
+
157
+ # convert single item to np.array
158
+ prim_type = (int, float, str, bytes, np.ndarray, Tensor, np.number, np.bool_)
159
+ if isinstance(row, prim_type):
160
+ if isinstance(row, Tensor): # mindspore.Tensor
161
+ item = row.asnumpy()
162
+ else:
163
+ item = np.array(row, copy=False)
164
+ if item.dtype == 'object':
165
+ raise TypeError("Data type of the input or its converted Numpy array is expected to be " \
166
+ "int or float or str, but got {}.".format(item.dtype))
167
+ return tuple([item])
168
+
169
+ if isinstance(row, dict):
170
+ return tuple([row])
171
+
172
+ value = []
173
+ # convert each item to np.array
174
+ idx = 0
175
+ for x in row:
176
+ idx += 1
177
+ if isinstance(x, Tensor): # mindspore.Tensor
178
+ value.append(x.asnumpy())
179
+ elif isinstance(x, dict):
180
+ value.append(x)
181
+ else:
182
+ item = np.array(x, copy=False)
183
+ if item.dtype == 'object':
184
+ raise TypeError("Data type of {}th item of the input or its converted Numpy array is expected to be " \
185
+ "int or float or str, but got {}.".format(idx, item.dtype))
186
+ value.append(item)
187
+ return tuple(value)
188
+
189
+
190
+ class SamplerFn(cde.PythonMultiprocessingRuntime):
191
+ """
192
+ Multiprocessing or multithread generator function wrapper master process.
193
+ """
194
+
195
+ def __init__(self, dataset, num_worker, multi_process, max_rowsize):
196
+ super(SamplerFn, self).__init__()
197
+ self.workers = []
198
+ self.dataset = dataset
199
+ self.num_worker = num_worker
200
+ self.multi_process = multi_process
201
+ self.max_rowsize = max_rowsize
202
+ self.need_join = False
203
+
204
+ def is_mp_enabled(self):
205
+ return self.workers is not None and self.workers
206
+
207
+ def launch(self, op_id=-1):
208
+ """launch the multiprocessing pool"""
209
+ self.op_id = op_id
210
+ logger.info("Launching new Python Multiprocessing pool for GeneratorOp:" + str(self.op_id))
211
+ if self.is_mp_enabled():
212
+ message = "Launching a new Python multiprocessing pool for GeneratorOp while a pool already exists!" + \
213
+ " The existing pool will be terminated first."
214
+ logger.warning(message)
215
+ self._stop_subprocess()
216
+ self.reset()
217
+ self.workers = []
218
+
219
+ self.ppid = os.getpid()
220
+ self.pids = []
221
+ self.check_interval = get_multiprocessing_timeout_interval() # the interval of check queue's size
222
+ self._final_join = True
223
+
224
+ # Event for end of epoch
225
+ if self.multi_process is True:
226
+ try:
227
+ self.eof = multiprocessing.Event()
228
+ except Exception:
229
+ raise RuntimeError("Init multiprocessing.Event() failed, This might be caused by insufficient shm,"
230
+ + " and the recommended shm size is at least 5 GB.")
231
+ else:
232
+ self.eof = threading.Event()
233
+ # Create workers
234
+
235
+ # get default queue size and adjust queue size per worker if there are large # workers
236
+ queue_size = get_prefetch_size()
237
+ queue_size = min(queue_size, queue_size * 4 // self.num_worker)
238
+ queue_size = max(2, queue_size)
239
+
240
+ if self.multi_process and get_enable_shared_mem():
241
+ # generator dataset use idx_queue and res_queue to transfer data between main and subprocess
242
+ # idx_queue is used multiprocess.Queue which is not shared memory, so it's size is 0.
243
+ # res_queue is used shared memory, so its size is max_rowsize which is defined by user.
244
+ _check_shm_usage(self.num_worker, queue_size, 0, self.max_rowsize)
245
+ self.count = multiprocessing.Value('i', 0)
246
+ for worker_id in range(self.num_worker):
247
+ if self.multi_process is True:
248
+ try:
249
+ worker = _GeneratorWorkerMp(self.dataset, self.eof, self.max_rowsize, queue_size, self.ppid,
250
+ self.count, worker_id)
251
+ worker.daemon = True
252
+ # When multi processes fork a subprocess, the lock of the main process is copied to the subprocess,
253
+ # which may cause deadlock. Therefore, the subprocess startup is performed in the initialization
254
+ # phase. In this phase, the main process is not locked.
255
+ worker.start()
256
+ except OSError as e:
257
+ if e.errno == errno.EMFILE:
258
+ raise RuntimeError("Failed to launch multiprocessing of GeneratorDataset: "
259
+ "Too many open files. Please check if `num_parallel_workers` "
260
+ "is set too large, or you are creating iterators multiple times. "
261
+ "You can also increase the limit using `ulimit -n` in the shell "
262
+ "to avoid this error.")
263
+ raise
264
+ except Exception as e:
265
+ raise RuntimeError("Failed to launch multiprocessing of GeneratorDataset: {0}".format(e))
266
+ self.pids.append(worker.pid)
267
+ self.need_join = True
268
+ else:
269
+ worker = _GeneratorWorkerMt(self.dataset, self.eof, worker_id)
270
+ worker.daemon = True
271
+ self.need_join = True
272
+ self.workers.append(worker)
273
+ if self.multi_process and platform.system().lower() != 'windows':
274
+ self._launch_cleanup_worker()
275
+
276
+ def _interval_log(self, i, start_time, wait_count):
277
+ cost_time = int(time.time()) - start_time
278
+ if cost_time / self.check_interval >= wait_count:
279
+ wait_count += 1
280
+ self._log_stuck_warning(self.workers[i % self.num_worker], cost_time)
281
+ return wait_count
282
+
283
+ def _check_and_start_process(self):
284
+ """Check the idx_queue and start the process"""
285
+ if self.workers is None:
286
+ raise RuntimeError("The GeneratorDataset subprocess worker may be killed or exit abnormally.")
287
+ for w in self.workers:
288
+ # Check whether the queue of the subprocess is empty.
289
+ if not w.queue_empty():
290
+ # in failover reset scenario the QUIT flag should be pop first
291
+ while w.idx_queue.qsize() > 0:
292
+ try:
293
+ result = w.idx_queue.get(timeout=1)
294
+ if result != "QUIT":
295
+ raise Exception("The queue of the subprocess is not empty.")
296
+ except queue.Empty:
297
+ continue
298
+ # Start all workers
299
+ if not w.is_alive():
300
+ try:
301
+ w.start()
302
+ except RuntimeError as e:
303
+ # the worker may be being started.
304
+ if w._started.is_set(): # pylint: disable=W0212
305
+ continue
306
+ raise e
307
+
308
+ def process(self, indices):
309
+ """
310
+ The main process, start the child process or child thread, and fill the index queue.
311
+ Get the result and return.
312
+ """
313
+ self._check_and_start_process()
314
+
315
+ # Fill initial index queues
316
+ idx_cursor = 0
317
+ # worker to quit
318
+ worker_to_quit = {}
319
+ idx_cursor, worker_to_quit = _fill_worker_indices(self.workers, indices, idx_cursor, worker_to_quit)
320
+
321
+ # Fetch results
322
+ for i in range(len(indices)):
323
+ if self.eof.is_set():
324
+ self._stop_subprocess()
325
+ return
326
+ if self.multi_process is True and not psutil.pid_exists(self.workers[i % self.num_worker].pid):
327
+ self._stop_subprocess()
328
+ return
329
+ # Fetch result and put index
330
+ try:
331
+ # To avoid get timeout from queue, check the res_queue size.
332
+ start_time = int(time.time())
333
+ wait_count = 1
334
+ while self.workers[i % self.num_worker].res_queue.empty():
335
+ if self.eof.is_set():
336
+ logger.warning("Generator receives a termination signal, stop waiting for data "
337
+ "from subprocess.")
338
+ self._stop_subprocess()
339
+ return
340
+ time.sleep(0.1)
341
+ wait_count = self._interval_log(i, start_time, wait_count)
342
+ result = self.workers[i % self.num_worker].get()
343
+ if isinstance(result, ExceptionHandler):
344
+ result.reraise()
345
+ except queue.Empty:
346
+ self._stop_subprocess()
347
+ raise Exception("Generator worker process timeout.")
348
+ except KeyboardInterrupt:
349
+ self._stop_subprocess()
350
+ raise Exception("Generator worker receives KeyboardInterrupt.")
351
+ if self.eof.is_set():
352
+ self._stop_subprocess()
353
+ return
354
+
355
+ idx_cursor, worker_to_quit = _fill_worker_indices(self.workers, indices, idx_cursor, worker_to_quit)
356
+
357
+ yield _convert_row(result)
358
+
359
+ def _log_stuck_warning(self, worker, waiting_time):
360
+ """
361
+ Log warning of the stuck worker, containing the worker ID, waiting time and
362
+ the current stack (if py-spy installed).
363
+
364
+ Args:
365
+ worker (Union[threading.Thread, multiprocessing.Process]): The worker instance.
366
+ waiting_time (int): The waiting time for getting data from the worker.
367
+ """
368
+ if self.multi_process:
369
+ stuck_worker_id = worker.pid
370
+ worker_type = "process"
371
+ stuck_pid = stuck_worker_id
372
+ else:
373
+ if hasattr(worker, "native_id"):
374
+ # only supported since Python 3.8
375
+ stuck_worker_id = worker.native_id
376
+ else:
377
+ stuck_worker_id = worker.ident
378
+ worker_type = "thread"
379
+ stuck_pid = os.getpid() # get the process ID of the stuck thread
380
+ warning_message = "Has been waiting for data from Generator worker {0} ID '{1}' " \
381
+ "for more than {2} seconds. Please check if the user defined " \
382
+ "dataset of GeneratorDataset has a dead loop, or is processing " \
383
+ "too slowly. ".format(worker_type, stuck_worker_id, waiting_time)
384
+ install_status, _ = subprocess.getstatusoutput("py-spy --version")
385
+ if install_status == 0:
386
+ stack = subprocess.getoutput("py-spy dump -p {}".format(stuck_pid))
387
+ warning_message += "Below is the stack of this worker:\n{0}\n".format(stack)
388
+ else:
389
+ warning_message += "You can install py-spy via `pip install py-spy`, then " \
390
+ "stop and rerun your script to get the current stack. "
391
+ warning_message += "If it is not a problem, you can adjust the printing frequency of this log via " \
392
+ "the `mindspore.dataset.config.set_multiprocessing_timeout_interval` interface."
393
+ logger.warning(warning_message)
394
+
395
+ def _launch_cleanup_worker(self):
396
+ """
397
+ We need a extra thread and process if main process or subprocess was killed.
398
+ """
399
+ _clean_worker_func = _PythonMultiprocessing._clean_process # pylint: disable=W0212
400
+ self.cleaning_process = multiprocessing.Process(target=_clean_worker_func,
401
+ name="GeneratorCleanProcess",
402
+ args=(self.ppid, self.workers, self.eof))
403
+ self.cleaning_process.daemon = True
404
+ self.cleaning_process.start()
405
+
406
+ if get_enable_watchdog():
407
+ self.eot = threading.Event()
408
+ self.watch_dog = threading.Thread(target=_PythonMultiprocessing._watch_dog, # pylint: disable=W0212
409
+ name="GeneratorWatchDog",
410
+ args=(self.eot, self.workers + [self.cleaning_process]))
411
+ self.watch_dog.daemon = True
412
+ self.watch_dog.start()
413
+
414
+ if self._final_join is True:
415
+ self._jointhread = Finalize(
416
+ self.watch_dog, self._finalize_join,
417
+ args=(weakref.ref(self.watch_dog), self.eot),
418
+ exitpriority=-5
419
+ )
420
+
421
+ def _release_fd(self):
422
+ """Release the file descriptor by subprocess"""
423
+ # release the file descriptor handle
424
+ check_interval = get_multiprocessing_timeout_interval()
425
+ for w in self.workers:
426
+ try:
427
+ subprocess_file_descriptor = w.sentinel
428
+ st = time.time()
429
+ while _PythonMultiprocessing.is_process_alive(w.pid):
430
+ time.sleep(0.01) # sleep 10ms, waiting for the subprocess exit
431
+ if time.time() - st > check_interval:
432
+ logger.warning("Waiting for the subprocess worker [{}] to exit.".format(w.pid))
433
+ st += check_interval
434
+ except ValueError as e:
435
+ if "process object is closed" in str(e):
436
+ continue
437
+ raise e
438
+ try:
439
+ if w.is_alive():
440
+ os.close(subprocess_file_descriptor)
441
+ except OSError as e:
442
+ # Maybe the file descriptor had been released, so ignore the 'Bad file descriptor'
443
+ if "Bad file descriptor" not in str(e):
444
+ raise e
445
+ except AttributeError: # maybe occur "'NoneType' object has no attribute 'maxsize'"
446
+ pass
447
+
448
+ def _stop_subprocess(self):
449
+ """Only the main process can call join. All the sub-process / sub-thread will be stopped."""
450
+ if self.need_join is True and self.ppid == os.getpid():
451
+ # the sub-process / sub-thread will stop by self.eof.set()
452
+ if hasattr(self, 'eof') and self.eof is not None:
453
+ try:
454
+ self.eof.set()
455
+ except AttributeError: # maybe occur "'NoneType' object has no attribute 'maxsize'"
456
+ pass
457
+
458
+ # close the watch dog first
459
+ self._abort_watchdog()
460
+ self.need_join = False
461
+
462
+ # waiting for the sub-process stop
463
+ for w in self.workers:
464
+ if self.multi_process is True and hasattr(w, '_closed') and w._closed is False: # pylint: disable=W0212
465
+ try:
466
+ # del the queue first
467
+ del w.res_queue
468
+ del w.idx_queue
469
+
470
+ # let the quit event notify the worker process to exit
471
+ w.join(timeout=5)
472
+ if w.is_alive():
473
+ # if the worker process did not exit, it may hang, try to terminate it
474
+ w.terminate()
475
+ w.close()
476
+ except Exception: # pylint: disable=W0703
477
+ # Block all errors when join
478
+ continue
479
+
480
+ if self.multi_process is True:
481
+ self._release_fd()
482
+
483
+ self.workers.clear()
484
+ self.workers = None
485
+
486
+ def _abort_watchdog(self):
487
+ """Let watchdog quit."""
488
+ if hasattr(self, 'eot') and self.eot is not None and not self.eot.is_set():
489
+ self.eot.set()
490
+ if hasattr(self, 'cleaning_process') and self.cleaning_process is not None:
491
+ # let the quit event notify the cleaning process to exit
492
+ self.cleaning_process.join(timeout=5)
493
+ if self.cleaning_process.is_alive():
494
+ # if the cleaning process did not exit, it may hang, try to terminate it
495
+ _PythonMultiprocessing._terminate_processes([self.cleaning_process]) # pylint: disable=W0212
496
+ del self.cleaning_process
497
+ if hasattr(self, 'count'):
498
+ del self.count
499
+
500
+ @classmethod
501
+ def _finalize_join(cls, twr, eot):
502
+ thread = twr()
503
+ if thread is not None:
504
+ if eot is not None and not eot.is_set():
505
+ eot.set()
506
+ thread.join()
507
+
508
+ def __del__(self):
509
+ try:
510
+ self._stop_subprocess()
511
+ except TypeError:
512
+ pass
513
+
514
+ def __deepcopy__(self, memodict, exclude=()):
515
+ self.__init__(self.dataset, self.num_worker, self.multi_process, self.max_rowsize)
516
+
517
+
518
+ def _subprocess_handle(eof, signum, frame):
519
+ threading.Thread(target=eof.set()).start()
520
+
521
+
522
+ def _ignore_sigint(is_multiprocessing):
523
+ """
524
+ We need to ignore sigint signal here so subprocesses can exit normally and clear.
525
+ """
526
+ if is_multiprocessing:
527
+ signal.signal(signal.SIGINT, signal.SIG_IGN)
528
+
529
+
530
+ def _main_process_already_exit(eof, is_multiprocessing, idx_queue, result_queue, ppid):
531
+ """
532
+ Judge whether main process already exit.
533
+ """
534
+ if eof.is_set() or (is_multiprocessing and platform.system().lower() != 'windows' and
535
+ not _PythonMultiprocessing.is_process_alive(ppid)):
536
+ if is_multiprocessing:
537
+ idx_queue.cancel_join_thread()
538
+ result_queue.cancel_join_thread()
539
+ return True
540
+ return False
541
+
542
+
543
+ def _generator_worker_loop(dataset, idx_queue, result_queue, eof, is_multiprocessing, worker_id, ppid=-1):
544
+ """
545
+ Multithread or multiprocess generator worker process loop.
546
+ """
547
+ # Initialize C++ side signal handlers
548
+ cde.register_worker_handlers()
549
+
550
+ if is_multiprocessing:
551
+ result_queue.cancel_join_thread() # Ensure that the process does not hung when exiting
552
+ signal.signal(signal.SIGTERM, partial(_subprocess_handle, eof))
553
+
554
+ # init the random seed and np.random seed for the subprocess
555
+ if get_seed() != 5489:
556
+ set_seed(get_seed() + worker_id)
557
+
558
+ while not eof.is_set():
559
+ _ignore_sigint(is_multiprocessing=is_multiprocessing)
560
+
561
+ # Fetch index, block
562
+ try:
563
+ idx = idx_queue.get(timeout=1)
564
+ except queue.Empty:
565
+ if _main_process_already_exit(eof, is_multiprocessing, idx_queue, result_queue, ppid) is True:
566
+ del idx_queue
567
+ del result_queue
568
+ return
569
+ # If end-of-file (eof) is not set, continue to get data from idx_queue
570
+ continue
571
+ if idx == "QUIT":
572
+ # all the data had been processed, so we release the executor which is used by the current thread/process
573
+ transforms.clean_unused_executors()
574
+ continue
575
+ if idx is None:
576
+ # When the queue is out of scope from master process, a None item can be fetched from the queue.
577
+ # Upon receiving None, worker process should check if eof is set.
578
+ if not eof.is_set():
579
+ raise Exception("")
580
+ del idx_queue
581
+ del result_queue
582
+ return
583
+ if eof.is_set():
584
+ del idx_queue
585
+ del result_queue
586
+ return
587
+ # Fetch data, any exception from __getitem__ will terminate worker and timeout master process
588
+ try:
589
+ result = dataset[idx]
590
+ except Exception: # pylint: disable=broad-except
591
+ result = ExceptionHandler(where="in GeneratorDataset worker process")
592
+ # Send data, block
593
+ while not eof.is_set():
594
+ try:
595
+ result_queue.put(result, timeout=5)
596
+ except queue.Full:
597
+ if _main_process_already_exit(eof, is_multiprocessing, idx_queue, result_queue, ppid) is True:
598
+ del idx_queue
599
+ del result_queue
600
+ return
601
+ # If eof is not set, continue to put data to result_queue
602
+ continue
603
+ break
604
+ del result, idx
605
+
606
+
607
+ class _GeneratorWorkerMt(threading.Thread):
608
+ """
609
+ Worker process for multi-thread Generator.
610
+ """
611
+
612
+ def __init__(self, dataset, eof, worker_id):
613
+ self.idx_queue = queue.Queue(16)
614
+ self.res_queue = queue.Queue(16)
615
+ super().__init__(target=_generator_worker_loop,
616
+ args=(dataset, self.idx_queue, self.res_queue, eof, False, worker_id),
617
+ name="GeneratorWorkerThread" + str(worker_id))
618
+
619
+ def put(self, item):
620
+ """
621
+ Put function for worker index queue. Never block. Raise queue.Full on failure.
622
+ """
623
+ self.idx_queue.put_nowait(item)
624
+
625
+ def get(self):
626
+ """
627
+ Get function for worker result queue. Block with timeout.
628
+ """
629
+ return self.res_queue.get(timeout=30)
630
+
631
+ def queue_empty(self):
632
+ if not self.idx_queue.empty():
633
+ logger.warning("idx_queue is not empty")
634
+ return False
635
+ if not self.res_queue.empty():
636
+ logger.warning("res_queue is not empty")
637
+ return False
638
+ return True
639
+
640
+
641
+ class _GeneratorWorkerMp(multiprocessing.Process):
642
+ """
643
+ Worker process for multiprocess Generator.
644
+ """
645
+
646
+ def __init__(self, dataset, eof, max_rowsize, queue_size, ppid, count, worker_id):
647
+ self.idx_queue = multiprocessing.Queue(queue_size)
648
+ if get_enable_shared_mem():
649
+ self.res_queue = _SharedQueue(queue_size, count, max_rowsize=max_rowsize)
650
+ else:
651
+ self.res_queue = multiprocessing.Queue(queue_size)
652
+ self.idx_queue.cancel_join_thread() # Ensure that the process does not hang when exiting
653
+ super().__init__(target=_generator_worker_loop,
654
+ args=(dataset, self.idx_queue, self.res_queue, eof, True, worker_id, ppid),
655
+ name="GeneratorWorkerProcess" + str(worker_id))
656
+
657
+ def put(self, item):
658
+ """
659
+ Put function for worker index queue. Never block. Raise queue.Full on failure.
660
+ """
661
+ self.idx_queue.put_nowait(item)
662
+
663
+ def get(self):
664
+ """
665
+ Get function for worker result queue. Block with timeout.
666
+ """
667
+ # Relax 10s to 30s, since it sometimes will cause "Generator worker process timeout"
668
+ # when we run too many iterators with infinite epoch(num_epoch=-1)
669
+ return self.res_queue.get(timeout=30)
670
+
671
+ def queue_empty(self):
672
+ if not self.idx_queue.empty():
673
+ logger.warning("idx_queue is not empty.")
674
+ return False
675
+ if not self.res_queue.empty():
676
+ logger.warning("res_queue is not empty.")
677
+ return False
678
+ return True
679
+
680
+ def __del__(self):
681
+ # del all the Queue & SharedQueue when the iter had been deleted from ITERATORS_LIST
682
+ if hasattr(self, 'idx_queue'):
683
+ del self.idx_queue
684
+ if hasattr(self, 'res_queue'):
685
+ # del the queue when has
686
+ del self.res_queue
687
+
688
+
689
+ class _GeneratorWrapper:
690
+ """Wrapper the generator so that it can be iterated multiple times in GeneratorDataset."""
691
+ def __init__(self, generator):
692
+ self.generator = generator
693
+ self.generator_new, self.generator = itertools.tee(self.generator)
694
+
695
+ def __iter__(self):
696
+ self.generator_new, self.generator = itertools.tee(self.generator)
697
+ return self
698
+
699
+ def __next__(self):
700
+ return next(self.generator_new)
701
+
702
+
703
+ class GeneratorDataset(MappableDataset, UnionBaseDataset):
704
+ """
705
+ A source dataset that generates data from Python by invoking Python data source each epoch.
706
+
707
+ The column names and column types of generated dataset depend on Python data defined by users.
708
+
709
+ Args:
710
+ source (Union[Callable, Iterable, Random Accessible]):
711
+ A generator callable object, an iterable Python object or a random accessible Python object.
712
+ Callable source is required to return a tuple of NumPy arrays as a row of the dataset on source().next().
713
+ Iterable source is required to return a tuple of NumPy arrays as a row of the dataset on
714
+ iter(source).next().
715
+ Random accessible source is required to return a tuple of NumPy arrays as a row of the dataset on
716
+ source[idx].
717
+ column_names (Union[str, list[str]], optional): List of column names of the dataset. Default: ``None`` .
718
+ Users are required to provide either column_names or schema.
719
+ column_types (list[mindspore.dtype], optional): List of column data types of the dataset. Default: ``None`` .
720
+ If provided, sanity check will be performed on generator output.
721
+ schema (Union[str, Schema], optional): Data format policy, which specifies the data types and shapes of the data
722
+ column to be read. Both JSON file path and objects constructed by :class:`mindspore.dataset.Schema` are
723
+ acceptable. Default: ``None`` .
724
+ num_samples (int, optional): The number of samples to be included in the dataset.
725
+ Default: ``None`` , all images.
726
+ num_parallel_workers (int, optional): Number of worker threads/subprocesses used to
727
+ fetch the dataset in parallel. Default: ``1``.
728
+ shuffle (bool, optional): Whether or not to perform shuffle on the dataset. Random accessible input is required.
729
+ Default: ``None`` , expected order behavior shown in the table below.
730
+ sampler (Union[Sampler, Iterable], optional): Object used to choose samples from the dataset. Random accessible
731
+ input is required. Default: ``None`` , expected order behavior shown in the table below.
732
+ num_shards (int, optional): Number of shards that the dataset will be divided into. Default: ``None`` .
733
+ Random accessible input is required. When this argument is specified, `num_samples` reflects the maximum
734
+ sample number of per shard.
735
+ shard_id (int, optional): The shard ID within `num_shards` . Default: ``None`` .
736
+ This argument must be specified only when `num_shards` is also specified.
737
+ Random accessible input is required.
738
+ python_multiprocessing (bool, optional): Parallelize Python operations with multiple worker process. This
739
+ option could be beneficial if the Python operation is computational heavy. Default: ``True``.
740
+ max_rowsize(int, optional): Maximum size of data (in MB) that is used for shared memory
741
+ allocation to copy data between processes, the total occupied shared memory will increase as
742
+ ``num_parallel_workers`` and :func:`mindspore.dataset.config.set_prefetch_size` increase. If set to -1,
743
+ shared memory will be dynamically allocated with the actual size of data. This is only used if
744
+ ``python_multiprocessing`` is set to True. Default: ``None`` , allocate shared memory dynamically.
745
+
746
+ Raises:
747
+ RuntimeError: If source raises an exception during execution.
748
+ RuntimeError: If len of column_names does not match output len of source.
749
+ ValueError: If `num_parallel_workers` exceeds the max thread numbers.
750
+ ValueError: If sampler and shuffle are specified at the same time.
751
+ ValueError: If sampler and sharding are specified at the same time.
752
+ ValueError: If `num_shards` is specified but shard_id is None.
753
+ ValueError: If shard_id is specified but `num_shards` is None.
754
+ ValueError: If `shard_id` is not in range of [0, `num_shards` ).
755
+
756
+ Tutorial Examples:
757
+ - `Load & Process Data With Dataset Pipeline
758
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/dataset/dataset_gallery.html>`_
759
+
760
+ Note:
761
+ - If you configure `python_multiprocessing=True` (Default: ``True`` ) and `num_parallel_workers>1`
762
+ (default: ``1`` ) indicates that the multiprocessing mode is started for data load acceleration.
763
+ At this time, as the datasetiterates, the memory consumption of the subprocess will gradually increase,
764
+ mainly because the subprocess of the user-defined dataset obtains the member variables from the main
765
+ process in the Copy On Write way.
766
+ Example: If you define a dataset with `__ init__` function which contains a large number of member variable
767
+ data (for example, a very large file name list is loaded during the dataset construction) and uses the
768
+ multiprocessing mode, which may cause the problem of OOM (the estimated total memory usage is:
769
+ `(num_parallel_workers+1) * size of the parent process` ). The simplest solution is to replace Python objects
770
+ (such as list/dict/int/float/string) with non referenced data types
771
+ (such as Pandas, Numpy or PyArrow objects) for member variables, or load less metadata in member variables,
772
+ or configure `python_multiprocessing=False` to use multi-threading mode.
773
+
774
+ There are several classes/functions that can help you reduce the size of member variables, and you can choose
775
+ to use them:
776
+
777
+ 1. :class:`mindspore.dataset.utils.LineReader`: Use this class to initialize your text file object in the
778
+ `__init__` function. Then read the file content based on the line number of the object with the `__getitem__`
779
+ function.
780
+
781
+ - Input `source` accepts user-defined Python functions (PyFuncs), Do not add network computing operators from
782
+ mindspore.nn and mindspore.ops or others into this `source` .
783
+ - The parameters `num_samples` , `shuffle` , `num_shards` , `shard_id` can be used to control the sampler
784
+ used in the dataset, and their effects when combined with parameter `sampler` are as follows.
785
+
786
+ .. include:: mindspore.dataset.sampler.txt
787
+
788
+ Examples:
789
+ >>> import mindspore.dataset as ds
790
+ >>> import numpy as np
791
+ >>>
792
+ >>> # 1) Multidimensional generator function as callable input.
793
+ >>> def generator_multidimensional():
794
+ ... for i in range(64):
795
+ ... yield (np.array([[i, i + 1], [i + 2, i + 3]]),)
796
+ >>>
797
+ >>> dataset = ds.GeneratorDataset(source=generator_multidimensional, column_names=["multi_dimensional_data"])
798
+ >>>
799
+ >>> # 2) Multi-column generator function as callable input.
800
+ >>> def generator_multi_column():
801
+ ... for i in range(64):
802
+ ... yield np.array([i]), np.array([[i, i + 1], [i + 2, i + 3]])
803
+ >>>
804
+ >>> dataset = ds.GeneratorDataset(source=generator_multi_column, column_names=["col1", "col2"])
805
+ >>>
806
+ >>> # 3) Iterable dataset as iterable input.
807
+ >>> class MyIterable:
808
+ ... def __init__(self):
809
+ ... self._index = 0
810
+ ... self._data = np.random.sample((5, 2))
811
+ ... self._label = np.random.sample((5, 1))
812
+ ...
813
+ ... def __next__(self):
814
+ ... if self._index >= len(self._data):
815
+ ... raise StopIteration
816
+ ... else:
817
+ ... item = (self._data[self._index], self._label[self._index])
818
+ ... self._index += 1
819
+ ... return item
820
+ ...
821
+ ... def __iter__(self):
822
+ ... self._index = 0
823
+ ... return self
824
+ ...
825
+ ... def __len__(self):
826
+ ... return len(self._data)
827
+ >>>
828
+ >>> dataset = ds.GeneratorDataset(source=MyIterable(), column_names=["data", "label"])
829
+ >>>
830
+ >>> # 4) Random accessible dataset as random accessible input.
831
+ >>> class MyAccessible:
832
+ ... def __init__(self):
833
+ ... self._data = np.random.sample((5, 2))
834
+ ... self._label = np.random.sample((5, 1))
835
+ ...
836
+ ... def __getitem__(self, index):
837
+ ... return self._data[index], self._label[index]
838
+ ...
839
+ ... def __len__(self):
840
+ ... return len(self._data)
841
+ >>>
842
+ >>> dataset = ds.GeneratorDataset(source=MyAccessible(), column_names=["data", "label"])
843
+ >>>
844
+ >>> # list, dict, tuple of Python is also random accessible
845
+ >>> dataset = ds.GeneratorDataset(source=[(np.array(0),), (np.array(1),), (np.array(2),)], column_names=["col"])
846
+ """
847
+
848
+ @check_generatordataset
849
+ def __init__(self, source, column_names=None, column_types=None, schema=None, num_samples=None,
850
+ num_parallel_workers=1, shuffle=None, sampler=None, num_shards=None, shard_id=None,
851
+ python_multiprocessing=True, max_rowsize=None):
852
+ super().__init__(num_parallel_workers=num_parallel_workers, sampler=sampler, num_samples=num_samples,
853
+ shuffle=shuffle, num_shards=num_shards, shard_id=shard_id)
854
+ if isinstance(source, builtins.zip):
855
+ # Although zip is iterable, it does not have the feature of repeated iteration, so pass it to the array.
856
+ self.source = [item for item in source]
857
+ else:
858
+ self.source = source
859
+
860
+ # wrapper the generator so that it can be iterated multiple times
861
+ if isinstance(self.source, GeneratorType):
862
+ self.source = _GeneratorWrapper(self.source)
863
+
864
+ self.prepared_source = None # source to be sent to C++
865
+ if hasattr(self, 'operator_mixed') and getattr(self, 'operator_mixed') is True:
866
+ self.num_parallel_workers = 1
867
+ logger.warning(
868
+ "Input 'source' of 'GeneratorDataset' includes network computing operators like in mindspore.nn, "
869
+ "mindspore.ops, mindspore.numpy module and etc, which do not support multi-thread compiling, recommend"
870
+ " to replace it with python implemented operator like numpy etc. Here decrease 'num_parallel_workers' "
871
+ "into 1.")
872
+
873
+ if platform.system().lower() == 'windows' and num_parallel_workers > 1 and python_multiprocessing:
874
+ logger.warning("Python multiprocessing is not supported on Windows platform.")
875
+ self.python_multiprocessing = python_multiprocessing if platform.system().lower() != 'windows' else False
876
+ if self.python_multiprocessing and get_debug_mode():
877
+ logger.warning("Python multiprocessing is not supported in debug mode."
878
+ " Ignoring Python multiprocessing for GeneratorDataset.")
879
+
880
+ self.column_names = to_list(column_names)
881
+
882
+ if column_types is not None:
883
+ self.column_types = mstypelist_to_detypelist(column_types)
884
+ else:
885
+ self.column_types = []
886
+
887
+ self.schema = schema
888
+ if schema is not None:
889
+ self.schema = schema
890
+ if not isinstance(schema, Schema):
891
+ self.schema = Schema(schema)
892
+ # Move get dataset_size by len from parse to here, because self.source will
893
+ # lose attribution of '__len__' after deepcopy.
894
+ self.source_len = -1 # unknown
895
+ if hasattr(self.source, "__len__"):
896
+ self.source_len = len(self.source)
897
+
898
+ # if user defined sampler, update the self.source_len
899
+ if isinstance(self.sampler, samplers.Sampler) or hasattr(self.sampler, "__iter__"):
900
+ self.source_len = len(list(sampler))
901
+
902
+ self.max_rowsize = max_rowsize if max_rowsize is not None else -1
903
+ self.sample_fn = None
904
+
905
+ def __deepcopy__(self, memodict):
906
+ if id(self) in memodict:
907
+ return memodict[id(self)]
908
+ return self.__safe_deepcopy__(memodict, exclude=("source", "__transfer_dataset__"))
909
+
910
+ def is_shuffled(self):
911
+ if self.sampler:
912
+ return self.sampler.is_shuffled()
913
+ return False
914
+
915
+ def is_sharded(self):
916
+ if self.sampler:
917
+ return self.sampler.is_sharded()
918
+ return False
919
+
920
+ def split(self, sizes, randomize=True):
921
+ if hasattr(self.source, "__getitem__"):
922
+ # If the source has __getitem__ attribute, call the split method of MappableDataset.
923
+ # Otherwise, call the split method of Dataset.
924
+ return super().split(sizes, randomize)
925
+ return super(MappableDataset, self).split(sizes, randomize)
926
+
927
+ def prepare_multiprocessing(self):
928
+ """Preprocessing of prepared_source."""
929
+ sample_fn = None
930
+ if self.sampler is not None and hasattr(self.source, "__getitem__"):
931
+ # The reason why there is a try catch here is because when the new op is being constructed with shared
932
+ # memory enabled, there will be an exception thrown if there is not enough shared memory available
933
+ if self.source_len == -1:
934
+ raise RuntimeError("Attempt to construct a random access dataset, '__len__' method is required!")
935
+
936
+ if self.num_parallel_workers > 1 and not get_debug_mode():
937
+ self.__validate_memory_usage()
938
+
939
+ sample_fn = SamplerFn(self.source, self.num_parallel_workers, self.python_multiprocessing,
940
+ self.max_rowsize)
941
+ self.prepared_source = _generator_fn_wrapper(_cpp_sampler_fn_mp, sample_fn)
942
+ else:
943
+ self.prepared_source = _generator_fn_wrapper(_cpp_sampler_fn, self.source)
944
+ self.sample_fn = sample_fn
945
+ else:
946
+ self.sampler = None
947
+ self.sample_fn = sample_fn
948
+ self.source_len = min(self.source_len, self.num_samples) if self.num_samples != 0 else self.source_len
949
+ if not hasattr(self.source, "__iter__"):
950
+ # Use generator function if input callable
951
+ self.prepared_source = _generator_fn_wrapper(_generator_fn, self.source, self.num_samples)
952
+ else:
953
+ # Use iterator function if input is iterable
954
+ # Random accessible input is also iterable
955
+ self.prepared_source = _generator_fn_wrapper(_iter_fn, self.source, self.num_samples)
956
+
957
+ def parse(self, children=None):
958
+ self.prepare_multiprocessing()
959
+ if self.schema is None:
960
+ return cde.GeneratorNode(self.prepared_source, self.column_names, self.column_types, self.source_len,
961
+ self.sampler, self.num_parallel_workers, self.sample_fn)
962
+ schema = self.schema
963
+ if isinstance(schema, Schema):
964
+ schema = self.schema.cpp_schema
965
+ return cde.GeneratorNode(self.prepared_source, schema, self.source_len, self.sampler,
966
+ self.num_parallel_workers, self.sample_fn)
967
+
968
+ def __validate_memory_usage(self):
969
+ """
970
+ Check memory usage when multiprocessing mode, when 85% prompt warning and 100% raise error.
971
+ """
972
+ if self.python_multiprocessing:
973
+ # setting num_parallel_workers too large when using python multiprocessing may cause
974
+ # out of memory for getting num_shards
975
+ valid_num_shards = 1
976
+ if isinstance(self.sampler, samplers.DistributedSampler):
977
+ valid_num_shards = self.sampler.num_shards
978
+ elif self.num_shards is not None:
979
+ valid_num_shards = self.num_shards
980
+
981
+ # get process memory usage
982
+ process = psutil.Process(os.getpid())
983
+ process_memory = process.memory_info().rss
984
+ sys_memory_available = psutil.virtual_memory().available
985
+
986
+ total_memory_maybe_used = process_memory * self.num_parallel_workers * valid_num_shards
987
+ if total_memory_maybe_used / sys_memory_available > 0.85:
988
+ valid_num_worker = math.floor(sys_memory_available * 0.85 / valid_num_shards / process_memory)
989
+ valid_num_worker = 1 if valid_num_worker <= 0 else valid_num_worker
990
+ info = "GeneratorDataset's num_parallel_workers: {} is too large which may cause a lot of memory " \
991
+ "occupation (>85%) or out of memory(OOM) during multiprocessing. Therefore, it is recommended " \
992
+ "to reduce num_parallel_workers to {} or smaller.".format(self.num_parallel_workers,
993
+ valid_num_worker)
994
+ logger.warning(info)
995
+
996
+
997
+ class _NumpySlicesDataset:
998
+ """
999
+ Mainly for dealing with several kinds of formats of Python data, and return one row each time.
1000
+ """
1001
+
1002
+ def __init__(self, data, column_list=None):
1003
+ self.column_list = None
1004
+ # Convert dict data into tuple
1005
+ if isinstance(data, dict):
1006
+ data = self.process_dict(data)
1007
+
1008
+ if isinstance(data, tuple):
1009
+ self.data = data
1010
+ else:
1011
+ self.data = (data,)
1012
+
1013
+ # check whether the data length in each column is equal
1014
+ data_len = [len(data_item) for data_item in self.data]
1015
+ if data_len[1:] != data_len[:-1]:
1016
+ raise ValueError("Data length in each column is not equal.")
1017
+
1018
+ # Init column_name
1019
+ if column_list is not None:
1020
+ self.column_list = column_list
1021
+ elif self.column_list is None:
1022
+ self.column_list = []
1023
+ column_num = len(self.data)
1024
+ for i in range(column_num):
1025
+ self.column_list.append("column_" + str(i))
1026
+
1027
+ def __getitem__(self, index):
1028
+ data_row = [d[index] for d in self.data]
1029
+ data_res = tuple(data_row)
1030
+ return data_res
1031
+
1032
+ def __len__(self):
1033
+ return len(self.data[0])
1034
+
1035
+ def process_dict(self, input_data):
1036
+ """
1037
+ Convert the dict like data into tuple format, when input is a tuple of dicts then compose it into a dict first.
1038
+ """
1039
+ # Convert pandas like dict(has "values" column) into General dict
1040
+ data_keys = list(input_data.keys())
1041
+ data_col = input_data[data_keys[0]]
1042
+ if hasattr(data_col, "values"):
1043
+ new_dict = {}
1044
+ for key in data_keys:
1045
+ item1 = input_data.pop(key)
1046
+ new_dict[key] = item1.values
1047
+ input_data = new_dict
1048
+
1049
+ # Convert the data in dict into tuple
1050
+ data = ()
1051
+ keys = list(input_data.keys())
1052
+ self.column_list = keys
1053
+ for key in keys:
1054
+ value = input_data[key]
1055
+ data = data + (list(value),)
1056
+
1057
+ return data
1058
+
1059
+
1060
+ class NumpySlicesDataset(GeneratorDataset):
1061
+ """
1062
+ Creates a dataset with given data slices, mainly for loading Python data into dataset.
1063
+
1064
+ The column names and column types of generated dataset depend on Python data defined by users.
1065
+
1066
+ Args:
1067
+ data (Union[list, tuple, dict]) Input of given data. Supported data types include: list, tuple, dict and other
1068
+ NumPy formats. Input data will be sliced along the first dimension and generate additional rows, if input is
1069
+ list, there will be one column in each row, otherwise there tends to be multi columns. Large data is not
1070
+ recommended to be loaded in this way as data is loading into memory.
1071
+ column_names (list[str], optional): List of column names of the dataset. Default: ``None`` . If `column_names`
1072
+ is not provided, the output column names will be named as the keys of dict when the input data is a dict,
1073
+ otherwise they will be named like column_0, column_1 ...
1074
+ num_samples (int, optional): The number of samples to be included in the dataset. Default: ``None`` ,
1075
+ all samples.
1076
+ num_parallel_workers (int, optional): Number of worker subprocesses used to
1077
+ fetch the dataset in parallel. Default: ``1``.
1078
+ shuffle (bool, optional): Whether or not to perform shuffle on the dataset.
1079
+ Default: ``None`` , expected order behavior shown in the table below.
1080
+ sampler (Union[Sampler, Iterable], optional): Object used to choose samples from the dataset.
1081
+ Default: ``None`` , expected order behavior shown in the table below.
1082
+ num_shards (int, optional): Number of shards that the dataset will be divided into. Default: ``None`` .
1083
+ When this argument is specified, `num_samples` reflects the max sample number of per shard.
1084
+ shard_id (int, optional): The shard ID within `num_shards` . Default: ``None`` . This argument must be
1085
+ specified only when `num_shards` is also specified.
1086
+
1087
+ Note:
1088
+ - The parameters `num_samples` , `shuffle` , `num_shards` , `shard_id` can be used to control the sampler
1089
+ used in the dataset, and their effects when combined with parameter `sampler` are as follows.
1090
+
1091
+ .. include:: mindspore.dataset.sampler.txt
1092
+
1093
+ Raises:
1094
+ RuntimeError: If len of column_names does not match output len of data.
1095
+ ValueError: If `num_parallel_workers` exceeds the max thread numbers.
1096
+ ValueError: If sampler and shuffle are specified at the same time.
1097
+ ValueError: If sampler and sharding are specified at the same time.
1098
+ ValueError: If `num_shards` is specified but shard_id is None.
1099
+ ValueError: If shard_id is specified but `num_shards` is None.
1100
+ ValueError: If `shard_id` is not in range of [0, `num_shards` ).
1101
+
1102
+ Tutorial Examples:
1103
+ - `Load & Process Data With Dataset Pipeline
1104
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/dataset/dataset_gallery.html>`_
1105
+
1106
+ Examples:
1107
+ >>> import mindspore.dataset as ds
1108
+ >>> # 1) Input data can be a list
1109
+ >>> data = [1, 2, 3]
1110
+ >>> dataset = ds.NumpySlicesDataset(data=data, column_names=["column_1"])
1111
+ >>>
1112
+ >>> # 2) Input data can be a dictionary, and column_names will be its keys
1113
+ >>> data = {"a": [1, 2], "b": [3, 4]}
1114
+ >>> dataset = ds.NumpySlicesDataset(data=data)
1115
+ >>>
1116
+ >>> # 3) Input data can be a tuple of lists (or NumPy arrays), each tuple element refers to data in each column
1117
+ >>> data = ([1, 2], [3, 4], [5, 6])
1118
+ >>> dataset = ds.NumpySlicesDataset(data=data, column_names=["column_1", "column_2", "column_3"])
1119
+ >>>
1120
+ >>> # 4) Load data from CSV file
1121
+ >>> import pandas as pd
1122
+ >>> df = pd.read_csv(filepath_or_buffer=csv_dataset_dir[0])
1123
+ >>> dataset = ds.NumpySlicesDataset(data=dict(df), shuffle=False)
1124
+ """
1125
+
1126
+ @check_numpyslicesdataset
1127
+ def __init__(self, data, column_names=None, num_samples=None, num_parallel_workers=1, shuffle=None, sampler=None,
1128
+ num_shards=None, shard_id=None):
1129
+ dataset = _NumpySlicesDataset(data, column_names)
1130
+ super().__init__(dataset, column_names=dataset.column_list, num_samples=num_samples,
1131
+ num_parallel_workers=num_parallel_workers, shuffle=shuffle, sampler=sampler,
1132
+ num_shards=num_shards, shard_id=shard_id)
1133
+
1134
+
1135
+ class _PaddedDataset:
1136
+ """
1137
+ Mainly for combining false samples provided by users into a dataset.
1138
+
1139
+ Args:
1140
+ padded_samples (list(dict)): Data provided by user to be added to the initial Dataset.
1141
+ """
1142
+
1143
+ def __init__(self, padded_samples):
1144
+ self.column_names = list(padded_samples[0].keys())
1145
+ self.padded_samples = padded_samples
1146
+
1147
+ def __getitem__(self, item):
1148
+ return (self.padded_samples[item][key] for key in self.column_names)
1149
+
1150
+ def __len__(self):
1151
+ return len(self.padded_samples)
1152
+
1153
+
1154
+ class PaddedDataset(GeneratorDataset):
1155
+ """
1156
+ Creates a dataset with filler data provided by user.
1157
+
1158
+ Mainly used to add to the original dataset and assign it to the corresponding shard.
1159
+
1160
+ Args:
1161
+ padded_samples (list(dict)): Samples provided by user.
1162
+
1163
+ Raises:
1164
+ TypeError: If padded_samples is not an instance of list.
1165
+ TypeError: If the element of padded_samples is not an instance of dict.
1166
+ ValueError: If the padded_samples is empty.
1167
+
1168
+ Tutorial Examples:
1169
+ - `Load & Process Data With Dataset Pipeline
1170
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/dataset/dataset_gallery.html>`_
1171
+
1172
+ Examples:
1173
+ >>> import mindspore.dataset as ds
1174
+ >>> import numpy as np
1175
+ >>> data = [{'image': np.zeros(1, np.uint8)}, {'image': np.zeros(2, np.uint8)}]
1176
+ >>> dataset = ds.PaddedDataset(padded_samples=data)
1177
+ """
1178
+
1179
+ @check_paddeddataset
1180
+ def __init__(self, padded_samples):
1181
+ dataset = _PaddedDataset(padded_samples)
1182
+ super().__init__(dataset, column_names=dataset.column_names, num_shards=None, shard_id=None, shuffle=False)
1183
+ self._dataset_size = len(dataset.padded_samples)
1184
+ self.padded_samples = padded_samples