mindspore 2.4.1__cp39-cp39-win_amd64.whl → 2.5.0__cp39-cp39-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 (395) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
  3. mindspore/Newtonsoft.Json.dll +0 -0
  4. mindspore/__init__.py +8 -3
  5. mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
  8. mindspore/_checkparam.py +0 -5
  9. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
  10. mindspore/_extends/parse/compile_config.py +64 -0
  11. mindspore/_extends/parse/deprecated/__init__.py +0 -0
  12. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +375 -0
  13. mindspore/_extends/parse/parser.py +23 -5
  14. mindspore/_extends/parse/standard_method.py +123 -27
  15. mindspore/_extends/pijit/pijit_func_white_list.py +1 -1
  16. mindspore/amp.py +7 -1
  17. mindspore/atlprov.dll +0 -0
  18. mindspore/avcodec-59.dll +0 -0
  19. mindspore/avdevice-59.dll +0 -0
  20. mindspore/avfilter-8.dll +0 -0
  21. mindspore/avformat-59.dll +0 -0
  22. mindspore/avutil-57.dll +0 -0
  23. mindspore/boost/boost_cell_wrapper.py +136 -41
  24. mindspore/c1.dll +0 -0
  25. mindspore/c1xx.dll +0 -0
  26. mindspore/c2.dll +0 -0
  27. mindspore/common/__init__.py +3 -1
  28. mindspore/common/_register_for_tensor.py +0 -1
  29. mindspore/common/_stub_tensor.py +25 -4
  30. mindspore/common/_tensor_cpp_method.py +17 -0
  31. mindspore/common/_tensor_docs.py +6132 -0
  32. mindspore/common/api.py +99 -25
  33. mindspore/common/dtype.py +34 -34
  34. mindspore/common/dump.py +2 -1
  35. mindspore/common/file_system.py +8 -1
  36. mindspore/common/generator.py +2 -0
  37. mindspore/common/hook_handle.py +3 -1
  38. mindspore/common/initializer.py +3 -4
  39. mindspore/common/lazy_inline.py +8 -2
  40. mindspore/common/mindir_util.py +10 -2
  41. mindspore/common/parameter.py +30 -27
  42. mindspore/common/tensor.py +713 -1337
  43. mindspore/communication/__init__.py +1 -1
  44. mindspore/communication/_comm_helper.py +10 -0
  45. mindspore/communication/comm_func.py +215 -173
  46. mindspore/communication/management.py +23 -20
  47. mindspore/context.py +292 -193
  48. mindspore/dataset/__init__.py +23 -19
  49. mindspore/dataset/callback/ds_callback.py +2 -1
  50. mindspore/dataset/core/config.py +84 -3
  51. mindspore/dataset/engine/cache_admin.py +3 -3
  52. mindspore/dataset/engine/cache_client.py +5 -4
  53. mindspore/dataset/engine/datasets.py +192 -149
  54. mindspore/dataset/engine/datasets_audio.py +14 -0
  55. mindspore/dataset/engine/datasets_standard_format.py +28 -11
  56. mindspore/dataset/engine/datasets_text.py +38 -1
  57. mindspore/dataset/engine/datasets_user_defined.py +125 -65
  58. mindspore/dataset/engine/datasets_vision.py +81 -8
  59. mindspore/dataset/engine/iterators.py +281 -63
  60. mindspore/dataset/engine/obs/util.py +8 -0
  61. mindspore/dataset/engine/queue.py +40 -0
  62. mindspore/dataset/engine/samplers.py +26 -2
  63. mindspore/dataset/engine/serializer_deserializer.py +1 -1
  64. mindspore/dataset/engine/validators.py +43 -11
  65. mindspore/dataset/transforms/py_transforms_util.py +17 -0
  66. mindspore/dataset/transforms/transforms.py +29 -12
  67. mindspore/dataset/vision/validators.py +1 -2
  68. mindspore/device_context/__init__.py +21 -0
  69. mindspore/device_context/ascend/__init__.py +25 -0
  70. mindspore/device_context/ascend/device.py +72 -0
  71. mindspore/device_context/ascend/op_debug.py +94 -0
  72. mindspore/device_context/ascend/op_precision.py +193 -0
  73. mindspore/device_context/ascend/op_tuning.py +127 -0
  74. mindspore/device_context/cpu/__init__.py +25 -0
  75. mindspore/device_context/cpu/device.py +62 -0
  76. mindspore/device_context/cpu/op_tuning.py +43 -0
  77. mindspore/device_context/gpu/__init__.py +21 -0
  78. mindspore/device_context/gpu/device.py +70 -0
  79. mindspore/device_context/gpu/op_precision.py +67 -0
  80. mindspore/device_context/gpu/op_tuning.py +175 -0
  81. mindspore/device_manager.py +134 -0
  82. mindspore/dnnl.dll +0 -0
  83. mindspore/dpcmi.dll +0 -0
  84. mindspore/experimental/llm_boost/__init__.py +3 -2
  85. mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
  86. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +211 -0
  87. mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
  88. mindspore/experimental/llm_boost/atb/boost_base.py +239 -64
  89. mindspore/experimental/llm_boost/atb/llama_boost.py +52 -30
  90. mindspore/experimental/llm_boost/atb/qwen_boost.py +47 -24
  91. mindspore/experimental/llm_boost/register.py +1 -0
  92. mindspore/experimental/optim/adadelta.py +26 -22
  93. mindspore/experimental/optim/adam.py +3 -0
  94. mindspore/experimental/optim/lr_scheduler.py +33 -24
  95. mindspore/experimental/optim/radam.py +33 -30
  96. mindspore/hal/device.py +28 -0
  97. mindspore/hal/event.py +17 -0
  98. mindspore/hal/memory.py +94 -3
  99. mindspore/hal/stream.py +91 -6
  100. mindspore/include/api/context.h +1 -2
  101. mindspore/include/dataset/constants.h +2 -2
  102. mindspore/jpeg62.dll +0 -0
  103. mindspore/log.py +12 -0
  104. mindspore/mindrecord/__init__.py +1 -1
  105. mindspore/mindrecord/config.py +17 -316
  106. mindspore/mindrecord/filereader.py +1 -9
  107. mindspore/mindrecord/filewriter.py +5 -15
  108. mindspore/mindrecord/mindpage.py +1 -9
  109. mindspore/mindspore_backend.dll +0 -0
  110. mindspore/mindspore_common.dll +0 -0
  111. mindspore/mindspore_core.dll +0 -0
  112. mindspore/mindspore_glog.dll +0 -0
  113. mindspore/mindspore_ops.dll +0 -0
  114. mindspore/mint/__init__.py +824 -218
  115. mindspore/mint/distributed/__init__.py +66 -4
  116. mindspore/mint/distributed/distributed.py +2594 -44
  117. mindspore/mint/linalg/__init__.py +6 -0
  118. mindspore/mint/nn/__init__.py +473 -14
  119. mindspore/mint/nn/functional.py +486 -11
  120. mindspore/mint/nn/layer/__init__.py +17 -4
  121. mindspore/mint/nn/layer/_functions.py +330 -0
  122. mindspore/mint/nn/layer/activation.py +169 -1
  123. mindspore/mint/nn/layer/basic.py +123 -0
  124. mindspore/mint/nn/layer/conv.py +727 -0
  125. mindspore/mint/nn/layer/normalization.py +215 -19
  126. mindspore/mint/nn/layer/padding.py +797 -0
  127. mindspore/mint/nn/layer/pooling.py +170 -0
  128. mindspore/mint/optim/__init__.py +2 -1
  129. mindspore/mint/optim/adam.py +223 -0
  130. mindspore/mint/optim/adamw.py +26 -19
  131. mindspore/mint/special/__init__.py +2 -1
  132. mindspore/msobj140.dll +0 -0
  133. mindspore/mspdb140.dll +0 -0
  134. mindspore/mspdbcore.dll +0 -0
  135. mindspore/mspdbst.dll +0 -0
  136. mindspore/mspft140.dll +0 -0
  137. mindspore/msvcdis140.dll +0 -0
  138. mindspore/msvcp140_1.dll +0 -0
  139. mindspore/msvcp140_2.dll +0 -0
  140. mindspore/msvcp140_atomic_wait.dll +0 -0
  141. mindspore/msvcp140_codecvt_ids.dll +0 -0
  142. mindspore/multiprocessing/__init__.py +5 -0
  143. mindspore/nn/__init__.py +2 -0
  144. mindspore/nn/cell.py +142 -21
  145. mindspore/nn/dynamic_lr.py +2 -1
  146. mindspore/nn/layer/activation.py +6 -6
  147. mindspore/nn/layer/basic.py +35 -25
  148. mindspore/nn/layer/channel_shuffle.py +3 -3
  149. mindspore/nn/layer/conv.py +3 -0
  150. mindspore/nn/layer/embedding.py +3 -3
  151. mindspore/nn/layer/normalization.py +8 -7
  152. mindspore/nn/layer/padding.py +4 -3
  153. mindspore/nn/layer/pooling.py +55 -23
  154. mindspore/nn/layer/rnn_cells.py +1 -1
  155. mindspore/nn/layer/rnns.py +2 -1
  156. mindspore/nn/layer/timedistributed.py +5 -5
  157. mindspore/nn/layer/transformer.py +48 -26
  158. mindspore/nn/learning_rate_schedule.py +5 -3
  159. mindspore/nn/loss/loss.py +31 -36
  160. mindspore/nn/optim/ada_grad.py +1 -0
  161. mindspore/nn/optim/adadelta.py +2 -2
  162. mindspore/nn/optim/adam.py +1 -1
  163. mindspore/nn/optim/lars.py +1 -4
  164. mindspore/nn/optim/optimizer.py +1 -1
  165. mindspore/nn/optim/rprop.py +2 -2
  166. mindspore/nn/optim/thor.py +2 -1
  167. mindspore/nn/utils/__init__.py +22 -0
  168. mindspore/nn/utils/init.py +73 -0
  169. mindspore/nn/wrap/cell_wrapper.py +4 -6
  170. mindspore/nn/wrap/loss_scale.py +3 -4
  171. mindspore/numpy/array_creations.py +60 -62
  172. mindspore/numpy/array_ops.py +148 -143
  173. mindspore/numpy/logic_ops.py +41 -42
  174. mindspore/numpy/math_ops.py +361 -359
  175. mindspore/numpy/utils.py +16 -16
  176. mindspore/numpy/utils_const.py +4 -4
  177. mindspore/opencv_core452.dll +0 -0
  178. mindspore/opencv_imgcodecs452.dll +0 -0
  179. mindspore/opencv_imgproc452.dll +0 -0
  180. mindspore/ops/__init__.py +2 -1
  181. mindspore/ops/_grad_experimental/grad_comm_ops.py +107 -8
  182. mindspore/ops/_grad_experimental/grad_debug_ops.py +6 -1
  183. mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
  184. mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
  185. mindspore/ops/_op_impl/cpu/__init__.py +1 -0
  186. mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
  187. mindspore/ops/_vmap/vmap_array_ops.py +20 -19
  188. mindspore/ops/_vmap/vmap_base.py +0 -2
  189. mindspore/ops/_vmap/vmap_grad_nn_ops.py +19 -13
  190. mindspore/ops/_vmap/vmap_math_ops.py +11 -9
  191. mindspore/ops/_vmap/vmap_nn_ops.py +20 -34
  192. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +149 -12
  193. mindspore/ops/auto_generate/gen_arg_handler.py +0 -61
  194. mindspore/ops/auto_generate/gen_extend_func.py +554 -60
  195. mindspore/ops/auto_generate/gen_ops_def.py +1621 -115
  196. mindspore/ops/auto_generate/gen_ops_prim.py +8027 -3411
  197. mindspore/ops/auto_generate/pyboost_inner_prim.py +183 -79
  198. mindspore/ops/composite/base.py +1 -1
  199. mindspore/ops/composite/multitype_ops/_compile_utils.py +229 -30
  200. mindspore/ops/composite/multitype_ops/pow_impl.py +0 -29
  201. mindspore/ops/function/__init__.py +12 -0
  202. mindspore/ops/function/array_func.py +561 -159
  203. mindspore/ops/function/clip_func.py +64 -0
  204. mindspore/ops/function/debug_func.py +28 -20
  205. mindspore/ops/function/image_func.py +1 -1
  206. mindspore/ops/function/linalg_func.py +5 -4
  207. mindspore/ops/function/math_func.py +1664 -294
  208. mindspore/ops/function/nn_func.py +988 -317
  209. mindspore/ops/function/parameter_func.py +3 -56
  210. mindspore/ops/function/random_func.py +243 -33
  211. mindspore/ops/function/sparse_unary_func.py +1 -1
  212. mindspore/ops/functional.py +18 -5
  213. mindspore/ops/functional_overload.py +897 -0
  214. mindspore/ops/operations/__init__.py +3 -2
  215. mindspore/ops/operations/_embedding_cache_ops.py +4 -4
  216. mindspore/ops/operations/_grad_ops.py +2 -34
  217. mindspore/ops/operations/_infer_ops.py +2 -1
  218. mindspore/ops/operations/_inner_ops.py +38 -8
  219. mindspore/ops/operations/array_ops.py +45 -303
  220. mindspore/ops/operations/comm_ops.py +23 -17
  221. mindspore/ops/operations/custom_ops.py +7 -49
  222. mindspore/ops/operations/debug_ops.py +42 -47
  223. mindspore/ops/operations/inner_ops.py +6 -4
  224. mindspore/ops/operations/linalg_ops.py +3 -2
  225. mindspore/ops/operations/manually_defined/ops_def.py +185 -104
  226. mindspore/ops/operations/math_ops.py +11 -216
  227. mindspore/ops/operations/nn_ops.py +153 -310
  228. mindspore/ops/primitive.py +23 -21
  229. mindspore/ops/tensor_method.py +1669 -0
  230. mindspore/ops_generate/aclnn_kernel_register_auto_cc_generator.py +110 -0
  231. mindspore/ops_generate/add_tensor_docs_generator.py +54 -0
  232. mindspore/ops_generate/arg_handler.py +0 -61
  233. mindspore/ops_generate/auto_grad_impl_cc_generator.py +135 -0
  234. mindspore/ops_generate/auto_grad_reg_cc_generator.py +93 -0
  235. mindspore/ops_generate/base_generator.py +11 -0
  236. mindspore/ops_generate/cpp_create_prim_instance_helper_generator.py +108 -0
  237. mindspore/ops_generate/functional_map_cpp_generator.py +491 -0
  238. mindspore/ops_generate/functional_overload_py_generator.py +110 -0
  239. mindspore/ops_generate/functions_cc_generator.py +233 -0
  240. mindspore/ops_generate/gen_aclnn_implement.py +110 -114
  241. mindspore/ops_generate/gen_constants.py +157 -3
  242. mindspore/ops_generate/gen_ops.py +245 -990
  243. mindspore/ops_generate/gen_pyboost_func.py +97 -998
  244. mindspore/ops_generate/gen_utils.py +119 -33
  245. mindspore/ops_generate/lite_ops_cpp_generator.py +155 -0
  246. mindspore/ops_generate/op_api_proto.py +206 -0
  247. mindspore/ops_generate/op_def_py_generator.py +131 -0
  248. mindspore/ops_generate/op_prim_py_generator.py +480 -0
  249. mindspore/ops_generate/op_proto.py +373 -108
  250. mindspore/ops_generate/op_template_parser.py +436 -0
  251. mindspore/ops_generate/ops_def_cc_generator.py +288 -0
  252. mindspore/ops_generate/ops_def_h_generator.py +74 -0
  253. mindspore/ops_generate/ops_name_h_generator.py +68 -0
  254. mindspore/ops_generate/ops_primitive_h_generator.py +81 -0
  255. mindspore/ops_generate/pyboost_functions_cpp_generator.py +370 -0
  256. mindspore/ops_generate/pyboost_functions_h_generator.py +68 -0
  257. mindspore/ops_generate/pyboost_functions_py_generator.py +148 -0
  258. mindspore/ops_generate/pyboost_grad_function_cpp_generator.py +154 -0
  259. mindspore/ops_generate/pyboost_inner_prim_generator.py +131 -0
  260. mindspore/ops_generate/pyboost_native_grad_functions_generator.py +268 -0
  261. mindspore/ops_generate/pyboost_op_cpp_code_generator.py +851 -0
  262. mindspore/ops_generate/pyboost_overload_functions_cpp_generator.py +344 -0
  263. mindspore/ops_generate/pyboost_utils.py +92 -33
  264. mindspore/ops_generate/template.py +294 -44
  265. mindspore/ops_generate/tensor_func_reg_cpp_generator.py +422 -0
  266. mindspore/parallel/__init__.py +3 -3
  267. mindspore/parallel/_auto_parallel_context.py +44 -34
  268. mindspore/parallel/_cell_wrapper.py +22 -3
  269. mindspore/parallel/_parallel_serialization.py +13 -2
  270. mindspore/parallel/_utils.py +4 -2
  271. mindspore/parallel/algo_parameter_config.py +1 -1
  272. mindspore/parallel/checkpoint_transform.py +44 -0
  273. mindspore/parallel/cluster/process_entity/_api.py +131 -37
  274. mindspore/parallel/cluster/process_entity/_utils.py +41 -6
  275. mindspore/parallel/cluster/run.py +20 -3
  276. mindspore/parallel/parameter_broadcast.py +1 -1
  277. mindspore/parallel/shard.py +3 -0
  278. mindspore/parallel/transform_safetensors.py +119 -253
  279. mindspore/pgodb140.dll +0 -0
  280. mindspore/pgort140.dll +0 -0
  281. mindspore/profiler/__init__.py +17 -4
  282. mindspore/profiler/analysis/__init__.py +0 -0
  283. mindspore/profiler/analysis/parser/__init__.py +0 -0
  284. mindspore/profiler/analysis/parser/ascend_cann_parser.py +166 -0
  285. mindspore/profiler/analysis/parser/base_parser.py +158 -0
  286. mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
  287. mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
  288. mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
  289. mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
  290. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +261 -0
  291. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
  292. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +84 -0
  293. mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
  294. mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
  295. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
  296. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
  297. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
  298. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
  299. mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
  300. mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
  301. mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
  302. mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
  303. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +260 -0
  304. mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
  305. mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
  306. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
  307. mindspore/profiler/analysis/task_manager.py +131 -0
  308. mindspore/profiler/analysis/time_converter.py +84 -0
  309. mindspore/profiler/analysis/viewer/__init__.py +0 -0
  310. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +333 -0
  311. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
  312. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +252 -0
  313. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +313 -0
  314. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +322 -0
  315. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +265 -0
  316. mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
  317. mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
  318. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +97 -0
  319. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
  320. mindspore/profiler/analysis/work_flow.py +73 -0
  321. mindspore/profiler/common/ascend_msprof_exporter.py +138 -0
  322. mindspore/profiler/common/command_executor.py +90 -0
  323. mindspore/profiler/common/constant.py +174 -3
  324. mindspore/profiler/common/file_manager.py +208 -0
  325. mindspore/profiler/common/log.py +130 -0
  326. mindspore/profiler/common/msprof_cmd_tool.py +202 -0
  327. mindspore/profiler/common/path_manager.py +371 -0
  328. mindspore/profiler/common/process_bar.py +168 -0
  329. mindspore/profiler/common/process_pool.py +9 -3
  330. mindspore/profiler/common/profiler_context.py +476 -0
  331. mindspore/profiler/common/profiler_info.py +304 -0
  332. mindspore/profiler/common/profiler_output_path.py +284 -0
  333. mindspore/profiler/common/profiler_parameters.py +210 -0
  334. mindspore/profiler/common/profiler_path_manager.py +120 -0
  335. mindspore/profiler/common/record_function.py +76 -0
  336. mindspore/profiler/common/tlv_decoder.py +76 -0
  337. mindspore/profiler/common/util.py +75 -2
  338. mindspore/profiler/dynamic_profiler.py +270 -37
  339. mindspore/profiler/envprofiler.py +138 -0
  340. mindspore/profiler/mstx.py +199 -0
  341. mindspore/profiler/platform/__init__.py +21 -0
  342. mindspore/profiler/platform/base_profiler.py +40 -0
  343. mindspore/profiler/platform/cpu_profiler.py +124 -0
  344. mindspore/profiler/platform/gpu_profiler.py +74 -0
  345. mindspore/profiler/platform/npu_profiler.py +309 -0
  346. mindspore/profiler/profiler.py +580 -93
  347. mindspore/profiler/profiler_action_controller.py +187 -0
  348. mindspore/profiler/profiler_interface.py +114 -0
  349. mindspore/profiler/schedule.py +208 -0
  350. mindspore/rewrite/api/symbol_tree.py +1 -2
  351. mindspore/run_check/_check_version.py +18 -13
  352. mindspore/runtime/__init__.py +37 -0
  353. mindspore/runtime/device.py +27 -0
  354. mindspore/runtime/event.py +209 -0
  355. mindspore/runtime/executor.py +148 -0
  356. mindspore/runtime/memory.py +392 -0
  357. mindspore/runtime/stream.py +460 -0
  358. mindspore/runtime/thread_bind_core.py +401 -0
  359. mindspore/swresample-4.dll +0 -0
  360. mindspore/swscale-6.dll +0 -0
  361. mindspore/tbbmalloc.dll +0 -0
  362. mindspore/tinyxml2.dll +0 -0
  363. mindspore/train/__init__.py +2 -2
  364. mindspore/train/_utils.py +53 -18
  365. mindspore/train/amp.py +8 -4
  366. mindspore/train/callback/_checkpoint.py +32 -18
  367. mindspore/train/callback/_early_stop.py +1 -1
  368. mindspore/train/callback/_flops_collector.py +105 -69
  369. mindspore/train/callback/_history.py +1 -1
  370. mindspore/train/callback/_summary_collector.py +44 -6
  371. mindspore/train/callback/_tft_register.py +37 -15
  372. mindspore/train/dataset_helper.py +11 -11
  373. mindspore/train/metrics/precision.py +4 -5
  374. mindspore/train/mind_ir_pb2.py +167 -46
  375. mindspore/train/model.py +13 -14
  376. mindspore/train/serialization.py +461 -72
  377. mindspore/train/summary/summary_record.py +1 -2
  378. mindspore/train/train_thor/model_thor.py +1 -1
  379. mindspore/turbojpeg.dll +0 -0
  380. mindspore/utils/__init__.py +4 -2
  381. mindspore/utils/dryrun.py +138 -0
  382. mindspore/utils/runtime_execution_order_check.py +550 -0
  383. mindspore/vcmeta.dll +0 -0
  384. mindspore/vcruntime140.dll +0 -0
  385. mindspore/vcruntime140_1.dll +0 -0
  386. mindspore/version.py +1 -1
  387. {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/METADATA +3 -4
  388. {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/RECORD +391 -265
  389. {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/entry_points.txt +1 -1
  390. mindspore/common/_tensor_overload.py +0 -139
  391. mindspore/mindspore_np_dtype.dll +0 -0
  392. mindspore/profiler/envprofiling.py +0 -254
  393. mindspore/profiler/profiling.py +0 -1926
  394. {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/WHEEL +0 -0
  395. {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/top_level.txt +0 -0
@@ -19,6 +19,7 @@ After declaring the dataset object, you can further apply dataset operations
19
19
  (e.g. filter, skip, concat, map, batch) on it.
20
20
  """
21
21
  import builtins
22
+ import copy
22
23
  import errno
23
24
  import itertools
24
25
  import math
@@ -27,12 +28,10 @@ import signal
27
28
  import time
28
29
  from types import GeneratorType
29
30
  import multiprocessing
30
- from multiprocessing.util import Finalize
31
31
  import queue
32
32
  from functools import partial
33
33
  import subprocess
34
34
  import threading
35
- import weakref
36
35
  import platform
37
36
  import psutil
38
37
  import numpy as np
@@ -45,11 +44,12 @@ from mindspore import log as logger
45
44
  from .datasets import UnionBaseDataset, MappableDataset, Schema, to_list, _PythonMultiprocessing, _check_shm_usage
46
45
  from . import samplers
47
46
  from .queue import _SharedQueue
48
- from .validators import check_generatordataset, check_numpyslicesdataset, check_paddeddataset
47
+ from .validators import check_generator_dataset, check_numpy_slices_dataset, check_padded_dataset
49
48
  from ..core.config import get_enable_shared_mem, get_prefetch_size, get_multiprocessing_timeout_interval, \
50
49
  get_enable_watchdog, get_debug_mode, get_seed, set_seed
51
50
  from ..core.datatypes import mstypelist_to_detypelist
52
51
  from ..core.py_util_helpers import ExceptionHandler
52
+ from ..core.validator_helpers import type_check
53
53
  from ..transforms import transforms
54
54
 
55
55
 
@@ -219,7 +219,6 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
219
219
  self.ppid = os.getpid()
220
220
  self.pids = []
221
221
  self.check_interval = get_multiprocessing_timeout_interval() # the interval of check queue's size
222
- self._final_join = True
223
222
 
224
223
  # Event for end of epoch
225
224
  if self.multi_process is True:
@@ -270,8 +269,14 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
270
269
  worker.daemon = True
271
270
  self.need_join = True
272
271
  self.workers.append(worker)
273
- if self.multi_process and platform.system().lower() != 'windows':
274
- self._launch_cleanup_worker()
272
+
273
+ if self.multi_process:
274
+ logger.info("Launch generator worker process(es): {}".format([worker.pid for worker in self.workers]))
275
+ if platform.system().lower() != 'windows':
276
+ self._launch_monitor()
277
+
278
+ def terminate(self):
279
+ self._stop_subprocess()
275
280
 
276
281
  def _interval_log(self, i, start_time, wait_count):
277
282
  cost_time = int(time.time()) - start_time
@@ -392,9 +397,11 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
392
397
  "the `mindspore.dataset.config.set_multiprocessing_timeout_interval` interface."
393
398
  logger.warning(warning_message)
394
399
 
395
- def _launch_cleanup_worker(self):
400
+ def _launch_monitor(self):
396
401
  """
397
- We need a extra thread and process if main process or subprocess was killed.
402
+ Launch a clean process and register subprocess to be monitored by the watch dog.
403
+ The clean process will clean up subprocesses when main process exited.
404
+ The watch dog will clean up subprocesses and main process when any subprocess exited.
398
405
  """
399
406
  _clean_worker_func = _PythonMultiprocessing._clean_process # pylint: disable=W0212
400
407
  self.cleaning_process = multiprocessing.Process(target=_clean_worker_func,
@@ -402,21 +409,13 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
402
409
  args=(self.ppid, self.workers, self.eof))
403
410
  self.cleaning_process.daemon = True
404
411
  self.cleaning_process.start()
412
+ logger.info("Launch clean process {} to monitor worker "
413
+ "process(es): {}".format(self.cleaning_process.pid, [worker.pid for worker in self.workers]))
405
414
 
406
415
  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
- )
416
+ worker_ids = [worker.pid for worker in self.workers]
417
+ worker_ids.append(self.cleaning_process.pid)
418
+ cde.register_worker_pids(id(self), set(worker_ids))
420
419
 
421
420
  def _release_fd(self):
422
421
  """Release the file descriptor by subprocess"""
@@ -427,6 +426,10 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
427
426
  subprocess_file_descriptor = w.sentinel
428
427
  st = time.time()
429
428
  while _PythonMultiprocessing.is_process_alive(w.pid):
429
+ process = psutil.Process(w.pid)
430
+ if process.status() == psutil.STATUS_ZOMBIE:
431
+ process.kill()
432
+ break
430
433
  time.sleep(0.01) # sleep 10ms, waiting for the subprocess exit
431
434
  if time.time() - st > check_interval:
432
435
  logger.warning("Waiting for the subprocess worker [{}] to exit.".format(w.pid))
@@ -448,15 +451,8 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
448
451
  def _stop_subprocess(self):
449
452
  """Only the main process can call join. All the sub-process / sub-thread will be stopped."""
450
453
  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()
454
+ # abort the monitor first
455
+ self._abort_monitor()
460
456
  self.need_join = False
461
457
 
462
458
  # waiting for the sub-process stop
@@ -469,7 +465,7 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
469
465
 
470
466
  # let the quit event notify the worker process to exit
471
467
  w.join(timeout=5)
472
- if w.is_alive():
468
+ if _PythonMultiprocessing.is_process_alive(w.pid):
473
469
  # if the worker process did not exit, it may hang, try to terminate it
474
470
  w.terminate()
475
471
  w.close()
@@ -483,10 +479,12 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
483
479
  self.workers.clear()
484
480
  self.workers = None
485
481
 
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()
482
+ def _abort_monitor(self):
483
+ """Deregister workers monitored by the watch dog and join clean process."""
484
+ if get_enable_watchdog():
485
+ cde.deregister_worker_pids(id(self))
486
+ if hasattr(self, 'eof') and self.eof is not None:
487
+ self.eof.set()
490
488
  if hasattr(self, 'cleaning_process') and self.cleaning_process is not None:
491
489
  # let the quit event notify the cleaning process to exit
492
490
  self.cleaning_process.join(timeout=5)
@@ -497,14 +495,6 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
497
495
  if hasattr(self, 'count'):
498
496
  del self.count
499
497
 
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
498
  def __del__(self):
509
499
  try:
510
500
  self._stop_subprocess()
@@ -548,7 +538,7 @@ def _generator_worker_loop(dataset, idx_queue, result_queue, eof, is_multiproces
548
538
  cde.register_worker_handlers()
549
539
 
550
540
  if is_multiprocessing:
551
- result_queue.cancel_join_thread() # Ensure that the process does not hung when exiting
541
+ result_queue.cancel_join_thread() # Ensure that the process does not hang when exiting
552
542
  signal.signal(signal.SIGTERM, partial(_subprocess_handle, eof))
553
543
 
554
544
  # init the random seed and np.random seed for the subprocess
@@ -688,6 +678,7 @@ class _GeneratorWorkerMp(multiprocessing.Process):
688
678
 
689
679
  class _GeneratorWrapper:
690
680
  """Wrapper the generator so that it can be iterated multiple times in GeneratorDataset."""
681
+
691
682
  def __init__(self, generator):
692
683
  self.generator = generator
693
684
  self.generator_new, self.generator = itertools.tee(self.generator)
@@ -707,13 +698,22 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
707
698
  The column names and column types of generated dataset depend on Python data defined by users.
708
699
 
709
700
  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].
701
+ source (Union[Random Accessible, Iterable]): A custom dataset from which to load the data.
702
+ MindSpore supports the following types of datasets:
703
+
704
+ - Random-accessible (map-style) datasets: A dataset object that implements the `__getitem__()`
705
+ and `__len__()` methods, represents a mapping from indexes/keys to data samples.
706
+ For example, such a dataset `source`, when accessed with `source[idx]`, can read the idx-th sample
707
+ from disk, see `Random-accessible dataset example <https://www.mindspore.cn/tutorials/en/master/
708
+ beginner/dataset.html#random-accessible-dataset>`_ for details.
709
+
710
+ - Iterable-style dataset: An iterable dataset object that implements `__iter__()` and `__next__()` methods,
711
+ represents an iterable over data samples. This type of dataset is suitable for situations where
712
+ random reads are costly or even impossible, and where batch sizes depend on the data being acquired.
713
+ For example, such a dataset `source`, when accessed `iter(source)`, can return a stream of data reading
714
+ from a database or remote server, see `Iterable-style dataset example
715
+ <https://www.mindspore.cn/tutorials/en/master/beginner/dataset.html#iterable-dataset>`_ for details.
716
+
717
717
  column_names (Union[str, list[str]], optional): List of column names of the dataset. Default: ``None`` .
718
718
  Users are required to provide either column_names or schema.
719
719
  column_types (list[mindspore.dtype], optional): List of column data types of the dataset. Default: ``None`` .
@@ -731,7 +731,8 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
731
731
  input is required. Default: ``None`` , expected order behavior shown in the table below.
732
732
  num_shards (int, optional): Number of shards that the dataset will be divided into. Default: ``None`` .
733
733
  Random accessible input is required. When this argument is specified, `num_samples` reflects the maximum
734
- sample number of per shard.
734
+ sample number of per shard. Used in `data parallel training <https://www.mindspore.cn/docs/en/master/
735
+ model_train/parallel/data_parallel.html#data-parallel-mode-loads-datasets>`_ .
735
736
  shard_id (int, optional): The shard ID within `num_shards` . Default: ``None`` .
736
737
  This argument must be specified only when `num_shards` is also specified.
737
738
  Random accessible input is required.
@@ -742,6 +743,11 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
742
743
  ``num_parallel_workers`` and :func:`mindspore.dataset.config.set_prefetch_size` increase. If set to -1,
743
744
  shared memory will be dynamically allocated with the actual size of data. This is only used if
744
745
  ``python_multiprocessing`` is set to True. Default: ``None`` , allocate shared memory dynamically.
746
+ batch_sampler (Iterable, optional): Similar to `sampler` , but returns a batch of indices at a time, the
747
+ corresponding data will be combined into a batch. Mutually exclusive with `num_samples` , `shuffle` ,
748
+ `num_shards` , `shard_id` and `sampler` . Default: ``None`` , do not use batch sampler.
749
+ collate_fn (Callable[List[numpy.ndarray]], optional): Define how to merge a list of data into a batch.
750
+ Only valid if `batch_sampler` is used. Default: ``None`` , do not use collation function.
745
751
 
746
752
  Raises:
747
753
  RuntimeError: If source raises an exception during execution.
@@ -752,6 +758,11 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
752
758
  ValueError: If `num_shards` is specified but shard_id is None.
753
759
  ValueError: If shard_id is specified but `num_shards` is None.
754
760
  ValueError: If `shard_id` is not in range of [0, `num_shards` ).
761
+ TypeError: If `batch_sampler` is not iterable.
762
+ ValueError: If `batch_sampler` is specified together with `num_samples` ,
763
+ `shuffle` , `num_shards` , `shard_id` and `sampler`.
764
+ TypeError: If `collate_fn` is not callable.
765
+ ValueError: If `collate_fn` is specified while `batch_sampler` is None.
755
766
 
756
767
  Tutorial Examples:
757
768
  - `Load & Process Data With Dataset Pipeline
@@ -845,10 +856,10 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
845
856
  >>> dataset = ds.GeneratorDataset(source=[(np.array(0),), (np.array(1),), (np.array(2),)], column_names=["col"])
846
857
  """
847
858
 
848
- @check_generatordataset
859
+ @check_generator_dataset
849
860
  def __init__(self, source, column_names=None, column_types=None, schema=None, num_samples=None,
850
861
  num_parallel_workers=1, shuffle=None, sampler=None, num_shards=None, shard_id=None,
851
- python_multiprocessing=True, max_rowsize=None):
862
+ python_multiprocessing=True, max_rowsize=None, batch_sampler=None, collate_fn=None):
852
863
  super().__init__(num_parallel_workers=num_parallel_workers, sampler=sampler, num_samples=num_samples,
853
864
  shuffle=shuffle, num_shards=num_shards, shard_id=shard_id)
854
865
  if isinstance(source, builtins.zip):
@@ -889,24 +900,69 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
889
900
  self.schema = schema
890
901
  if not isinstance(schema, Schema):
891
902
  self.schema = Schema(schema)
903
+
904
+ self.has_batch_sampler = False
905
+ if batch_sampler is not None:
906
+ self.has_batch_sampler = True
907
+ if not isinstance(batch_sampler, samplers.BuiltinSampler):
908
+ self.sampler = samplers.IterSampler(batch_sampler)
909
+ else:
910
+ self.sampler = batch_sampler
911
+
892
912
  # Move get dataset_size by len from parse to here, because self.source will
893
913
  # lose attribution of '__len__' after deepcopy.
914
+ self._calculate_source_length()
915
+
916
+ self.max_rowsize = max_rowsize if max_rowsize is not None else -1
917
+ self.sample_fn = None
918
+ # Ignore batch_info in the input parameter.
919
+ self.collate_fn = (lambda *args: collate_fn(*args[:-1])) if collate_fn is not None else None
920
+
921
+ def _calculate_source_length(self):
922
+ """Calculate the source length according to the source and sampler."""
894
923
  self.source_len = -1 # unknown
895
924
  if hasattr(self.source, "__len__"):
896
925
  self.source_len = len(self.source)
897
926
 
898
927
  # if user defined sampler, update the self.source_len
899
928
  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
929
+ if self.sampler.child_sampler is not None:
930
+ raise RuntimeError("GeneratorDataset does not support user defined sampler with child sampler yet.")
931
+ if self.sampler.num_samples is not None:
932
+ self.source_len = self.sampler.num_samples
933
+ elif hasattr(self.sampler, "__len__"):
934
+ self.source_len = len(self.sampler)
935
+ else:
936
+ # counting on a copied sampler to prevent changing the random state of the original one
937
+ self.source_len = len(list(copy.deepcopy(self.sampler)))
904
938
 
905
939
  def __deepcopy__(self, memodict):
906
940
  if id(self) in memodict:
907
941
  return memodict[id(self)]
908
942
  return self.__safe_deepcopy__(memodict, exclude=("source", "__transfer_dataset__"))
909
943
 
944
+ def __getitem__(self, index):
945
+ type_check(index, (int, np.number), "index")
946
+ if not hasattr(self.source, "__getitem__"):
947
+ raise RuntimeError("Dataset don't support randomized access.")
948
+ if self.has_batch_sampler:
949
+ raise RuntimeError("GeneratorDataset with batch_sampler does not support random access.")
950
+ if not hasattr(self, "generator_op"):
951
+ dataset = copy.deepcopy(self)
952
+ self.prepared_source = _generator_fn_wrapper(_cpp_sampler_fn, self.source)
953
+ if self.schema is None:
954
+ dataset.generator_node = cde.GeneratorNode(self.prepared_source, self.column_names, self.column_types,
955
+ self.source_len, self.sampler, 1, None, False)
956
+ else:
957
+ schema = self.schema
958
+ if isinstance(schema, Schema):
959
+ schema = self.schema.cpp_schema
960
+ dataset.generator_node = cde.GeneratorNode(self.prepared_source, schema, self.source_len,
961
+ self.sampler, 1, None, False)
962
+ self.generator_op = dataset.generator_node.Build()
963
+ sample_id = self.generator_op.GetMappedIndex(index)
964
+ return self.source[sample_id]
965
+
910
966
  def is_shuffled(self):
911
967
  if self.sampler:
912
968
  return self.sampler.is_shuffled()
@@ -919,9 +975,11 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
919
975
 
920
976
  def split(self, sizes, randomize=True):
921
977
  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)
978
+ if not self.has_batch_sampler:
979
+ # If the source has __getitem__ attribute, call the split method of MappableDataset.
980
+ # Otherwise, call the split method of Dataset.
981
+ return super().split(sizes, randomize)
982
+ logger.warning("The performance of split will be degraded since batch_sampler is detected.")
925
983
  return super(MappableDataset, self).split(sizes, randomize)
926
984
 
927
985
  def prepare_multiprocessing(self):
@@ -958,12 +1016,12 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
958
1016
  self.prepare_multiprocessing()
959
1017
  if self.schema is None:
960
1018
  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)
1019
+ self.sampler, self.num_parallel_workers, self.sample_fn, self.has_batch_sampler)
962
1020
  schema = self.schema
963
1021
  if isinstance(schema, Schema):
964
1022
  schema = self.schema.cpp_schema
965
1023
  return cde.GeneratorNode(self.prepared_source, schema, self.source_len, self.sampler,
966
- self.num_parallel_workers, self.sample_fn)
1024
+ self.num_parallel_workers, self.sample_fn, self.has_batch_sampler)
967
1025
 
