mindspore 2.5.0__cp311-cp311-win_amd64.whl → 2.6.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 (493) 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 +6 -4
  5. mindspore/_c_dataengine.cp311-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp311-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp311-win_amd64.pyd +0 -0
  8. mindspore/_check_jit_forbidden_api.py +3 -0
  9. mindspore/_checkparam.py +3 -33
  10. mindspore/_deprecated/__init__.py +17 -0
  11. mindspore/_deprecated/jit.py +198 -0
  12. mindspore/_extends/builtin_operations.py +1 -1
  13. mindspore/_extends/parse/__init__.py +6 -7
  14. mindspore/_extends/parse/compile_config.py +19 -0
  15. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +22 -3
  16. mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
  17. mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
  18. mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
  19. mindspore/_extends/parse/parser.py +25 -194
  20. mindspore/_extends/parse/resources.py +1 -5
  21. mindspore/_extends/parse/standard_method.py +109 -75
  22. mindspore/_extends/pijit/__init__.py +2 -2
  23. mindspore/_extends/pijit/pijit_func_white_list.py +16 -11
  24. mindspore/_extends/pijit/tensor_func_list.py +27 -0
  25. mindspore/_extends/utils.py +1 -1
  26. mindspore/amp.py +4 -4
  27. mindspore/atlprov.dll +0 -0
  28. mindspore/avcodec-59.dll +0 -0
  29. mindspore/avdevice-59.dll +0 -0
  30. mindspore/avfilter-8.dll +0 -0
  31. mindspore/avformat-59.dll +0 -0
  32. mindspore/avutil-57.dll +0 -0
  33. mindspore/boost/__init__.py +2 -2
  34. mindspore/boost/base.py +3 -7
  35. mindspore/boost/boost_cell_wrapper.py +2 -2
  36. mindspore/c1.dll +0 -0
  37. mindspore/c1xx.dll +0 -0
  38. mindspore/c2.dll +0 -0
  39. mindspore/common/__init__.py +4 -3
  40. mindspore/common/_grad_function.py +56 -0
  41. mindspore/common/_pijit_context.py +14 -5
  42. mindspore/common/_register_for_tensor.py +1 -1
  43. mindspore/common/_stub_tensor.py +5 -10
  44. mindspore/common/_tensor_cpp_method.py +1 -1
  45. mindspore/common/_tensor_docs.py +2014 -3386
  46. mindspore/common/api.py +386 -355
  47. mindspore/common/auto_dynamic_shape.py +41 -44
  48. mindspore/common/dtype.py +5 -2
  49. mindspore/common/dump.py +7 -5
  50. mindspore/common/file_system.py +3 -0
  51. mindspore/common/generator.py +3 -0
  52. mindspore/common/hook_handle.py +5 -3
  53. mindspore/common/initializer.py +10 -6
  54. mindspore/common/jit_begin_end.py +94 -0
  55. mindspore/common/jit_config.py +6 -1
  56. mindspore/common/jit_context.py +76 -0
  57. mindspore/common/jit_trace.py +378 -0
  58. mindspore/common/lazy_inline.py +2 -2
  59. mindspore/common/mutable.py +5 -4
  60. mindspore/common/parameter.py +106 -39
  61. mindspore/common/seed.py +2 -2
  62. mindspore/common/sparse_tensor.py +23 -17
  63. mindspore/common/tensor.py +332 -714
  64. mindspore/communication/__init__.py +7 -5
  65. mindspore/communication/_comm_helper.py +47 -2
  66. mindspore/communication/comm_func.py +70 -53
  67. mindspore/communication/management.py +83 -17
  68. mindspore/context.py +228 -571
  69. mindspore/dataset/__init__.py +44 -20
  70. mindspore/dataset/audio/__init__.py +2 -8
  71. mindspore/dataset/audio/transforms.py +3 -17
  72. mindspore/dataset/core/config.py +3 -3
  73. mindspore/dataset/engine/cache_client.py +1 -1
  74. mindspore/dataset/engine/datasets.py +102 -120
  75. mindspore/dataset/engine/datasets_audio.py +22 -22
  76. mindspore/dataset/engine/datasets_standard_format.py +43 -24
  77. mindspore/dataset/engine/datasets_text.py +78 -85
  78. mindspore/dataset/engine/datasets_user_defined.py +109 -77
  79. mindspore/dataset/engine/datasets_vision.py +111 -108
  80. mindspore/dataset/engine/iterators.py +5 -3
  81. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  82. mindspore/dataset/engine/samplers.py +279 -57
  83. mindspore/dataset/engine/serializer_deserializer.py +2 -1
  84. mindspore/dataset/engine/validators.py +10 -0
  85. mindspore/dataset/text/__init__.py +7 -6
  86. mindspore/dataset/text/transforms.py +6 -5
  87. mindspore/dataset/text/utils.py +3 -3
  88. mindspore/dataset/transforms/__init__.py +0 -9
  89. mindspore/dataset/transforms/transforms.py +3 -3
  90. mindspore/dataset/utils/browse_dataset.py +1 -1
  91. mindspore/dataset/vision/__init__.py +2 -9
  92. mindspore/dataset/vision/transforms.py +202 -158
  93. mindspore/dataset/vision/utils.py +7 -5
  94. mindspore/device_context/ascend/op_debug.py +60 -1
  95. mindspore/device_context/ascend/op_tuning.py +0 -4
  96. mindspore/device_manager.py +39 -3
  97. mindspore/dnnl.dll +0 -0
  98. mindspore/dpcmi.dll +0 -0
  99. mindspore/experimental/es/embedding_service.py +35 -27
  100. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +0 -2
  101. mindspore/experimental/map_parameter.py +4 -4
  102. mindspore/experimental/optim/adadelta.py +22 -26
  103. mindspore/experimental/optim/adagrad.py +4 -4
  104. mindspore/experimental/optim/adam.py +4 -0
  105. mindspore/experimental/optim/adamax.py +4 -4
  106. mindspore/experimental/optim/adamw.py +4 -0
  107. mindspore/experimental/optim/asgd.py +1 -1
  108. mindspore/experimental/optim/lr_scheduler.py +40 -22
  109. mindspore/experimental/optim/radam.py +5 -5
  110. mindspore/experimental/optim/rprop.py +1 -1
  111. mindspore/experimental/optim/sgd.py +1 -1
  112. mindspore/hal/contiguous_tensors_handle.py +6 -10
  113. mindspore/hal/device.py +55 -81
  114. mindspore/hal/event.py +38 -55
  115. mindspore/hal/memory.py +115 -147
  116. mindspore/hal/stream.py +81 -125
  117. mindspore/include/dataset/constants.h +7 -4
  118. mindspore/include/dataset/execute.h +2 -2
  119. mindspore/jpeg62.dll +0 -0
  120. mindspore/log.py +40 -2
  121. mindspore/mindrecord/__init__.py +20 -7
  122. mindspore/mindspore_backend_common.dll +0 -0
  123. mindspore/mindspore_backend_manager.dll +0 -0
  124. mindspore/mindspore_common.dll +0 -0
  125. mindspore/mindspore_core.dll +0 -0
  126. mindspore/mindspore_dump.dll +0 -0
  127. mindspore/mindspore_frontend.dll +0 -0
  128. mindspore/mindspore_glog.dll +0 -0
  129. mindspore/mindspore_memory_pool.dll +0 -0
  130. mindspore/mindspore_ms_backend.dll +0 -0
  131. mindspore/mindspore_ops.dll +0 -0
  132. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  133. mindspore/mindspore_ops_kernel_common.dll +0 -0
  134. mindspore/mindspore_profiler.dll +0 -0
  135. mindspore/mindspore_pyboost.dll +0 -0
  136. mindspore/mindspore_pynative.dll +0 -0
  137. mindspore/mindspore_res_manager.dll +0 -0
  138. mindspore/mindspore_runtime_pipeline.dll +0 -0
  139. mindspore/mint/__init__.py +133 -702
  140. mindspore/mint/distributed/__init__.py +5 -1
  141. mindspore/mint/distributed/distributed.py +198 -113
  142. mindspore/mint/linalg/__init__.py +2 -0
  143. mindspore/mint/nn/__init__.py +280 -18
  144. mindspore/mint/nn/functional.py +282 -64
  145. mindspore/mint/nn/layer/__init__.py +4 -0
  146. mindspore/mint/nn/layer/_functions.py +7 -3
  147. mindspore/mint/nn/layer/activation.py +120 -13
  148. mindspore/mint/nn/layer/conv.py +234 -28
  149. mindspore/mint/nn/layer/normalization.py +15 -16
  150. mindspore/mint/nn/layer/padding.py +1 -1
  151. mindspore/mint/nn/layer/pooling.py +66 -1
  152. mindspore/mint/optim/__init__.py +2 -1
  153. mindspore/mint/optim/sgd.py +171 -0
  154. mindspore/msobj140.dll +0 -0
  155. mindspore/mspdb140.dll +0 -0
  156. mindspore/mspdbcore.dll +0 -0
  157. mindspore/mspdbst.dll +0 -0
  158. mindspore/mspft140.dll +0 -0
  159. mindspore/msvcdis140.dll +0 -0
  160. mindspore/msvcp140_1.dll +0 -0
  161. mindspore/msvcp140_2.dll +0 -0
  162. mindspore/msvcp140_atomic_wait.dll +0 -0
  163. mindspore/msvcp140_codecvt_ids.dll +0 -0
  164. mindspore/nn/__init__.py +4 -1
  165. mindspore/nn/cell.py +1253 -179
  166. mindspore/nn/layer/activation.py +23 -21
  167. mindspore/nn/layer/basic.py +22 -16
  168. mindspore/nn/layer/container.py +1 -1
  169. mindspore/nn/layer/conv.py +53 -42
  170. mindspore/nn/layer/embedding.py +9 -8
  171. mindspore/nn/layer/normalization.py +48 -42
  172. mindspore/nn/layer/pooling.py +75 -31
  173. mindspore/nn/layer/transformer.py +11 -10
  174. mindspore/nn/learning_rate_schedule.py +4 -2
  175. mindspore/nn/loss/loss.py +27 -19
  176. mindspore/nn/optim/ada_grad.py +6 -5
  177. mindspore/nn/optim/adadelta.py +9 -7
  178. mindspore/nn/optim/adafactor.py +1 -1
  179. mindspore/nn/optim/adam.py +18 -14
  180. mindspore/nn/optim/adamax.py +8 -7
  181. mindspore/nn/optim/adasum.py +5 -5
  182. mindspore/nn/optim/asgd.py +3 -1
  183. mindspore/nn/optim/ftrl.py +11 -9
  184. mindspore/nn/optim/lamb.py +1 -1
  185. mindspore/nn/optim/lazyadam.py +12 -10
  186. mindspore/nn/optim/momentum.py +7 -6
  187. mindspore/nn/optim/optimizer.py +2 -2
  188. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  189. mindspore/nn/optim/rmsprop.py +13 -12
  190. mindspore/nn/optim/rprop.py +9 -7
  191. mindspore/nn/optim/sgd.py +9 -6
  192. mindspore/nn/optim/tft_wrapper.py +5 -2
  193. mindspore/nn/probability/bijector/bijector.py +17 -11
  194. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  195. mindspore/nn/probability/bijector/invert.py +2 -2
  196. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  197. mindspore/nn/probability/bijector/softplus.py +3 -2
  198. mindspore/nn/probability/distribution/beta.py +3 -3
  199. mindspore/nn/probability/distribution/categorical.py +1 -1
  200. mindspore/nn/probability/distribution/cauchy.py +4 -2
  201. mindspore/nn/probability/distribution/exponential.py +6 -7
  202. mindspore/nn/probability/distribution/gamma.py +2 -2
  203. mindspore/nn/probability/distribution/gumbel.py +2 -2
  204. mindspore/nn/probability/distribution/half_normal.py +5 -3
  205. mindspore/nn/probability/distribution/logistic.py +5 -3
  206. mindspore/nn/probability/distribution/poisson.py +1 -1
  207. mindspore/nn/probability/distribution/uniform.py +5 -3
  208. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  209. mindspore/nn/reinforcement/tensor_array.py +1 -1
  210. mindspore/nn/wrap/__init__.py +6 -6
  211. mindspore/nn/wrap/cell_wrapper.py +178 -117
  212. mindspore/nn/wrap/grad_reducer.py +45 -36
  213. mindspore/nn/wrap/loss_scale.py +3 -3
  214. mindspore/numpy/array_creations.py +3 -3
  215. mindspore/numpy/array_ops.py +1 -1
  216. mindspore/numpy/utils.py +1 -2
  217. mindspore/numpy/utils_const.py +1 -2
  218. mindspore/opencv_core452.dll +0 -0
  219. mindspore/opencv_imgcodecs452.dll +0 -0
  220. mindspore/opencv_imgproc452.dll +0 -0
  221. mindspore/ops/__init__.py +3 -2
  222. mindspore/ops/_grad_experimental/grad_comm_ops.py +18 -3
  223. mindspore/ops/_grad_experimental/grad_debug_ops.py +8 -1
  224. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  225. mindspore/ops/_register_for_op.py +0 -11
  226. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  227. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -4
  228. mindspore/ops/_vmap/vmap_array_ops.py +32 -6
  229. mindspore/ops/_vmap/vmap_grad_nn_ops.py +2 -1
  230. mindspore/ops/_vmap/vmap_math_ops.py +4 -7
  231. mindspore/ops/_vmap/vmap_nn_ops.py +9 -8
  232. mindspore/ops/auto_generate/__init__.py +4 -3
  233. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +127 -52
  234. mindspore/ops/auto_generate/gen_extend_func.py +286 -208
  235. mindspore/ops/auto_generate/gen_ops_def.py +2783 -2335
  236. mindspore/ops/auto_generate/gen_ops_prim.py +8992 -2686
  237. mindspore/ops/auto_generate/pyboost_inner_prim.py +106 -76
  238. mindspore/ops/composite/__init__.py +2 -1
  239. mindspore/ops/composite/base.py +19 -24
  240. mindspore/ops/composite/math_ops.py +6 -16
  241. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  242. mindspore/ops/composite/multitype_ops/_compile_utils.py +4 -5
  243. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  244. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  245. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  246. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  247. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  248. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  249. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  250. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  251. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  252. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  253. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  254. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  255. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  256. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  257. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  258. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  259. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  260. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  261. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  262. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  263. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  264. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  265. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  266. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  267. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  268. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -1
  269. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  270. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  271. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  272. mindspore/ops/function/__init__.py +28 -2
  273. mindspore/ops/function/_add_attr_func.py +58 -0
  274. mindspore/ops/function/array_func.py +1631 -2347
  275. mindspore/ops/function/clip_func.py +38 -45
  276. mindspore/ops/function/debug_func.py +36 -44
  277. mindspore/ops/function/grad/__init__.py +1 -0
  278. mindspore/ops/function/grad/grad_func.py +104 -71
  279. mindspore/ops/function/image_func.py +1 -1
  280. mindspore/ops/function/linalg_func.py +46 -78
  281. mindspore/ops/function/math_func.py +3024 -3855
  282. mindspore/ops/function/nn_func.py +678 -274
  283. mindspore/ops/function/other_func.py +159 -1
  284. mindspore/ops/function/parameter_func.py +17 -30
  285. mindspore/ops/function/random_func.py +216 -361
  286. mindspore/ops/function/reshard_func.py +4 -70
  287. mindspore/ops/function/sparse_func.py +3 -3
  288. mindspore/ops/function/sparse_unary_func.py +5 -5
  289. mindspore/ops/function/spectral_func.py +25 -58
  290. mindspore/ops/function/vmap_func.py +26 -18
  291. mindspore/ops/functional.py +8 -5
  292. mindspore/ops/functional_overload.py +655 -4
  293. mindspore/ops/op_info_register.py +32 -244
  294. mindspore/ops/operations/__init__.py +21 -14
  295. mindspore/ops/operations/_custom_ops_utils.py +235 -0
  296. mindspore/ops/operations/_grad_ops.py +1 -10
  297. mindspore/ops/operations/_inner_ops.py +5 -76
  298. mindspore/ops/operations/_ms_kernel.py +4 -10
  299. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  300. mindspore/ops/operations/_scalar_ops.py +3 -2
  301. mindspore/ops/operations/_sequence_ops.py +1 -1
  302. mindspore/ops/operations/_tensor_array.py +1 -1
  303. mindspore/ops/operations/array_ops.py +39 -24
  304. mindspore/ops/operations/comm_ops.py +150 -107
  305. mindspore/ops/operations/custom_ops.py +287 -32
  306. mindspore/ops/operations/debug_ops.py +119 -16
  307. mindspore/ops/operations/inner_ops.py +1 -1
  308. mindspore/ops/operations/linalg_ops.py +1 -58
  309. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  310. mindspore/ops/operations/manually_defined/ops_def.py +746 -79
  311. mindspore/ops/operations/math_ops.py +21 -18
  312. mindspore/ops/operations/nn_ops.py +67 -224
  313. mindspore/ops/operations/other_ops.py +62 -9
  314. mindspore/ops/operations/random_ops.py +13 -7
  315. mindspore/ops/operations/reshard_ops.py +1 -1
  316. mindspore/ops/operations/sparse_ops.py +2 -2
  317. mindspore/ops/primitive.py +43 -32
  318. mindspore/ops/tensor_method.py +243 -17
  319. mindspore/ops_generate/__init__.py +0 -5
  320. mindspore/ops_generate/aclnn/__init__.py +0 -0
  321. mindspore/ops_generate/{aclnn_kernel_register_auto_cc_generator.py → aclnn/aclnn_kernel_register_auto_cc_generator.py} +43 -18
  322. mindspore/ops_generate/{gen_aclnn_implement.py → aclnn/gen_aclnn_implement.py} +49 -51
  323. mindspore/ops_generate/api/__init__.py +0 -0
  324. mindspore/ops_generate/{add_tensor_docs_generator.py → api/add_tensor_docs_generator.py} +9 -7
  325. mindspore/ops_generate/{cpp_create_prim_instance_helper_generator.py → api/cpp_create_prim_instance_helper_generator.py} +6 -9
  326. mindspore/ops_generate/{functional_map_cpp_generator.py → api/functional_map_cpp_generator.py} +25 -12
  327. mindspore/ops_generate/{functional_overload_py_generator.py → api/functional_overload_py_generator.py} +8 -6
  328. mindspore/ops_generate/{functions_cc_generator.py → api/functions_cc_generator.py} +14 -10
  329. mindspore/ops_generate/api/gen_api.py +103 -0
  330. mindspore/ops_generate/{op_api_proto.py → api/op_api_proto.py} +98 -69
  331. mindspore/ops_generate/{tensor_func_reg_cpp_generator.py → api/tensor_func_reg_cpp_generator.py} +82 -43
  332. mindspore/ops_generate/common/__init__.py +0 -0
  333. mindspore/ops_generate/common/gen_constants.py +91 -0
  334. mindspore/ops_generate/{gen_utils.py → common/gen_utils.py} +72 -19
  335. mindspore/ops_generate/{op_proto.py → common/op_proto.py} +64 -1
  336. mindspore/ops_generate/{template.py → common/template.py} +96 -84
  337. mindspore/ops_generate/gen_ops.py +23 -325
  338. mindspore/ops_generate/op_def/__init__.py +0 -0
  339. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  340. mindspore/ops_generate/{lite_ops_cpp_generator.py → op_def/lite_ops_cpp_generator.py} +47 -11
  341. mindspore/ops_generate/{ops_def_cc_generator.py → op_def/ops_def_cc_generator.py} +18 -10
  342. mindspore/ops_generate/{ops_def_h_generator.py → op_def/ops_def_h_generator.py} +5 -5
  343. mindspore/ops_generate/{ops_name_h_generator.py → op_def/ops_name_h_generator.py} +30 -15
  344. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  345. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  346. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  347. mindspore/ops_generate/{op_def_py_generator.py → op_def_py/op_def_py_generator.py} +6 -5
  348. mindspore/ops_generate/{op_prim_py_generator.py → op_def_py/op_prim_py_generator.py} +24 -15
  349. mindspore/ops_generate/pyboost/__init__.py +0 -0
  350. mindspore/ops_generate/{auto_grad_impl_cc_generator.py → pyboost/auto_grad_impl_cc_generator.py} +11 -7
  351. mindspore/ops_generate/{auto_grad_reg_cc_generator.py → pyboost/auto_grad_reg_cc_generator.py} +7 -7
  352. mindspore/ops_generate/{gen_pyboost_func.py → pyboost/gen_pyboost_func.py} +40 -16
  353. mindspore/ops_generate/{op_template_parser.py → pyboost/op_template_parser.py} +105 -24
  354. mindspore/ops_generate/{pyboost_functions_cpp_generator.py → pyboost/pyboost_functions_cpp_generator.py} +55 -18
  355. mindspore/ops_generate/{pyboost_functions_h_generator.py → pyboost/pyboost_functions_h_generator.py} +42 -10
  356. mindspore/ops_generate/{pyboost_functions_py_generator.py → pyboost/pyboost_functions_py_generator.py} +6 -6
  357. mindspore/ops_generate/{pyboost_grad_function_cpp_generator.py → pyboost/pyboost_grad_function_cpp_generator.py} +11 -10
  358. mindspore/ops_generate/{pyboost_inner_prim_generator.py → pyboost/pyboost_inner_prim_generator.py} +8 -7
  359. mindspore/ops_generate/{pyboost_native_grad_functions_generator.py → pyboost/pyboost_native_grad_functions_generator.py} +14 -10
  360. mindspore/ops_generate/{pyboost_op_cpp_code_generator.py → pyboost/pyboost_op_cpp_code_generator.py} +140 -53
  361. mindspore/ops_generate/{pyboost_overload_functions_cpp_generator.py → pyboost/pyboost_overload_functions_cpp_generator.py} +28 -15
  362. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +88 -4
  363. mindspore/ops_generate/resources/__init__.py +0 -0
  364. mindspore/ops_generate/resources/resource_list.py +30 -0
  365. mindspore/ops_generate/resources/resource_loader.py +36 -0
  366. mindspore/ops_generate/resources/resource_manager.py +64 -0
  367. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  368. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  369. mindspore/parallel/__init__.py +6 -2
  370. mindspore/parallel/_auto_parallel_context.py +140 -12
  371. mindspore/parallel/_cell_wrapper.py +132 -15
  372. mindspore/parallel/_parallel_serialization.py +95 -4
  373. mindspore/parallel/_ps_context.py +1 -1
  374. mindspore/parallel/_recovery_context.py +7 -2
  375. mindspore/parallel/_tensor.py +142 -18
  376. mindspore/parallel/_utils.py +198 -25
  377. mindspore/parallel/algo_parameter_config.py +3 -3
  378. mindspore/parallel/auto_parallel.py +732 -0
  379. mindspore/parallel/checkpoint_convert.py +159 -0
  380. mindspore/parallel/checkpoint_transform.py +658 -37
  381. mindspore/parallel/cluster/process_entity/_api.py +151 -19
  382. mindspore/parallel/cluster/run.py +1 -1
  383. mindspore/parallel/function/__init__.py +24 -0
  384. mindspore/parallel/function/reshard_func.py +258 -0
  385. mindspore/parallel/nn/__init__.py +25 -0
  386. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  387. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  388. mindspore/parallel/parameter_broadcast.py +24 -13
  389. mindspore/parallel/shard.py +137 -62
  390. mindspore/parallel/transform_safetensors.py +288 -95
  391. mindspore/pgodb140.dll +0 -0
  392. mindspore/pgort140.dll +0 -0
  393. mindspore/profiler/__init__.py +9 -5
  394. mindspore/profiler/analysis/parser/ascend_cann_parser.py +6 -2
  395. mindspore/profiler/analysis/parser/ms_framework_parser.py +4 -4
  396. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -4
  397. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +25 -0
  398. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  399. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +241 -86
  400. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +41 -2
  401. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +33 -35
  402. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +7 -0
  403. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +8 -3
  404. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +141 -30
  405. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +5 -6
  406. mindspore/profiler/common/ascend_msprof_exporter.py +5 -4
  407. mindspore/profiler/common/constant.py +12 -0
  408. mindspore/profiler/common/msprof_cmd_tool.py +42 -23
  409. mindspore/profiler/common/path_manager.py +24 -0
  410. mindspore/profiler/common/profiler_context.py +26 -2
  411. mindspore/profiler/common/profiler_meta_data.py +74 -0
  412. mindspore/profiler/common/profiler_parameters.py +59 -18
  413. mindspore/profiler/common/profiler_path_manager.py +66 -7
  414. mindspore/profiler/dynamic_profiler.py +112 -79
  415. mindspore/profiler/envprofiler.py +26 -1
  416. mindspore/profiler/experimental_config.py +197 -0
  417. mindspore/profiler/mstx.py +57 -14
  418. mindspore/profiler/platform/npu_profiler.py +33 -7
  419. mindspore/profiler/profiler.py +541 -45
  420. mindspore/profiler/profiler_action_controller.py +1 -1
  421. mindspore/profiler/profiler_interface.py +4 -0
  422. mindspore/profiler/schedule.py +57 -22
  423. mindspore/rewrite/api/node.py +15 -13
  424. mindspore/rewrite/api/symbol_tree.py +1 -1
  425. mindspore/run_check/_check_version.py +25 -14
  426. mindspore/run_check/run_check.py +1 -1
  427. mindspore/runtime/__init__.py +2 -2
  428. mindspore/runtime/executor.py +40 -11
  429. mindspore/runtime/memory.py +37 -13
  430. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  431. mindspore/swresample-4.dll +0 -0
  432. mindspore/swscale-6.dll +0 -0
  433. mindspore/tbbmalloc.dll +0 -0
  434. mindspore/tinyxml2.dll +0 -0
  435. mindspore/train/__init__.py +8 -8
  436. mindspore/train/_utils.py +43 -9
  437. mindspore/train/amp.py +1 -1
  438. mindspore/train/callback/__init__.py +2 -2
  439. mindspore/train/callback/_callback.py +2 -16
  440. mindspore/train/callback/_checkpoint.py +24 -40
  441. mindspore/train/callback/_cluster_monitor.py +14 -18
  442. mindspore/train/callback/_flops_collector.py +2 -3
  443. mindspore/train/callback/_history.py +7 -4
  444. mindspore/train/callback/_lambda_callback.py +2 -2
  445. mindspore/train/callback/_landscape.py +0 -3
  446. mindspore/train/callback/_loss_monitor.py +2 -1
  447. mindspore/train/callback/_on_request_exit.py +6 -5
  448. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  449. mindspore/train/callback/_summary_collector.py +8 -13
  450. mindspore/train/callback/_time_monitor.py +2 -1
  451. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +204 -105
  452. mindspore/train/data_sink.py +25 -2
  453. mindspore/train/dataset_helper.py +4 -5
  454. mindspore/train/loss_scale_manager.py +8 -7
  455. mindspore/train/metrics/accuracy.py +3 -3
  456. mindspore/train/metrics/confusion_matrix.py +9 -9
  457. mindspore/train/metrics/error.py +3 -3
  458. mindspore/train/metrics/hausdorff_distance.py +4 -4
  459. mindspore/train/metrics/mean_surface_distance.py +3 -3
  460. mindspore/train/metrics/metric.py +0 -12
  461. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  462. mindspore/train/metrics/precision.py +8 -6
  463. mindspore/train/metrics/recall.py +9 -9
  464. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  465. mindspore/train/mind_ir_pb2.py +19 -12
  466. mindspore/train/model.py +262 -127
  467. mindspore/train/serialization.py +246 -988
  468. mindspore/train/summary/_summary_adapter.py +2 -2
  469. mindspore/train/summary/summary_record.py +1 -1
  470. mindspore/turbojpeg.dll +0 -0
  471. mindspore/utils/__init__.py +3 -2
  472. mindspore/utils/dryrun.py +4 -2
  473. mindspore/utils/hooks.py +81 -0
  474. mindspore/utils/runtime_execution_order_check.py +2 -0
  475. mindspore/utils/utils.py +138 -4
  476. mindspore/vcmeta.dll +0 -0
  477. mindspore/vcruntime140.dll +0 -0
  478. mindspore/vcruntime140_1.dll +0 -0
  479. mindspore/version.py +1 -1
  480. {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/METADATA +2 -1
  481. {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/RECORD +485 -440
  482. mindspore/_install_custom.py +0 -43
  483. mindspore/common/_register_for_adapter.py +0 -74
  484. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  485. mindspore/ops/auto_generate/gen_arg_handler.py +0 -136
  486. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  487. mindspore/ops_generate/gen_constants.py +0 -190
  488. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  489. mindspore/ops_generate/ops_primitive_h_generator.py +0 -81
  490. /mindspore/ops_generate/{base_generator.py → common/base_generator.py} +0 -0
  491. {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
  492. {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +0 -0
  493. {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
@@ -329,9 +329,11 @@ class TrainOneStepCell(Cell):
329
329
  Args:
330
330
  network (Cell): The training network. The network only supports single output.
331
331
  optimizer (Union[Cell]): Optimizer for updating the network parameters.
332
- sens (numbers.Number): The scaling number to be filled as the input of backpropagation. Default value is
332
+ sens (numbers.Number, optional): The scaling number to be filled as the input of backpropagation.
333
+ Default value is
333
334
  ``None`` , which is ``1.0`` .
334
- return_grad (bool): Whether to return gradient. If ``True``, it will return the gradient in the form of a dict
335
+ return_grad (bool, optional): Whether to return gradient. If ``True``,
336
+ it will return the gradient in the form of a dict
335
337
  while returning loss. The key of the dict is the parameter name corresponding to the gradient, and value
336
338
  is the gradient value. Default value is ``False`` .
337
339
 
@@ -530,6 +532,20 @@ class _VirtualDatasetCell(Cell):
530
532
  return self._backbone(*output)
531
533
 
532
534
 
535
+ def _pipeline_clear_grad(accu_grad, grad):
536
+ accu_grad = F.depend(accu_grad, grad)
537
+ zeros = F.zeros_like(accu_grad)
538
+ return F.assign(accu_grad, zeros)
539
+
540
+ def grad_scale(scale, grad):
541
+ """grad_scale"""
542
+ new_grad = scale * grad
543
+ grad = ops.depend(grad, new_grad)
544
+ zeros = F.zeros_like(grad)
545
+ new_grad = ops.depend(new_grad, F.assign(grad, zeros))
546
+ return new_grad
547
+
548
+
533
549
  @_primexpr
534
550
  def _check_shape_value_on_axis_divided_by_target_value(input_shape, micro_size):
535
551
  if F.isconstant(input_shape[0]) is False:
@@ -572,119 +588,13 @@ class _MicroBatch(Cell):
572
588
  return micro_inputs
573
589
 
574
590
 
575
- class MicroBatchInterleaved(Cell):
576
- """
577
- This function splits the input at the 0th into interleave_num pieces and then performs
578
- the computation of the wrapped cell. Application scenario: When there is model parallelism in semi-automatic mode
579
- and network, if the first slice data is calculating forward, the second slice data will execute the
580
- communication operators at the same time, to achieve the performance acceleration of communication and computing
581
- concurrency.
582
-
583
- Args:
584
- network (Cell): The target network to wrap.
585
- interleave_num (int, optional): split num of batch size. Default: ``2`` .
586
-
587
- Inputs:
588
- tuple[Tensor]. It's the same with the input of the `network` .
589
-
590
- Outputs:
591
- The wrapped input. The output of the input `network` should be a Tensor.
592
-
593
- Supported Platforms:
594
- ``Ascend`` ``GPU``
595
-
596
- Examples:
597
- >>> import mindspore.nn as nn
598
- >>> # Define the network structure of LeNet5. Refer to
599
- >>> # https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
600
- >>> net = LeNet5()
601
- >>> net = nn.MicroBatchInterleaved(net, 2)
602
- """
603
- def __init__(self, network, interleave_num=2):
604
- super(MicroBatchInterleaved, self).__init__(auto_prefix=False)
605
- if not isinstance(interleave_num, int):
606
- raise TypeError("For 'MicroBatchInterleaved', the argument 'interleave_num' must be integer, "
607
- "but got the type : {}.".format(type(interleave_num)))
608
- if interleave_num <= 0:
609
- raise ValueError("For 'MicroBatchInterleaved', the argument 'interleave_num' must be large than 0, "
610
- "but got {}.".format(interleave_num))
611
- self.network = network
612
- self.interleave_num = interleave_num
613
- self.interleave_inputs = nn.CellList()
614
- self.add = P.Add().add_prim_attr("micro_interleaved_add_flag", True)
615
- for _ in range(interleave_num):
616
- interleave_data = _MicroBatch(interleave_num)
617
- interleave_data.strided_slice.add_prim_attr("strided_slice_flag", True)
618
- interleave_data.strided_slice.add_prim_attr("interleave_num", interleave_num)
619
- self.interleave_inputs.append(interleave_data)
620
- self._get_attr_from_cell(network)
621
-
622
- def construct(self, *inputs):
623
- output = 0.0
624
- for i in range(self.interleave_num):
625
- interleave_input = self.interleave_inputs[i](i, *inputs)
626
- output = self.add(output, self.network(*interleave_input))
627
- return output
628
-
629
-
630
- class PipelineCell(Cell):
631
- """
632
- Slice MiniBatch into finer-grained MicroBatch for use in pipeline-parallel training.
633
-
634
- Note:
635
- micro_size must be greater or equal to pipeline stages.
636
-
637
- Args:
638
- network (Cell): The target network to wrap.
639
- micro_size (int): MicroBatch size.
640
-
641
- Supported Platforms:
642
- ``Ascend`` ``GPU``
643
-
644
- Examples:
645
- >>> import mindspore.nn as nn
646
- >>> # Define the network structure of LeNet5. Refer to
647
- >>> # https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
648
- >>> net = LeNet5()
649
- >>> net = nn.PipelineCell(net, 4)
650
- """
651
- def __init__(self, network, micro_size):
652
- super(PipelineCell, self).__init__(auto_prefix=False)
653
- self.network = network
654
- self.micro_inputs = nn.CellList()
655
- self.micro_size = micro_size
656
- self.add_list = []
657
- if not isinstance(network, Cell):
658
- raise TypeError("For 'PipelineCell', the argument 'network' must cell type, "
659
- "but got the type : {}.".format(type(network)))
660
- if not isinstance(micro_size, int):
661
- raise TypeError("For 'PipelineCell', the argument 'micro_size' must be integer, "
662
- "but got the type : {}.".format(type(micro_size)))
663
- if micro_size <= 0:
664
- raise ValueError("For 'PipelineCell', the argument 'micro_size' must be large than 0, "
665
- "but got {}.".format(micro_size))
666
- for i in range(micro_size):
667
- micro_input = _MicroBatch(micro_size)
668
- self.micro_inputs.append(micro_input)
669
- self.add = P.Add().add_prim_attr("pipeline_end", i)
670
- self.add_list.append(self.add)
671
- self._get_attr_from_cell(network)
672
-
673
- def construct(self, *inputs):
674
- ret = None
675
- for i in range(self.micro_size):
676
- micro_input = self.micro_inputs[i](i, *inputs)
677
- output = self.network(*micro_input)
678
- if ret is not None:
679
- ret = self.add_list[i](ret, output)
680
- else:
681
- ret = output
682
- return ret
683
-
684
591
  class GradAccumulationCell(Cell):
685
592
  """
686
593
  Wrap the network with Micro Batch to enable the grad accumulation in semi_auto_parallel/auto_parallel mode.
687
594
 
595
+ Note:
596
+ The api will be deprecated, please use the api :class:`mindspore.parallel.nn.GradAccumulation` instead.
597
+
688
598
  Args:
689
599
  network (Cell): The target network to wrap.
690
600
  micro_size (int): MicroBatch size.
@@ -734,12 +644,6 @@ class GradAccumulationCell(Cell):
734
644
  return ret
735
645
 
736
646
 
737
- def _pipeline_clear_grad(accu_grad, grad):
738
- accu_grad = F.depend(accu_grad, grad)
739
- zeros = F.zeros_like(accu_grad)
740
- return F.assign(accu_grad, zeros)
741
-
742
-
743
647
  class _TrainGradAccuStepCell(TrainOneStepCell):
744
648
  """
745
649
  Wraps the network with an optimizer in pipeline mode.
@@ -751,6 +655,13 @@ class _TrainGradAccuStepCell(TrainOneStepCell):
751
655
  self.opt_shard = _get_enable_parallel_optimizer()
752
656
  self._get_attr_from_cell(network)
753
657
  self.enable_tft = False
658
+ if not self.sense_flag:
659
+ micro_size = 1.0
660
+ for _, cell in network.cells_and_names():
661
+ if hasattr(cell, 'micro_size'):
662
+ micro_size = cell.micro_size
663
+ break
664
+ self.sens = 1 / micro_size
754
665
 
755
666
  def construct(self, *inputs):
756
667
  if not self.sense_flag:
@@ -774,8 +685,10 @@ class _TrainGradAccuStepCell(TrainOneStepCell):
774
685
  grads = self.grad_no_sens(self.network, self.weights)(*inputs)
775
686
  accu_grads = ops.depend(self.accu_grads, grads)
776
687
  if self.opt_shard:
688
+ grads = self.hyper_map(F.partial(grad_scale, self.sens), grads)
777
689
  succ = self.optimizer(grads)
778
690
  else:
691
+ accu_grads = self.hyper_map(F.partial(grad_scale, self.sens), accu_grads)
779
692
  succ = self.optimizer(accu_grads)
780
693
  loss = ops.depend(loss, succ)
781
694
  clear = self.hyper_map(_pipeline_clear_grad, accu_grads, grads)
@@ -964,3 +877,151 @@ class _BroadCastCell(Cell):
964
877
  params = self.broadcast(params)
965
878
  new_params = self.map_(F.partial(_cast_datatype), datatypes, params)
966
879
  return new_params
880
+
881
+
882
+ class PipelineCell(Cell):
883
+ """
884
+ Slice MiniBatch into finer-grained MicroBatch for use in pipeline-parallel training.
885
+
886
+ Note:
887
+ - micro_size must be greater or equal to pipeline stages.
888
+ - The api will be deprecated, please use the api :class:`mindspore.parallel.nn.Pipeline` instead.
889
+
890
+ Args:
891
+ network (Cell): The target network to wrap.
892
+ micro_size (int): MicroBatch size.
893
+ stage_config (dict, optional): The stage configuration for each cell's execution in pipeline parallel.
894
+ Default ``None``.
895
+
896
+ Supported Platforms:
897
+ ``Ascend`` ``GPU``
898
+
899
+ Examples:
900
+ >>> import mindspore.nn as nn
901
+ >>> # Define the network structure of LeNet5. Refer to
902
+ >>> # https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
903
+ >>> net = LeNet5()
904
+ >>> net = nn.PipelineCell(net, 4)
905
+ """
906
+ def __init__(self, network, micro_size, stage_config=None):
907
+ super(PipelineCell, self).__init__(auto_prefix=False)
908
+ self.network = network
909
+ self.micro_inputs = nn.CellList()
910
+ self.micro_size = micro_size
911
+ self.add_list = []
912
+ if not isinstance(network, Cell):
913
+ raise TypeError("For 'PipelineCell', the argument 'network' must cell type, "
914
+ "but got the type : {}.".format(type(network)))
915
+ if not isinstance(micro_size, int):
916
+ raise TypeError("For 'PipelineCell', the argument 'micro_size' must be integer, "
917
+ "but got the type : {}.".format(type(micro_size)))
918
+ if micro_size <= 0:
919
+ raise ValueError("For 'PipelineCell', the argument 'micro_size' must be large than 0, "
920
+ "but got {}.".format(micro_size))
921
+ for i in range(micro_size):
922
+ micro_input = _MicroBatch(micro_size)
923
+ self.micro_inputs.append(micro_input)
924
+ self.add = P.Add().add_prim_attr("pipeline_end", i)
925
+ self.add_list.append(self.add)
926
+ self._get_attr_from_cell(network)
927
+
928
+ # prase stage_config
929
+ config_dict = {}
930
+ if stage_config is not None:
931
+ for cell_name, stage_num in stage_config.items():
932
+ config_cell_name = cell_name
933
+ config_stage_num = stage_num
934
+ config_dict[config_cell_name] = config_stage_num
935
+
936
+ # set cell.stage_config
937
+ for cell_name, cell in self.network.cells_and_names():
938
+ for config_cell_name, config_stage_num in config_dict.copy().items():
939
+ if not cell_name or not config_cell_name:
940
+ continue
941
+ if cell_name == config_cell_name:
942
+ setattr(cell, "pipeline_stage", config_stage_num)
943
+ del config_dict[config_cell_name]
944
+
945
+ for config_cell_name, config_stage_num in config_dict.copy().items():
946
+ if str(network) == config_cell_name:
947
+ setattr(network, "pipeline_stage", config_stage_num)
948
+ del config_dict[config_cell_name]
949
+
950
+ # if there are any config elements left, print them
951
+ if config_dict:
952
+ for config_cell_name, config_stage_num in config_dict.items():
953
+ print("pipeline_cell stage_config set pipeline_stage fail!")
954
+ print("config cell name:" + str(config_cell_name) +
955
+ " config stage num:" + str(config_stage_num))
956
+ print("network:" + str(self.network))
957
+ print("cell name available:")
958
+ for cell_name, cell in self.network.cells_and_names():
959
+ print(cell_name)
960
+ raise KeyError("For 'PipelineCell', the argument 'stage_config' : {} is not "
961
+ "found in 'network' : {}".format(config_dict, network))
962
+
963
+ def construct(self, *inputs):
964
+ ret = None
965
+ for i in range(self.micro_size):
966
+ micro_input = self.micro_inputs[i](i, *inputs)
967
+ output = self.network(*micro_input)
968
+ if ret is not None:
969
+ ret = self.add_list[i](ret, output)
970
+ else:
971
+ ret = output
972
+ return ret
973
+
974
+
975
+ class MicroBatchInterleaved(Cell):
976
+ """
977
+ This function splits the input at the 0th into interleave_num pieces and then performs
978
+ the computation of the wrapped cell. Application scenario: When there is model parallelism in semi-automatic mode
979
+ and network, if the first slice data is calculating forward, the second slice data will execute the
980
+ communication operators at the same time, to achieve the performance acceleration of communication and computing
981
+ concurrency.
982
+
983
+ Args:
984
+ network (Cell): The target network to wrap.
985
+ interleave_num (int, optional): split num of batch size. Default: ``2`` .
986
+
987
+ Inputs:
988
+ tuple[Tensor]. It's the same with the input of the `network` .
989
+
990
+ Outputs:
991
+ The wrapped input. The output of the input `network` should be a Tensor.
992
+
993
+ Supported Platforms:
994
+ ``Ascend`` ``GPU``
995
+
996
+ Examples:
997
+ >>> import mindspore.nn as nn
998
+ >>> # Define the network structure of LeNet5. Refer to
999
+ >>> # https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
1000
+ >>> net = LeNet5()
1001
+ >>> net = nn.MicroBatchInterleaved(net, 2)
1002
+ """
1003
+ def __init__(self, network, interleave_num=2):
1004
+ super(MicroBatchInterleaved, self).__init__(auto_prefix=False)
1005
+ if not isinstance(interleave_num, int):
1006
+ raise TypeError("For 'MicroBatchInterleaved', the argument 'interleave_num' must be integer, "
1007
+ "but got the type : {}.".format(type(interleave_num)))
1008
+ if interleave_num <= 0:
1009
+ raise ValueError("For 'MicroBatchInterleaved', the argument 'interleave_num' must be large than 0, "
1010
+ "but got {}.".format(interleave_num))
1011
+ self.network = network
1012
+ self.interleave_num = interleave_num
1013
+ self.interleave_inputs = nn.CellList()
1014
+ self.add = P.Add().add_prim_attr("micro_interleaved_add_flag", True)
1015
+ for _ in range(interleave_num):
1016
+ interleave_data = _MicroBatch(interleave_num)
1017
+ interleave_data.strided_slice.add_prim_attr("strided_slice_flag", True)
1018
+ interleave_data.strided_slice.add_prim_attr("interleave_num", interleave_num)
1019
+ self.interleave_inputs.append(interleave_data)
1020
+ self._get_attr_from_cell(network)
1021
+
1022
+ def construct(self, *inputs):
1023
+ output = 0.0
1024
+ for i in range(self.interleave_num):
1025
+ interleave_input = self.interleave_inputs[i](i, *inputs)
1026
+ output = self.add(output, self.network(*interleave_input))
1027
+ return output
@@ -1,4 +1,4 @@
1
- # Copyright 2020 Huawei Technologies Co., Ltd
1
+ # Copyright 2025 Huawei Technologies Co., Ltd
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -18,7 +18,6 @@ from __future__ import absolute_import
18
18
  from mindspore import context
19
19
  from mindspore import log as logger
20
20
  from mindspore.nn.cell import Cell
21
- from mindspore.nn.layer import Identity
22
21
  from mindspore.communication.management import GlobalComm, get_group_size
23
22
  from mindspore.common.sparse_tensor import RowTensorInner
24
23
  from mindspore.ops import functional as F, composite as C, operations as P
@@ -28,30 +27,13 @@ import mindspore.common.dtype as mstype
28
27
  from mindspore.common.sparse_tensor import Tensor
29
28
  from mindspore.common.api import jit
30
29
  from mindspore.common.parameter import Parameter
30
+ from mindspore.nn.layer import Identity
31
31
  from mindspore.parallel._utils import _get_enable_parallel_optimizer
32
32
 
33
- reduce_opt = C.MultitypeFuncGraph("reduce_opt")
34
- grad_scale = C.MultitypeFuncGraph("grad_scale")
35
- shard_grad_scale = C.MultitypeFuncGraph("shard_grad_scale")
36
- reciprocal = P.Reciprocal()
33
+ __all__ = ['DistributedGradReducer']
37
34
 
38
35
 
39
- @grad_scale.register("Tensor", "Tensor", "Tensor")
40
- def tensor_grad_scale_pipeline(scale, grad, accu_grad):
41
- accu_grad = F.depend(accu_grad, grad)
42
- new_grad = accu_grad * reciprocal(scale)
43
- accu_grad = F.depend(accu_grad, new_grad)
44
- zeros = F.tensor_mul(accu_grad, 0.0)
45
- new_grad = F.depend(new_grad, F.assign(accu_grad, zeros))
46
- return new_grad
47
-
48
-
49
- @shard_grad_scale.register("Tensor", "Tensor", "Tensor")
50
- def tensor_shard_grad_scale_pipeline(scale, grad, accu_grad):
51
- new_grad = grad * reciprocal(scale)
52
- accu_grad = F.depend(accu_grad, new_grad)
53
- new_grad = F.depend(new_grad, F.assign(accu_grad, F.zeros_like(accu_grad)))
54
- return new_grad
36
+ reduce_opt = C.MultitypeFuncGraph("reduce_opt")
55
37
 
56
38
 
57
39
  def _init_allreduce_operators(length, split_indices, group=GlobalComm.WORLD_COMM_GROUP):
@@ -335,14 +317,14 @@ class DistributedGradReducer(Cell):
335
317
 
336
318
  For the Ascend devices, users need to prepare the rank table, set rank_id and device_id.
337
319
  Please see the `rank table Startup
338
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/rank_table.html>`_
320
+ <https://www.mindspore.cn/tutorials/en/master/parallel/rank_table.html>`_
339
321
  for more details.
340
322
 
341
323
  For the GPU devices, users need to prepare the host file and mpi, please see the `mpirun Startup
342
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/mpirun.html>`_ .
324
+ <https://www.mindspore.cn/tutorials/en/master/parallel/mpirun.html>`_ .
343
325
 
344
326
  For the CPU device, users need to write a dynamic cluster startup script, please see the `Dynamic Cluster
345
- Startup <https://www.mindspore.cn/docs/en/master/model_train/parallel/dynamic_cluster.html>`_ .
327
+ Startup <https://www.mindspore.cn/tutorials/en/master/parallel/dynamic_cluster.html>`_ .
346
328
 
347
329
  This example should be run with multiple devices.
348
330
 
@@ -427,7 +409,8 @@ class DistributedGradReducer(Cell):
427
409
  self.degree = degree
428
410
  self.degree = Tensor(1.0 / self.degree, mstype.float32)
429
411
 
430
- self.allreduce_filter = tuple((x.layerwise_parallel is False) and (x.is_in_shard is False) for x in parameters)
412
+ self.allreduce_filter = tuple((x.layerwise_parallel is False) and
413
+ (not x.param_info.is_in_pynative_shard) for x in parameters)
431
414
  is_parallel_optimizer = context.get_auto_parallel_context("enable_parallel_optimizer")
432
415
  split_indices = auto_parallel_context().get_all_reduce_fusion_split_indices()
433
416
  if is_parallel_optimizer and split_indices:
@@ -447,7 +430,7 @@ class DistributedGradReducer(Cell):
447
430
  self.mode = context.get_context("mode")
448
431
  self.enable_tuple_broaden = True
449
432
 
450
- @jit
433
+ @jit(backend="ms_backend")
451
434
  def construct(self, grads):
452
435
  """
453
436
  Under certain circumstances, the data precision of grads could be mixed with float16 and float32. Thus, the
@@ -488,13 +471,39 @@ class DistributedGradReducer(Cell):
488
471
  raise RuntimeError("{} can not use DistributedGradReducer in graph mode".format(parallel_mode))
489
472
 
490
473
 
474
+ grad_scale = C.MultitypeFuncGraph("grad_scale")
475
+ shard_grad_scale = C.MultitypeFuncGraph("shard_grad_scale")
476
+ reciprocal = P.Reciprocal()
477
+
478
+
479
+ @grad_scale.register("Tensor", "Tensor", "Tensor")
480
+ def tensor_grad_scale_pipeline(scale, grad, accu_grad):
481
+ accu_grad = F.depend(accu_grad, grad)
482
+ new_grad = accu_grad * reciprocal(scale)
483
+ accu_grad = F.depend(accu_grad, new_grad)
484
+ zeros = F.tensor_mul(accu_grad, 0.0)
485
+ new_grad = F.depend(new_grad, F.assign(accu_grad, zeros))
486
+ return new_grad
487
+
488
+
489
+ @shard_grad_scale.register("Tensor", "Tensor", "Tensor")
490
+ def tensor_shard_grad_scale_pipeline(scale, grad, accu_grad):
491
+ new_grad = grad * reciprocal(scale)
492
+ accu_grad = F.depend(accu_grad, new_grad)
493
+ new_grad = F.depend(new_grad, F.assign(accu_grad, F.zeros_like(accu_grad)))
494
+ return new_grad
495
+
496
+
491
497
  class PipelineGradReducer(Cell):
492
498
  """
493
499
  PipelineGradReducer is a gradient reducer for pipeline parallelism.
494
500
 
501
+ Note:
502
+ The api will be deprecated, please use the api :class:`mindspore.parallel.nn.PipelineGradReducer` instead.
503
+
495
504
  Args:
496
505
  parameters (list): the parameters to be updated.
497
- scale_sense (float): the scale sense of the gradient. Default: 1.0.
506
+ scale_sense (float, optional): the scale sense of the gradient. Default: ``1.0``.
498
507
 
499
508
  Raise:
500
509
  RuntimeError: If the mode is not graph mode.
@@ -509,11 +518,11 @@ class PipelineGradReducer(Cell):
509
518
 
510
519
  For the Ascend devices, users need to prepare the rank table, set rank_id and device_id.
511
520
  Please see the `rank table Startup
512
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/rank_table.html>`_
521
+ <https://www.mindspore.cn/tutorials/en/master/parallel/rank_table.html>`_
513
522
  for more details.
514
523
 
515
524
  For the GPU devices, users need to prepare the host file and mpi, please see the `mpirun Startup
516
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/mpirun.html>`_ .
525
+ <https://www.mindspore.cn/tutorials/en/master/parallel/mpirun.html>`_ .
517
526
 
518
527
  This example should be run with multiple devices.
519
528
 
@@ -554,7 +563,7 @@ class PipelineGradReducer(Cell):
554
563
  >>> net.layer3.pipeline_stage = 1
555
564
  >>> loss_fn = nn.CrossEntropyLoss()
556
565
  >>> optimizer = nn.SGD(net.trainable_params(), 1e-2)
557
- >>> net_with_loss = nn.PipelineCell(nn.WithLossCell(net, loss_fn), 2)
566
+ >>> net_with_loss = nn.Pipeline(nn.WithLossCell(net, loss_fn), 2)
558
567
  >>> net_with_loss.set_train()
559
568
  >>> def forward_fn(inputs, target):
560
569
  ... loss = net_with_loss(inputs, target)
@@ -576,7 +585,7 @@ class PipelineGradReducer(Cell):
576
585
  >>> print(loss)
577
586
  46.36721
578
587
  """
579
- def __init__(self, parameters, scale_sense=1.0):
588
+ def __init__(self, parameters, scale_sense=1.0, opt_shard=None):
580
589
  super(PipelineGradReducer, self).__init__(auto_prefix=False)
581
590
  self._check_mode()
582
591
  self.accu_grads = parameters.clone(prefix="accu_grads", init="zeros")
@@ -584,7 +593,10 @@ class PipelineGradReducer(Cell):
584
593
  self.degree = Tensor(1, mstype.float32)
585
594
  self.scale_sense = Parameter(scale_sense, name='scale_sense')
586
595
  self.hyper_map = C.HyperMap()
587
- self.opt_shard = _get_enable_parallel_optimizer()
596
+ if opt_shard is None:
597
+ self.opt_shard = _get_enable_parallel_optimizer()
598
+ else:
599
+ self.opt_shard = opt_shard
588
600
 
589
601
  @jit
590
602
  def construct(self, grads):
@@ -603,6 +615,3 @@ class PipelineGradReducer(Cell):
603
615
  mode = context.get_context('mode')
604
616
  if mode != context.GRAPH_MODE:
605
617
  raise RuntimeError(f"PipelineGradReducer only support graph mode, but get {mode}")
606
- parallel_mode = context.get_auto_parallel_context('parallel_mode')
607
- if parallel_mode not in (context.ParallelMode.SEMI_AUTO_PARALLEL, context.ParallelMode.AUTO_PARALLEL):
608
- raise RuntimeError(f"{parallel_mode} can not use PipelineGradReducer in graph mode")
@@ -92,8 +92,8 @@ class DynamicLossScaleUpdateCell(Cell):
92
92
  Dynamic Loss scale update cell.
93
93
 
94
94
  For loss scaling training, the initial loss scaling value will be set to be `loss_scale_value`.
95
- In each training step, the loss scaling value will be decreased by `loss_scale`/`scale_factor`
96
- when there is an overflow. And it will be increased by `loss_scale` * `scale_factor` if there is no
95
+ In each training step, the loss scaling value will be decreased by :math:`loss\_scale/scale\_factor`
96
+ when there is an overflow. And it will be increased by :math:`loss\_scale * scale\_factor` if there is no
97
97
  overflow for a continuous `scale_window` steps.
98
98
 
99
99
  `get_update_cell` method of :class:`mindspore.amp.DynamicLossScaleManager` will return this class. It will be called
@@ -506,7 +506,7 @@ class TrainOneStepWithLossScaleCell(TrainOneStepCell):
506
506
  overflow = AllFinite()(compute_output)
507
507
 
508
508
  if self.is_distributed:
509
- overflow = P.Cast()(overflow, mstype.int8)
509
+ overflow = P.Cast()(overflow, mstype.float32)
510
510
  overflow = P.Cast()(self.allreduce(overflow), mstype.bool_)
511
511
  return overflow
512
512
 
@@ -30,7 +30,7 @@ from mindspore.ops.primitive import constexpr, _primexpr
30
30
  from mindspore.ops.function.random_func import _get_seed
31
31
  from mindspore.nn.layer.basic import tril as nn_tril
32
32
  from mindspore.nn.layer.basic import triu as nn_triu
33
- from mindspore._c_expression import Tensor as Tensor_
33
+ from mindspore._c_expression import TensorPy as Tensor_
34
34
 
35
35
  from mindspore.numpy.utils import _check_input_for_asarray, _deep_list, _deep_tensor_to_nparray, \
36
36
  _check_input_tensor, _convert_64_to_32, _get_dtype_from_scalar, \
@@ -133,7 +133,7 @@ def asarray_const(a, dtype=None):
133
133
  elif dtype == mstype.int64:
134
134
  dtype = mstype.int32
135
135
  if a.size == 0:
136
- a = Tensor_(a)
136
+ a = Tensor(a)
137
137
 
138
138
  if isinstance(a, onp.ndarray) and dtype is None:
139
139
  if a.dtype is onp.dtype('object'):
@@ -945,7 +945,7 @@ def identity(n, dtype=mstype.float32):
945
945
  @constexpr
946
946
  def empty_compile(dtype, shape):
947
947
  """Returns an empty Tensor."""
948
- return Tensor_(dtype, shape)
948
+ return Tensor(dtype=dtype, shape=shape)
949
949
 
950
950
 
951
951
  def empty(shape, dtype=mstype.float32):
@@ -1945,7 +1945,7 @@ def repeat(a, repeats, axis=None):
1945
1945
  [3 4]]
1946
1946
  """
1947
1947
  a = _to_tensor(a)
1948
- return a.repeat(repeats, axis)
1948
+ return a.repeat_interleave(repeats, axis)
1949
1949
 
1950
1950
 
1951
1951
  def rot90(a, k=1, axes=(0, 1)):
mindspore/numpy/utils.py CHANGED
@@ -18,7 +18,6 @@ from __future__ import absolute_import
18
18
  import types
19
19
 
20
20
  from mindspore.common import Tensor
21
- from mindspore._c_expression import Tensor as Tensor_
22
21
  from mindspore.common import dtype as mstype
23
22
  from mindspore import ops
24
23
 
@@ -129,7 +128,7 @@ def _to_tensor(*args):
129
128
  for arg in args:
130
129
  if isinstance(arg, (int, float, bool, list, tuple)):
131
130
  if isinstance(arg, (list, tuple)) and not arg:
132
- arg = Tensor_(arg)
131
+ arg = Tensor(arg)
133
132
  arg = _convert_64_to_32(_type_convert(Tensor, arg))
134
133
  elif not isinstance(arg, Tensor):
135
134
  _raise_type_error("Expect input to be array like.")
@@ -24,7 +24,6 @@ from mindspore.ops.primitive import constexpr
24
24
  from mindspore.ops.primitive import _primexpr
25
25
  from mindspore.common import dtype as mstype
26
26
  from mindspore.common import Tensor
27
- from mindspore._c_expression import Tensor as Tensor_
28
27
  from mindspore._c_expression import typing
29
28
  from mindspore import _checkparam as validator
30
29
  from mindspore import ops
@@ -282,7 +281,7 @@ def _raise_unimplemented_error(info, param=None):
282
281
  @_primexpr
283
282
  def _empty(dtype, shape):
284
283
  """Returns an uninitialized array with dtype and shape."""
285
- return Tensor_(dtype, shape)
284
+ return Tensor(dtype=dtype, shape=shape)
286
285
 
287
286
 
288
287
  @constexpr
Binary file
Binary file
Binary file
mindspore/ops/__init__.py CHANGED
@@ -31,13 +31,14 @@ from mindspore.ops.op_info_register import op_info_register, custom_info_registe
31
31
  from mindspore.ops.primitive import constexpr
32
32
  from mindspore.ops import composite, operations, functional, function
33
33
  from mindspore.ops import signature
34
- from mindspore.ops.auto_generate import cpp_create_prim_instance_helper, gen_arg_dtype_cast, gen_arg_handler, \
34
+ from mindspore.ops.auto_generate import cpp_create_prim_instance_helper, \
35
35
  gen_extend_func, gen_ops_def, gen_ops_prim, pyboost_inner_prim
36
36
  from mindspore.ops.functional_overload import all_gather_matmul, matmul_reduce_scatter
37
37
  from mindspore.ops.composite import *
38
38
  from mindspore.ops.operations import *
39
39
  from mindspore.ops.function import *
40
40
  from mindspore.ops.functional import *
41
+ from mindspore.ops._utils import arg_dtype_cast, arg_handler
41
42
 
42
43
  __primitive__ = [
43
44
  "prim_attr_register", "prim_arg_register", "Primitive", "PrimitiveWithInfer", "PrimitiveWithCheck", "signature"
@@ -47,7 +48,7 @@ __all__ = ["get_vm_impl_fn", "vm_impl_registry",
47
48
  "op_info_register", "custom_info_register", "AkgGpuRegOp", "AkgAscendRegOp", "AiCPURegOp", "TBERegOp",
48
49
  "CpuRegOp", "CustomRegOp", "DataType",
49
50
  "constexpr", "reshard",
50
- "cpp_create_prim_instance_helper", "gen_arg_dtype_cast", "gen_arg_handler", "gen_extend_func", "gen_ops_def",
51
+ "cpp_create_prim_instance_helper", "arg_dtype_cast", "arg_handler", "gen_extend_func", "gen_ops_def",
51
52
  "gen_ops_prim", "pyboost_inner_prim", "all_gather_matmul", "matmul_reduce_scatter"]
52
53
  __all__.extend(__primitive__)
53
54
  __all__.extend(composite.__all__)