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
@@ -66,18 +66,20 @@ def _cal_total_norm(x, norm_type):
66
66
 
67
67
  def clip_by_norm(x, max_norm, norm_type=2.0, error_if_nonfinite=False):
68
68
  r"""
69
- Clip norm of a set of input Tensors. This norm is the result of calculating the norm of all elements in the input
70
- separately, connecting them into a vector, and then calculating the norm.
69
+ The input Tensor is cropped based on norm. The computation is done by concatenating the norms of
70
+ all the input elementsinto a vector and then computing the norm of that vector.
71
+ The Tensor gradient value corresponding to the `identifier`.
71
72
 
72
73
  Note:
73
74
  The interface is suitable for gradient clipping scenarios, and only supports input of type float.
74
75
 
75
76
  Args:
76
- x (Union(Tensor, list[Tensor], tuple[Tensor])): Input that wishes to be clipped.
77
- max_norm (Union(float, int)): The upper limit of the norm for this group of network parameters.
78
- norm_type (Union(float, int)): Norm type. Default: ``2.0``.
79
- error_if_nonfinite (bool): If it is ``True``, an exception is thrown if the total norm from the input
80
- is nan, inf or -inf. If it is ``False``, no exception will be thrown.Default: ``False`` .
77
+ x (Union[Tensor, list[Tensor], tuple[Tensor]]): Input that wishes to be clipped.
78
+ max_norm (Union[float, int]): The upper limit of the norm for this group of network parameters.
79
+ norm_type (Union[float, int], optional): Norm type. Default: ``2.0``.
80
+ error_if_nonfinite (bool, optional): If it is ``True``,
81
+ an exception is thrown if the total norm from the input
82
+ is nan, inf or -inf. If it is ``False``, no exception will be thrown.Default: ``False`` .
81
83
 
82
84
  Returns:
83
85
  Tensors, a list or tuple of Tensors, representing clipped Tensors.
@@ -224,9 +226,7 @@ def clip_by_value(x, clip_value_min=None, clip_value_max=None):
224
226
 
225
227
  def clamp(input, min=None, max=None):
226
228
  r"""
227
- Clamps tensor values between the specified minimum value and maximum value.
228
-
229
- Limits the value of :math:`input` to a range, whose lower limit is `min` and upper limit is `max` .
229
+ Clamp all elements of the input tensor within the range [min, max].
230
230
 
231
231
  .. math::
232
232
 
@@ -239,41 +239,37 @@ def clamp(input, min=None, max=None):
239
239
 
240
240
  Note:
241
241
  - `min` and `max` cannot be None at the same time;
242
- - When `min` is None and `max` is not None, the elements in Tensor larger than `max` will become `max`;
243
- - When `min` is not None and `max` is None, the elements in Tensor smaller than `min` will become `min`;
242
+ - If `min` is ``None`` , there is no lower bound.
243
+ - if `max` is ``None`` , there is no upper bound.
244
244
  - If `min` is greater than `max`, the value of all elements in Tensor will be set to `max`;
245
- - The data type of `input`, `min` and `max` should support implicit type conversion and cannot be bool type.
246
245
 
247
246
  Args:
248
- input (Tensor): Input data, which type is Tensor. Tensors of arbitrary dimensions are supported.
249
- min (Union(Tensor, float, int), optional): The minimum value. Default: ``None`` .
250
- max (Union(Tensor, float, int), optional): The maximum value. Default: ``None`` .
247
+ input (Tensor): The input tensor.
248
+ min (Union(Tensor, float, int), optional): The minimum value. Default ``None`` .
249
+ max (Union(Tensor, float, int), optional): The maximum value. Default ``None`` .
251
250
 
252
251
  Returns:
253
- Tensor, a clipped Tensor.
254
- The data type and shape are the same as input.
255
-
256
- Raises:
257
- ValueError: If both `min` and `max` are None.
258
- TypeError: If the type of `input` is not in Tensor.
259
- TypeError: If the type of `min` is not in None, Tensor, float or int.
260
- TypeError: If the type of `max` is not in None, Tensor, float or int.
252
+ Tensor
261
253
 
262
254
  Supported Platforms:
263
255
  ``Ascend`` ``GPU`` ``CPU``
264
256
 
265
257
  Examples:
266
- >>> # case 1: the data type of input is Tensor
267
258
  >>> import mindspore
