mindspore 2.1.0__cp38-none-any.whl → 2.2.10__cp38-none-any.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 (569) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +4 -1
  3. mindspore/_akg/akg/build_module.py +5 -6
  4. mindspore/_akg/akg/composite/build_module.py +46 -19
  5. mindspore/_akg/akg/composite/split_stitch.py +10 -11
  6. mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
  7. mindspore/_akg/akg/tvm/api.py +4 -3
  8. mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
  9. mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
  10. mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
  11. mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
  12. mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
  13. mindspore/_akg/akg/tvm/build_module.py +16 -1
  14. mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
  15. mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
  16. mindspore/_akg/akg/tvm/ir_builder.py +1 -1
  17. mindspore/_akg/akg/tvm/module.py +1 -2
  18. mindspore/_akg/akg/tvm/stmt.py +2 -2
  19. mindspore/_akg/akg/utils/ascend_profilier/__init__.py +0 -0
  20. mindspore/_akg/akg/utils/ascend_profilier/cann_file_parser.py +76 -0
  21. mindspore/_akg/akg/utils/ascend_profilier/file_manager.py +56 -0
  22. mindspore/_akg/akg/utils/ascend_profilier/op_summary_bean.py +23 -0
  23. mindspore/_akg/akg/utils/ascend_profilier/op_summary_headers.py +8 -0
  24. mindspore/_akg/akg/utils/ascend_profilier/op_summary_parser.py +42 -0
  25. mindspore/_akg/akg/utils/ascend_profilier/path_manager.py +65 -0
  26. mindspore/_akg/akg/utils/composite_op_helper.py +9 -10
  27. mindspore/_akg/akg/utils/kernel_exec.py +98 -274
  28. mindspore/_akg/akg/utils/result_analysis.py +4 -24
  29. mindspore/_akg/akg/utils/tbe_codegen_utils.py +219 -0
  30. mindspore/_akg/akg/utils/util.py +38 -0
  31. mindspore/_c_dataengine.cpython-38-aarch64-linux-gnu.so +0 -0
  32. mindspore/_c_expression.cpython-38-aarch64-linux-gnu.so +0 -0
  33. mindspore/_c_mindrecord.cpython-38-aarch64-linux-gnu.so +0 -0
  34. mindspore/_check_jit_forbidden_api.py +3 -1
  35. mindspore/_checkparam.py +23 -29
  36. mindspore/_extends/graph_kernel/__init__.py +0 -1
  37. mindspore/_extends/graph_kernel/model/graph_split.py +84 -76
  38. mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
  39. mindspore/_extends/graph_kernel/splitter.py +4 -11
  40. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
  41. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +84 -67
  42. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
  43. mindspore/_extends/parallel_compile/akg_compiler/util.py +10 -7
  44. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
  45. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +6 -5
  46. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
  47. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
  48. mindspore/_extends/parse/__init__.py +12 -15
  49. mindspore/_extends/parse/namespace.py +7 -33
  50. mindspore/_extends/parse/parser.py +61 -71
  51. mindspore/_extends/parse/resources.py +1 -1
  52. mindspore/_extends/parse/standard_method.py +74 -104
  53. mindspore/_extends/parse/trope.py +1 -1
  54. mindspore/_extends/remote/kernel_build_server.py +25 -7
  55. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  56. mindspore/_install_custom.py +43 -0
  57. mindspore/_mindspore_offline_debug.cpython-38-aarch64-linux-gnu.so +0 -0
  58. mindspore/amp.py +47 -11
  59. mindspore/bin/cache_admin +0 -0
  60. mindspore/bin/cache_server +0 -0
  61. mindspore/boost/boost.py +1 -8
  62. mindspore/boost/boost_cell_wrapper.py +3 -2
  63. mindspore/boost/grad_accumulation.py +1 -1
  64. mindspore/boost/group_loss_scale_manager.py +8 -7
  65. mindspore/common/__init__.py +5 -3
  66. mindspore/common/_jit_fallback_utils.py +6 -0
  67. mindspore/common/_register_for_adapter.py +2 -0
  68. mindspore/common/_register_for_tensor.py +2 -2
  69. mindspore/common/_stub_tensor.py +13 -0
  70. mindspore/common/_utils.py +13 -0
  71. mindspore/common/api.py +174 -259
  72. mindspore/common/auto_dynamic_shape.py +494 -0
  73. mindspore/common/dtype.py +18 -11
  74. mindspore/common/dump.py +6 -4
  75. mindspore/common/initializer.py +14 -14
  76. mindspore/common/jit_config.py +33 -15
  77. mindspore/common/lazy_inline.py +126 -7
  78. mindspore/common/mindir_util.py +101 -0
  79. mindspore/common/parameter.py +51 -41
  80. mindspore/common/seed.py +4 -4
  81. mindspore/common/sparse_tensor.py +13 -14
  82. mindspore/common/tensor.py +243 -165
  83. mindspore/communication/__init__.py +7 -4
  84. mindspore/communication/_comm_helper.py +83 -4
  85. mindspore/communication/management.py +152 -84
  86. mindspore/config/op_info.config +14 -3
  87. mindspore/config/super_bar_config.json +4 -2
  88. mindspore/context.py +152 -61
  89. mindspore/dataset/__init__.py +5 -5
  90. mindspore/dataset/audio/__init__.py +2 -2
  91. mindspore/dataset/audio/transforms.py +52 -52
  92. mindspore/dataset/callback/ds_callback.py +16 -2
  93. mindspore/dataset/core/config.py +68 -51
  94. mindspore/dataset/engine/cache_client.py +28 -5
  95. mindspore/dataset/engine/datasets.py +250 -112
  96. mindspore/dataset/engine/datasets_audio.py +43 -211
  97. mindspore/dataset/engine/datasets_standard_format.py +16 -35
  98. mindspore/dataset/engine/datasets_text.py +43 -67
  99. mindspore/dataset/engine/datasets_user_defined.py +86 -100
  100. mindspore/dataset/engine/datasets_vision.py +219 -1029
  101. mindspore/dataset/engine/iterators.py +11 -4
  102. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
  103. mindspore/dataset/engine/obs/util.py +3 -0
  104. mindspore/dataset/engine/samplers.py +1 -1
  105. mindspore/dataset/engine/validators.py +19 -5
  106. mindspore/dataset/text/__init__.py +3 -3
  107. mindspore/dataset/text/transforms.py +101 -127
  108. mindspore/dataset/text/utils.py +205 -138
  109. mindspore/dataset/transforms/__init__.py +1 -1
  110. mindspore/dataset/transforms/py_transforms_util.py +40 -12
  111. mindspore/dataset/transforms/transforms.py +95 -40
  112. mindspore/dataset/utils/browse_dataset.py +8 -2
  113. mindspore/dataset/utils/line_reader.py +17 -19
  114. mindspore/dataset/vision/__init__.py +3 -3
  115. mindspore/dataset/vision/c_transforms.py +6 -3
  116. mindspore/dataset/vision/transforms.py +409 -287
  117. mindspore/dataset/vision/utils.py +13 -14
  118. mindspore/dataset/vision/validators.py +11 -1
  119. mindspore/experimental/map_parameter.py +14 -0
  120. mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
  121. mindspore/{nn/optim_ex → experimental/optim}/adam.py +60 -67
  122. mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
  123. mindspore/experimental/optim/lr_scheduler.py +1427 -0
  124. mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
  125. mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
  126. mindspore/gen_ops.py +273 -0
  127. mindspore/include/OWNERS +0 -1
  128. mindspore/include/api/data_type.h +2 -1
  129. mindspore/include/api/graph.h +0 -15
  130. mindspore/include/api/kernel.h +2 -0
  131. mindspore/include/api/kernel_api.h +37 -12
  132. mindspore/include/api/model.h +17 -14
  133. mindspore/include/api/status.h +8 -3
  134. mindspore/include/api/types.h +37 -4
  135. mindspore/include/c_api/ms/abstract.h +67 -0
  136. mindspore/include/c_api/ms/attribute.h +197 -0
  137. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  138. mindspore/include/c_api/ms/base/macros.h +32 -0
  139. mindspore/include/c_api/ms/base/status.h +33 -0
  140. mindspore/include/c_api/ms/base/types.h +282 -0
  141. mindspore/include/c_api/ms/context.h +102 -0
  142. mindspore/include/c_api/ms/graph.h +160 -0
  143. mindspore/include/c_api/ms/node.h +606 -0
  144. mindspore/include/c_api/ms/tensor.h +161 -0
  145. mindspore/include/c_api/ms/value.h +84 -0
  146. mindspore/include/dataset/constants.h +6 -5
  147. mindspore/include/dataset/execute.h +23 -13
  148. mindspore/include/dataset/text.h +26 -26
  149. mindspore/include/dataset/transforms.h +13 -13
  150. mindspore/include/dataset/vision.h +60 -60
  151. mindspore/include/dataset/vision_ascend.h +5 -6
  152. mindspore/include/dataset/vision_lite.h +17 -17
  153. mindspore/include/mindapi/base/type_id.h +1 -0
  154. mindspore/include/mindapi/base/types.h +1 -0
  155. mindspore/lib/libdnnl.so.2 +0 -0
  156. mindspore/lib/libjemalloc.so.2 +0 -0
  157. mindspore/lib/libmindspore.so +0 -0
  158. mindspore/lib/libmindspore_backend.so +0 -0
  159. mindspore/lib/libmindspore_common.so +0 -0
  160. mindspore/lib/libmindspore_core.so +0 -0
  161. mindspore/lib/libmindspore_glog.so.0 +0 -0
  162. mindspore/lib/libmindspore_gpr.so.15 +0 -0
  163. mindspore/lib/libmindspore_grpc++.so.1 +0 -0
  164. mindspore/lib/libmindspore_grpc.so.15 +0 -0
  165. mindspore/lib/libmindspore_shared_lib.so +0 -0
  166. mindspore/lib/libnnacl.so +0 -0
  167. mindspore/lib/libopencv_core.so.4.5 +0 -0
  168. mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
  169. mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
  170. mindspore/lib/libps_cache.so +0 -0
  171. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310/aic-ascend310-ops-info.json +123 -0
  172. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310p/aic-ascend310p-ops-info.json +123 -0
  173. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910/aic-ascend910-ops-info.json +158 -0
  174. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910b/aic-ascend910b-ops-info.json +37 -0
  175. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
  176. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
  177. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
  178. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
  179. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
  180. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
  181. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
  182. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
  183. mindspore/lib/plugin/ascend/custom_aicore_ops/op_proto/libop_proto.so +0 -0
  184. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
  185. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
  186. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +8928 -0
  187. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
  188. mindspore/lib/plugin/ascend/libakg.so +0 -0
  189. mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
  190. mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
  191. mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
  192. mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
  193. mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
  194. mindspore/lib/plugin/cpu/libakg.so +0 -0
  195. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  196. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  197. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  198. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  199. mindspore/nn/__init__.py +0 -2
  200. mindspore/nn/cell.py +313 -74
  201. mindspore/nn/dynamic_lr.py +21 -21
  202. mindspore/nn/layer/activation.py +22 -30
  203. mindspore/nn/layer/basic.py +15 -13
  204. mindspore/nn/layer/channel_shuffle.py +1 -1
  205. mindspore/nn/layer/container.py +271 -9
  206. mindspore/nn/layer/conv.py +323 -204
  207. mindspore/nn/layer/dense.py +8 -5
  208. mindspore/nn/layer/embedding.py +33 -27
  209. mindspore/nn/layer/flash_attention.py +141 -88
  210. mindspore/nn/layer/image.py +8 -6
  211. mindspore/nn/layer/math.py +16 -25
  212. mindspore/nn/layer/normalization.py +107 -66
  213. mindspore/nn/layer/padding.py +1 -1
  214. mindspore/nn/layer/pooling.py +131 -109
  215. mindspore/nn/layer/rnn_cells.py +27 -22
  216. mindspore/nn/layer/rnns.py +13 -16
  217. mindspore/nn/layer/thor_layer.py +1 -1
  218. mindspore/nn/layer/transformer.py +221 -154
  219. mindspore/nn/learning_rate_schedule.py +9 -1
  220. mindspore/nn/loss/loss.py +235 -174
  221. mindspore/nn/optim/ada_grad.py +2 -1
  222. mindspore/nn/optim/adadelta.py +1 -0
  223. mindspore/nn/optim/adafactor.py +2 -1
  224. mindspore/nn/optim/adam.py +7 -4
  225. mindspore/nn/optim/adamax.py +3 -2
  226. mindspore/nn/optim/adasum.py +2 -2
  227. mindspore/nn/optim/asgd.py +2 -3
  228. mindspore/nn/optim/ftrl.py +6 -5
  229. mindspore/nn/optim/lamb.py +7 -4
  230. mindspore/nn/optim/lars.py +1 -1
  231. mindspore/nn/optim/lazyadam.py +5 -3
  232. mindspore/nn/optim/momentum.py +2 -1
  233. mindspore/nn/optim/optimizer.py +53 -4
  234. mindspore/nn/optim/proximal_ada_grad.py +3 -4
  235. mindspore/nn/optim/rmsprop.py +4 -3
  236. mindspore/nn/optim/rprop.py +23 -12
  237. mindspore/nn/optim/sgd.py +26 -11
  238. mindspore/nn/optim/thor.py +9 -7
  239. mindspore/nn/probability/bijector/bijector.py +5 -5
  240. mindspore/nn/probability/bijector/power_transform.py +27 -27
  241. mindspore/nn/probability/bijector/softplus.py +3 -3
  242. mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
  243. mindspore/nn/probability/distribution/bernoulli.py +5 -5
  244. mindspore/nn/probability/distribution/beta.py +3 -3
  245. mindspore/nn/probability/distribution/categorical.py +7 -7
  246. mindspore/nn/probability/distribution/cauchy.py +0 -1
  247. mindspore/nn/probability/distribution/distribution.py +3 -3
  248. mindspore/nn/probability/distribution/gamma.py +3 -3
  249. mindspore/nn/probability/distribution/geometric.py +4 -4
  250. mindspore/nn/probability/distribution/gumbel.py +4 -4
  251. mindspore/nn/probability/distribution/log_normal.py +2 -2
  252. mindspore/nn/probability/distribution/logistic.py +2 -2
  253. mindspore/nn/probability/distribution/poisson.py +4 -4
  254. mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
  255. mindspore/nn/probability/distribution/uniform.py +6 -6
  256. mindspore/nn/wrap/cell_wrapper.py +84 -34
  257. mindspore/nn/wrap/grad_reducer.py +8 -5
  258. mindspore/nn/wrap/loss_scale.py +105 -42
  259. mindspore/numpy/array_creations.py +1 -2
  260. mindspore/numpy/array_ops.py +3 -2
  261. mindspore/numpy/utils_const.py +5 -5
  262. mindspore/offline_debug/convert_async.py +2 -2
  263. mindspore/ops/_grad_experimental/__init__.py +0 -5
  264. mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
  265. mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
  266. mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
  267. mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
  268. mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
  269. mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
  270. mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
  271. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
  272. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  273. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +165 -109
  274. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +144 -86
  275. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +172 -187
  276. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +51 -57
  277. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +6 -17
  278. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +1 -1
  279. mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
  280. mindspore/ops/_op_impl/aicpu/add.py +3 -3
  281. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  282. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  283. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  284. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  285. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  286. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  287. mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
  288. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  289. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  290. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  291. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  292. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  293. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  294. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  295. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
  296. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
  297. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  298. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  299. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  300. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  301. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  302. mindspore/ops/_op_impl/tbe/__init__.py +4 -4
  303. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  304. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  305. mindspore/ops/_primitive_cache.py +1 -1
  306. mindspore/ops/_tracefunc.py +45 -13
  307. mindspore/ops/_utils/utils.py +6 -1
  308. mindspore/ops/_vmap/vmap_array_ops.py +3 -3
  309. mindspore/ops/_vmap/vmap_base.py +3 -3
  310. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  311. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  312. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  313. mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
  314. mindspore/ops/arg_dtype_cast.py +54 -0
  315. mindspore/ops/composite/base.py +37 -10
  316. mindspore/ops/composite/math_ops.py +5 -4
  317. mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
  318. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
  319. mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
  320. mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
  321. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  322. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  323. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  324. mindspore/ops/deprecated.py +304 -0
  325. mindspore/ops/function/__init__.py +4 -1
  326. mindspore/ops/function/array_func.py +174 -193
  327. mindspore/ops/function/clip_func.py +81 -13
  328. mindspore/ops/function/debug_func.py +1 -1
  329. mindspore/ops/function/grad/grad_func.py +18 -9
  330. mindspore/ops/function/image_func.py +10 -4
  331. mindspore/ops/function/linalg_func.py +5 -5
  332. mindspore/ops/function/math_func.py +575 -386
  333. mindspore/ops/function/nn_func.py +568 -260
  334. mindspore/ops/function/random_func.py +88 -57
  335. mindspore/ops/function/sparse_func.py +1 -1
  336. mindspore/ops/function/sparse_unary_func.py +14 -12
  337. mindspore/ops/function/vmap_func.py +6 -5
  338. mindspore/ops/functional.py +15 -10
  339. mindspore/ops/op_info_register.py +244 -25
  340. mindspore/ops/operations/__init__.py +28 -19
  341. mindspore/ops/operations/_grad_ops.py +72 -7
  342. mindspore/ops/operations/_inner_ops.py +350 -17
  343. mindspore/ops/operations/_quant_ops.py +4 -8
  344. mindspore/ops/operations/_sequence_ops.py +42 -0
  345. mindspore/ops/operations/array_ops.py +68 -282
  346. mindspore/ops/operations/comm_ops.py +107 -59
  347. mindspore/ops/operations/custom_ops.py +94 -70
  348. mindspore/ops/operations/debug_ops.py +8 -4
  349. mindspore/ops/operations/image_ops.py +18 -12
  350. mindspore/ops/operations/inner_ops.py +26 -3
  351. mindspore/ops/operations/math_ops.py +189 -141
  352. mindspore/ops/operations/nn_ops.py +794 -489
  353. mindspore/ops/operations/other_ops.py +0 -22
  354. mindspore/ops/operations/random_ops.py +53 -111
  355. mindspore/ops/operations/sparse_ops.py +3 -1
  356. mindspore/ops/primitive.py +24 -18
  357. mindspore/parallel/_auto_parallel_context.py +68 -8
  358. mindspore/parallel/_cost_model_context.py +2 -2
  359. mindspore/parallel/_offload_context.py +17 -3
  360. mindspore/parallel/_parallel_serialization.py +12 -5
  361. mindspore/parallel/_ps_context.py +12 -0
  362. mindspore/parallel/_tensor.py +18 -13
  363. mindspore/parallel/_transformer/layers.py +5 -3
  364. mindspore/parallel/_transformer/loss.py +1 -0
  365. mindspore/parallel/_transformer/moe.py +2 -2
  366. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  367. mindspore/parallel/_transformer/transformer.py +23 -3
  368. mindspore/parallel/_utils.py +11 -7
  369. mindspore/parallel/algo_parameter_config.py +85 -5
  370. mindspore/parallel/checkpoint_transform.py +19 -12
  371. mindspore/parallel/shard.py +21 -14
  372. mindspore/profiler/common/struct_type.py +3 -3
  373. mindspore/profiler/common/util.py +4 -2
  374. mindspore/profiler/envprofiling.py +1 -1
  375. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  376. mindspore/profiler/parser/ascend_flops_generator.py +2 -2
  377. mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
  378. mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
  379. mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
  380. mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
  381. mindspore/profiler/parser/ascend_op_generator.py +6 -6
  382. mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
  383. mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
  384. mindspore/profiler/parser/base_timeline_generator.py +10 -8
  385. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
  386. mindspore/profiler/parser/flops_parser.py +15 -11
  387. mindspore/profiler/parser/framework_parser.py +38 -22
  388. mindspore/profiler/parser/hccl_parser.py +16 -12
  389. mindspore/profiler/parser/integrator.py +22 -11
  390. mindspore/profiler/parser/memory_usage_parser.py +2 -2
  391. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  392. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  393. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  394. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  395. mindspore/profiler/parser/optime_parser.py +1 -1
  396. mindspore/profiler/parser/profiler_info.py +21 -2
  397. mindspore/profiler/parser/step_trace_parser.py +11 -14
  398. mindspore/profiler/profiling.py +179 -89
  399. mindspore/rewrite/api/node.py +102 -19
  400. mindspore/rewrite/api/node_type.py +5 -1
  401. mindspore/rewrite/api/pattern_engine.py +1 -1
  402. mindspore/rewrite/api/scoped_value.py +9 -17
  403. mindspore/rewrite/api/symbol_tree.py +131 -47
  404. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  405. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  406. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  407. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
  408. mindspore/rewrite/common/rewrite_elog.py +5 -1
  409. mindspore/rewrite/namer.py +33 -24
  410. mindspore/rewrite/namespace.py +14 -5
  411. mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
  412. mindspore/rewrite/node/call_function.py +79 -0
  413. mindspore/rewrite/node/cell_container.py +135 -0
  414. mindspore/rewrite/node/control_flow.py +88 -0
  415. mindspore/rewrite/{node.py → node/node.py} +273 -234
  416. mindspore/rewrite/node/node_manager.py +254 -0
  417. mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
  418. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  419. mindspore/rewrite/parsers/assign_parser.py +216 -221
  420. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  421. mindspore/rewrite/parsers/class_def_parser.py +174 -113
  422. mindspore/rewrite/parsers/constant_parser.py +9 -6
  423. mindspore/rewrite/parsers/container_parser.py +9 -7
  424. mindspore/rewrite/parsers/for_parser.py +36 -15
  425. mindspore/rewrite/parsers/function_def_parser.py +24 -16
  426. mindspore/rewrite/parsers/if_parser.py +28 -24
  427. mindspore/rewrite/parsers/module_parser.py +196 -25
  428. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  429. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  430. mindspore/rewrite/parsers/return_parser.py +6 -6
  431. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  432. mindspore/rewrite/sparsify/utils.py +1 -1
  433. mindspore/rewrite/symbol_tree.py +523 -578
  434. mindspore/rewrite/symbol_tree_builder.py +9 -193
  435. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  436. mindspore/run_check/_check_version.py +6 -4
  437. mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
  438. mindspore/safeguard/rewrite_obfuscation.py +541 -0
  439. mindspore/scipy/linalg.py +1 -1
  440. mindspore/scipy/optimize/minimize.py +7 -3
  441. mindspore/train/_utils.py +7 -3
  442. mindspore/train/amp.py +323 -123
  443. mindspore/train/anf_ir_pb2.py +14 -2
  444. mindspore/train/callback/_backup_and_restore.py +2 -12
  445. mindspore/train/callback/_callback.py +29 -4
  446. mindspore/train/callback/_checkpoint.py +23 -8
  447. mindspore/train/callback/_early_stop.py +2 -2
  448. mindspore/train/callback/_landscape.py +4 -4
  449. mindspore/train/callback/_loss_monitor.py +2 -2
  450. mindspore/train/callback/_on_request_exit.py +2 -2
  451. mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
  452. mindspore/train/callback/_summary_collector.py +15 -8
  453. mindspore/train/callback/_time_monitor.py +58 -5
  454. mindspore/train/data_sink.py +5 -11
  455. mindspore/train/dataset_helper.py +84 -57
  456. mindspore/train/loss_scale_manager.py +2 -2
  457. mindspore/train/metrics/__init__.py +3 -3
  458. mindspore/train/metrics/cosine_similarity.py +1 -1
  459. mindspore/train/metrics/hausdorff_distance.py +3 -2
  460. mindspore/train/metrics/mean_surface_distance.py +3 -2
  461. mindspore/train/metrics/metric.py +39 -19
  462. mindspore/train/metrics/roc.py +2 -2
  463. mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
  464. mindspore/train/mind_ir_pb2.py +85 -36
  465. mindspore/train/model.py +187 -47
  466. mindspore/train/serialization.py +487 -161
  467. mindspore/train/summary/_summary_adapter.py +1 -1
  468. mindspore/train/summary/_writer_pool.py +3 -2
  469. mindspore/train/summary/summary_record.py +37 -17
  470. mindspore/train/train_thor/convert_utils.py +3 -3
  471. mindspore/train/train_thor/dataset_helper.py +1 -1
  472. mindspore/version.py +1 -1
  473. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/METADATA +6 -7
  474. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/RECORD +477 -517
  475. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/entry_points.txt +0 -1
  476. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  477. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  478. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  479. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  480. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  481. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  482. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  483. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  484. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  485. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  486. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  487. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  488. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  489. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  490. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  491. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  492. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  493. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  494. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  495. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  496. mindspore/_extends/graph_kernel/expander.py +0 -80
  497. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
  498. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  499. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  500. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  501. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  502. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  503. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  504. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  505. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  506. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  507. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  508. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  509. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  510. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  511. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  512. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  513. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  514. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  515. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  516. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  517. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  518. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  519. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  520. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  521. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  522. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  523. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  524. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  525. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  526. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  527. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  528. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  529. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  530. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  531. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  532. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  533. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  534. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  535. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  536. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  537. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  538. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  539. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  540. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  541. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  542. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  543. mindspore/dataset/datapreprocess/__init__.py +0 -20
  544. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  545. mindspore/include/api/net.h +0 -142
  546. mindspore/nn/lr_scheduler.py +0 -262
  547. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
  548. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
  549. mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
  550. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  551. mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
  552. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
  553. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
  554. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
  555. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  556. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  557. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
  558. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
  559. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  560. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  561. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
  562. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
  563. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
  564. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
  565. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
  566. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  567. mindspore/rewrite/node_visitor.py +0 -44
  568. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/WHEEL +0 -0
  569. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/top_level.txt +0 -0
