mindspore 2.5.0__cp310-cp310-win_amd64.whl → 2.6.0rc1__cp310-cp310-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 (491) 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.cp310-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp310-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp310-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 +24 -193
  20. mindspore/_extends/parse/resources.py +1 -5
  21. mindspore/_extends/parse/standard_method.py +97 -74
  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 +1915 -3287
  46. mindspore/common/api.py +341 -354
  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/hook_handle.py +5 -3
  52. mindspore/common/initializer.py +10 -6
  53. mindspore/common/jit_begin_end.py +94 -0
  54. mindspore/common/jit_config.py +6 -1
  55. mindspore/common/jit_context.py +76 -0
  56. mindspore/common/jit_trace.py +378 -0
  57. mindspore/common/lazy_inline.py +2 -2
  58. mindspore/common/mutable.py +5 -4
  59. mindspore/common/parameter.py +106 -39
  60. mindspore/common/seed.py +2 -2
  61. mindspore/common/sparse_tensor.py +23 -17
  62. mindspore/common/tensor.py +297 -714
  63. mindspore/communication/__init__.py +7 -5
  64. mindspore/communication/_comm_helper.py +47 -2
  65. mindspore/communication/comm_func.py +70 -53
  66. mindspore/communication/management.py +83 -17
  67. mindspore/context.py +214 -560
  68. mindspore/dataset/__init__.py +44 -20
  69. mindspore/dataset/audio/__init__.py +2 -8
  70. mindspore/dataset/audio/transforms.py +3 -17
  71. mindspore/dataset/core/config.py +3 -3
  72. mindspore/dataset/engine/cache_client.py +1 -1
  73. mindspore/dataset/engine/datasets.py +102 -120
  74. mindspore/dataset/engine/datasets_audio.py +22 -22
  75. mindspore/dataset/engine/datasets_standard_format.py +43 -24
  76. mindspore/dataset/engine/datasets_text.py +78 -85
  77. mindspore/dataset/engine/datasets_user_defined.py +108 -76
  78. mindspore/dataset/engine/datasets_vision.py +111 -108
  79. mindspore/dataset/engine/iterators.py +5 -3
  80. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  81. mindspore/dataset/engine/samplers.py +279 -57
  82. mindspore/dataset/engine/serializer_deserializer.py +2 -1
  83. mindspore/dataset/engine/validators.py +10 -0
  84. mindspore/dataset/text/__init__.py +7 -6
  85. mindspore/dataset/text/transforms.py +6 -5
  86. mindspore/dataset/text/utils.py +3 -3
  87. mindspore/dataset/transforms/__init__.py +0 -9
  88. mindspore/dataset/transforms/transforms.py +3 -3
  89. mindspore/dataset/utils/browse_dataset.py +1 -1
  90. mindspore/dataset/vision/__init__.py +2 -9
  91. mindspore/dataset/vision/transforms.py +202 -158
  92. mindspore/dataset/vision/utils.py +7 -5
  93. mindspore/device_context/ascend/op_debug.py +60 -1
  94. mindspore/device_context/ascend/op_tuning.py +0 -4
  95. mindspore/device_manager.py +39 -3
  96. mindspore/dnnl.dll +0 -0
  97. mindspore/dpcmi.dll +0 -0
  98. mindspore/experimental/es/embedding_service.py +35 -27
  99. mindspore/experimental/map_parameter.py +4 -4
  100. mindspore/experimental/optim/adadelta.py +22 -26
  101. mindspore/experimental/optim/adagrad.py +4 -4
  102. mindspore/experimental/optim/adam.py +4 -0
  103. mindspore/experimental/optim/adamax.py +4 -4
  104. mindspore/experimental/optim/adamw.py +4 -0
  105. mindspore/experimental/optim/asgd.py +1 -1
  106. mindspore/experimental/optim/lr_scheduler.py +40 -22
  107. mindspore/experimental/optim/radam.py +5 -5
  108. mindspore/experimental/optim/rprop.py +1 -1
  109. mindspore/experimental/optim/sgd.py +1 -1
  110. mindspore/hal/contiguous_tensors_handle.py +6 -10
  111. mindspore/hal/device.py +55 -81
  112. mindspore/hal/event.py +38 -55
  113. mindspore/hal/memory.py +93 -144
  114. mindspore/hal/stream.py +81 -125
  115. mindspore/include/dataset/constants.h +7 -4
  116. mindspore/include/dataset/execute.h +2 -2
  117. mindspore/jpeg62.dll +0 -0
  118. mindspore/log.py +40 -2
  119. mindspore/mindrecord/__init__.py +20 -7
  120. mindspore/mindspore_backend_common.dll +0 -0
  121. mindspore/mindspore_backend_manager.dll +0 -0
  122. mindspore/mindspore_common.dll +0 -0
  123. mindspore/mindspore_core.dll +0 -0
  124. mindspore/mindspore_dump.dll +0 -0
  125. mindspore/mindspore_frontend.dll +0 -0
  126. mindspore/mindspore_glog.dll +0 -0
  127. mindspore/mindspore_memory_pool.dll +0 -0
  128. mindspore/mindspore_ms_backend.dll +0 -0
  129. mindspore/mindspore_ops.dll +0 -0
  130. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  131. mindspore/mindspore_ops_kernel_common.dll +0 -0
  132. mindspore/mindspore_profiler.dll +0 -0
  133. mindspore/mindspore_pyboost.dll +0 -0
  134. mindspore/mindspore_pynative.dll +0 -0
  135. mindspore/mindspore_res_manager.dll +0 -0
  136. mindspore/mindspore_runtime_pipeline.dll +0 -0
  137. mindspore/mint/__init__.py +131 -700
  138. mindspore/mint/distributed/__init__.py +5 -1
  139. mindspore/mint/distributed/distributed.py +194 -109
  140. mindspore/mint/linalg/__init__.py +2 -0
  141. mindspore/mint/nn/__init__.py +280 -18
  142. mindspore/mint/nn/functional.py +282 -64
  143. mindspore/mint/nn/layer/__init__.py +4 -0
  144. mindspore/mint/nn/layer/_functions.py +7 -3
  145. mindspore/mint/nn/layer/activation.py +120 -13
  146. mindspore/mint/nn/layer/conv.py +218 -24
  147. mindspore/mint/nn/layer/normalization.py +15 -16
  148. mindspore/mint/nn/layer/padding.py +1 -1
  149. mindspore/mint/nn/layer/pooling.py +66 -1
  150. mindspore/mint/optim/__init__.py +2 -1
  151. mindspore/mint/optim/sgd.py +171 -0
  152. mindspore/msobj140.dll +0 -0
  153. mindspore/mspdb140.dll +0 -0
  154. mindspore/mspdbcore.dll +0 -0
  155. mindspore/mspdbst.dll +0 -0
  156. mindspore/mspft140.dll +0 -0
  157. mindspore/msvcdis140.dll +0 -0
  158. mindspore/msvcp140_1.dll +0 -0
  159. mindspore/msvcp140_2.dll +0 -0
  160. mindspore/msvcp140_atomic_wait.dll +0 -0
  161. mindspore/msvcp140_codecvt_ids.dll +0 -0
  162. mindspore/nn/__init__.py +4 -1
  163. mindspore/nn/cell.py +1250 -176
  164. mindspore/nn/layer/activation.py +23 -21
  165. mindspore/nn/layer/basic.py +22 -16
  166. mindspore/nn/layer/container.py +1 -1
  167. mindspore/nn/layer/conv.py +22 -17
  168. mindspore/nn/layer/embedding.py +9 -8
  169. mindspore/nn/layer/normalization.py +48 -42
  170. mindspore/nn/layer/pooling.py +75 -31
  171. mindspore/nn/layer/transformer.py +11 -10
  172. mindspore/nn/learning_rate_schedule.py +4 -2
  173. mindspore/nn/loss/loss.py +27 -19
  174. mindspore/nn/optim/ada_grad.py +6 -5
  175. mindspore/nn/optim/adadelta.py +9 -7
  176. mindspore/nn/optim/adafactor.py +1 -1
  177. mindspore/nn/optim/adam.py +16 -12
  178. mindspore/nn/optim/adamax.py +8 -7
  179. mindspore/nn/optim/adasum.py +5 -5
  180. mindspore/nn/optim/asgd.py +1 -1
  181. mindspore/nn/optim/ftrl.py +11 -9
  182. mindspore/nn/optim/lamb.py +1 -1
  183. mindspore/nn/optim/lazyadam.py +12 -10
  184. mindspore/nn/optim/momentum.py +7 -6
  185. mindspore/nn/optim/optimizer.py +2 -2
  186. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  187. mindspore/nn/optim/rmsprop.py +13 -12
  188. mindspore/nn/optim/rprop.py +9 -7
  189. mindspore/nn/optim/sgd.py +9 -6
  190. mindspore/nn/optim/tft_wrapper.py +5 -2
  191. mindspore/nn/probability/bijector/bijector.py +17 -11
  192. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  193. mindspore/nn/probability/bijector/invert.py +2 -2
  194. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  195. mindspore/nn/probability/bijector/softplus.py +3 -2
  196. mindspore/nn/probability/distribution/beta.py +3 -3
  197. mindspore/nn/probability/distribution/categorical.py +1 -1
  198. mindspore/nn/probability/distribution/cauchy.py +4 -2
  199. mindspore/nn/probability/distribution/exponential.py +6 -7
  200. mindspore/nn/probability/distribution/gamma.py +2 -2
  201. mindspore/nn/probability/distribution/gumbel.py +2 -2
  202. mindspore/nn/probability/distribution/half_normal.py +5 -3
  203. mindspore/nn/probability/distribution/logistic.py +5 -3
  204. mindspore/nn/probability/distribution/poisson.py +1 -1
  205. mindspore/nn/probability/distribution/uniform.py +5 -3
  206. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  207. mindspore/nn/reinforcement/tensor_array.py +1 -1
  208. mindspore/nn/wrap/__init__.py +6 -6
  209. mindspore/nn/wrap/cell_wrapper.py +178 -117
  210. mindspore/nn/wrap/grad_reducer.py +45 -36
  211. mindspore/nn/wrap/loss_scale.py +3 -3
  212. mindspore/numpy/array_creations.py +3 -3
  213. mindspore/numpy/array_ops.py +1 -1
  214. mindspore/numpy/math_ops.py +4 -4
  215. mindspore/numpy/utils.py +1 -2
  216. mindspore/numpy/utils_const.py +1 -2
  217. mindspore/opencv_core452.dll +0 -0
  218. mindspore/opencv_imgcodecs452.dll +0 -0
  219. mindspore/opencv_imgproc452.dll +0 -0
  220. mindspore/ops/__init__.py +3 -2
  221. mindspore/ops/_grad_experimental/grad_comm_ops.py +18 -3
  222. mindspore/ops/_grad_experimental/grad_debug_ops.py +8 -1
  223. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  224. mindspore/ops/_register_for_op.py +0 -11
  225. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  226. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -4
  227. mindspore/ops/_vmap/vmap_array_ops.py +7 -6
  228. mindspore/ops/_vmap/vmap_grad_nn_ops.py +2 -1
  229. mindspore/ops/_vmap/vmap_math_ops.py +4 -7
  230. mindspore/ops/_vmap/vmap_nn_ops.py +9 -8
  231. mindspore/ops/auto_generate/__init__.py +4 -3
  232. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +102 -49
  233. mindspore/ops/auto_generate/gen_extend_func.py +281 -135
  234. mindspore/ops/auto_generate/gen_ops_def.py +2574 -2326
  235. mindspore/ops/auto_generate/gen_ops_prim.py +8566 -2755
  236. mindspore/ops/auto_generate/pyboost_inner_prim.py +106 -76
  237. mindspore/ops/composite/__init__.py +2 -1
  238. mindspore/ops/composite/base.py +19 -24
  239. mindspore/ops/composite/math_ops.py +6 -16
  240. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  241. mindspore/ops/composite/multitype_ops/_compile_utils.py +2 -3
  242. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  243. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  244. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  245. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  246. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  247. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  248. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  249. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  250. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  251. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  252. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  253. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  254. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  255. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  256. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  257. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  258. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  259. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  260. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  261. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  262. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  263. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  264. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  265. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  266. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  267. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -1
  268. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  269. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  270. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  271. mindspore/ops/function/__init__.py +28 -2
  272. mindspore/ops/function/_add_attr_func.py +58 -0
  273. mindspore/ops/function/array_func.py +1629 -2345
  274. mindspore/ops/function/clip_func.py +38 -45
  275. mindspore/ops/function/debug_func.py +36 -44
  276. mindspore/ops/function/grad/__init__.py +1 -0
  277. mindspore/ops/function/grad/grad_func.py +104 -71
  278. mindspore/ops/function/image_func.py +1 -1
  279. mindspore/ops/function/linalg_func.py +46 -78
  280. mindspore/ops/function/math_func.py +3035 -3705
  281. mindspore/ops/function/nn_func.py +676 -241
  282. mindspore/ops/function/other_func.py +159 -1
  283. mindspore/ops/function/parameter_func.py +17 -30
  284. mindspore/ops/function/random_func.py +204 -361
  285. mindspore/ops/function/reshard_func.py +4 -70
  286. mindspore/ops/function/sparse_func.py +3 -3
  287. mindspore/ops/function/sparse_unary_func.py +5 -5
  288. mindspore/ops/function/spectral_func.py +25 -58
  289. mindspore/ops/function/vmap_func.py +24 -17
  290. mindspore/ops/functional.py +6 -4
  291. mindspore/ops/functional_overload.py +547 -4
  292. mindspore/ops/op_info_register.py +32 -244
  293. mindspore/ops/operations/__init__.py +10 -5
  294. mindspore/ops/operations/_custom_ops_utils.py +247 -0
  295. mindspore/ops/operations/_grad_ops.py +1 -10
  296. mindspore/ops/operations/_inner_ops.py +5 -76
  297. mindspore/ops/operations/_ms_kernel.py +4 -10
  298. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  299. mindspore/ops/operations/_scalar_ops.py +3 -2
  300. mindspore/ops/operations/_sequence_ops.py +1 -1
  301. mindspore/ops/operations/_tensor_array.py +1 -1
  302. mindspore/ops/operations/array_ops.py +37 -22
  303. mindspore/ops/operations/comm_ops.py +150 -107
  304. mindspore/ops/operations/custom_ops.py +221 -23
  305. mindspore/ops/operations/debug_ops.py +115 -16
  306. mindspore/ops/operations/inner_ops.py +1 -1
  307. mindspore/ops/operations/linalg_ops.py +1 -58
  308. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  309. mindspore/ops/operations/manually_defined/ops_def.py +746 -79
  310. mindspore/ops/operations/math_ops.py +21 -18
  311. mindspore/ops/operations/nn_ops.py +65 -191
  312. mindspore/ops/operations/other_ops.py +62 -9
  313. mindspore/ops/operations/random_ops.py +13 -7
  314. mindspore/ops/operations/reshard_ops.py +1 -1
  315. mindspore/ops/operations/sparse_ops.py +2 -2
  316. mindspore/ops/primitive.py +43 -32
  317. mindspore/ops/tensor_method.py +232 -13
  318. mindspore/ops_generate/__init__.py +0 -5
  319. mindspore/ops_generate/aclnn/__init__.py +0 -0
  320. mindspore/ops_generate/{aclnn_kernel_register_auto_cc_generator.py → aclnn/aclnn_kernel_register_auto_cc_generator.py} +43 -18
  321. mindspore/ops_generate/{gen_aclnn_implement.py → aclnn/gen_aclnn_implement.py} +49 -51
  322. mindspore/ops_generate/api/__init__.py +0 -0
  323. mindspore/ops_generate/{add_tensor_docs_generator.py → api/add_tensor_docs_generator.py} +9 -7
  324. mindspore/ops_generate/{cpp_create_prim_instance_helper_generator.py → api/cpp_create_prim_instance_helper_generator.py} +6 -9
  325. mindspore/ops_generate/{functional_map_cpp_generator.py → api/functional_map_cpp_generator.py} +25 -12
  326. mindspore/ops_generate/{functional_overload_py_generator.py → api/functional_overload_py_generator.py} +8 -6
  327. mindspore/ops_generate/{functions_cc_generator.py → api/functions_cc_generator.py} +14 -10
  328. mindspore/ops_generate/api/gen_api.py +103 -0
  329. mindspore/ops_generate/{op_api_proto.py → api/op_api_proto.py} +98 -69
  330. mindspore/ops_generate/{tensor_func_reg_cpp_generator.py → api/tensor_func_reg_cpp_generator.py} +82 -43
  331. mindspore/ops_generate/common/__init__.py +0 -0
  332. mindspore/ops_generate/common/gen_constants.py +91 -0
  333. mindspore/ops_generate/{gen_utils.py → common/gen_utils.py} +72 -19
  334. mindspore/ops_generate/{op_proto.py → common/op_proto.py} +64 -1
  335. mindspore/ops_generate/{template.py → common/template.py} +96 -84
  336. mindspore/ops_generate/gen_ops.py +23 -325
  337. mindspore/ops_generate/op_def/__init__.py +0 -0
  338. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  339. mindspore/ops_generate/{lite_ops_cpp_generator.py → op_def/lite_ops_cpp_generator.py} +47 -11
  340. mindspore/ops_generate/{ops_def_cc_generator.py → op_def/ops_def_cc_generator.py} +18 -7
  341. mindspore/ops_generate/{ops_def_h_generator.py → op_def/ops_def_h_generator.py} +5 -5
  342. mindspore/ops_generate/{ops_name_h_generator.py → op_def/ops_name_h_generator.py} +30 -15
  343. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  344. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  345. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  346. mindspore/ops_generate/{op_def_py_generator.py → op_def_py/op_def_py_generator.py} +6 -5
  347. mindspore/ops_generate/{op_prim_py_generator.py → op_def_py/op_prim_py_generator.py} +24 -15
  348. mindspore/ops_generate/pyboost/__init__.py +0 -0
  349. mindspore/ops_generate/{auto_grad_impl_cc_generator.py → pyboost/auto_grad_impl_cc_generator.py} +11 -7
  350. mindspore/ops_generate/{auto_grad_reg_cc_generator.py → pyboost/auto_grad_reg_cc_generator.py} +7 -7
  351. mindspore/ops_generate/{gen_pyboost_func.py → pyboost/gen_pyboost_func.py} +40 -16
  352. mindspore/ops_generate/{op_template_parser.py → pyboost/op_template_parser.py} +105 -24
  353. mindspore/ops_generate/{pyboost_functions_cpp_generator.py → pyboost/pyboost_functions_cpp_generator.py} +55 -18
  354. mindspore/ops_generate/{pyboost_functions_h_generator.py → pyboost/pyboost_functions_h_generator.py} +42 -10
  355. mindspore/ops_generate/{pyboost_functions_py_generator.py → pyboost/pyboost_functions_py_generator.py} +6 -6
  356. mindspore/ops_generate/{pyboost_grad_function_cpp_generator.py → pyboost/pyboost_grad_function_cpp_generator.py} +11 -10
  357. mindspore/ops_generate/{pyboost_inner_prim_generator.py → pyboost/pyboost_inner_prim_generator.py} +8 -7
  358. mindspore/ops_generate/{pyboost_native_grad_functions_generator.py → pyboost/pyboost_native_grad_functions_generator.py} +14 -10
  359. mindspore/ops_generate/{pyboost_op_cpp_code_generator.py → pyboost/pyboost_op_cpp_code_generator.py} +140 -53
  360. mindspore/ops_generate/{pyboost_overload_functions_cpp_generator.py → pyboost/pyboost_overload_functions_cpp_generator.py} +28 -15
  361. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +88 -4
  362. mindspore/ops_generate/resources/__init__.py +0 -0
  363. mindspore/ops_generate/resources/resource_list.py +30 -0
  364. mindspore/ops_generate/resources/resource_loader.py +36 -0
  365. mindspore/ops_generate/resources/resource_manager.py +64 -0
  366. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  367. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  368. mindspore/parallel/__init__.py +6 -2
  369. mindspore/parallel/_auto_parallel_context.py +133 -6
  370. mindspore/parallel/_cell_wrapper.py +130 -15
  371. mindspore/parallel/_parallel_serialization.py +95 -4
  372. mindspore/parallel/_ps_context.py +1 -1
  373. mindspore/parallel/_recovery_context.py +7 -2
  374. mindspore/parallel/_tensor.py +142 -18
  375. mindspore/parallel/_utils.py +198 -25
  376. mindspore/parallel/algo_parameter_config.py +3 -3
  377. mindspore/parallel/auto_parallel.py +732 -0
  378. mindspore/parallel/checkpoint_convert.py +159 -0
  379. mindspore/parallel/checkpoint_transform.py +656 -37
  380. mindspore/parallel/cluster/process_entity/_api.py +151 -19
  381. mindspore/parallel/cluster/run.py +1 -1
  382. mindspore/parallel/function/__init__.py +24 -0
  383. mindspore/parallel/function/reshard_func.py +259 -0
  384. mindspore/parallel/nn/__init__.py +25 -0
  385. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  386. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  387. mindspore/parallel/parameter_broadcast.py +24 -13
  388. mindspore/parallel/shard.py +137 -61
  389. mindspore/parallel/transform_safetensors.py +287 -95
  390. mindspore/pgodb140.dll +0 -0
  391. mindspore/pgort140.dll +0 -0
  392. mindspore/profiler/__init__.py +9 -5
  393. mindspore/profiler/analysis/parser/ascend_cann_parser.py +6 -2
  394. mindspore/profiler/analysis/parser/ms_framework_parser.py +4 -4
  395. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -4
  396. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +22 -0
  397. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  398. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +241 -86
  399. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +41 -2
  400. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +33 -35
  401. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +7 -0
  402. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +8 -3
  403. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +141 -30
  404. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +5 -6
  405. mindspore/profiler/common/ascend_msprof_exporter.py +5 -4
  406. mindspore/profiler/common/constant.py +12 -0
  407. mindspore/profiler/common/msprof_cmd_tool.py +42 -23
  408. mindspore/profiler/common/path_manager.py +24 -0
  409. mindspore/profiler/common/profiler_context.py +26 -2
  410. mindspore/profiler/common/profiler_meta_data.py +74 -0
  411. mindspore/profiler/common/profiler_parameters.py +59 -18
  412. mindspore/profiler/common/profiler_path_manager.py +66 -7
  413. mindspore/profiler/dynamic_profiler.py +112 -79
  414. mindspore/profiler/envprofiler.py +26 -1
  415. mindspore/profiler/experimental_config.py +197 -0
  416. mindspore/profiler/mstx.py +57 -14
  417. mindspore/profiler/platform/npu_profiler.py +33 -7
  418. mindspore/profiler/profiler.py +541 -45
  419. mindspore/profiler/profiler_action_controller.py +1 -1
  420. mindspore/profiler/profiler_interface.py +4 -0
  421. mindspore/profiler/schedule.py +57 -22
  422. mindspore/rewrite/api/node.py +15 -13
  423. mindspore/rewrite/api/symbol_tree.py +1 -1
  424. mindspore/run_check/_check_version.py +25 -14
  425. mindspore/run_check/run_check.py +1 -1
  426. mindspore/runtime/__init__.py +2 -2
  427. mindspore/runtime/executor.py +40 -11
  428. mindspore/runtime/memory.py +25 -8
  429. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  430. mindspore/swresample-4.dll +0 -0
  431. mindspore/swscale-6.dll +0 -0
  432. mindspore/tbbmalloc.dll +0 -0
  433. mindspore/tinyxml2.dll +0 -0
  434. mindspore/train/__init__.py +8 -8
  435. mindspore/train/_utils.py +35 -7
  436. mindspore/train/amp.py +1 -1
  437. mindspore/train/callback/__init__.py +2 -2
  438. mindspore/train/callback/_callback.py +2 -16
  439. mindspore/train/callback/_checkpoint.py +24 -40
  440. mindspore/train/callback/_cluster_monitor.py +14 -18
  441. mindspore/train/callback/_flops_collector.py +2 -3
  442. mindspore/train/callback/_history.py +7 -4
  443. mindspore/train/callback/_lambda_callback.py +2 -2
  444. mindspore/train/callback/_landscape.py +0 -3
  445. mindspore/train/callback/_loss_monitor.py +2 -1
  446. mindspore/train/callback/_on_request_exit.py +6 -5
  447. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  448. mindspore/train/callback/_summary_collector.py +8 -13
  449. mindspore/train/callback/_time_monitor.py +2 -1
  450. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +179 -103
  451. mindspore/train/data_sink.py +25 -2
  452. mindspore/train/dataset_helper.py +4 -5
  453. mindspore/train/loss_scale_manager.py +8 -7
  454. mindspore/train/metrics/accuracy.py +3 -3
  455. mindspore/train/metrics/confusion_matrix.py +9 -9
  456. mindspore/train/metrics/error.py +3 -3
  457. mindspore/train/metrics/hausdorff_distance.py +4 -4
  458. mindspore/train/metrics/mean_surface_distance.py +3 -3
  459. mindspore/train/metrics/metric.py +0 -12
  460. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  461. mindspore/train/metrics/precision.py +8 -6
  462. mindspore/train/metrics/recall.py +9 -9
  463. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  464. mindspore/train/mind_ir_pb2.py +19 -12
  465. mindspore/train/model.py +176 -103
  466. mindspore/train/serialization.py +246 -988
  467. mindspore/train/summary/_summary_adapter.py +2 -2
  468. mindspore/train/summary/summary_record.py +1 -1
  469. mindspore/turbojpeg.dll +0 -0
  470. mindspore/utils/__init__.py +3 -2
  471. mindspore/utils/dryrun.py +4 -2
  472. mindspore/utils/hooks.py +81 -0
  473. mindspore/utils/utils.py +138 -4
  474. mindspore/vcmeta.dll +0 -0
  475. mindspore/vcruntime140.dll +0 -0
  476. mindspore/vcruntime140_1.dll +0 -0
  477. mindspore/version.py +1 -1
  478. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/METADATA +2 -1
  479. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/RECORD +483 -438
  480. mindspore/_install_custom.py +0 -43
  481. mindspore/common/_register_for_adapter.py +0 -74
  482. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  483. mindspore/ops/auto_generate/gen_arg_handler.py +0 -136
  484. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  485. mindspore/ops_generate/gen_constants.py +0 -190
  486. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  487. mindspore/ops_generate/ops_primitive_h_generator.py +0 -81
  488. /mindspore/ops_generate/{base_generator.py → common/base_generator.py} +0 -0
  489. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/WHEEL +0 -0
  490. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/entry_points.txt +0 -0
  491. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,378 @@