268
- >>> from mindspore import Tensor, ops
269
- >>> import numpy as np
270
- >>> min_value = Tensor(5, mindspore.float32)
271
- >>> max_value = Tensor(20, mindspore.float32)
272
- >>> input = Tensor(np.array([[1., 25., 5., 7.], [4., 11., 6., 21.]]), mindspore.float32)
273
- >>> output = ops.clamp(input, min_value, max_value)
274
- >>> print(output)
275
- [[ 5. 20. 5. 7.]
276
- [ 5. 11. 6. 20.]]
259
+ >>> # case 1: `min` and `max` are integer
260
+ >>> input = mindspore.tensor([[1, 25, 5, 7], [4, 11, 6, 21]])
261
+ >>> mindspore.ops.clamp(input, 5, 20)
262
+ Tensor(shape=[2, 4], dtype=Int64, value=
263
+ [[ 5, 20, 5, 7],
264
+ [ 5, 11, 6, 20]])
265
+ >>>
266
+ >>> # case 2: If `min` and `max` are tensors, their shapes need to be broadcastable with input.
267
+ >>> min = mindspore.tensor([2, 4, 6, 8])
268
+ >>> max = mindspore.tensor([10, 12, 14, 18])
269
+ >>> mindspore.ops.clamp(input, min, max)
270
+ Tensor(shape=[2, 4], dtype=Int64, value=
271
+ [[ 2, 12, 6, 8],
272
+ [ 4, 11, 6, 18]])
277
273
  """
278
274
  if isinstance(min, Tensor) or isinstance(max, Tensor):
279
275
  return clamp_tensor(input, min, max)
@@ -411,30 +407,27 @@ def clip_by_global_norm(x, clip_norm=1.0, use_norm=None):
411
407
  Clips tensor values by the ratio of the sum of their norms.
412
408
 
413
409
  Note:
414
- - Input `x` should be a tuple or list of tensors. Otherwise, it will raise an error.
415
410
  - On the SEMI_AUTO_PARALLEL mode or AUTO_PARALLEL mode, if the input `x` is the gradient,
416
411
  the gradient norm values on all devices will be automatically aggregated by allreduce inserted after
417
412
  the local square sum of the gradients.
418
413
 
419
414
  Args:
420
415
  x (Union(tuple[Tensor], list[Tensor])): Input data to clip.
421
- clip_norm (Union(float, int)): The clipping ratio, it should be greater than 0. Default: ``1.0`` .
422
- use_norm (None): The global norm. Default: ``None`` . Currently only none is supported.
416
+ clip_norm (Union(float, int)): The clipping ratio, it should be greater than 0. Default ``1.0`` .
417
+ use_norm (None): The global norm. Currently only none is supported. Default ``None`` .
423
418
 
424
419
  Returns:
425
- tuple[Tensor], a clipped Tensor. It has the same data type as `x` and each Tensor in the output tuple is the
426
- same as the original input shape.
420
+ Tuple of tensors
427
421
 
428
422
  Supported Platforms:
429
423
  ``Ascend`` ``GPU`` ``CPU``
430
424
 
431
425
  Examples:
432
- >>> from mindspore import Tensor, ops
433
- >>> import numpy as np
434
- >>> x1 = np.array([[2., 3.], [1., 2.]]).astype(np.float32)
435
- >>> x2 = np.array([[1., 4.], [3., 1.]]).astype(np.float32)
436
- >>> input_x = (Tensor(x1), Tensor(x2))
437
- >>> out = ops.clip_by_global_norm(input_x, 1.0)
426
+ >>> import mindspore
427
+ >>> x1 = mindspore.tensor([[2., 3.], [1., 2.]], dtype=mindspore.float32)
428
+ >>> x2 = mindspore.tensor([[1., 4.], [3., 1.]], dtype=mindspore.float32)
429
+ >>> input_x = (x1, x2)
430
+ >>> out = mindspore.ops.clip_by_global_norm(input_x, 1.0)
438
431
  >>> print(out)
439
432
  (Tensor(shape=[2, 2], dtype=Float32, value=
440
433
  [[ 2.98142403e-01, 4.47213590e-01],
@@ -23,9 +23,9 @@ from .._primitive_cache import _get_cache_prim
23
23
 
24
24
  def print_(*input_x):
25
25
  """
26
- Outputs the inputs to stdout. The outputs are printed to screen by default.
26
+ Outputs the inputs to stdout.
27
+ The outputs are printed to screen by default.
27
28
  It can also be saved in a file by setting the parameter `print_file_path` in `context`.
28
- Once set, the output will be saved in the file specified by print_file_path.
29
29
  :func:`mindspore.parse_print` can be employed to reload the data.
30
30
  For more information, please refer to :func:`mindspore.set_context` and :func:`mindspore.parse_print`.
31
31
  In Ascend platform with graph mode, the environment variables `MS_DUMP_SLICE_SIZE` and `MS_DUMP_WAIT_TIME`
@@ -33,7 +33,7 @@ def print_(*input_x):
33
33
 
34
34
  Note:
35
35
  In pynative mode, please use python print function.