@@ -24,11 +24,11 @@ from mindspore.common import mutable
24
24
  import mindspore.common._monad as monad
25
25
  from mindspore.common.sparse_tensor import RowTensorInner
26
26
  from mindspore.ops.composite.base import _append, _insert, _pop, _list_clear, _reverse, \
27
- _extend, _dict_clear, _haskey, _update, _fromkeys
27
+ _extend, _dict_setitem, _dict_clear, _haskey, _update, _fromkeys
28
28
 
29
29
  from ... import _checkparam as validator
30
- from ..._checkparam import check_is_number, check_reshape_shp, prepare_shape_for_squeeze, \
31
- check_axis_in_range, check_axis_valid, check_and_canonicalize_axes
30
+ from ..._checkparam import check_is_number, check_reshape_shp, check_axis_in_range, \
31
+ check_axis_valid, check_and_canonicalize_axes
32
32
  from ...ops import functional as F
33
33
  from ...ops import operations as P
34
34
  from ...ops import composite
@@ -58,7 +58,6 @@ size_op_ = P.Size()
58
58
  _format = Format()
59
59
  _reduce_sum_default = P.ReduceSum()
60
60
  _reduce_sum_keepdims = P.ReduceSum(True)
61
- _mean_keepdims = P.ReduceMean(True)
62
61
  _csr_mm = _csr_ops.CSRMM()