968
1026
  def __validate_memory_usage(self):
969
1027
  """
@@ -1081,6 +1139,8 @@ class NumpySlicesDataset(GeneratorDataset):
1081
1139
  Default: ``None`` , expected order behavior shown in the table below.
1082
1140
  num_shards (int, optional): Number of shards that the dataset will be divided into. Default: ``None`` .
1083
1141
  When this argument is specified, `num_samples` reflects the max sample number of per shard.
1142
+ Used in `data parallel training <https://www.mindspore.cn/docs/en/master/model_train/
1143
+ parallel/data_parallel.html#data-parallel-mode-loads-datasets>`_ .
1084
1144
  shard_id (int, optional): The shard ID within `num_shards` . Default: ``None`` . This argument must be
1085
1145
  specified only when `num_shards` is also specified.
1086
1146
 
@@ -1123,7 +1183,7 @@ class NumpySlicesDataset(GeneratorDataset):
1123
1183
  >>> dataset = ds.NumpySlicesDataset(data=dict(df), shuffle=False)
1124
1184
  """
1125
1185
 
1126
- @check_numpyslicesdataset
1186
+ @check_numpy_slices_dataset
1127
1187
  def __init__(self, data, column_names=None, num_samples=None, num_parallel_workers=1, shuffle=None, sampler=None,
1128
1188
  num_shards=None, shard_id=None):
1129
1189
  dataset = _NumpySlicesDataset(data, column_names)
@@ -1176,7 +1236,7 @@ class PaddedDataset(GeneratorDataset):
1176
1236
  >>> dataset = ds.PaddedDataset(padded_samples=data)
1177
1237
  """
1178
1238
 
1179
- @check_paddeddataset
1239
+ @check_padded_dataset
1180
1240
  def __init__(self, padded_samples):
1181
1241
  dataset = _PaddedDataset(padded_samples)
1182
1242
  super().__init__(dataset, column_names=dataset.column_names, num_shards=None, shard_id=None, shuffle=False)