1
+ # Copyright 2024 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+
16
+ """JIT Context for trace JIT."""
17
+
18
+ import inspect
19
+ import re
20
+ from functools import wraps
21
+ import mindspore as ms
22
+ from mindspore import log as logger
23
+ from mindspore import context
24
+ from mindspore.common.jit_context import JitContext, set_jit_context, jit_context
25
+ from mindspore.common.tensor import Tensor as PythonTensor
26
+ from mindspore._checkparam import is_stub_tensor
27
+ from mindspore._c_expression import TraceRecorder as tr
28
+ from mindspore._c_expression import JitExecutor_
29
+ from mindspore._c_expression import TensorNode
30
+ from mindspore._c_expression import TensorPy as Tensor, CSRTensor, COOTensor
31
+ from mindspore._c_expression import typing
32
+
33
+
34
+ class TraceJitContext(JitContext):
35
+ """JIT Context for trace JIT."""
36
+
37
+ def __init__(self):
38
+ JitContext.__init__(self)
39
+ self._is_nested = False
40
+
41
+ def set_is_nested(self, status):
42
+ self._is_nested = status
43
+
44
+ def is_nested(self):
45
+ return self._is_nested
46
+
47
+ def run_op(self, prim, prim_res, *args):
48
+ """Capture op"""
49
+ logger.debug(f'prim: {prim}, args: {args}, prim_res: {prim_res}')
50
+ if isinstance(prim_res, TensorNode):
51
+ prim_res = prim_res.get_value()
52
+ prim_res = _sync_stub_tensor(prim_res)
53
+ args = tuple(_sync_stub_tensor(arg) for arg in args)
54
+ args = tuple(_convert_arg_for_operators(arg, prim.name) for arg in args)
55
+ file_names, linenos = _get_caller_lines()
56
+ tr.get_instance().new_node(prim, prim_res, file_names, linenos, False, *args)
57
+ return prim_res
58
+
59
+ def run_graph(self, phase, prim_res, *args):
60
+ """Capture func_graph generated from ast"""
61
+ logger.debug(f'phase: {phase}, args: {args}, prim_res: {prim_res}')
62
+ if isinstance(prim_res, TensorNode):
63
+ prim_res = prim_res.get_value()
64
+ prim_res = _sync_stub_tensor(prim_res)
65
+ args = tuple(_sync_stub_tensor(arg) for arg in args)
66
+ file_names, linenos = _get_caller_lines()
67
+ tr.get_instance().new_fg_node((phase, prim_res, file_names, linenos, self._is_nested), *args)
68
+ return prim_res
69
+
70
+
71
+ _compile_only = False
72
+ _trace_jit_context = TraceJitContext()
73
+ _trace_compile_cache = set()
74
+ _jit_executor = JitExecutor_.get_instance()
75
+ _using_trace = False
76
+
77
+
78
+ def _set_compile_only(compile_only=True):
79
+ global _compile_only
80
+ _compile_only = compile_only
81
+
82
+
83
+ def _sync_stub_tensor(stub):
84
+ """Synchronize stub tensor"""
85
+ if is_stub_tensor(stub):
86
+ real_tensor = stub.stub_sync()
87
+ logger.debug(f'Convert stub tensor, stub: [{type(stub)}] {id(stub)}/{stub}, '
88
+ f'tensor: [{type(real_tensor)}] {id(real_tensor)}/{real_tensor}')
89
+ return real_tensor
90
+ if isinstance(stub, tuple):
91
+ return tuple(_sync_stub_tensor(item) for item in stub)
92
+ if isinstance(stub, list):
93
+ return list(_sync_stub_tensor(item) for item in stub)
94
+ return stub
95
+
96
+
97
+ def convert_tensorpy(args):
98
+ new_args = []
99
+ for arg in args:
100
+ if isinstance(arg, Tensor):
101
+ new_args.append(PythonTensor(arg))
102
+ else:
103
+ new_args.append(arg)
104
+ return tuple(new_args)
105
+
106
+
107
+ def _convert_arg_for_operators(arg, prim_name):
108
+ """Convert dtype to enum"""
109
+ from mindspore.ops._utils.arg_dtype_cast import DtypeToEnum
110
+ if isinstance(arg, typing.Type):
111
+ return DtypeToEnum()(prim_name, 'dtype', arg)
112
+ return arg
113
+
114
+
115
+
116
+ def nested_run(obj, cell, *args):
117
+ """Start a trace process nested in ast."""
118
+ set_jit_context(_trace_jit_context)
119
+ _trace_jit_context.set_is_nested(True)
120
+ args = args[0]
121
+ args = convert_tensorpy(args)
122
+ if isinstance(obj, ms.nn.Cell):
123
+ res = obj.construct.__wrapped__(obj, *args)
124
+ else:
125
+ if not cell:
126
+ res = obj.__wrapped__(*args)
127
+ else:
128
+ res = obj.__wrapped__(cell, *args)
129
+ if res is not tuple:
130
+ res = (res,)
131
+ file_names, linenos = _get_caller_lines()
132
+ res = _sync_stub_tensor(res)
133
+ set_jit_context(None)
134
+ return file_names, linenos, res
135
+
136
+
137
+ def _jit_trace(fn):
138
+ """
139
+ Create a callable MindSpore graph from a Python function by trace method.
140
+
141
+ This allows the MindSpore runtime to apply optimizations based on traced func graph.
142
+
143
+ Args:
144
+ fn (Function): The Python function that will be run as a graph. Default: ``None`` .
145
+
146
+ Returns:
147
+ Function, if `fn` is not None, returns a callable function that will execute the compiled function; If `fn` is
148
+ None, returns a decorator and when this decorator invokes with a single `fn` argument, the callable function is
149
+ equal to the case when `fn` is not None.
150
+
151
+ Supported Platforms:
152
+ ``Ascend`` ``GPU`` ``CPU``
153
+
154
+ Examples:
155
+ >>> import numpy as np
156
+ >>> from mindspore import Tensor
157
+ >>> from mindspore.common.jit_trace import _jit_trace as jit_trace
158
+ ...
159
+ >>> x = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
160
+ >>> y = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
161
+ ...
162
+ >>> # To create a callable MindSpore graph by calling decorator @jit_trace
163
+ >>> def tensor_add(x, y):
164
+ ... z = x + y
165
+ ... return z
166
+ ...
167
+ >>> tensor_add_graph = jit_trace(fn=tensor_add)
168
+ >>> out = tensor_add_graph(x, y)
169
+ """
170
+
171
+ @wraps(fn)
172
+ def jit_trace_wrap(*args, **kwargs):
173
+ # If a trace graph is already built, keep going without building a new trace graph.
174
+ if jit_context():
175
+ return fn(*args, **kwargs)
176
+ # Start trace process.
177
+ if kwargs:
178
+ bound_arguments = inspect.signature(fn).bind(*args, **kwargs)
179
+ bound_arguments.apply_defaults()
180
+ args = bound_arguments.args
181
+ kwargs = bound_arguments.kwargs
182
+ generate_name = fn.__module__
183
+ if args:
184
+ jit_args = args[1:] if hasattr(args[0], fn.__name__) else args
185
+ obj = args[0]
186
+ if hasattr(obj, fn.__name__): # Add class name for Cell.
187
+ generate_name = generate_name + "." + obj.__class__.__name__
188
+ else:
189
+ jit_args = args
190
+ generate_name = generate_name + "." + fn.__name__ + "#" + str(id(fn))
191
+ # Add create time for Cell.
192
+ if args and hasattr(obj, fn.__name__):
193
+ generate_name = generate_name + '#created_' + str(args[0].create_time)
194
+ line_str = fn.__code__.co_filename + ":" + str(fn.__code__.co_firstlineno)
195
+ generate_name = generate_name + '#[' + line_str + ']'
196
+
197
+ new_compile = _jit_trace_begin(generate_name, *jit_args)
198
+ if new_compile:
199
+ fn_res = fn(*args, **kwargs)
200
+ logger.debug(f'fn: {fn}, fn_res: {fn_res}, line: {line_str}')
201
+ # Use fn's output to build func graph's output.
202
+ output = _jit_trace_end(fn_res)
203
+ else:
204
+ output = _jit_trace_end(None) # Run with compilation.
205
+ logger.debug(f'output: {output}')
206
+ return output
207
+
208
+ jit_trace_wrap.__trace_func__ = True
209
+ return jit_trace_wrap
210
+
211
+
212
+ def _get_caller_lines():
213
+ """Get caller code line info."""
214
+ file_names = []
215
+ linenos = []
216
+ for frame_info in inspect.stack():
217
+ logger.debug(f'\t- frame: {frame_info[1]}:{frame_info[2]}/{frame_info[4][0]}')
218
+ file_name = frame_info[1]
219
+ if re.search(r'mindspore/common/.*\.py|mindspore/ops/.*\.py|mindspore/nn/.*\.py', file_name) is not None:
220
+ continue
221
+ lineno = frame_info[2]
222
+ logger.debug(f'Match caller frame: {frame_info[1]}:{frame_info[2]}/{frame_info[4][0]}')
223
+ file_names.append(file_name)
224
+ linenos.append(lineno)
225
+ return file_names, linenos
226
+
227
+
228
+ def _get_args_for_run(args):
229
+ """Get the actual input args and kwargs for runtime."""
230
+ new_args = []
231
+ for arg in args:
232
+ if isinstance(arg, PythonTensor):
233
+ if arg.has_init:
234
+ arg.init_data()
235
+ if not arg.const_arg:
236
+ new_args.append(arg)
237
+ elif isinstance(arg, (Tensor, CSRTensor, COOTensor)):
238
+ new_args.append(arg)
239
+ elif context.get_context("grad_for_scalar") and isinstance(arg, (int, float)):
240
+ new_args.append(arg)
241
+ elif isinstance(arg, dict) and hasattr(arg, "__ms_mutable__"):
242
+ new_args.append(tuple(arg.values()))
243
+ return tuple(new_args)
244
+
245
+
246
+ def _jit_trace_begin(fn_name, *args):
247
+ """
248
+ Start to build a MindIR func graph for a code snippet by trace method.
249
+
250
+ This allows the MindSpore runtime to apply optimizations based on traced func graph.
251
+
252
+ Note:
253
+ Use it with `_jit_trace_end` cooperatively.
254
+
255
+ Also see: :func:`_jit_trace_end`.
256
+
257
+ Args:
258
+ fn_name (str): The name of func graph to be built.
259
+ args (tuple): The arguments of func graph.
260
+
261
+ Supported Platforms:
262
+ ``Ascend`` ``GPU`` ``CPU``
263
+
264
+ Examples:
265
+ >>> import numpy as np
266
+ >>> from mindspore import Tensor
267
+ >>> from mindspore.common.jit_trace import _jit_trace_begin, _jit_trace_end
268
+ ...
269
+ >>> x = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
270
+ >>> y = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
271
+ >>> def tensor_add(x, y):
272
+ ... _jit_trace_begin(x, y)
273
+ ... z = x + y
274
+ ... z = _jit_trace_end(z)
275
+ ... return z
276
+ ...
277
+ >>> out = tensor_add(x, y)
278
+ """
279
+ global _using_trace
280
+ if _using_trace:
281
+ raise RuntimeError(
282
+ "Should not use jit_block and jit_trace at the same time.")
283
+ _using_trace = True
284
+ logger.debug(f'_jit_trace_begin, args: {args}')
285
+ _trace_jit_context.set_is_nested(False)
286
+ set_jit_context(_trace_jit_context)
287
+ args = tuple(_sync_stub_tensor(arg) for arg in args)
288
+ for arg in args:
289
+ logger.debug(f'_jit_trace_begin, arg: {arg}, {type(arg)}')
290
+
291
+ # Generate phase for compile pipeline.
292
+ key = _jit_executor.generate_arguments_key(None, args, dict(), False)
293
+ from mindspore.common.api import _PyNativeExecutor
294
+ phase = fn_name + '.' + str(key)
295
+ if _PyNativeExecutor().requires_grad():
296
+ phase = phase + ".grad"
297
+ logger.debug(f'phase: {phase}')
298
+ # Compiled before, just run.
299
+ if not _compile_only and phase in _trace_compile_cache:
300
+ logger.debug('Had compiled, just run.')
301
+ _trace_jit_context.compiled = True
302
+ output = tr.get_instance().run_graph(phase, args)
303
+ from mindspore.common.api import _convert_python_data
304
+ _trace_jit_context.result = _convert_python_data(output)
305
+ logger.debug(f'jit trace result: {_trace_jit_context.result}')
306
+ return False
307
+ logger.debug('Start compiling...')
308
+ file_names, linenos = _get_caller_lines()
309
+ fn_short_name = fn_name.split('#')[0]
310
+ tr.get_instance().begin_graph(fn_short_name, phase, file_names, linenos, *args)
311
+ _trace_compile_cache.add(phase)
312
+ # Save for first call, used in end().
313
+ _trace_jit_context.phase = phase
314
+ _trace_jit_context.args = args
315
+ return True
316
+
317
+
318
+ def _jit_trace_end(*output_args):
319
+ """
320
+ Finish building a MindIR func graph for a code snippet by trace method.
321
+
322
+ This allows the MindSpore runtime to apply optimizations based on traced func graph.
323
+
324
+ Note:
325
+ Use it with `_jit_trace_begin` cooperatively.
326
+
327
+ Also see: :func:`_jit_trace_begin`.
328
+
329
+ Args:
330
+ output_args (tuple): The output of func graph.
331
+
332
+ Returns:
333
+ The same as args `output_args`.
334
+
335
+ Supported Platforms:
336
+ ``Ascend`` ``GPU`` ``CPU``
337
+
338
+ Examples:
339
+ >>> import numpy as np
340
+ >>> from mindspore import Tensor
341
+ >>> from mindspore.common.jit_trace import _jit_trace_begin, _jit_trace_end
342
+ ...
343
+ >>> x = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
344
+ >>> y = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
345
+ >>> def tensor_add(x, y):
346
+ ... _jit_trace_begin(x, y)
347
+ ... z = x + y
348
+ ... z = _jit_trace_end(z)
349
+ ... return z
350
+ ...
351
+ >>> out = tensor_add(x, y)
352
+ """
353
+ if _trace_jit_context.compiled:
354
+ output = _trace_jit_context.result
355
+ logger.debug(f'jit trace result: {output}')
356
+ else:
357
+ logger.debug(f'output_args: {output_args}')
358
+ output_args = tuple(_sync_stub_tensor(arg) for arg in output_args)
359
+ file_names, linenos = _get_caller_lines()
360
+ tr.get_instance().end_graph(file_names, linenos, *output_args)
361
+ if _compile_only:
362
+ output = output_args[0] if len(output_args) == 1 else output_args
363
+ else:
364
+ args = _get_args_for_run(_trace_jit_context.args)
365
+ output = tr.get_instance().run_graph(
366
+ _trace_jit_context.phase, args)
367
+ from mindspore.common.api import _convert_python_data
368
+ output = _convert_python_data(output)
369
+ logger.debug(f'jit trace result: {output}')
370
+ logger.debug(
371
+ f'python result: {output_args[0] if len(output_args) == 1 else output_args}')
372
+ _trace_jit_context.phase = ''
373
+ _trace_jit_context.args = None
374
+ set_jit_context(None)
375
+ _trace_jit_context.compiled = False
376
+ global _using_trace
377
+ _using_trace = False
378
+ return output
@@ -28,7 +28,7 @@ def lazy_inline(fn=None, attrs=None, policy=None):
28
28
  will add the parameters of `__init__` according to the `attrs` as the attributes of this cell.