36
- In Ascend platform with graph mode, the bool, int and float would be converted into Tensor to print, and
36
+ In Ascend platform with graph mode, the bool, int and float would be converted into tensor to print, and
37
37
  str remains unchanged.
38
38
  This function is used for debugging.
39
39
 
@@ -44,18 +44,14 @@ def print_(*input_x):
44
44
  Returns:
45
45
  Invalid value, should be ignored.
46
46
 
47
- Raises:
48
- TypeError: If `input_x` is not one of the following: Tensor, bool, int, float, str, tuple or list.
49
-
50
47
  Supported Platforms:
51
48
  ``Ascend`` ``GPU`` ``CPU``
52
49
 
53
50
  Examples:
54
- >>> import numpy as np
55
- >>> from mindspore import Tensor, ops
56
- >>> x = Tensor(np.ones([2, 1]).astype(np.int32))
57
- >>> y = Tensor(np.ones([2, 2]).astype(np.int32))
58
- >>> result = ops.print_('Print Tensor x and Tensor y:', x, y)
51
+ >>> import mindspore
52
+ >>> x = mindspore.tensor(mindspore.ops.ones([2, 1], mindspore.int32))
53
+ >>> y = mindspore.tensor(mindspore.ops.ones([2, 2], mindspore.int32))
54
+ >>> result = mindspore.ops.print_('Print Tensor x and Tensor y:', x, y)
59
55
  Print Tensor x and Tensor y:
60
56
  Tensor(shape=[2, 1], dtype=Int32, value=
61
57
  [[1],
@@ -71,10 +67,10 @@ def print_(*input_x):
71
67
 
72
68
  def tensordump(file_name, tensor, mode='out'):
73
69
  """
74
- Save Tensor in numpy's npy format.
70
+ Save tensor in npy format.
75
71
 
76
72
  .. warning::
77
- - The parameter mode will no longer support the value 'all'.
73
+ - The parameter `mode` will no longer support the value 'all'.
78
74
 
79
75
  In Parallel situation, tensordump will dump slice of data at each rank.
80
76
  In Ascend platform with graph mode, Your code OpA --> OpB may compiled as OpA --> RedistributionOps --> OpB.
@@ -89,18 +85,18 @@ def tensordump(file_name, tensor, mode='out'):
89
85
  So the parameter mode is to handle this situation.
90
86
 
91
87
  Assuming OpA's output is used as both tensordump's input parameter and OpB's input parameter.
92
- Different requirements of saving dump data can be achieved by configuring parameter mode:
88
+ Different requirements of saving dump data can be achieved by configuring parameter `mode` :
93
89
 
94
- - If the mode is 'out', the dump data contains only OpA's output slice.
95
- - If the mode is 'in', the dump data contains only OpB's input slice.
90
+ - If the `mode` is 'out', the dump data contains only OpA's output slice.
91
+ - If the `mode` is 'in', the dump data contains only OpB's input slice.
96
92
 
97
- For mode 'in', the input slice npy file format is: fileName_dumpMode_dtype_id.npy.
93
+ For `mode` 'in', the input slice npy file format is: fileName_dumpMode_dtype_id.npy.
98
94
 
99
- For mode 'out', the output slice npy file format is: filename_dtype_id.npy.
95
+ For `mode` 'out', the output slice npy file format is: fileName_dtype_id.npy.
100
96
 
101
97
  - fileName: Value of the parameter file_name
102
- (if parameter file_name is a user-specified path, the value of fileName is the last level of the path).
103
- - dumpMode: Value of the parameter mode.
98
+ (if parameter `file_name` is a user-specified path, the value of fileName is the last level of the path).
99
+ - dumpMode: Value of the parameter `mode`.
104
100
  - dtype: The original data type. Data of type bfloat16 stored in the .npy file will be converted to float32.
105
101
  - id: An auto increment ID.
106
102
 
@@ -108,21 +104,14 @@ def tensordump(file_name, tensor, mode='out'):
108
104
  - In Ascend platform with graph mode, the environment variables `MS_DUMP_SLICE_SIZE` and `MS_DUMP_WAIT_TIME`
109
105
  can be set to solve operator execution failure when outputting big tensor or outputting tensor intensively.
110
106
  - The operator of tensordump doesn't support in control flow.
111
- - If current parallel mode is STAND_ALONE, mode should only be 'out'.
112
- - Parameter mode will be set to 'out' if user doesn't configure it.
107
+ - If current parallel mode is STAND_ALONE, `mode` should only be 'out'.
113
108
  - This function is used for debugging.
114
109
 
115
110
  Args:
116
111
  file_name (str): The path of the npy file saves.
117
112
  tensor (Tensor): The tensor that user want to dump.
118
113
  mode (str, optional): Used to control tensordump behavior, available value is one of ['in', 'out'].
119
- Default value is ``out``.
120
-
121
- Raises:
122
- TypeError: If `file_name` is not str.
123
- TypeError: If `tensor` is not Tensor.
124
- TypeError: If `mode` is not str.
125
- ValueError: If `mode` is not in one of ['in', 'out'].
114
+ Default ``out`` .
126
115
 
127
116
  Supported Platforms:
128
117
  ``Ascend``
@@ -134,38 +123,41 @@ def tensordump(file_name, tensor, mode='out'):
134
123
 
135
124
  >>> import os
136
125
  >>> import numpy as np
137
- >>> import mindspore as ms
138
- >>> from mindspore import nn, Tensor, ops, context
139
- >>> from mindspore.ops import operations as P
126
+ >>> import mindspore
127
+ >>> from mindspore import nn, context
140
128
  >>> from mindspore.communication import init, get_rank
129
+ >>> from mindspore.parallel.auto_parallel import AutoParallel
130
+ >>> from mindspore.nn.utils import no_init_parameters
141
131
  >>> init()
142
132
  >>> rank_id = get_rank()
143
- >>> dump_path = f'dumps/rank_{rank_id}/mul1_mul2.npy'
133
+ >>> dump_path = f'rank_{rank_id}_mul1_mul2.npy'
144
134
  >>> class Net(nn.Cell):
145
135
  ... def __init__(self, strategy1, strategy2):
146
136
  ... super(Net, self).__init__()
147
- ... self.matmul1 = P.MatMul().shard(strategy1)
148
- ... self.matmul2 = P.MatMul().shard(strategy2)
137
+ ... self.matmul1 = mindspore.ops.MatMul().shard(strategy1)
138
+ ... self.matmul2 = mindspore.ops.MatMul().shard(strategy2)
149
139
  ...
150
140
  ... def construct(self, x, y, b):
151
141
  ... out1 = self.matmul1(x, y)
152
- ... ops.tensordump(dump_path, out1, 'out')
142
+ ... mindspore.ops.tensordump(dump_path, out1, 'out')
153
143
  ... out2 = self.matmul2(out1, b)
154
144
  ... return out2
155
145
  ...
156
- >>> ms.set_context(mode=ms.GRAPH_MODE)
146
+ >>> mindspore.set_context(mode=mindspore.GRAPH_MODE)
157
147
  >>> os.environ["MS_DEV_SAVE_GRAPHS"] = "2"
158
- >>> context.set_auto_parallel_context(parallel_mode='semi_auto_parallel', full_batch=True)
159
148
  >>> strategy1 = ((1, 2), (2, 1))
160
149
  >>> strategy2 = ((1, 2), (2, 1))
161
- >>> net = Net(strategy1, strategy2)
162
- >>> x = Tensor(0.1 * np.random.randn(64, 64).astype(np.float32))
163
- >>> y = Tensor(0.1 * np.random.randn(64, 64).astype(np.float32))
164
- >>> b = Tensor(0.1 * np.random.randn(64, 64).astype(np.float32))
165
- >>> out = net(x, y, b)
150
+ >>> with no_init_parameters():
151
+ >>> net = Net(strategy1, strategy2)
152
+ >>> x = mindspore.tensor(0.1 * mindspore.ops.randn(64, 64), mindspore.float32)
153
+ >>> y = mindspore.tensor(0.1 * mindspore.ops.randn(64, 64), mindspore.float32)
154
+ >>> b = mindspore.tensor(0.1 * mindspore.ops.randn(64, 64), mindspore.float32)
155
+ >>> parallel_net = Autoparallel(net, parallel_mode="semi_auto")
156
+ >>> parallel_net.dataset_strategy(config="full_batch")
157
+ >>> out = parallel_net(x, y, b)
166
158
  >>> print(f"out shape is: {out.shape}")
167
159
  >>> # out shape is (64, 64)
168
- >>> matmul1_output_slice = np.load('dumps/rank_0/mul1_mul2_float32_0.npy') # load matmul1's output slice
160
+ >>> matmul1_output_slice = np.load(f'rank_{rank_id}_mul1_mul2_float32_0.npy') # load matmul1's output slice
169
161
  >>> print(f"matmul1_output_slice is loaded, shape is: {matmul1_output_slice.shape}")
170
162
  >>> # matmul1_output_slice is loaded, shape is: (64, 64)
171
163
  """
@@ -27,6 +27,7 @@ from .grad_func import (
27
27
  vjp,
28
28
  linearize,
29
29
  stop_gradient,
30
+ stop_gradient_,
30
31
  get_grad
31
32
  )
32
33
 
@@ -22,12 +22,13 @@ from mindspore.common import Tensor
22
22
  from mindspore.common import dtype as mstype
23
23
  from mindspore.nn.cell import Cell
24
24
  from mindspore.nn.grad.cell_grad import _LinearizeInner
25
- from mindspore.ops.operations.other_ops import stop_gradient_
25
+ from mindspore.ops.operations.other_ops import stop_gradient_op
26
26
  from mindspore.ops.primitive import constexpr, _primexpr
27
27
  from mindspore.ops.function.array_func import ones, expand_dims, size, reshape, broadcast_to, transpose, zeros
28
28
  from mindspore.ops.composite import _Vmap, _Grad, _TaylorOperation, GradOperation
29
29
  from mindspore.ops import operations as P
30
30
  from mindspore.ops.operations import _inner_ops as inner
31
+ from mindspore.ops.auto_generate.gen_ops_prim import inplace_stop_gradient_op
31
32
 
32
33
  cast = P.Cast()
33
34
  dtype = P.DType()
@@ -103,11 +104,13 @@ def grad(fn, grad_position=0, weights=None, has_aux=False, return_ids=False):
103
104
 
104
105
  Args:
105
106
  fn (Union[Cell, Function]): Function to do GradOperation.
106
- grad_position (Union[NoneType, int, tuple[int]]): Index to specify which inputs to be differentiated.
107
- If int, get the gradient with respect to single input.
108
- If tuple, get the gradients with respect to selected inputs. `grad_position` begins with 0.
109
- If None, none derivative of any input will be figured out, and in this case, `weights` is required.
110
- Default: ``0`` .
107
+ grad_position (Union[NoneType, int, tuple[int]]):
108
+ Index to specify which inputs to be differentiated. Default: ``0`` .
109
+
110
+ - If int, get the gradient with respect to single input.
111
+ - If tuple, get the gradients with respect to selected inputs. `grad_position` begins with 0.
112
+ - If None, none derivative of any input will be figured out, and in this case, `weights` is required.
113
+
111
114
  weights (Union[ParameterTuple, Parameter, list[Parameter]]): The parameters of the training network that need to
112
115
  calculate the gradient. `weights` can be got through `weights = net.trainable_params()` .
113
116
  Default: ``None`` .
@@ -237,36 +240,43 @@ def value_and_grad(fn, grad_position=0, weights=None, has_aux=False, return_ids=
237
240
 
238
241
  As for gradient, three typical cases are included:
239
242
 
240
- 1. gradient with respect to inputs. In this case, `grad_position` is not None while `weights` is None.
241
- 2. gradient with respect to weights. In this case, `grad_position` is None while `weights` is not None.
242
- 3. gradient with respect to inputs and weights. In this case, `grad_position` and `weights` are not None.
243
+ 1. gradient with respect to inputs. In this case, `grad_position` is not None while `weights` is ``None``.
244
+ 2. gradient with respect to weights. In this case, `grad_position` is None while `weights` is not ``None``.
245
+ 3. gradient with respect to inputs and weights. In this case, `grad_position` and `weights` are not ``None``.
243
246
 
244
247
  Args:
245
248
  fn (Union[Cell, Function]): Function to do GradOperation.
246
- grad_position (Union[NoneType, int, tuple[int]]): Index to specify which inputs to be differentiated.
247
- If int, get the gradient with respect to single input.
248
- If tuple, get the gradients with respect to selected inputs. `grad_position` begins with 0.
249
- If None, none derivative of any input will be solved, and in this case, `weights` is required.
250
- Default: ``0`` .
251
- weights (Union[ParameterTuple, Parameter, list[Parameter]]): The parameters of the training network that need to
249
+ grad_position (Union[NoneType, int, tuple[int]], optional): Index to specify which inputs
250
+ to be differentiated. Default: ``0`` .
251
+
252
+ - If int, get the gradient with respect to single input.
253
+ - If tuple, get the gradients with respect to selected inputs. `grad_position` begins with 0.
254
+ - If None, none derivative of any input will be solved, and in this case, `weights` is required.
255
+
256
+ weights (Union[ParameterTuple, Parameter, list[Parameter]], optional):
257
+ The parameters of the training network that need to
252
258
  calculate the gradient. `weights` can be got through `weights = net.trainable_params()` .
253
259
  Default: ``None`` .
254
- has_aux (bool): If ``True`` , only the first output of `fn` contributes the gradient of `fn`, while the other
260
+ has_aux (bool, optional): If ``True`` , only the first output of `fn` contributes the gradient of `fn`,
261
+ while the other
255
262
  outputs will be returned straightly. It means the `fn` must return more than one outputs in this case.
256
263
  Default: ``False`` .
257
- return_ids(bool): Whether return the tuple made by gradients and the index to specify which inputs
258
- to be differentiated or the name of parameters of the training network that need to calculate the gradient.
259
- If ``True`` , the output gradients will be replaced by the tuples made by gradients and the index to specify
260
- which inputs to be differentiated or the name of parameters of the training network.
264
+ return_ids(bool, optional): Whether the returned derivation function contains
265
+ `grad_position` or `weights` information. If ``True``,
266
+ all gradient values in the returned derivation function will be replaced
267
+ with: [gradient, grad_position] or [gradient, weights].
261
268
  Default: ``False`` .
262
269
 
263
270
  Returns:
264
- Function, returns the gradient function to calculate forward output and gradient for the input function or cell.
271
+ Function, the derivative function used to compute the gradient of a given function.
265
272
  For example, as for `out1, out2 = fn(*args)` , gradient function will return outputs like
266
- `((out1, out2), gradient)` . When `has_aux` is set to ``True``, only `out1` contributes to the differentiation.
273
+ `((out1, out2), gradient)` . When `has_aux` is set to ``True``,
274
+ only `out1` contributes to the differentiation. If `return_ids` is ``True``,
275
+ all gradient values in the returned derivation function will be replaced
276
+ with: [gradient, grad_position] or [gradient, weights].
267
277
 
268
278
  Raises:
269
- ValueError: If both `grad_position` and `weights` are None.
279
+ ValueError: If both `grad_position` and `weights` are ``None``.
270
280
  TypeError: If type of Args does not belong to required ones.
271
281
 
272
282
  Supported Platforms:
@@ -378,10 +388,10 @@ def get_grad(gradients, identifier):
378
388
  :func:`mindspore.grad`.
379
389
 
380
390
  Returns:
381
- The gradient of the tensor on the position or in the parameter that specified by the `identifier`.
391
+ The Tensor gradient value corresponding to the `identifier`.
382
392
 
383
393
  Raises:
384
- RuntimeError: If gradient is not found.
394
+ RuntimeError: If gradient value corresponding to the `identifier` is not found.
385
395
  TypeError: If type of Args does not belong to required ones.
386
396
 
387
397
  Supported Platforms:
@@ -457,49 +467,42 @@ def jet(fn, primals, series):
457
467
  while the other to 0, which is like the derivative of origin input with respect to itself.
458
468
 
459
469
  Note:
460
- If `primals` is Tensor of int type, it will be converted to Tensor of float type.
470
+ If `primals` is tensor of int type, it will be converted to Tensor of float type.
461
471
 
462
472
  Args:
463
473
  fn (Union[Cell, function]): Function to do TaylorOperation.
464
474
  primals (Union[Tensor, tuple[Tensor]]): The inputs to `fn`.
465
- series (Union[Tensor, tuple[Tensor]]): If tuple, the length and type of series should be the same as inputs.
466
- For each Tensor, the length of first dimension `i` represents the `1` to `i+1`-th order of derivative of
467
- output with respect to the inputs will be figured out.
475
+ series (Union[Tensor, tuple[Tensor]]): The original 1st to nth order derivatives of the input.
476
+ The index `i` of the zeroth dimension of the tensor corresponds to the `i+1` -th order derivative of the
477
+ output with respect to the input.
468
478
 
469
479
  Returns:
470
- Tuple, tuple of out_primals and out_series.
480
+ Tuple(out_primals, out_series)
471
481
 
472
482
  - **out_primals** (Union[Tensor, list[Tensor]]) - The output of `fn(primals)`.
473
- - **out_series** (Union[Tensor, list[Tensor]]) - The `1` to `i+1`-th order of derivative of output with respect
483
+ - **out_series** (Union[Tensor, list[Tensor]]) - The `1` to `i+1` -th order of derivative of output with respect
474
484
  to the inputs.
475
485
 
476
- Raises:
477
- TypeError: If `primals` is not a tensor or tuple of tensors.
478
- TypeError: If type of `primals` is not the same as type of `series`.
479
-
480
486
  Supported Platforms:
481
487
  ``Ascend`` ``GPU`` ``CPU``
482
488
 
483
489
  Examples:
484
- >>> import numpy as np
485
- >>> import mindspore.nn as nn
486
- >>> import mindspore as ms
487
- >>> from mindspore import ops
488
- >>> from mindspore import Tensor
489
- >>> ms.set_context(mode=ms.GRAPH_MODE)
490
+ >>> import mindspore
491
+ >>> from mindspore import nn
492
+ >>> mindspore.set_context(mode=mindspore.GRAPH_MODE)
490
493
  >>> class Net(nn.Cell):
491
494
  ... def __init__(self):
492
495
  ... super().__init__()
493
- ... self.sin = ops.Sin()
494
- ... self.exp = ops.Exp()
496
+ ... self.sin = mindspore.ops.Sin()
497
+ ... self.exp = mindspore.ops.Exp()
495
498
  ... def construct(self, x):
496
499
  ... out1 = self.sin(x)
497
500
  ... out2 = self.exp(out1)
498
501
  ... return out2
499
- >>> primals = Tensor(np.array([[1, 2], [3, 4]]).astype(np.float32))
500
- >>> series = Tensor(np.array([[[1, 1], [1, 1]], [[0, 0], [0, 0]], [[0, 0], [0, 0]]]).astype(np.float32))
502
+ >>> primals = mindspore.tensor([[1, 2], [3, 4]], mindspore.float32)
503
+ >>> series = mindspore.tensor([[[1, 1], [1, 1]], [[0, 0], [0, 0]], [[0, 0], [0, 0]]], mindspore.float32)
501
504
  >>> net = Net()
502
- >>> out_primals, out_series = ops.jet(net, primals, series)
505
+ >>> out_primals, out_series = mindspore.ops.jet(net, primals, series)
503
506
  >>> print(out_primals, out_series)
504
507
  [[2.319777 2.4825778]
505
508
  [1.1515628 0.4691642]] [[[ 1.2533808 -1.0331168 ]
@@ -567,49 +570,41 @@ def derivative(fn, primals, order):
567
570
  input first order derivative is set to 1, while the other to 0.
568
571
 
569
572
  Note:
570
- If `primals` is Tensor of int type, it will be converted to Tensor of float type.
573
+ If `primals` is tensor of int type, it will be converted to tensor of float type.
571
574
 
572
575
  Args:
573
576
  fn (Union[Cell, function]): Function to do TaylorOperation.
574
577
  primals (Union[Tensor, tuple[Tensor]]): The inputs to `fn`.
575
- order (int): For each Tensor, the `order`-th order of derivative of output with respect to the inputs will be
576
- figured out.
578
+ order (int): The order of differentiation.
577
579
 
578
580
  Returns:
579
- Tuple, tuple of out_primals and out_series.
581
+ Tuple(out_primals, out_series)
580
582
 
581
583
  - **out_primals** (Union[Tensor, list[Tensor]]) - The output of `fn(primals)`.
582
584
  - **out_series** (Union[Tensor, list[Tensor]]) - The `order`-th order of derivative of output with respect
583
585
  to the inputs.
584
586
 
585
- Raises:
586
- TypeError: If `primals` is not a tensor or tuple of tensors.
587
- TypeError: If `order` is not int.
588
- ValueError: If `order` is less than 1.
589
-
590
587
  Supported Platforms:
591
588
  ``Ascend`` ``GPU`` ``CPU``
592
589
 
593
590
  Examples:
594
- >>> import numpy as np
595
- >>> import mindspore as ms
596
- >>> import mindspore.nn as nn
597
- >>> from mindspore import ops
598
- >>> from mindspore import Tensor
599
- >>> ms.set_context(mode=ms.GRAPH_MODE)
591
+ >>> import mindspore
592
+ >>> from mindspore import nn
593
+ >>> mindspore.set_context(mode=mindspore.GRAPH_MODE)
600
594
  >>> class Net(nn.Cell):
601
595
  ... def __init__(self):
602
596
  ... super().__init__()
603
- ... self.sin = ops.Sin()
604
- ... self.exp = ops.Exp()
597
+ ... self.sin = mindspore.ops.Sin()
598
+ ... self.exp = mindspore.ops.Exp()
605
599
  ... def construct(self, x):
606
600
  ... out1 = self.sin(x)
607
601
  ... out2 = self.exp(out1)
608
602
  ... return out2
609
- >>> primals = Tensor(np.array([[1, 2], [3, 4]]).astype(np.float32))
603
+ >>>
604
+ >>> primals = mindspore.tensor([[1, 2], [3, 4]], mindspore.float32)
610
605
  >>> order = 3
611
606
  >>> net = Net()
612
- >>> out_primals, out_series = ops.derivative(net, primals, order)
607
+ >>> out_primals, out_series = mindspore.ops.derivative(net, primals, order)
613
608
  >>> print(out_primals, out_series)
614
609
  [[2.319777 2.4825778]
615
610
  [1.1515628 0.4691642]] [[-4.0515366 3.6724353 ]
@@ -677,7 +672,7 @@ def jvp(fn, inputs, v, has_aux=False):
677
672
  - **net_output** (Union[Tensor, tuple[Tensor]]) - The output of `fn(inputs)` . Specially, when `has_aux` is set
678
673
  ``True`` , `netout` is the first output of `fn(inputs)` .
679
674
  - **jvp** (Union[Tensor, tuple[Tensor]]) - The result of jacobian-vector-product.
680
- - **aux_value** (Union[Tensor, tuple[Tensor]], optional) - When `has_aux` is ``True`` , `aux_value` will be
675
+ - **aux_value** (Union[Tensor, tuple[Tensor]], optional) - Only when `has_aux` is ``True`` , `aux_value` will be
681
676
  returned. It means the second to last outputs of `fn(inputs)` . Specially, `aux_value` does not contribute to
682
677
  gradient.
683
678
 
@@ -841,7 +836,7 @@ def linearize(fn, inputs):
841
836
  """
842
837
  linearize_inner = _LinearizeInner()
843
838
 
844
- @jit(hash_args=fn)
839
+ @jit
845
840
  def _wrap_container(*arg):
846
841
  args = arg[1:-1]
847
842
  vectors = arg[-1]
@@ -882,10 +877,12 @@ def vjp(fn, *inputs, weights=None, has_aux=False):
882
877
  fn (Union[Function, Cell]): The function or net that takes Tensor inputs and returns single Tensor or tuple of
883
878
  Tensors.
884
879
  inputs (Union[Tensor, tuple[Tensor], list[Tensor]]): The inputs to `fn` .
885
- weights (Union[ParameterTuple, Parameter, list[Parameter]]): The parameters of the training network that need to
880
+ weights (Union[ParameterTuple, Parameter, list[Parameter]], optional):
881
+ The parameters of the training network that need to
886
882
  calculate the gradient. `weights` can be got through `weights = net.trainable_params()` .
887
883
  Default: ``None`` .
888
- has_aux (bool): If True, only the first output of `fn` contributes the gradient of `fn`, while the other outputs
884
+ has_aux (bool, optional): If True, only the first output of `fn` contributes the gradient of `fn`,
885
+ while the other outputs
889
886
  will be returned straightly. It means the `fn` must return more than one outputs in this case.
890
887
  Default: ``False``.
891
888
 
@@ -1388,6 +1385,41 @@ def stop_gradient(value):
1388
1385
  Supported Platforms:
1389
1386
  ``Ascend`` ``GPU`` ``CPU``
1390
1387
 
1388
+ Examples:
1389
+ >>> import mindspore
1390
+ >>> def f1(x):
1391
+ ... return x ** 2
1392
+ >>> x = 3.0
1393
+ >>> f1(x)
1394
+ 9.0
1395
+ >>> mindspore.ops.grad(f1)(mindspore.tensor(x))
1396
+ Tensor(shape=[], dtype=Float32, value= 6)
1397
+ >>>
1398
+ >>> # The same function with stop_gradient, return a zero gradient because x is effectively treated as a constant.
1399
+ >>> def f2(x):
1400
+ ... return mindspore.ops.stop_gradient(x) ** 2
1401
+ >>> f2(x)
1402
+ 9.0
1403
+ >>> mindspore.ops.grad(f2)(mindspore.tensor(x))
1404
+ Tensor(shape=[], dtype=Float32, value= 0)
1405
+ """
1406
+ return stop_gradient_op(value)
1407
+
1408
+
1409
+ def stop_gradient_(input):
1410
+ """
1411
+ StopGradient inplace
1412
+
1413
+ Args:
1414
+ input (Tensor): input tensor
1415
+
1416
+ Raises:
1417
+ TypeError: If `input` is not a Tensor.
1418
+ RuntimeError: If `input` is a view tensor.
1419
+
1420
+ Supported Platforms:
1421
+ ``Ascend``
1422
+
1391
1423
  Examples:
1392
1424
  >>> from mindspore import ops
1393
1425
  >>> from mindspore import Tensor
@@ -1395,7 +1427,7 @@ def stop_gradient(value):
1395
1427
  >>> def net(x, y):
1396
1428
  ... out1 = ops.MatMul()(x, y)
1397
1429
  ... out2 = ops.MatMul()(x, y)
1398
- ... out2 = ops.stop_gradient(out2)
1430
+ ... ops.stop_gradient_(out2)
1399
1431
  ... return out1, out2
1400
1432
  ...
1401
1433
  >>> x = Tensor([[0.5, 0.6, 0.4], [1.2, 1.3, 1.1]], dtype=mstype.float32)
@@ -1406,7 +1438,7 @@ def stop_gradient(value):
1406
1438
  [[1.4100001 1.6 6.5999994]
1407
1439
  [1.4100001 1.6 6.5999994]]
1408
1440
  """
1409
- return stop_gradient_(value)
1441
+ inplace_stop_gradient_op(input)
1410
1442
 
1411
1443
 
1412
1444
  __all__ = [
@@ -1420,6 +1452,7 @@ __all__ = [
1420
1452
  'vjp',
1421
1453
  'linearize',
1422
1454
  'stop_gradient',
1455
+ 'stop_gradient_',
1423
1456
  'get_grad'
1424
1457
  ]
1425
1458
  __all__.sort()