mindspore 2.1.0__cp38-none-any.whl → 2.2.0__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 (539) 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 +49 -16
  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/composite_op_helper.py +9 -10
  20. mindspore/_akg/akg/utils/kernel_exec.py +58 -260
  21. mindspore/_akg/akg/utils/result_analysis.py +4 -24
  22. mindspore/_akg/akg/utils/tbe_codegen_utils.py +198 -0
  23. mindspore/_c_dataengine.cpython-38-aarch64-linux-gnu.so +0 -0
  24. mindspore/_c_expression.cpython-38-aarch64-linux-gnu.so +0 -0
  25. mindspore/_c_mindrecord.cpython-38-aarch64-linux-gnu.so +0 -0
  26. mindspore/_check_jit_forbidden_api.py +3 -1
  27. mindspore/_checkparam.py +26 -32
  28. mindspore/_extends/graph_kernel/__init__.py +0 -1
  29. mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
  30. mindspore/_extends/graph_kernel/splitter.py +1 -9
  31. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
  32. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +2 -2
  33. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
  34. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
  35. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +4 -4
  36. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
  37. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
  38. mindspore/_extends/parse/__init__.py +12 -15
  39. mindspore/_extends/parse/namespace.py +7 -33
  40. mindspore/_extends/parse/parser.py +61 -71
  41. mindspore/_extends/parse/resources.py +1 -1
  42. mindspore/_extends/parse/standard_method.py +72 -95
  43. mindspore/_extends/parse/trope.py +1 -1
  44. mindspore/_extends/remote/kernel_build_server.py +24 -7
  45. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  46. mindspore/_install_custom.py +43 -0
  47. mindspore/_mindspore_offline_debug.cpython-38-aarch64-linux-gnu.so +0 -0
  48. mindspore/amp.py +47 -11
  49. mindspore/bin/cache_admin +0 -0
  50. mindspore/bin/cache_server +0 -0
  51. mindspore/boost/boost.py +1 -8
  52. mindspore/boost/boost_cell_wrapper.py +3 -2
  53. mindspore/boost/grad_accumulation.py +1 -1
  54. mindspore/boost/group_loss_scale_manager.py +8 -7
  55. mindspore/common/__init__.py +5 -3
  56. mindspore/common/_jit_fallback_utils.py +6 -0
  57. mindspore/common/_register_for_adapter.py +2 -0
  58. mindspore/common/_register_for_tensor.py +2 -2
  59. mindspore/common/_stub_tensor.py +13 -0
  60. mindspore/common/_utils.py +13 -0
  61. mindspore/common/api.py +173 -258
  62. mindspore/common/auto_dynamic_shape.py +498 -0
  63. mindspore/common/dtype.py +18 -11
  64. mindspore/common/dump.py +6 -4
  65. mindspore/common/initializer.py +14 -14
  66. mindspore/common/jit_config.py +33 -15
  67. mindspore/common/lazy_inline.py +126 -7
  68. mindspore/common/mindir_util.py +101 -0
  69. mindspore/common/parameter.py +51 -41
  70. mindspore/common/seed.py +4 -4
  71. mindspore/common/sparse_tensor.py +13 -14
  72. mindspore/common/tensor.py +240 -145
  73. mindspore/communication/__init__.py +7 -4
  74. mindspore/communication/_comm_helper.py +83 -4
  75. mindspore/communication/management.py +152 -84
  76. mindspore/config/op_info.config +13 -2
  77. mindspore/config/super_bar_config.json +4 -2
  78. mindspore/context.py +143 -59
  79. mindspore/dataset/__init__.py +5 -5
  80. mindspore/dataset/audio/__init__.py +2 -2
  81. mindspore/dataset/audio/transforms.py +52 -52
  82. mindspore/dataset/callback/ds_callback.py +16 -2
  83. mindspore/dataset/core/config.py +68 -51
  84. mindspore/dataset/engine/cache_client.py +28 -5
  85. mindspore/dataset/engine/datasets.py +250 -112
  86. mindspore/dataset/engine/datasets_audio.py +43 -211
  87. mindspore/dataset/engine/datasets_standard_format.py +11 -35
  88. mindspore/dataset/engine/datasets_text.py +43 -67
  89. mindspore/dataset/engine/datasets_user_defined.py +86 -100
  90. mindspore/dataset/engine/datasets_vision.py +219 -1029
  91. mindspore/dataset/engine/iterators.py +11 -4
  92. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
  93. mindspore/dataset/engine/obs/util.py +3 -0
  94. mindspore/dataset/engine/samplers.py +1 -1
  95. mindspore/dataset/engine/validators.py +19 -5
  96. mindspore/dataset/text/__init__.py +3 -3
  97. mindspore/dataset/text/transforms.py +101 -127
  98. mindspore/dataset/text/utils.py +205 -138
  99. mindspore/dataset/transforms/__init__.py +1 -1
  100. mindspore/dataset/transforms/py_transforms_util.py +40 -12
  101. mindspore/dataset/transforms/transforms.py +95 -40
  102. mindspore/dataset/utils/browse_dataset.py +8 -2
  103. mindspore/dataset/utils/line_reader.py +17 -19
  104. mindspore/dataset/vision/__init__.py +3 -3
  105. mindspore/dataset/vision/c_transforms.py +6 -3
  106. mindspore/dataset/vision/transforms.py +409 -287
  107. mindspore/dataset/vision/utils.py +13 -14
  108. mindspore/dataset/vision/validators.py +11 -1
  109. mindspore/experimental/map_parameter.py +14 -0
  110. mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
  111. mindspore/{nn/optim_ex → experimental/optim}/adam.py +59 -66
  112. mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
  113. mindspore/experimental/optim/lr_scheduler.py +1427 -0
  114. mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
  115. mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
  116. mindspore/gen_ops.py +273 -0
  117. mindspore/include/OWNERS +0 -1
  118. mindspore/include/api/data_type.h +2 -1
  119. mindspore/include/api/graph.h +0 -15
  120. mindspore/include/api/kernel.h +2 -0
  121. mindspore/include/api/kernel_api.h +37 -12
  122. mindspore/include/api/model.h +0 -14
  123. mindspore/include/api/types.h +37 -4
  124. mindspore/include/c_api/ms/abstract.h +67 -0
  125. mindspore/include/c_api/ms/attribute.h +197 -0
  126. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  127. mindspore/include/c_api/ms/base/macros.h +32 -0
  128. mindspore/include/c_api/ms/base/status.h +33 -0
  129. mindspore/include/c_api/ms/base/types.h +282 -0
  130. mindspore/include/c_api/ms/context.h +102 -0
  131. mindspore/include/c_api/ms/graph.h +160 -0
  132. mindspore/include/c_api/ms/node.h +606 -0
  133. mindspore/include/c_api/ms/tensor.h +161 -0
  134. mindspore/include/c_api/ms/value.h +84 -0
  135. mindspore/include/dataset/constants.h +6 -5
  136. mindspore/include/dataset/execute.h +23 -13
  137. mindspore/include/dataset/text.h +26 -26
  138. mindspore/include/dataset/transforms.h +13 -13
  139. mindspore/include/dataset/vision.h +60 -60
  140. mindspore/include/dataset/vision_ascend.h +5 -6
  141. mindspore/include/dataset/vision_lite.h +17 -17
  142. mindspore/include/mindapi/base/type_id.h +1 -0
  143. mindspore/include/mindapi/base/types.h +1 -0
  144. mindspore/lib/libdnnl.so.2 +0 -0
  145. mindspore/lib/libjemalloc.so.2 +0 -0
  146. mindspore/lib/libmindspore.so +0 -0
  147. mindspore/lib/libmindspore_backend.so +0 -0
  148. mindspore/lib/libmindspore_common.so +0 -0
  149. mindspore/lib/libmindspore_core.so +0 -0
  150. mindspore/lib/libmindspore_glog.so.0 +0 -0
  151. mindspore/lib/libmindspore_gpr.so.15 +0 -0
  152. mindspore/lib/libmindspore_grpc++.so.1 +0 -0
  153. mindspore/lib/libmindspore_grpc.so.15 +0 -0
  154. mindspore/lib/libmindspore_shared_lib.so +0 -0
  155. mindspore/lib/libnnacl.so +0 -0
  156. mindspore/lib/libopencv_core.so.4.5 +0 -0
  157. mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
  158. mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
  159. mindspore/lib/libps_cache.so +0 -0
  160. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
  161. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
  162. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +9000 -0
  163. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
  164. mindspore/lib/plugin/ascend/libakg.so +0 -0
  165. mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
  166. mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
  167. mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
  168. mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
  169. mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
  170. mindspore/lib/plugin/cpu/libakg.so +0 -0
  171. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  172. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  173. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  174. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  175. mindspore/nn/__init__.py +0 -2
  176. mindspore/nn/cell.py +316 -74
  177. mindspore/nn/dynamic_lr.py +21 -21
  178. mindspore/nn/layer/activation.py +21 -28
  179. mindspore/nn/layer/basic.py +15 -13
  180. mindspore/nn/layer/channel_shuffle.py +1 -1
  181. mindspore/nn/layer/container.py +271 -9
  182. mindspore/nn/layer/conv.py +310 -207
  183. mindspore/nn/layer/dense.py +8 -5
  184. mindspore/nn/layer/embedding.py +33 -27
  185. mindspore/nn/layer/flash_attention.py +82 -41
  186. mindspore/nn/layer/image.py +8 -6
  187. mindspore/nn/layer/math.py +13 -18
  188. mindspore/nn/layer/normalization.py +107 -66
  189. mindspore/nn/layer/padding.py +1 -1
  190. mindspore/nn/layer/pooling.py +131 -109
  191. mindspore/nn/layer/rnn_cells.py +22 -17
  192. mindspore/nn/layer/rnns.py +13 -16
  193. mindspore/nn/layer/thor_layer.py +1 -1
  194. mindspore/nn/layer/transformer.py +221 -154
  195. mindspore/nn/learning_rate_schedule.py +9 -1
  196. mindspore/nn/loss/loss.py +235 -174
  197. mindspore/nn/optim/ada_grad.py +2 -1
  198. mindspore/nn/optim/adadelta.py +1 -0
  199. mindspore/nn/optim/adafactor.py +2 -1
  200. mindspore/nn/optim/adam.py +7 -4
  201. mindspore/nn/optim/adamax.py +3 -2
  202. mindspore/nn/optim/adasum.py +2 -2
  203. mindspore/nn/optim/asgd.py +2 -3
  204. mindspore/nn/optim/ftrl.py +6 -5
  205. mindspore/nn/optim/lamb.py +7 -4
  206. mindspore/nn/optim/lars.py +1 -1
  207. mindspore/nn/optim/lazyadam.py +5 -3
  208. mindspore/nn/optim/momentum.py +2 -1
  209. mindspore/nn/optim/optimizer.py +53 -4
  210. mindspore/nn/optim/proximal_ada_grad.py +3 -4
  211. mindspore/nn/optim/rmsprop.py +4 -3
  212. mindspore/nn/optim/rprop.py +23 -12
  213. mindspore/nn/optim/sgd.py +26 -11
  214. mindspore/nn/optim/thor.py +9 -7
  215. mindspore/nn/probability/bijector/bijector.py +5 -5
  216. mindspore/nn/probability/bijector/power_transform.py +27 -27
  217. mindspore/nn/probability/bijector/softplus.py +3 -3
  218. mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
  219. mindspore/nn/probability/distribution/bernoulli.py +5 -5
  220. mindspore/nn/probability/distribution/beta.py +3 -3
  221. mindspore/nn/probability/distribution/categorical.py +7 -7
  222. mindspore/nn/probability/distribution/cauchy.py +0 -1
  223. mindspore/nn/probability/distribution/distribution.py +3 -3
  224. mindspore/nn/probability/distribution/gamma.py +3 -3
  225. mindspore/nn/probability/distribution/geometric.py +4 -4
  226. mindspore/nn/probability/distribution/gumbel.py +4 -4
  227. mindspore/nn/probability/distribution/log_normal.py +2 -2
  228. mindspore/nn/probability/distribution/logistic.py +2 -2
  229. mindspore/nn/probability/distribution/poisson.py +4 -4
  230. mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
  231. mindspore/nn/probability/distribution/uniform.py +6 -6
  232. mindspore/nn/wrap/cell_wrapper.py +78 -34
  233. mindspore/nn/wrap/grad_reducer.py +8 -5
  234. mindspore/nn/wrap/loss_scale.py +105 -42
  235. mindspore/numpy/array_creations.py +1 -2
  236. mindspore/numpy/array_ops.py +3 -2
  237. mindspore/offline_debug/convert_async.py +2 -2
  238. mindspore/ops/_grad_experimental/__init__.py +0 -5
  239. mindspore/ops/_grad_experimental/grad_array_ops.py +1 -2
  240. mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
  241. mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
  242. mindspore/ops/_grad_experimental/grad_implementations.py +10 -0
  243. mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
  244. mindspore/ops/_grad_experimental/grad_math_ops.py +0 -181
  245. mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
  246. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  247. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +165 -109
  248. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +144 -86
  249. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +172 -187
  250. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +51 -57
  251. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +6 -17
  252. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +1 -1
  253. mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
  254. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  255. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  256. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  257. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  258. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  259. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  260. mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
  261. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  262. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  263. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  264. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  265. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  266. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  267. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  268. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
  269. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
  270. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  271. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  272. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  273. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  274. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  275. mindspore/ops/_op_impl/tbe/__init__.py +4 -4
  276. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  277. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  278. mindspore/ops/_primitive_cache.py +1 -1
  279. mindspore/ops/_tracefunc.py +45 -13
  280. mindspore/ops/_utils/utils.py +4 -1
  281. mindspore/ops/_vmap/vmap_array_ops.py +3 -3
  282. mindspore/ops/_vmap/vmap_base.py +3 -3
  283. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  284. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  285. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  286. mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
  287. mindspore/ops/arg_dtype_cast.py +54 -0
  288. mindspore/ops/composite/base.py +37 -10
  289. mindspore/ops/composite/math_ops.py +5 -4
  290. mindspore/ops/composite/multitype_ops/_compile_utils.py +273 -72
  291. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
  292. mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
  293. mindspore/ops/composite/multitype_ops/getitem_impl.py +40 -2
  294. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  295. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  296. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  297. mindspore/ops/deprecated.py +304 -0
  298. mindspore/ops/function/__init__.py +4 -1
  299. mindspore/ops/function/array_func.py +167 -189
  300. mindspore/ops/function/clip_func.py +81 -13
  301. mindspore/ops/function/debug_func.py +1 -1
  302. mindspore/ops/function/grad/grad_func.py +18 -8
  303. mindspore/ops/function/image_func.py +10 -4
  304. mindspore/ops/function/linalg_func.py +5 -5
  305. mindspore/ops/function/math_func.py +575 -386
  306. mindspore/ops/function/nn_func.py +470 -251
  307. mindspore/ops/function/random_func.py +86 -56
  308. mindspore/ops/function/sparse_func.py +1 -1
  309. mindspore/ops/function/sparse_unary_func.py +14 -12
  310. mindspore/ops/function/vmap_func.py +6 -5
  311. mindspore/ops/functional.py +15 -10
  312. mindspore/ops/op_info_register.py +235 -19
  313. mindspore/ops/operations/__init__.py +25 -17
  314. mindspore/ops/operations/_grad_ops.py +52 -7
  315. mindspore/ops/operations/_inner_ops.py +213 -12
  316. mindspore/ops/operations/_quant_ops.py +4 -8
  317. mindspore/ops/operations/_sequence_ops.py +42 -0
  318. mindspore/ops/operations/array_ops.py +64 -280
  319. mindspore/ops/operations/comm_ops.py +105 -57
  320. mindspore/ops/operations/custom_ops.py +10 -3
  321. mindspore/ops/operations/debug_ops.py +8 -4
  322. mindspore/ops/operations/image_ops.py +18 -12
  323. mindspore/ops/operations/math_ops.py +185 -138
  324. mindspore/ops/operations/nn_ops.py +716 -492
  325. mindspore/ops/operations/other_ops.py +0 -22
  326. mindspore/ops/operations/random_ops.py +53 -111
  327. mindspore/ops/operations/sparse_ops.py +3 -1
  328. mindspore/ops/primitive.py +24 -18
  329. mindspore/parallel/_auto_parallel_context.py +68 -8
  330. mindspore/parallel/_cost_model_context.py +2 -2
  331. mindspore/parallel/_offload_context.py +17 -3
  332. mindspore/parallel/_parallel_serialization.py +2 -2
  333. mindspore/parallel/_ps_context.py +12 -0
  334. mindspore/parallel/_tensor.py +14 -12
  335. mindspore/parallel/_transformer/layers.py +5 -3
  336. mindspore/parallel/_transformer/loss.py +1 -0
  337. mindspore/parallel/_transformer/moe.py +2 -2
  338. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  339. mindspore/parallel/_transformer/transformer.py +23 -3
  340. mindspore/parallel/_utils.py +11 -7
  341. mindspore/parallel/algo_parameter_config.py +85 -5
  342. mindspore/parallel/checkpoint_transform.py +6 -10
  343. mindspore/parallel/shard.py +4 -4
  344. mindspore/profiler/common/struct_type.py +3 -3
  345. mindspore/profiler/common/util.py +3 -2
  346. mindspore/profiler/envprofiling.py +1 -1
  347. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  348. mindspore/profiler/parser/ascend_flops_generator.py +2 -2
  349. mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
  350. mindspore/profiler/parser/ascend_hccl_generator.py +17 -12
  351. mindspore/profiler/parser/ascend_msprof_exporter.py +104 -252
  352. mindspore/profiler/parser/ascend_msprof_generator.py +8 -8
  353. mindspore/profiler/parser/ascend_op_generator.py +5 -5
  354. mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
  355. mindspore/profiler/parser/ascend_timeline_generator.py +9 -6
  356. mindspore/profiler/parser/base_timeline_generator.py +9 -7
  357. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +14 -10
  358. mindspore/profiler/parser/flops_parser.py +15 -11
  359. mindspore/profiler/parser/framework_parser.py +37 -21
  360. mindspore/profiler/parser/hccl_parser.py +16 -12
  361. mindspore/profiler/parser/integrator.py +22 -11
  362. mindspore/profiler/parser/memory_usage_parser.py +2 -2
  363. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  364. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  365. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  366. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  367. mindspore/profiler/parser/optime_parser.py +1 -1
  368. mindspore/profiler/parser/profiler_info.py +2 -2
  369. mindspore/profiler/parser/step_trace_parser.py +11 -14
  370. mindspore/profiler/profiling.py +139 -71
  371. mindspore/rewrite/api/node.py +102 -19
  372. mindspore/rewrite/api/node_type.py +5 -1
  373. mindspore/rewrite/api/scoped_value.py +9 -17
  374. mindspore/rewrite/api/symbol_tree.py +131 -47
  375. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  376. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  377. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  378. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
  379. mindspore/rewrite/common/rewrite_elog.py +5 -1
  380. mindspore/rewrite/namer.py +33 -24
  381. mindspore/rewrite/namespace.py +14 -5
  382. mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
  383. mindspore/rewrite/node/call_function.py +79 -0
  384. mindspore/rewrite/node/cell_container.py +135 -0
  385. mindspore/rewrite/node/control_flow.py +88 -0
  386. mindspore/rewrite/{node.py → node/node.py} +273 -234
  387. mindspore/rewrite/node/node_manager.py +254 -0
  388. mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
  389. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  390. mindspore/rewrite/parsers/assign_parser.py +216 -221
  391. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  392. mindspore/rewrite/parsers/class_def_parser.py +174 -113
  393. mindspore/rewrite/parsers/constant_parser.py +9 -6
  394. mindspore/rewrite/parsers/container_parser.py +9 -7
  395. mindspore/rewrite/parsers/for_parser.py +36 -15
  396. mindspore/rewrite/parsers/function_def_parser.py +24 -16
  397. mindspore/rewrite/parsers/if_parser.py +28 -24
  398. mindspore/rewrite/parsers/module_parser.py +196 -25
  399. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  400. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  401. mindspore/rewrite/parsers/return_parser.py +6 -6
  402. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  403. mindspore/rewrite/sparsify/utils.py +1 -1
  404. mindspore/rewrite/symbol_tree.py +525 -577
  405. mindspore/rewrite/symbol_tree_builder.py +9 -193
  406. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  407. mindspore/run_check/_check_version.py +2 -2
  408. mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
  409. mindspore/safeguard/rewrite_obfuscation.py +517 -0
  410. mindspore/scipy/linalg.py +1 -1
  411. mindspore/scipy/optimize/minimize.py +7 -3
  412. mindspore/train/_utils.py +7 -3
  413. mindspore/train/amp.py +323 -123
  414. mindspore/train/anf_ir_pb2.py +14 -2
  415. mindspore/train/callback/_backup_and_restore.py +2 -12
  416. mindspore/train/callback/_callback.py +29 -4
  417. mindspore/train/callback/_checkpoint.py +23 -8
  418. mindspore/train/callback/_early_stop.py +2 -2
  419. mindspore/train/callback/_landscape.py +4 -4
  420. mindspore/train/callback/_loss_monitor.py +2 -2
  421. mindspore/train/callback/_on_request_exit.py +2 -2
  422. mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
  423. mindspore/train/callback/_summary_collector.py +14 -7
  424. mindspore/train/callback/_time_monitor.py +58 -5
  425. mindspore/train/data_sink.py +5 -11
  426. mindspore/train/dataset_helper.py +83 -57
  427. mindspore/train/loss_scale_manager.py +2 -2
  428. mindspore/train/metrics/__init__.py +3 -3
  429. mindspore/train/metrics/cosine_similarity.py +1 -1
  430. mindspore/train/metrics/hausdorff_distance.py +3 -2
  431. mindspore/train/metrics/mean_surface_distance.py +3 -2
  432. mindspore/train/metrics/metric.py +39 -19
  433. mindspore/train/metrics/roc.py +2 -2
  434. mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
  435. mindspore/train/mind_ir_pb2.py +85 -36
  436. mindspore/train/model.py +185 -45
  437. mindspore/train/serialization.py +390 -150
  438. mindspore/train/summary/_writer_pool.py +3 -2
  439. mindspore/train/summary/summary_record.py +14 -10
  440. mindspore/train/train_thor/convert_utils.py +3 -3
  441. mindspore/train/train_thor/dataset_helper.py +1 -1
  442. mindspore/version.py +1 -1
  443. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/METADATA +6 -7
  444. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/RECORD +447 -507
  445. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/entry_points.txt +0 -1
  446. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  447. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  448. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  449. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  450. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  451. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  452. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  453. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  454. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  455. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  456. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  457. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  458. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  459. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  460. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  461. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  462. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  463. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  464. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  465. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  466. mindspore/_extends/graph_kernel/expander.py +0 -80
  467. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
  468. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  469. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  470. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  471. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  472. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  473. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  474. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  475. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  476. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  477. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  478. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  479. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  480. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  481. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  482. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  483. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  484. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  485. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  486. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  487. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  488. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  489. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  490. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  491. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  492. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  493. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  494. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  495. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  496. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  497. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  498. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  499. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  500. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  501. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  502. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  503. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  504. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  505. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  506. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  507. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  508. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  509. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  510. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  511. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  512. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  513. mindspore/dataset/datapreprocess/__init__.py +0 -20
  514. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  515. mindspore/include/api/net.h +0 -142
  516. mindspore/nn/lr_scheduler.py +0 -262
  517. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
  518. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
  519. mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
  520. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  521. mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
  522. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
  523. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
  524. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
  525. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  526. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  527. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
  528. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
  529. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  530. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  531. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
  532. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
  533. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
  534. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
  535. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
  536. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  537. mindspore/rewrite/node_visitor.py +0 -44
  538. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/WHEEL +0 -0
  539. {mindspore-2.1.0.dist-info → mindspore-2.2.0.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,10 @@ 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 check_is_const_int(start, op_name, "start"):
2869
2823
  if check_is_tensor(x_type):
2870
2824
  for i in range(x.shape[0]):
2871
2825
  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
2826
  else:
2876
2827
  ret = zip(range(start, start + len(x)), x)
2877
2828
  return ret
@@ -2941,6 +2892,13 @@ def to_coo(x):
2941
2892
  return F.dense_to_sparse_coo(x)
2942
2893
 
2943
2894
 
2895
+ def tolist(x):
2896
+ """
2897
+ Convert a Tensor to List, if the input is Tensor scalar, Python scalar will be returned.
2898
+ """
2899
+ return x.asnumpy().tolist()
2900
+
2901
+
2944
2902
  @constexpr
2945
2903
  def check_select_condition(cond_type):
2946
2904
  """
@@ -3305,7 +3263,6 @@ def check_is_tuple_or_list_or_tensor(x, op_name, arg_name):
3305
3263
  f"For '{op_name}', the '{arg_name}' should be tuple or list or tensor, but got {x}.")
3306
3264
 
3307
3265
 
3308
- @constexpr
3309
3266
  def check_is_const_int(x, op_name, arg_name):
3310
3267
  """check whether x is const int."""
3311
3268
  if x is None:
@@ -3652,6 +3609,11 @@ def dict_get(self_, key_index, default_value=None):
3652
3609
  return F.dict_getitem(self_, key_index)
3653
3610
 
3654
3611
 
3612
+ def dict_setitem(self_, key, target):
3613
+ """Dictionary setitem"""
3614
+ return _dict_setitem(self_, key, target)
3615
+
3616
+
3655
3617
  def dict_clear(self_):
3656
3618
  """Clear the dict"""
3657
3619
  return _dict_clear(self_)
@@ -3902,6 +3864,13 @@ def cos(x):
3902
3864
  return F.cos(x)
3903
3865
 
3904
3866
 
3867
+ def count_nonzero(x, axis=(), keep_dims=False, dtype=mstype.int32):
3868
+ r"""
3869
+ For details, please refer to :func:`mindspore.ops.count_nonzero`.
3870
+ """
3871
+ return F.count_nonzero(x, axis, keep_dims, dtype)
3872
+
3873
+
3905
3874
  def cov(x, *, correction=1, fweights=None, aweights=None):
3906
3875
  r"""
3907
3876
  For details, please refer to :func:`mindspore.ops.cov`.
@@ -4180,7 +4149,8 @@ def expand(input, size):
4180
4149
  r"""
4181
4150
  Returns a new view of the self tensor with singleton dimensions expanded to a larger size.
4182
4151
  """
4183
- return F.expand(input, size)
4152
+ size = P.TensorToTuple()(size)
4153
+ return F.broadcast_to(input, size)
4184
4154
 
4185
4155
 
4186
4156
  def cumprod(input, dim, dtype=None):
@@ -4202,6 +4172,13 @@ def div(input, value, *, rounding_mode=None):
4202
4172
  return F.div(input, value, rounding_mode=rounding_mode)
4203
4173
 
4204
4174
 
4175
+ def eq(input, other):
4176
+ r"""
4177
+ Computes the equivalence between the tensor `input` and the given input tensor `other` element-wise.
4178
+ """
4179
+ return F.equal(input, other)
4180
+
4181
+
4205
4182
  def equal(x, y):
4206
4183
  r"""
4207
4184
  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,7 @@
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, create_akg_v2_parallel_process
19
19
 
20
20
 
21
21
  class Messager:
@@ -124,8 +124,8 @@ class Messager:
124
124
  raise NotImplementedError
125
125
 
126
126
 
127
- class AkgBuilder():
128
- """Akg building wrapper"""
127
+ class AkgBuilderBase():
128
+ """Base Class for kernel compiler building wrapper"""
129
129
 
130
130
  def __init__(self, platform):
131
131
  self.platform = platform
@@ -133,8 +133,9 @@ class AkgBuilder():
133
133
  self.akg_processor = None
134
134
 
135
135
  def create(self, process_num, waitime):
136
- """ Create akg processor"""
137
- self.akg_processor = create_akg_parallel_process(process_num, waitime, self.platform)
136
+ """ Create compiler processor"""
137
+ del process_num, waitime
138
+ raise NotImplementedError
138
139
 
139
140
  def accept_json(self, json):
140
141
  """ Accept json"""
@@ -145,7 +146,7 @@ class AkgBuilder():
145
146
  return self.akg_processor.compile(self.attrs)
146
147
 
147
148
  def handle(self, messager, arg):
148
- """Handle message about akg"""
149
+ """Handle message about compiler"""
149
150
  if arg == 'AKG/START':
150
151
  messager.send_ack()
151
152
  process_num_str = messager.get_message()
@@ -172,7 +173,23 @@ class AkgBuilder():
172
173
  messager.send_ack(False)
173
174
  break
174
175
  else:
175
- raise RuntimeError("Unknown message type: %s" % arg)
176
+ raise RuntimeError(f"Unknown message type: {arg}")
177
+
178
+
179
+ class AkgBuilder(AkgBuilderBase):
180
+ """Akg building wrapper"""
181
+
182
+ def create(self, process_num, waitime):
183
+ """ Create akg processor"""
184
+ self.akg_processor = create_akg_parallel_process(process_num, waitime, self.platform)
185
+
186
+
187
+ class AkgV2Builder(AkgBuilderBase):
188
+ """Akg V2 building wrapper"""
189
+
190
+ def create(self, process_num, waitime):
191
+ """ Create akg v2 processor"""
192
+ self.akg_processor = create_akg_v2_parallel_process(process_num, waitime, self.platform)
176
193
 
177
194
 
178
195
  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