29
29
 
30
30
  For a detailed description of the function, see `Using the lazy_inline decorator
31
- <https://www.mindspore.cn/docs/en/master/model_train/program_form/static_graph_syntax/
31
+ <https://www.mindspore.cn/tutorials/en/master/compile/
32
32
  static_graph_expert_programming.html#using-lazy-inline-decorator>`_ .
33
33
 
34
34
  .. warning::
@@ -39,7 +39,7 @@ def lazy_inline(fn=None, attrs=None, policy=None):
39
39
  Args:
40
40
  fn (function): `__init__` function of a cell.
41
41
  attrs (Union[list[string], string]): The attributes list to add for the cell.
42
- policy (Union[None, "front"]): The policy of inline. Default is None.
42
+ policy (Union[None, "front"], optional): The policy of inline. Default is ``None``.
43
43
 
44
44
  - ``None``: The cell will be compiled to sub graph and will not be inline.
45
45
  - ``"front"``: The cell will be compiled to sub graph first and will be inline at front end.
@@ -16,7 +16,7 @@
16
16
  from __future__ import absolute_import
17
17
 
18
18
  from mindspore.common.tensor import Tensor
19
- from mindspore._c_expression import Tensor as Tensor_
19
+ from mindspore._c_expression import TensorPy as Tensor_
20
20
  from mindspore import log as logger