63
62
 
64
63
  itemsize_map = {mstype.bool_: 1, mstype.int8: 1, mstype.uint8: 1,
@@ -92,10 +91,7 @@ def mean(x, axis=None, keep_dims=False):
92
91
  >>> print(output)
93
92
  2.0
94
93
  """
95
- if axis is None:
96
- axis = ()
97
- reduce_mean = P.ReduceMean(keep_dims)
98
- return reduce_mean(x, axis)
94
+ return F.mean(x, axis, keep_dims)
99
95
 
100
96
 
101
97
  def ndimension(x):
@@ -176,11 +172,7 @@ def all_(x, axis=(), keep_dims=False):
176
172
  Returns:
177
173
  Tensor, has the same data type as x.
178
174
  """
179
-
180
- if axis is None:
181
- axis = ()
182
- reduce_all = P.ReduceAll(keep_dims)
183
- return reduce_all(x, axis)
175
+ return F.all(x, axis, keep_dims)
184
176
 
185
177
 
186
178
  def angle(x):
@@ -816,12 +808,7 @@ def squeeze(x, axis=None):
816
808
  >>> print(x.shape)
817
809
  (2, 2)
818
810
  """
819
- shape = F.shape(x)
820
- if axis is None:
821
- return F.squeeze(x)
822
- # yield squeezed shape based on the axes
823
- new_shape = prepare_shape_for_squeeze(shape, axis)
824
- return F.reshape(x, new_shape)
811
+ return F.squeeze(x, axis)
825
812
 
826
813
 
827
814
  def unbind(input, dim=0):
@@ -856,17 +843,7 @@ def argmax(x, axis=None, keepdims=False):
856
843
  >>> print(a.argmax())
857
844
  5
858
845
  """
859
- is_axis_none = False
860
- if axis is None:
861
- x = ravel(x)
862
- axis = 0
863
- is_axis_none = True
864
- if x.dtype == mstype.bool_:
865
- x = x.astype(mstype.int32)
866
- out = P.Argmax(axis, mstype.int64)(x)
867
- if keepdims and not is_axis_none:
868
- out = expand_dims(out, axis)
869
- return out
846
+ return F.argmax(x, axis, keepdims)
870
847
 
871
848
 
872
849
  def argmin(x, axis=None, keepdims=False):
@@ -1443,8 +1420,9 @@ def diagonal(x, offset=0, axis1=0, axis2=1):
1443
1420
 
1444
1421
  e = F.eye(n, m, dtype)
1445
1422
  if offset >= m or offset <= -n:
1446
- e = F.fill(dtype, (n, m), 0)
1447
- elif offset != 0:
1423
+ zero_shape = shape[:-2] + (0,)
1424
+ return F.zeros(zero_shape, dtype)
1425
+ if offset != 0:
1448
1426
  e = e.astype(mstype.float32)
1449
1427
  if offset > 0:
1450
1428
  e_left = F.fill(dtype, (n, offset), 0)
@@ -1730,6 +1708,22 @@ def take(x, indices, axis=None, mode='clip'):
1730
1708
  return res.reshape(shape_out)
1731
1709
 
1732
1710
 
1711
+ def ms_type(input, dtype=None):
1712
+ r"""
1713
+ Change the dtype of the Tensor to the `dtype` . Return the type if `dtype` is None.
1714
+ """
1715
+ if dtype is None:
1716
+ return str(input.dtype)
1717
+ return input.astype(dtype)
1718
+
1719
+
1720
+ def type_as(input, other):
1721
+ r"""
1722
+ Change the dtype of `input` to the dtype of `other`.
1723
+ """
1724
+ return input.astype(other.dtype)
1725
+
1726
+
1733
1727
  def _infer_out_shape(*shapes):
1734
1728
  """
1735
1729
  Returns shape of output after broadcasting. Raises ValueError if shapes cannot be broadcast.
@@ -1737,8 +1731,8 @@ def _infer_out_shape(*shapes):
1737
1731
  shape_out = list()
1738
1732
  max_len = ms_max([len(it) for it in shapes])
1739
1733
  for i in range(max_len):
1740
- items = [it[i-(max_len-len(it))] if i - (max_len - len(it))
1741
- >= 0 else 1 for it in shapes]
1734
+ items = [it[i - (max_len - len(it))] if i - (max_len - len(it))
1735
+ >= 0 else 1 for it in shapes]
1742
1736
  max_size = 0 if 0 in items else ms_max(items)
1743
1737
  shape_out.append(max_size)
1744
1738
  return tuple(shape_out)
@@ -1849,12 +1843,14 @@ def searchsorted(x, v, side='left', sorter=None):
1849
1843
  >>> print(x.searchsorted(3))
1850
1844
  2
1851
1845
  """
1846
+
1852
1847
  def get_log2_size(size):
1853
1848
  """Get log2 size"""
1854
1849
  log2_res = F.log2(F.cast(size, mstype.float32))
1855
1850
  ceil_res = F.ceil(log2_res)
1856
1851
  cast_res = F.cast(ceil_res, mstype.int64)
1857
1852
  return cast_res
1853
+
1858
1854
  if side not in ('left', 'right'):
1859
1855
  const_utils.raise_value_error('invalid value for keyword "side"')
1860
1856
  a = x.astype(mstype.float32)
@@ -1892,8 +1888,6 @@ def fill(x, value):
1892
1888
  const_utils.raise_type_error("If None is used as value, the original Tensor's dtype must be float.")
1893
1889
  value = nan_tensor
1894
1890
  return F.tile(value, x.shape).astype(x.dtype)
1895
- if not isinstance(value, (int, float, bool)):
1896
- const_utils.raise_type_error("input value must be a scalar.")
1897
1891
  return F.fill(x.dtype, x.shape, value)
1898
1892
 
1899
1893
 
@@ -2009,7 +2003,7 @@ def var(x, axis=None, ddof=0, keepdims=False):
2009
2003
  axis = ()
2010
2004
  else:
2011
2005
  axis = check_and_canonicalize_axes(axis, x.ndim)
2012
- x_mean = _mean_keepdims(x, axis)
2006
+ x_mean = F.mean(x, axis, True)
2013
2007
  x_sub = F.tensor_sub(x, x_mean)
2014
2008
  x_pow = F.tensor_pow(x_sub, 2)
2015
2009
  if keepdims:
@@ -2117,27 +2111,14 @@ def sum(input, axis=None, dtype=None, keepdims=False, initial=None): # pylint:
2117
2111
  >>> print(input_x.sum(axis=1))
2118
2112
  [10. 35.]
2119
2113
  """
2120
- input_x = input.astype(mstype.int32) if input.dtype == mstype.bool_ else input
2121
- dtype = input_x.dtype if dtype is None else dtype
2122
- dtype = check_astype_dtype_const(dtype)
2123
- if not isinstance(keepdims, int):
2124
- const_utils.raise_type_error("integer argument expected")
2125
2114
  if initial is not None and not isinstance(initial, (int, float, bool)):
2126
- const_utils.raise_type_error("initial argument should be a scalar.")
2127
- if axis is None:
2128
- axis = ()
2129
- else:
2130
- axis = check_and_canonicalize_axes(axis, input.ndim)
2131
-
2132
- if not check_type_support(input_x.dtype, 'GPU', (mstype.float64, mstype.float32, mstype.float16)):
2133
- input_x = input_x.astype(mstype.float32)
2134
- if keepdims:
2135
- res = _reduce_sum_keepdims(input_x, axis)
2136
- else:
2137
- res = _reduce_sum_default(input_x, axis)
2115
+ raise TypeError(f"For Tensor.sum, initial must be int, float or bool, but got {type(initial)}.")
2116
+ res = F.sum(input, axis, keepdims)
2138
2117
  if initial is not None:
2139
2118
  res += initial
2140
- return res.astype(dtype)
2119
+ if dtype is not None:
2120
+ res = res.astype(dtype)
2121
+ return res
2141
2122
 
2142
2123
 
2143
2124
  @_primexpr
@@ -2363,7 +2344,7 @@ def itemset(data, *args):
2363
2344
 
2364
2345
  def ms_iter(xs):
2365
2346
  """Implementation of `iter`."""
2366
- return xs.__ms_iter__()
2347
+ return xs.__ms_iter__
2367
2348
 
2368
2349
 
2369
2350
  def ms_next(it):
@@ -2389,13 +2370,9 @@ def str_func(*data):
2389
2370
  if data_len == 0:
2390
2371
  return ''
2391
2372
  data = data[0]
2392
- if isinstance(data, (CSRTensor, COOTensor, RowTensorInner)):
2393
- const_utils.raise_type_error(
2394
- "str() does not support sparse tensor input.")
2395
- if not F.isconstant(data):
2396
- const_utils.raise_type_error(
2397
- "str() does not support non-constant input.")
2398
- return cast_to_str(data)
2373
+ if F.isconstant(data):
2374
+ return cast_to_str(data)
2375
+ return data.__str__()
2399
2376
 
2400
2377
 
2401
2378
  @constexpr
@@ -2514,17 +2491,15 @@ def tuple_func(*data):
2514
2491
  """Implementation of `tuple`."""
2515
2492
  data_len = len(data)
2516
2493
  if data_len >= 2:
2517
- const_utils.raise_type_error("tuple() requires 0 or 1 arguments.")
2494
+ raise TypeError("tuple() requires 0 or 1 arguments.")
2518
2495
  if data_len == 0:
2519
2496
  return F.make_tuple()
2520
2497
  data = data[0]
2521
2498
  if isinstance(data, (CSRTensor, COOTensor, RowTensorInner)):
2522
- const_utils.raise_type_error(
2523
- "tuple() does not support single sparse tensor input.")
2499
+ raise TypeError("tuple() does not support single sparse tensor input.")
2524
2500
  if not isinstance(data, Tensor) and not hasattr(data, "__ms_iter__"):
2525
2501
  data_type = F.typeof(data)
2526
- const_utils.raise_type_error(
2527
- str(data_type) + " object is not iterable.")
2502
+ raise TypeError(str(data_type) + " object is not iterable.")
2528
2503
  if isinstance(data, dict):
2529
2504
  data = data.keys()
2530
2505
  if isinstance(data, (tuple, list)) and F.is_sequence_shape_unknown(data):
@@ -2792,26 +2767,6 @@ def ms_len(data):
2792
2767
  return data.__len__()
2793
2768
 
2794
2769
 
2795
- @constexpr
2796
- def python_len_with_check(data):
2797
- """Return the result of python built-in len function with iterable check"""
2798
- if not hasattr(data, "__iter__"):
2799
- raise TypeError(str(type(data)) +
2800
- " object is not iterable in graph mode.")
2801
- return len(data)
2802
-
2803
-
2804
- def ms_len_with_iterable_check(data):
2805
- """Implementation of `len` with iterable check, used in len of condition."""
2806
- if not isinstance(data, Tensor) and F.isconstant(data):
2807
- return python_len_with_check(data)
2808
- if not hasattr(data, "__len__"):
2809
- type_str = str(F.typeof(data))
2810
- const_utils.raise_type_error(
2811
- type_str + " object is not iterable in graph mode.")
2812
- return data.__len__()
2813
-
2814
-
2815
2770
  def floor(x):
2816
2771
  """Rounds a tensor down to the closest integer element-wise."""
2817
2772
  return x.__floor__()
@@ -2864,14 +2819,12 @@ def enumerate_(x, start=0):
2864
2819
  x_type = F.typeof(x)
2865
2820
  ret = ()
2866
2821
  op_name = "enumerate"
2867
- if check_is_tuple_or_list_or_tensor(x_type, op_name, "first input") and \
2868
- check_is_const_int(start, op_name, "start"):
2822
+ if isinstance(x, (int, float, bool)):
2823
+ raise TypeError(f"For 'enumerate', the 'first input' should be tuple or list or tensor, but got {type(x)}.")
2824
+ if check_is_const_int(start, op_name, "start"):
2869
2825
  if check_is_tensor(x_type):
2870
2826
  for i in range(x.shape[0]):
2871
2827
  ret += ((start + i, x[i]),)
2872
- elif F.is_sequence_shape_unknown(x):
2873
- const_utils.raise_value_error(
2874
- "For 'enumerate', the dynamic length input is unsupported in graph mode")
2875
2828
  else:
2876
2829
  ret = zip(range(start, start + len(x)), x)
2877
2830
  return ret
@@ -2941,6 +2894,13 @@ def to_coo(x):
2941
2894
  return F.dense_to_sparse_coo(x)
2942
2895
 
2943
2896
 
2897
+ def tolist(x):
2898
+ """
2899
+ Convert a Tensor to List, if the input is Tensor scalar, Python scalar will be returned.
2900
+ """
2901
+ return x.asnumpy().tolist()
2902
+
2903
+
2944
2904
  @constexpr
2945
2905
  def check_select_condition(cond_type):
2946
2906
  """
@@ -3296,16 +3256,6 @@ def check_is_tensor(x):
3296
3256
  return False
3297
3257
 
3298
3258
 
3299
- @constexpr
3300
- def check_is_tuple_or_list_or_tensor(x, op_name, arg_name):
3301
- """check whether x is list or tuple or tensor."""
3302
- if isinstance(x, (mstype.List, mstype.Tuple, mstype.TensorType)):
3303
- return True
3304
- raise TypeError(
3305
- f"For '{op_name}', the '{arg_name}' should be tuple or list or tensor, but got {x}.")
3306
-
3307
-
3308
- @constexpr
3309
3259
  def check_is_const_int(x, op_name, arg_name):
3310
3260
  """check whether x is const int."""
3311
3261
  if x is None:
@@ -3652,6 +3602,11 @@ def dict_get(self_, key_index, default_value=None):
3652
3602
  return F.dict_getitem(self_, key_index)
3653
3603
 
3654
3604
 
3605
+ def dict_setitem(self_, key, target):
3606
+ """Dictionary setitem"""
3607
+ return _dict_setitem(self_, key, target)
3608
+
3609
+
3655
3610
  def dict_clear(self_):
3656
3611
  """Clear the dict"""
3657
3612
  return _dict_clear(self_)
@@ -3902,6 +3857,13 @@ def cos(x):
3902
3857
  return F.cos(x)
3903
3858
 
3904
3859
 
3860
+ def count_nonzero(x, axis=(), keep_dims=False, dtype=mstype.int32):
3861
+ r"""
3862
+ For details, please refer to :func:`mindspore.ops.count_nonzero`.
3863
+ """
3864
+ return F.count_nonzero(x, axis, keep_dims, dtype)
3865
+
3866
+
3905
3867
  def cov(x, *, correction=1, fweights=None, aweights=None):
3906
3868
  r"""
3907
3869
  For details, please refer to :func:`mindspore.ops.cov`.
@@ -4180,7 +4142,8 @@ def expand(input, size):
4180
4142
  r"""
4181
4143
  Returns a new view of the self tensor with singleton dimensions expanded to a larger size.
4182
4144
  """
4183
- return F.expand(input, size)
4145
+ size = P.TensorToTuple()(size)
4146
+ return F.broadcast_to(input, size)
4184
4147
 
4185
4148
 
4186
4149
  def cumprod(input, dim, dtype=None):
@@ -4202,6 +4165,13 @@ def div(input, value, *, rounding_mode=None):
4202
4165
  return F.div(input, value, rounding_mode=rounding_mode)
4203
4166
 
4204
4167
 
4168
+ def eq(input, other):
4169
+ r"""
4170
+ Computes the equivalence between the tensor `input` and the given input tensor `other` element-wise.
4171
+ """
4172
+ return F.equal(input, other)
4173
+
4174
+
4205
4175
  def equal(x, y):
4206
4176
  r"""
4207
4177
  Computes the equivalence between the tensor `x` and the given input tensor `y` element-wise.
@@ -1,6 +1,6 @@
1
1
  # This is the Python adaptation and derivative work of Myia (https://github.com/mila-iqia/myia/).
2
2
  #
3
- # Copyright 2020-2022 Huawei Technologies Co., Ltd
3
+ # Copyright 2020-2023 Huawei Technologies Co., Ltd
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -15,7 +15,8 @@
15
15
  """kernel build server"""
16
16
  import os
17
17
  from mindspore import log as logger
18
- from mindspore._extends.parallel_compile.akg_compiler.akg_process import create_akg_parallel_process
18
+ from mindspore._extends.parallel_compile.akg_compiler.akg_process import create_akg_parallel_process, \
19
+ create_akg_v2_parallel_process
19
20
 
20
21
 
21
22
  class Messager:
@@ -124,8 +125,8 @@ class Messager:
124
125
  raise NotImplementedError
125
126
 
126
127
 
127
- class AkgBuilder():
128
- """Akg building wrapper"""
128
+ class AkgBuilderBase():
129
+ """Base Class for kernel compiler building wrapper"""
129
130
 
130
131
  def __init__(self, platform):
131
132
  self.platform = platform
@@ -133,8 +134,9 @@ class AkgBuilder():
133
134
  self.akg_processor = None
134
135
 
135
136
  def create(self, process_num, waitime):
136
- """ Create akg processor"""
137
- self.akg_processor = create_akg_parallel_process(process_num, waitime, self.platform)
137
+ """ Create compiler processor"""
138
+ del process_num, waitime
139
+ raise NotImplementedError
138
140
 
139
141
  def accept_json(self, json):
140
142
  """ Accept json"""
@@ -145,7 +147,7 @@ class AkgBuilder():
145
147
  return self.akg_processor.compile(self.attrs)
146
148
 
147
149
  def handle(self, messager, arg):
148
- """Handle message about akg"""
150
+ """Handle message about compiler"""
149
151
  if arg == 'AKG/START':
150
152
  messager.send_ack()
151
153
  process_num_str = messager.get_message()
@@ -172,7 +174,23 @@ class AkgBuilder():
172
174
  messager.send_ack(False)
173
175
  break
174
176
  else:
175
- raise RuntimeError("Unknown message type: %s" % arg)
177
+ raise RuntimeError(f"Unknown message type: {arg}")
178
+
179
+
180
+ class AkgBuilder(AkgBuilderBase):
181
+ """Akg building wrapper"""
182
+
183
+ def create(self, process_num, waitime):
184
+ """ Create akg processor"""
185
+ self.akg_processor = create_akg_parallel_process(process_num, waitime, self.platform)
186
+
187
+
188
+ class AkgV2Builder(AkgBuilderBase):
189
+ """Akg V2 building wrapper"""
190
+
191
+ def create(self, process_num, waitime):
192
+ """ Create akg v2 processor"""
193
+ self.akg_processor = create_akg_v2_parallel_process(process_num, waitime, self.platform)
176
194
 
177
195
 
178
196
  def get_logger():
@@ -0,0 +1,55 @@
1
+ # Copyright 2023 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
+ """kernel build server for akg v2 kernels"""
16
+ import sys
17
+ import warnings
18
+ from mindspore._extends.remote.kernel_build_server import Messager, get_logger, AkgV2Builder
19
+
20
+
21
+ class AkgV2Messager(Messager):
22
+ '''
23
+ Default Messager for akg v2 kernels.
24
+ It works as a server, communicating with c++ client.
25
+ '''
26
+
27
+ def __init__(self, fdin, fdout):
28
+ super().__init__(fdin, fdout)
29
+ get_logger().info("[TRACE] AKG V2 Messager init...")
30
+ self.akg_v2_builder = AkgV2Builder("default")
31
+
32
+ def handle(self):
33
+ """
34
+ Communicate with remote client.
35
+ Reference protocol between them at PR#4063
36
+ """
37
+ arg = self.get_message()
38
+ if "AKG" in arg:
39
+ self.akg_v2_builder.handle(self, arg)
40
+ else:
41
+ self.send_ack(False)
42
+ self.exit()
43
+
44
+ def exit(self):
45
+ get_logger().info("[TRACE] AKG V2 Messager Exit...")
46
+ exit()
47
+
48
+
49
+ if __name__ == '__main__':
50
+ warnings.simplefilter("ignore")
51
+ if len(sys.argv) != 3:
52
+ raise Exception(f"Incorrect argv: {sys.argv}")
53
+ get_logger().debug(f"[TRACE] argv: {str(sys.argv)}")
54
+ messager = AkgV2Messager(int(sys.argv[1]), int(sys.argv[2]))
55
+ messager.run()
@@ -0,0 +1,43 @@
1
+ # Copyright 2023 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
+ """install custom op files"""
16
+
17
+ import os
18
+ import platform
19
+ import importlib.util
20
+ from mindspore import log as logger
21
+
22
+
23
+ def _install_custom():
24
+ """install custom op files"""
25
+ if platform.system() != "Linux":
26
+ return
27
+ custom_op_path = os.environ.get("MS_DEV_CUSTOM_OPP_PATH")
28
+ if not custom_op_path:
29
+ return
30
+ if not os.path.isdir(custom_op_path):
31
+ logger.warning("The path set in env 'MS_DEV_CUSTOM_OPP_PATH' is not a directory: '{}'".format(custom_op_path))
32
+ else:
33
+ for file_name in os.listdir(custom_op_path):
34
+ file_path = os.path.join(custom_op_path, file_name)
35
+ if os.path.isfile(file_path) and file_name.endswith(".py") and file_name != "__init__.py":
36
+ logger.info("start import file: '{}'".format(file_path))
37
+ mod_spec = importlib.util.spec_from_file_location(os.path.splitext(file_name)[0], file_path)
38
+ mod = importlib.util.module_from_spec(mod_spec)
39
+ mod_spec.loader.exec_module(mod)
40
+ os.environ.pop("MS_DEV_CUSTOM_OPP_PATH")
41
+
42
+
43
+ _install_custom()
mindspore/amp.py CHANGED
@@ -15,11 +15,13 @@
15
15
  """ms function for mixed precision."""
16
16
  from __future__ import absolute_import
17
17
 
18
+ import os
18
19
  from abc import ABC, abstractmethod
19
20
  from mindspore.common import mutable
20
21
  from mindspore.ops._primitive_cache import _get_cache_prim
21
22
  from mindspore.ops.operations.math_ops import NPUGetFloatStatusV2, NPUClearFloatStatusV2
22
23
  from mindspore import _checkparam as validator
24
+ from mindspore._c_expression import MSContext
23
25
  from .common import dtype as mstype
24
26
  from . import context
25
27
  from . import ops
@@ -37,8 +39,13 @@ _partial = ops.Partial()
37
39
 
38
40
 
39
41
  @constexpr
40
- def _ascend_target():
41
- return context.get_context("device_target") == "Ascend"
42
+ def _ascend_910A_target():
43
+ return MSContext.get_instance().get_ascend_soc_version() == "ascend910"
44
+
45
+
46
+ @constexpr
47
+ def _ascend_910B_target():
48
+ return MSContext.get_instance().get_ascend_soc_version() == "ascend910b"
42
49
 
43
50
 
44
51
  @constexpr
@@ -72,9 +79,10 @@ def _overflow(inputs):
72
79
 
73
80
 
74
81
  @jit
75
- def _all_finite(inputs):
82
+ def _all_finite(inputs, check_overflow_mode):
76
83
  """all finite check"""
77
- if _ascend_target():
84
+ if (_ascend_910A_target()) or \
85
+ (_ascend_910B_target() and check_overflow_mode != "INFNAN_MODE"):
78
86
  status = Tensor([0] * 8, mstype.int32)
79
87
  status = ops.depend(status, inputs)
80
88
  get_status = _get_cache_prim(NPUGetFloatStatusV2)()(status)
@@ -83,6 +91,7 @@ def _all_finite(inputs):
83
91
  get_status = ops.depend(get_status, clear_status)
84
92
  status_finite = get_status.equal(Tensor(0, mstype.int32)).all()
85
93
  return status_finite
94
+
86
95
  outputs = _hypermap(_partial(_overflow), inputs)
87
96
  flag_sum = ops.addn(outputs).reshape(())
88
97
  status_finite = ops.less(flag_sum, 1)
@@ -117,10 +126,11 @@ def all_finite(inputs):
117
126
 
118
127
  Tutorial Examples:
119
128
  - `Automatic Mix Precision - Loss Scaling
120
- <https://mindspore.cn/tutorials/en/r2.1/advanced/mixed_precision.html#loss-scaling>`_
129
+ <https://mindspore.cn/tutorials/en/r2.2/advanced/mixed_precision.html#loss-scaling>`_
121
130
  """
122
131
  inputs = mutable(inputs)
123
- return _all_finite(inputs)
132
+ _check_overflow_mode = os.environ.get('MS_ASCEND_CHECK_OVERFLOW_MODE')
133
+ return _all_finite(inputs, _check_overflow_mode)
124
134
 
125
135
 
126
136
  @jit_class
@@ -132,11 +142,36 @@ class LossScaler(ABC):
132
142
  to scale and unscale the loss value and gradients to avoid overflow, `adjust` is used to update the
133
143
  loss scale value.
134
144
 
135
- For more information, refer to the `tutorials <https://mindspore.cn/tutorials/en/r2.1/advanced/
145
+ For more information, refer to the `tutorials <https://mindspore.cn/tutorials/en/r2.2/advanced/
136
146
  mixed_precision.html#loss-scaling>`_.
137
147
 
138
148
  .. warning::
139
149
  This is an experimental API that is subject to change or deletion.
150
+
151
+ Examples:
152
+ >>> from mindspore.amp import LossScaler, _grad_scale_map, _grad_unscale_map
153
+ >>> from mindspore import ops, Parameter, Tensor
154
+ >>> from mindspore.common import dtype as mstype
155
+ >>>
156
+ >>> class MyLossScaler(LossScaler):
157
+ ... def __init__(self, scale_value):
158
+ ... self.scale_value = Parameter(Tensor(scale_value, dtype=mstype.float32), name="scale_value")
159
+ ...
160
+ ... def scale(self, inputs):
161
+ ... inputs = mutable(inputs)
162
+ ... return _grad_scale_map(self.scale_value, inputs)
163
+ ...
164
+ ... def unscale(self, inputs):
165
+ ... inputs = mutable(inputs)
166
+ ... return _grad_unscale_map(self.scale_value, inputs)
167
+ ...
168
+ ... def adjust(self, grads_finite):
169
+ ... scale_mul_factor = self.scale_value * self.scale_factor
170
+ ... scale_value = ops.select(grads_finite, scale_mul_factor, self.scale_value)
171
+ ... ops.assign(self.scale_value, scale_value)
172
+ ... return True
173
+ >>>
174
+ >>> loss_scaler = MyLossScaler(1024)
140
175
  """
141
176
  @abstractmethod
142
177
  def scale(self, inputs):
@@ -234,7 +269,8 @@ class StaticLossScaler(LossScaler):
234
269
 
235
270
  def adjust(self, grads_finite):
236
271
  """
237
- `scale_value` is fixed.
272
+ Adjust `scale_value` in `LossScaler`. `scale_value` is fixed in `StaticLossScaler`, so this method
273
+ return False directly.
238
274
 
239
275
  Args:
240
276
  grads_finite (Tensor): a scalar bool Tensor indicating whether the grads are finite.
@@ -298,7 +334,7 @@ class DynamicLossScaler(LossScaler):
298
334
 
299
335
  Tutorial Examples:
300
336
  - `Automatic Mix Precision - Loss Scaling
301
- <https://mindspore.cn/tutorials/en/r2.1/advanced/mixed_precision.html#loss-scaling>`_
337
+ <https://mindspore.cn/tutorials/en/r2.2/advanced/mixed_precision.html#loss-scaling>`_
302
338
  """
303
339
  inputs = mutable(inputs)
304
340
  return _grad_scale_map(self.scale_value, inputs)
@@ -315,7 +351,7 @@ class DynamicLossScaler(LossScaler):
315
351
 
316
352
  Tutorial Examples:
317
353
  - `Automatic Mix Precision - Loss Scaling
318
- <https://mindspore.cn/tutorials/en/r2.1/advanced/mixed_precision.html#loss-scaling>`_
354
+ <https://mindspore.cn/tutorials/en/r2.2/advanced/mixed_precision.html#loss-scaling>`_
319
355
  """
320
356
  inputs = mutable(inputs)
321
357
  return _grad_unscale_map(self.scale_value, inputs)
@@ -329,7 +365,7 @@ class DynamicLossScaler(LossScaler):
329
365
 
330
366
  Tutorial Examples:
331
367
  - `Automatic Mix Precision - Loss Scaling
332
- <https://mindspore.cn/tutorials/en/r2.1/advanced/mixed_precision.html#loss-scaling>`_
368
+ <https://mindspore.cn/tutorials/en/r2.2/advanced/mixed_precision.html#loss-scaling>`_
333
369
  """
334
370
  one = ops.ones((), self.scale_value.dtype)
335
371
  scale_mul_factor = self.scale_value * self.scale_factor
mindspore/bin/cache_admin CHANGED
Binary file
Binary file