21
21
 
22
22
  _check_elements_set = set()
@@ -126,13 +126,14 @@ def mutable(input_data, dynamic_len=False):
126
126
  When the `input_data` is tuple or list and `dynamic_len` is False, `mutable` will return a constant length tuple
127
127
  or list with all mutable elements. If `dynamic_len` is True, the length of the return tuple or list will be dynamic.
128
128
 
129
- If a dynamic length tuple or list is used as the input of the network and the network is repeatedly called, and
129
+ When a dynamic-length tuple or list returned by `mutable` is used as input to a network
130
+ and the network is called repeatedly, and
130
131
  the length of the tuple or list is different for each run, it does not need to be re-compiled.
131
132
 
132
133
  Args:
133
134
  input_data (Union[Tensor, scalar, tuple, list, dict]): The input data to be made mutable. If
134
135
  'input_data' is list/tuple/dict, the type of each element should also in the valid types.
135
- dynamic_len (bool): Whether to set the whole sequence to be dynamic length. In graph compilation, if
136
+ dynamic_len (bool, optional): Whether to set the whole sequence to be dynamic length. In graph compilation, if
136
137
  `dynamic_len` is ``True`` , the `input_data` must be list or tuple and the elements of `input_data` must
137
138
  have the same type and shape. Default: ``False`` .
138
139
 
@@ -222,7 +223,7 @@ def mutable(input_data, dynamic_len=False):
222
223
  We will add set_const_arg=False statement automatically.")
223
224
  ret.set_const_arg(False)
224
225
  elif isinstance(input_data, Tensor_):
225
- ret = Tensor(input_data, internal=True)
226
+ ret = Tensor(input_data)
226
227
  logger.info("For 'mutable', the Tensor_ in 'input_data' must not be constant. \
227
228
  We will add set_const_arg=False statement automatically.")
228
229
  ret.set_const_arg(False)