mindspore 2.1.0__cp38-cp38-manylinux1_x86_64.whl → 2.2.11__cp38-cp38-manylinux1_x86_64.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 (589) 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 +139 -22
  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/cann_file_parser.py +76 -0
  20. mindspore/_akg/akg/utils/ascend_profilier/file_manager.py +56 -0
  21. mindspore/_akg/akg/utils/ascend_profilier/op_summary_bean.py +23 -0
  22. mindspore/_akg/akg/utils/ascend_profilier/op_summary_headers.py +8 -0
  23. mindspore/_akg/akg/utils/ascend_profilier/op_summary_parser.py +42 -0
  24. mindspore/_akg/akg/utils/ascend_profilier/path_manager.py +65 -0
  25. mindspore/_akg/akg/utils/composite_op_helper.py +16 -12
  26. mindspore/_akg/akg/utils/dump_ascend_meta.py +22 -3
  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 +56 -1
  31. mindspore/_c_dataengine.cpython-38-x86_64-linux-gnu.so +0 -0
  32. mindspore/_c_expression.cpython-38-x86_64-linux-gnu.so +0 -0
  33. mindspore/_c_mindrecord.cpython-38-x86_64-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 +13 -15
  49. mindspore/_extends/parse/namespace.py +7 -33
  50. mindspore/_extends/parse/parser.py +67 -72
  51. mindspore/_extends/parse/resources.py +1 -1
  52. mindspore/_extends/parse/standard_method.py +86 -106
  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-x86_64-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 +29 -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 +33 -7
  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 +8998 -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/gpu/libcuda_ops.so.10 +0 -0
  196. mindspore/lib/plugin/gpu/libcuda_ops.so.11 +0 -0
  197. mindspore/lib/plugin/gpu10.1/libakg.so +0 -0
  198. mindspore/lib/plugin/gpu10.1/libnccl.so.2 +0 -0
  199. mindspore/lib/plugin/gpu11.1/libakg.so +0 -0
  200. mindspore/lib/plugin/gpu11.1/libnccl.so.2 +0 -0
  201. mindspore/lib/plugin/gpu11.6/libakg.so +0 -0
  202. mindspore/lib/plugin/gpu11.6/libnccl.so.2 +0 -0
  203. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  204. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  205. mindspore/lib/plugin/libmindspore_gpu.so.10.1 +0 -0
  206. mindspore/lib/plugin/libmindspore_gpu.so.11.1 +0 -0
  207. mindspore/lib/plugin/libmindspore_gpu.so.11.6 +0 -0
  208. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  209. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  210. mindspore/nn/__init__.py +0 -2
  211. mindspore/nn/cell.py +313 -74
  212. mindspore/nn/dynamic_lr.py +21 -21
  213. mindspore/nn/layer/activation.py +22 -30
  214. mindspore/nn/layer/basic.py +15 -13
  215. mindspore/nn/layer/channel_shuffle.py +1 -1
  216. mindspore/nn/layer/container.py +271 -9
  217. mindspore/nn/layer/conv.py +323 -204
  218. mindspore/nn/layer/dense.py +8 -5
  219. mindspore/nn/layer/embedding.py +33 -27
  220. mindspore/nn/layer/flash_attention.py +61 -95
  221. mindspore/nn/layer/image.py +8 -6
  222. mindspore/nn/layer/math.py +16 -25
  223. mindspore/nn/layer/normalization.py +107 -66
  224. mindspore/nn/layer/padding.py +1 -1
  225. mindspore/nn/layer/pooling.py +131 -109
  226. mindspore/nn/layer/rnn_cells.py +27 -22
  227. mindspore/nn/layer/rnns.py +13 -16
  228. mindspore/nn/layer/thor_layer.py +1 -1
  229. mindspore/nn/layer/transformer.py +221 -154
  230. mindspore/nn/learning_rate_schedule.py +9 -1
  231. mindspore/nn/loss/loss.py +235 -174
  232. mindspore/nn/optim/ada_grad.py +2 -1
  233. mindspore/nn/optim/adadelta.py +1 -0
  234. mindspore/nn/optim/adafactor.py +2 -1
  235. mindspore/nn/optim/adam.py +7 -4
  236. mindspore/nn/optim/adamax.py +3 -2
  237. mindspore/nn/optim/adasum.py +2 -2
  238. mindspore/nn/optim/asgd.py +2 -3
  239. mindspore/nn/optim/ftrl.py +6 -5
  240. mindspore/nn/optim/lamb.py +7 -4
  241. mindspore/nn/optim/lars.py +1 -1
  242. mindspore/nn/optim/lazyadam.py +5 -3
  243. mindspore/nn/optim/momentum.py +2 -1
  244. mindspore/nn/optim/optimizer.py +53 -4
  245. mindspore/nn/optim/proximal_ada_grad.py +3 -4
  246. mindspore/nn/optim/rmsprop.py +4 -3
  247. mindspore/nn/optim/rprop.py +23 -12
  248. mindspore/nn/optim/sgd.py +26 -11
  249. mindspore/nn/optim/thor.py +9 -7
  250. mindspore/nn/probability/bijector/bijector.py +5 -5
  251. mindspore/nn/probability/bijector/power_transform.py +27 -27
  252. mindspore/nn/probability/bijector/softplus.py +3 -3
  253. mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
  254. mindspore/nn/probability/distribution/bernoulli.py +5 -5
  255. mindspore/nn/probability/distribution/beta.py +3 -3
  256. mindspore/nn/probability/distribution/categorical.py +7 -7
  257. mindspore/nn/probability/distribution/cauchy.py +0 -1
  258. mindspore/nn/probability/distribution/distribution.py +3 -3
  259. mindspore/nn/probability/distribution/gamma.py +3 -3
  260. mindspore/nn/probability/distribution/geometric.py +4 -4
  261. mindspore/nn/probability/distribution/gumbel.py +4 -4
  262. mindspore/nn/probability/distribution/log_normal.py +2 -2
  263. mindspore/nn/probability/distribution/logistic.py +2 -2
  264. mindspore/nn/probability/distribution/poisson.py +4 -4
  265. mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
  266. mindspore/nn/probability/distribution/uniform.py +6 -6
  267. mindspore/nn/wrap/__init__.py +4 -2
  268. mindspore/nn/wrap/cell_wrapper.py +87 -34
  269. mindspore/nn/wrap/grad_reducer.py +8 -5
  270. mindspore/nn/wrap/loss_scale.py +105 -42
  271. mindspore/numpy/array_creations.py +1 -2
  272. mindspore/numpy/array_ops.py +3 -2
  273. mindspore/numpy/utils_const.py +5 -5
  274. mindspore/offline_debug/convert_async.py +2 -2
  275. mindspore/ops/_grad_experimental/__init__.py +0 -5
  276. mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
  277. mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
  278. mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
  279. mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
  280. mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
  281. mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
  282. mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
  283. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
  284. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  285. mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
  286. mindspore/ops/_op_impl/aicpu/add.py +3 -3
  287. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  288. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  289. mindspore/ops/_op_impl/{_custom_op/flash_attention/constants.py → aicpu/eps.py} +18 -27
  290. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  291. mindspore/ops/_op_impl/aicpu/linear_sum_assignment.py +21 -2
  292. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  293. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  294. mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
  295. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  296. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  297. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  298. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  299. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  300. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  301. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  302. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
  303. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
  304. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  305. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  306. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  307. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  308. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  309. mindspore/ops/_op_impl/tbe/__init__.py +4 -4
  310. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  311. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  312. mindspore/ops/_primitive_cache.py +1 -1
  313. mindspore/ops/_tracefunc.py +45 -13
  314. mindspore/ops/_utils/utils.py +6 -1
  315. mindspore/ops/_vmap/vmap_array_ops.py +3 -3
  316. mindspore/ops/_vmap/vmap_base.py +3 -3
  317. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  318. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  319. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  320. mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
  321. mindspore/ops/arg_dtype_cast.py +54 -0
  322. mindspore/ops/composite/base.py +37 -10
  323. mindspore/ops/composite/math_ops.py +5 -4
  324. mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
  325. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
  326. mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
  327. mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
  328. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  329. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  330. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  331. mindspore/ops/deprecated.py +304 -0
  332. mindspore/ops/function/__init__.py +4 -1
  333. mindspore/ops/function/array_func.py +174 -193
  334. mindspore/ops/function/clip_func.py +81 -13
  335. mindspore/ops/function/debug_func.py +1 -1
  336. mindspore/ops/function/grad/grad_func.py +18 -9
  337. mindspore/ops/function/image_func.py +10 -4
  338. mindspore/ops/function/linalg_func.py +5 -5
  339. mindspore/ops/function/math_func.py +575 -386
  340. mindspore/ops/function/nn_func.py +568 -260
  341. mindspore/ops/function/random_func.py +88 -57
  342. mindspore/ops/function/sparse_func.py +1 -1
  343. mindspore/ops/function/sparse_unary_func.py +14 -12
  344. mindspore/ops/function/vmap_func.py +6 -5
  345. mindspore/ops/functional.py +15 -10
  346. mindspore/ops/op_info_register.py +244 -25
  347. mindspore/ops/operations/__init__.py +31 -19
  348. mindspore/ops/operations/_grad_ops.py +71 -7
  349. mindspore/ops/operations/_inner_ops.py +350 -17
  350. mindspore/ops/operations/_quant_ops.py +4 -8
  351. mindspore/ops/operations/_sequence_ops.py +42 -0
  352. mindspore/ops/operations/array_ops.py +68 -282
  353. mindspore/ops/operations/comm_ops.py +107 -59
  354. mindspore/ops/operations/custom_ops.py +94 -70
  355. mindspore/ops/operations/debug_ops.py +8 -4
  356. mindspore/ops/operations/image_ops.py +18 -12
  357. mindspore/ops/operations/inner_ops.py +26 -3
  358. mindspore/ops/operations/math_ops.py +192 -144
  359. mindspore/ops/operations/nn_ops.py +857 -489
  360. mindspore/ops/operations/other_ops.py +0 -22
  361. mindspore/ops/operations/random_ops.py +53 -111
  362. mindspore/ops/operations/sparse_ops.py +3 -1
  363. mindspore/ops/primitive.py +24 -18
  364. mindspore/parallel/_auto_parallel_context.py +68 -8
  365. mindspore/parallel/_cost_model_context.py +2 -2
  366. mindspore/parallel/_offload_context.py +17 -3
  367. mindspore/parallel/_parallel_serialization.py +12 -5
  368. mindspore/parallel/_ps_context.py +12 -0
  369. mindspore/parallel/_tensor.py +18 -13
  370. mindspore/parallel/_transformer/layers.py +5 -3
  371. mindspore/parallel/_transformer/loss.py +1 -0
  372. mindspore/parallel/_transformer/moe.py +2 -2
  373. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  374. mindspore/parallel/_transformer/transformer.py +23 -3
  375. mindspore/parallel/_utils.py +11 -7
  376. mindspore/parallel/algo_parameter_config.py +85 -5
  377. mindspore/parallel/checkpoint_transform.py +19 -12
  378. mindspore/parallel/shard.py +21 -14
  379. mindspore/profiler/common/struct_type.py +3 -3
  380. mindspore/profiler/common/util.py +4 -2
  381. mindspore/profiler/envprofiling.py +1 -1
  382. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  383. mindspore/profiler/parser/ascend_flops_generator.py +2 -2
  384. mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
  385. mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
  386. mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
  387. mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
  388. mindspore/profiler/parser/ascend_op_generator.py +6 -6
  389. mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
  390. mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
  391. mindspore/profiler/parser/base_timeline_generator.py +10 -8
  392. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
  393. mindspore/profiler/parser/flops_parser.py +15 -11
  394. mindspore/profiler/parser/framework_parser.py +38 -22
  395. mindspore/profiler/parser/hccl_parser.py +16 -12
  396. mindspore/profiler/parser/integrator.py +22 -11
  397. mindspore/profiler/parser/memory_usage_parser.py +2 -2
  398. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  399. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  400. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  401. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  402. mindspore/profiler/parser/optime_parser.py +1 -1
  403. mindspore/profiler/parser/profiler_info.py +21 -2
  404. mindspore/profiler/parser/step_trace_parser.py +11 -14
  405. mindspore/profiler/profiling.py +179 -89
  406. mindspore/rewrite/api/node.py +102 -19
  407. mindspore/rewrite/api/node_type.py +5 -1
  408. mindspore/rewrite/api/pattern_engine.py +1 -1
  409. mindspore/rewrite/api/scoped_value.py +9 -17
  410. mindspore/rewrite/api/symbol_tree.py +131 -47
  411. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  412. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  413. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  414. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
  415. mindspore/rewrite/common/rewrite_elog.py +5 -1
  416. mindspore/rewrite/namer.py +33 -24
  417. mindspore/rewrite/namespace.py +14 -5
  418. mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
  419. mindspore/rewrite/node/call_function.py +79 -0
  420. mindspore/rewrite/node/cell_container.py +135 -0
  421. mindspore/rewrite/node/control_flow.py +88 -0
  422. mindspore/rewrite/{node.py → node/node.py} +273 -234
  423. mindspore/rewrite/node/node_manager.py +254 -0
  424. mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
  425. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  426. mindspore/rewrite/parsers/assign_parser.py +216 -221
  427. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  428. mindspore/rewrite/parsers/class_def_parser.py +174 -113
  429. mindspore/rewrite/parsers/constant_parser.py +9 -6
  430. mindspore/rewrite/parsers/container_parser.py +9 -7
  431. mindspore/rewrite/parsers/for_parser.py +42 -21
  432. mindspore/rewrite/parsers/function_def_parser.py +24 -16
  433. mindspore/rewrite/parsers/if_parser.py +28 -24
  434. mindspore/rewrite/parsers/module_parser.py +196 -25
  435. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  436. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  437. mindspore/rewrite/parsers/return_parser.py +6 -6
  438. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  439. mindspore/rewrite/sparsify/utils.py +1 -1
  440. mindspore/rewrite/symbol_tree.py +523 -578
  441. mindspore/rewrite/symbol_tree_builder.py +9 -193
  442. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  443. mindspore/run_check/_check_version.py +6 -4
  444. mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
  445. mindspore/safeguard/rewrite_obfuscation.py +541 -0
  446. mindspore/scipy/linalg.py +1 -1
  447. mindspore/scipy/ops.py +55 -5
  448. mindspore/scipy/optimize/__init__.py +3 -2
  449. mindspore/scipy/optimize/linear_sum_assignment.py +38 -33
  450. mindspore/scipy/optimize/minimize.py +7 -3
  451. mindspore/train/_utils.py +7 -3
  452. mindspore/train/amp.py +323 -123
  453. mindspore/train/anf_ir_pb2.py +14 -2
  454. mindspore/train/callback/_backup_and_restore.py +2 -12
  455. mindspore/train/callback/_callback.py +29 -4
  456. mindspore/train/callback/_checkpoint.py +23 -8
  457. mindspore/train/callback/_early_stop.py +2 -2
  458. mindspore/train/callback/_landscape.py +4 -4
  459. mindspore/train/callback/_loss_monitor.py +2 -2
  460. mindspore/train/callback/_on_request_exit.py +2 -2
  461. mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
  462. mindspore/train/callback/_summary_collector.py +15 -8
  463. mindspore/train/callback/_time_monitor.py +58 -5
  464. mindspore/train/data_sink.py +5 -11
  465. mindspore/train/dataset_helper.py +84 -57
  466. mindspore/train/loss_scale_manager.py +2 -2
  467. mindspore/train/metrics/__init__.py +3 -3
  468. mindspore/train/metrics/cosine_similarity.py +1 -1
  469. mindspore/train/metrics/hausdorff_distance.py +3 -2
  470. mindspore/train/metrics/mean_surface_distance.py +3 -2
  471. mindspore/train/metrics/metric.py +39 -19
  472. mindspore/train/metrics/roc.py +2 -2
  473. mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
  474. mindspore/train/mind_ir_pb2.py +85 -36
  475. mindspore/train/model.py +187 -47
  476. mindspore/train/serialization.py +487 -161
  477. mindspore/train/summary/_summary_adapter.py +1 -1
  478. mindspore/train/summary/_writer_pool.py +3 -2
  479. mindspore/train/summary/summary_record.py +37 -17
  480. mindspore/train/train_thor/convert_utils.py +3 -3
  481. mindspore/train/train_thor/dataset_helper.py +1 -1
  482. mindspore/version.py +1 -1
  483. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/METADATA +8 -8
  484. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/RECORD +488 -539
  485. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/entry_points.txt +0 -1
  486. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  487. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  488. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  489. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  490. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  491. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  492. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  493. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  494. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  495. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  496. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  497. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  498. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  499. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  500. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  501. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  502. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  503. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  504. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  505. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  506. mindspore/_extends/graph_kernel/expander.py +0 -80
  507. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
  508. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  509. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  510. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  511. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  512. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  513. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  514. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  515. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  516. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  517. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  518. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  519. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  520. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  521. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  522. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  523. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  524. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  525. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  526. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  527. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  528. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  529. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  530. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  531. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  532. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  533. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  534. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  535. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  536. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  537. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  538. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  539. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  540. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  541. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  542. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  543. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  544. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  545. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  546. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  547. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  548. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  549. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  550. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  551. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  552. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  553. mindspore/dataset/datapreprocess/__init__.py +0 -20
  554. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  555. mindspore/include/api/net.h +0 -142
  556. mindspore/nn/lr_scheduler.py +0 -262
  557. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
  558. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
  559. mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
  560. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  561. mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
  562. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +0 -350
  563. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +0 -409
  564. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +0 -578
  565. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +0 -199
  566. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +0 -446
  567. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/__init__.py +0 -0
  568. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/sparse_tiling.py +0 -45
  569. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/strategy.py +0 -67
  570. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +0 -62
  571. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
  572. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
  573. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
  574. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  575. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  576. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
  577. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
  578. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  579. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  580. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
  581. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
  582. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
  583. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
  584. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
  585. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  586. mindspore/rewrite/node_visitor.py +0 -44
  587. /mindspore/{ops/_op_impl/_custom_op/flash_attention → _akg/akg/utils/ascend_profilier}/__init__.py +0 -0
  588. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/WHEEL +0 -0
  589. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/top_level.txt +0 -0
@@ -82,11 +82,11 @@ def tensor(input_data=None, dtype=None, shape=None, init=None, internal=False, c
82
82
  based on the `dtype` argument.
83
83
 
84
84
  Please refer to `Creating and Using Tensor
85
- <https://www.mindspore.cn/docs/en/r2.1/design/dynamic_graph_and_static_graph.html#creating-and-using-tensor>`_ .
85
+ <https://www.mindspore.cn/docs/en/r2.2/note/static_graph_syntax_support.html#mindspore-user-defined-data-types>`_ .
86
86
 
87
87
  The difference between it and the Tensor class is that it adds
88
88
  `Annotation
89
- <https://www.mindspore.cn/docs/en/r2.1/design/dynamic_graph_and_static_graph.html?#annotation-marking>`_
89
+ <https://www.mindspore.cn/docs/en/r2.2/design/dynamic_graph_and_static_graph.html?#annotation-type>`_
90
90
  which can prevent the generation of AnyType compared to the Tensor class.
91
91
 
92
92
  The arguments and return values are the same as the Tensor class. Also see: :class:`mindspore.Tensor`.
@@ -113,6 +113,10 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
113
113
  """
114
114
  Tensor is a data structure that stores an n-dimensional array.
115
115
 
116
+ Note:
117
+ If 'init' interface is used to initialize Tensor, the `Tensor.init_data` API needs to be called to load the
118
+ actual data to `Tensor`.
119
+
116
120
  Args:
117
121
  input_data (Union[Tensor, float, int, bool, tuple, list, numpy.ndarray]): The data to be stored. It can be
118
122
  another Tensor, Python number or NumPy ndarray. Default: ``None`` .
@@ -125,10 +129,8 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
125
129
  doesn't need to be set; if None not in shape, a tensor of static shape is created, `input_data` or `init`
126
130
  must be set. Default: ``None`` .
127
131
  init (Initializer): The information of init data.
128
- 'init' is used for delayed initialization in parallel mode. Usually, it is not recommended to use
129
- 'init' interface to initialize Tensor in the other conditions. If 'init' interface is used to initialize
130
- Tensor, the `Tensor.init_data` API needs to be called to convert `Tensor` to the actual data.
131
- Default: ``None`` .
132
+ 'init' is used for delayed initialization in parallel mode, when using init, `dtype` and `shape` must be
133
+ set. Default: ``None`` .
132
134
  internal (bool): Whether it is created by the framework.
133
135
  ``'True'`` means that the tensor is created by framework.
134
136
  ``'False'`` means that the tensor is created by user.
@@ -273,7 +275,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
273
275
  if np.array(input_data).dtype == np.float64:
274
276
  return mstype.float32
275
277
  if isinstance(input_data, (int, list, tuple)):
276
- if np.array(input_data).dtype == np.int32 or np.array(input_data).dtype == np.int64:
278
+ if np.array(input_data).dtype in (np.int32, np.int64):
277
279
  return mstype.int64
278
280
  return dtype
279
281
 
@@ -358,10 +360,8 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
358
360
  return self
359
361
 
360
362
  def __abs__(self):
361
- data = abs(self.asnumpy())
362
- if isinstance(data, np.number):
363
- data = np.array(data)
364
- return Tensor(data)
363
+ self._init_check()
364
+ return tensor_operator_registry.get('abs')(self)
365
365
 
366
366
  def __add__(self, other):
367
367
  return tensor_operator_registry.get('__add__')(self, other)
@@ -461,6 +461,11 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
461
461
 
462
462
  def __setitem__(self, index, value):
463
463
  out = tensor_operator_registry.get('__setitem__')(self, index, value)
464
+ if isinstance(out, tuple):
465
+ if self.parent_tensor_ is not None and self.index_of_parent_ is not None:
466
+ self.parent_tensor_.__setitem__(self.index_of_parent_, out[0])
467
+ return self
468
+ return self
464
469
  self.assign_value(out)
465
470
  if self.parent_tensor_ is not None and self.index_of_parent_ is not None:
466
471
  self.parent_tensor_.__setitem__(self.index_of_parent_, self)
@@ -483,8 +488,20 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
483
488
  def __str__(self):
484
489
  if self.dtype == mstype.type_none:
485
490
  return "Unknown Tensor type!"
491
+ if self.dtype == mstype.bfloat16:
492
+ return str(self.float().asnumpy())
486
493
  return str(self.asnumpy())
487
494
 
495
+ def __getstate__(self):
496
+ state = self.__dict__.copy()
497
+ state["value"] = Tensor_.__getstate__(self)
498
+ return state
499
+
500
+ def __setstate__(self, state):
501
+ value = state.pop("value")
502
+ Tensor_.__setstate__(self, value)
503
+ self.__dict__.update(state)
504
+
488
505
  @property
489
506
  def shape(self):
490
507
  """
@@ -784,12 +801,13 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
784
801
  >>> x = mindspore.Tensor(np.array([[1, 2], [3, 4]]), dtype=mindspore.float32)
785
802
  >>> output = x.log_normal()
786
803
  >>> print(output)
787
- [[1.2788825 2,3305743]
788
- [14.944194 0,16303174]]
804
+ [[1.2788825 2.3305743]
805
+ [14.944194 0.16303174]]
789
806
  """
790
807
  self._init_check()
791
808
  return tensor_operator_registry.get('log_normal')(mean, std)(self)
792
809
 
810
+ @jit_forbidden_register
793
811
  def assign_value(self, value):
794
812
  """
795
813
  Assign another tensor value to this tensor.
@@ -901,6 +919,26 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
901
919
  output = tensor_operator_registry.get('itemset')(self, *args)
902
920
  return output
903
921
 
922
+ def get_bytes(self):
923
+ r"""
924
+ Get raw data of tensor with type of bytes.
925
+
926
+ Supported Platforms:
927
+ ``CPU`` ``GPU`` ``Ascend``
928
+
929
+ Returns:
930
+ Bytes of tensor.
931
+
932
+ Examples:
933
+ >>> import mindspore as ms
934
+ >>> from mindspore import Tensor
935
+ >>> x = ms.Tensor([1, 2, 3], ms.int16)
936
+ >>> print(x.get_bytes())
937
+ b'\x01\x00\x02\x00\x03\x00'
938
+ """
939
+ self._init_check()
940
+ return Tensor_.get_bytes(self)
941
+
904
942
  def asnumpy(self):
905
943
  """
906
944
  Convert tensor to numpy array. Returns self tensor as a NumPy ndarray. This tensor and the returned ndarray
@@ -921,6 +959,8 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
921
959
  [11. 2.]
922
960
  """
923
961
  self._init_check()
962
+ if self.dtype == mstype.bfloat16:
963
+ raise TypeError(f"For asnumpy, the type of tensor cannot be BFloat16, but got {self.dtype}.")
924
964
  return Tensor_.asnumpy(self)
925
965
 
926
966
  def numpy(self):
@@ -1016,6 +1056,46 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
1016
1056
  """
1017
1057
  return self
1018
1058
 
1059
+ def contiguous(self):
1060
+ """
1061
+ Converts a Tensor into a continuous-memory Tensor that contains the same data as the original Tensor.
1062
+
1063
+ Returns:
1064
+ A contiguous in memory tensor containing the same data as self tensor.
1065
+
1066
+ Examples:
1067
+ >>> import mindspore as ms
1068
+ >>> import numpy as np
1069
+ >>> from mindspore import Tensor, ops
1070
+ >>> x = Tensor([[1, 2, 3], [4, 5, 6]], dtype=ms.float32)
1071
+ >>> y = ops.transpose(x, (1, 0))
1072
+ >>> y.contiguous()
1073
+ >>> y[:, 1] = 1
1074
+ >>> print(x)
1075
+ [[1. 2. 3.]
1076
+ [4. 5. 6.]]
1077
+ """
1078
+ Tensor_.contiguous(self)
1079
+ return self
1080
+
1081
+ def is_contiguous(self):
1082
+ """
1083
+ Determines whether the memory of tensor is contiguous.
1084
+
1085
+ Returns:
1086
+ Bool, True if tensor memory is contiguous, False otherwise.
1087
+
1088
+ Examples:
1089
+ >>> import mindspore as ms
1090
+ >>> import numpy as np
1091
+ >>> from mindspore import Tensor, ops
1092
+ >>> x = Tensor([[1, 2, 3], [4, 5, 6]], dtype=ms.float32)
1093
+ >>> y = ops.transpose(x, (1, 0))
1094
+ >>> print(y.is_contiguous())
1095
+ False
1096
+ """
1097
+ return Tensor_.is_contiguous(self)
1098
+
1019
1099
  def flush_from_cache(self):
1020
1100
  """
1021
1101
  Flush cache data to host if tensor is cache enable.
@@ -1112,9 +1192,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
1112
1192
  For details, please refer to :func:`mindspore.ops.all`.
1113
1193
  """
1114
1194
  self._init_check()
1115
- if axis is None:
1116
- axis = ()
1117
- return tensor_operator_registry.get('all')(keep_dims)(self, axis)
1195
+ return tensor_operator_registry.get('all')(self, axis, keep_dims)
1118
1196
 
1119
1197
  def angle(self):
1120
1198
  r"""
@@ -1174,7 +1252,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
1174
1252
  if len(shape) != 1:
1175
1253
  raise ValueError(f"Only one tuple is needed, but got {shape}")
1176
1254
  shape = shape[0]
1177
- return tensor_operator_registry.get('reshape')()(self, shape)
1255
+ return tensor_operator_registry.get('reshape')(self, shape)
1178
1256
 
1179
1257
  def view_as(self, other):
1180
1258
  r"""
@@ -1329,7 +1407,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
1329
1407
  For details, please refer to :func:`mindspore.ops.exp`.
1330
1408
  """
1331
1409
  self._init_check()
1332
- return tensor_operator_registry.get('exp')()(self)
1410
+ return tensor_operator_registry.get('exp')(self)
1333
1411
 
1334
1412
  def real(self):
1335
1413
  r"""
@@ -1440,7 +1518,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
1440
1518
  For details, please refer to :func:`mindspore.ops.abs`.
1441
1519
  """
1442
1520
  self._init_check()
1443
- return tensor_operator_registry.get('abs')()(self)
1521
+ return tensor_operator_registry.get('abs')(self)
1444
1522
 
1445
1523
  def absolute(self):
1446
1524
  """
@@ -1511,7 +1589,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
1511
1589
  self._init_check()
1512
1590
  input_x = self.copy() if self.dtype == mstype.float32 else self.astype(mstype.float16)
1513
1591
  input_y = other.copy() if other.dtype == mstype.float32 else other.astype(mstype.float16)
1514
- return tensor_operator_registry.get('__lt__')(tensor_operator_registry.get('abs')()(
1592
+ return tensor_operator_registry.get('__lt__')(tensor_operator_registry.get('abs')(
1515
1593
  tensor_operator_registry.get('__sub__')(input_x, input_y)
1516
1594
  ), tolerance)
1517
1595
 
@@ -1673,9 +1751,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
1673
1751
  For details, please refer to :func:`mindspore.ops.mean`.
1674
1752
  """
1675
1753
  self._init_check()
1676
- if axis is None:
1677
- axis = ()
1678
- return tensor_operator_registry.get('mean')(keep_dims)(self, axis)
1754
+ return tensor_operator_registry.get('mean')(self, axis, keep_dims)
1679
1755
 
1680
1756
  def amin(self, axis=None, keepdims=False, *, initial=None, where=None):
1681
1757
  """
@@ -1770,7 +1846,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
1770
1846
  """
1771
1847
  self._init_check()
1772
1848
  new_shape = validator.check_reshape_shp(shape)
1773
- return tensor_operator_registry.get('reshape')()(self, new_shape)
1849
+ return tensor_operator_registry.get('reshape')(self, new_shape)
1774
1850
 
1775
1851
  def reshape_as(self, other):
1776
1852
  """
@@ -1798,7 +1874,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
1798
1874
  [ 0.5 -3.2]]
1799
1875
  """
1800
1876
  self._init_check()
1801
- return tensor_operator_registry.get('reshape')()(self, other.shape)
1877
+ return tensor_operator_registry.get('reshape')(self, other.shape)
1802
1878
 
1803
1879
  def ravel(self):
1804
1880
  """
@@ -1824,7 +1900,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
1824
1900
  (24,)
1825
1901
  """
1826
1902
  self._init_check()
1827
- reshape_op = tensor_operator_registry.get('reshape')()
1903
+ reshape_op = tensor_operator_registry.get('reshape')
1828
1904
  return reshape_op(self, (-1,))
1829
1905
 
1830
1906
  def round(self):
@@ -1980,10 +2056,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
1980
2056
  For details, please refer to :func:`mindspore.ops.squeeze`.
1981
2057
  """
1982
2058
  self._init_check()
1983
- if axis is None:
1984
- return tensor_operator_registry.get('squeeze')(self)
1985
- new_shape = validator.prepare_shape_for_squeeze(self.shape, axis)
1986
- return tensor_operator_registry.get('reshape')()(self, new_shape)
2059
+ return tensor_operator_registry.get('squeeze')(self, axis)
1987
2060
 
1988
2061
  def slogdet(self):
1989
2062
  """
@@ -2055,39 +2128,16 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2055
2128
  """
2056
2129
  For details, please refer to :func:`mindspore.ops.argmax`.
2057
2130
  """
2058
- if self.shape == ():
2059
- return Tensor(0)
2060
- a = self
2061
- if self.dtype == mstype.bool_:
2062
- a = self.astype(mstype.int32)
2063
- is_axis_none = False
2064
- if axis is None:
2065
- a = a.ravel()
2066
- axis = 0
2067
- is_axis_none = True
2068
- out = tensor_operator_registry.get('argmax')(axis, mstype.int64)(a)
2069
- if keepdims and not is_axis_none:
2070
- out = out.expand_dims(axis)
2131
+ self._init_check()
2132
+ out = tensor_operator_registry.get('argmax')(self, axis, keepdims)
2071
2133
  return out
2072
2134
 
2073
2135
  def argmin(self, axis=None, keepdims=False):
2074
2136
  """
2075
2137
  For details, please refer to :func:`mindspore.ops.argmin`.
2076
2138
  """
2077
- if self.shape == ():
2078
- return Tensor(0)
2079
- # P.Argmin only supports float
2080
- is_axis_none = False
2081
- a = self.astype(mstype.float32)
2082
- if axis is None:
2083
- a = a.ravel()
2084
- axis = 0
2085
- else:
2086
- axis = validator.check_axis_in_range(axis, a.ndim)
2087
- # P.Argmin is currently not supported
2088
- out = tensor_operator_registry.get('argmin')(axis)(a)
2089
- if keepdims and not is_axis_none:
2090
- out = out.expand_dims(axis)
2139
+ self._init_check()
2140
+ out = tensor_operator_registry.get('argmin')(self, axis, keepdims)
2091
2141
  return out
2092
2142
 
2093
2143
  def argmax_with_value(self, axis=0, keep_dims=False):
@@ -2097,9 +2147,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2097
2147
  Compute the max value of input Tensor on the specified axis, and return the max value and index.
2098
2148
 
2099
2149
  Note:
2100
- In auto_parallel and semi_auto_parallel mode, the first output index can not be used.
2101
-
2102
- .. warning::
2150
+ - In auto_parallel and semi_auto_parallel mode, the first output index can not be used.
2103
2151
  - If there are multiple maximum values, the index of the first maximum value is used.
2104
2152
  - The value range of `axis` is [-dims, dims - 1]. `dims` is the dimension length of this tensor.
2105
2153
 
@@ -2138,7 +2186,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2138
2186
  [0.7] [3]
2139
2187
  """
2140
2188
  if self.shape == ():
2141
- return (Tensor(0), self)
2189
+ return (self, Tensor(0))
2142
2190
  self._init_check()
2143
2191
  return tensor_operator_registry.get('argmax_with_value')(self, axis, keep_dims)
2144
2192
 
@@ -2147,9 +2195,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2147
2195
  Returns the minimum value with corresponding index.
2148
2196
 
2149
2197
  Note:
2150
- In auto_parallel and semi_auto_parallel mode, the first output index can not be used.
2151
-
2152
- .. warning::
2198
+ - In auto_parallel and semi_auto_parallel mode, the first output index can not be used.
2153
2199
  - If there are multiple minimum values, the index of the first minimum value is used.
2154
2200
  - The value range of `axis` is [-dims, dims - 1]. `dims` is the dimension length of this tensor.
2155
2201
 
@@ -2188,7 +2234,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2188
2234
  [0.0] [0]
2189
2235
  """
2190
2236
  if self.shape == ():
2191
- return (Tensor(0), self)
2237
+ return (self, Tensor(0))
2192
2238
  self._init_check()
2193
2239
  return tensor_operator_registry.get('argmin_with_value')(self, axis, keep_dims)
2194
2240
 
@@ -2501,15 +2547,13 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2501
2547
  """
2502
2548
  `Tensor.fill` is deprecated, please use `ops.fill` instead.
2503
2549
  """
2550
+ self._init_check()
2504
2551
  if value is None:
2505
2552
  if self.dtype not in (mstype.float16, mstype.float32, mstype.float64):
2506
2553
  raise TypeError("For 'Tensor.fill', if the argument 'value' is None, the type of the original "
2507
2554
  "tensor must be float, but got {}.".format(self.dtype))
2508
2555
  value = Tensor(float('nan')).astype("float32")
2509
2556
  return tensor_operator_registry.get("tile")()(value, self.shape).astype(self.dtype)
2510
- if not isinstance(value, (int, float, bool)):
2511
- raise TypeError("For 'Tensor.fill', the type of the argument 'value' must be int, float or bool, "
2512
- "but got {}.".format(type(value)))
2513
2557
  return tensor_operator_registry.get("fill")(self.dtype, self.shape, value)
2514
2558
 
2515
2559
  def fills(self, value):
@@ -2639,7 +2683,6 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2639
2683
  def _init_check(self):
2640
2684
  if self.has_init:
2641
2685
  self.init_data()
2642
- return self
2643
2686
 
2644
2687
  def init_data(self, slice_index=None, shape=None, opt_shard_group=None):
2645
2688
  """
@@ -2655,7 +2698,10 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2655
2698
  shape (list[int]): Shape of the slice, it is used when initialize a slice of the parameter.
2656
2699
  Default: ``None``.
2657
2700
  opt_shard_group(str): Optimizer shard group which is used in auto or semi auto parallel mode
2658
- to get one shard of a parameter's slice. Default: ``None``.
2701
+ to get one shard of a parameter's slice. For more information about optimizer parallel, please refer to:
2702
+ `Optimizer Parallel
2703
+ <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/optimizer_parallel.html>`_.
2704
+ Default: ``None``.
2659
2705
 
2660
2706
  Returns:
2661
2707
  Initialized Tensor.
@@ -2724,14 +2770,20 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2724
2770
  self.init.seed, _ = self.seed
2725
2771
 
2726
2772
  with seed_context(self.init):
2727
- self.init(data)
2773
+ if slice_num_of_persistent_data == 1:
2774
+ self.init(data)
2728
2775
  self.init = None
2729
2776
 
2730
2777
  # At embedding cache scenes. When size of tensor is out of range, we store data to persistent storage
2731
2778
  if slice_num_of_persistent_data > 1:
2732
2779
  self.assign_value(Tensor_.persistent_data_from_numpy(data, slice_num_of_persistent_data))
2733
2780
  else:
2734
- self.assign_value(Tensor_.from_numpy(data))
2781
+ if self.dtype == mstype.bfloat16:
2782
+ # The dtype of data is np.float32 when mstype is bfloat16,
2783
+ # so we create tensor_ by init func instead of asnumpy
2784
+ self.assign_value(Tensor_(data, self.dtype))
2785
+ else:
2786
+ self.assign_value(Tensor_.from_numpy(data))
2735
2787
  return self
2736
2788
 
2737
2789
  def resize(self, *new_shape):
@@ -2851,54 +2903,8 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2851
2903
  """
2852
2904
  For details, please refer to :func:`mindspore.ops.diagonal`.
2853
2905
  """
2854
- ndim = self.ndim
2855
- if ndim < 2:
2856
- raise ValueError("For 'Tensor.diagonal', the original tensor requires at least two dimensions, "
2857
- "but got {}.".format(ndim))
2858
- dtype = self.dtype
2859
-
2860
- axes = validator.check_axis_valid((axis1, axis2), ndim)
2861
- perm = ()
2862
- for i in range(ndim):
2863
- if i not in axes:
2864
- perm += (i,)
2865
- perm += axes
2866
- a = self.transpose(perm)
2867
-
2868
- shape = a.shape
2869
- n, m = shape[-2:]
2870
-
2871
- e = tensor_operator_registry.get('eye')(n, m, dtype)
2872
- if offset >= m or offset <= -n:
2873
- e = tensor_operator_registry.get('fill')(dtype, (n, m), 0)
2874
- elif offset != 0:
2875
- e = e.astype(mstype.float32)
2876
- if offset > 0:
2877
- e_left = tensor_operator_registry.get('fill')(mstype.float32, (n, offset), 0)
2878
- e_right = e[..., 0:m - offset:1]
2879
- e = tensor_operator_registry.get('concatenate')(1)((e_left, e_right)).astype(dtype)
2880
- elif offset < 0:
2881
- e_upper = tensor_operator_registry.get('fill')(mstype.float32, (-offset, m), 0)
2882
- e_lower = e[0:n + offset:1, ...]
2883
- e = tensor_operator_registry.get('concatenate')(0)((e_upper, e_lower)).astype(dtype)
2884
- e = tensor_operator_registry.get('broadcast_to')(shape)(e)
2885
-
2886
- prod = tensor_operator_registry.get('__mul__')(a, e)
2887
- res = tensor_operator_registry.get('reduce_sum')(prod.astype(mstype.float32), -1)
2888
-
2889
- begin = ()
2890
- for _ in range(ndim - 2):
2891
- begin += (0,)
2892
- last_dim_begin = max(0, -offset)
2893
- begin += (last_dim_begin,)
2894
- size = res.shape[:-1]
2895
- last_dim_end = min(
2896
- shape[-2], max(0, shape[-1] - offset)) - last_dim_begin
2897
- if last_dim_end <= 0:
2898
- return Tensor([])
2899
- size += (last_dim_end,)
2900
- res = tensor_operator_registry.get('tensor_slice')(res, begin, size)
2901
- return res.astype(dtype)
2906
+ self._init_check()
2907
+ return tensor_operator_registry.get('diagonal')(self, offset, axis1, axis2)
2902
2908
 
2903
2909
  def diagonal_scatter(self, src, offset=0, dim1=0, dim2=1):
2904
2910
  r"""
@@ -2959,7 +2965,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2959
2965
  Takes elements from a tensor along an axis.
2960
2966
 
2961
2967
  Args:
2962
- indices (Tensor): The indices with shape `(Nj...)` of the values to extract.
2968
+ indices (Tensor): The indices with shape :math:`(Nj...)` of the values to extract.
2963
2969
  axis (int, optional): The axis over which to select values. By default,
2964
2970
  the flattened input tensor is used. Default: ``None`` .
2965
2971
  mode (str, optional): Support ``'raise'``, ``'wrap'``, ``'clip'``.
@@ -3227,10 +3233,10 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3227
3233
  axis = ()
3228
3234
  else:
3229
3235
  axis = validator.check_and_canonicalize_axes(axis, self.ndim)
3230
- x_mean = tensor_operator_registry.get('mean')(True)(self, axis)
3236
+ x_mean = tensor_operator_registry.get('mean')(self, axis, True)
3231
3237
  x_sub = tensor_operator_registry.get('__sub__')(self, x_mean)
3232
3238
  x_pow = tensor_operator_registry.get('__pow__')(x_sub, 2)
3233
- x_sum = tensor_operator_registry.get('sum')(bool(keepdims))(x_pow, axis)
3239
+ x_sum = tensor_operator_registry.get('reducesum')(bool(keepdims))(x_pow, axis)
3234
3240
  nums = 1
3235
3241
  if axis == ():
3236
3242
  nums = self.size
@@ -3255,11 +3261,12 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3255
3261
  `extobj` are not supported.
3256
3262
 
3257
3263
  Args:
3258
- axis (Union[None, int, tuple(int)]): Axis or axes along which a sum is performed. Default: ``None`` .
3264
+ axis (Union[None, int, tuple(int), list(int)]): Axis or axes along which a sum is performed.
3265
+ Default: ``None`` .
3259
3266
  If None, sum all the elements of the input tensor.
3260
3267
  If the axis is negative, it counts from the last to the first axis.
3261
- If the axis is a tuple of ints, a sum is performed on all the axes specified in the tuple
3262
- instead of a single axis or all the axes as before.
3268
+ If the axis is a tuple or list of ints, a sum is performed on all the axes specified in the tuple
3269
+ or list instead of a single axis or all the axes as before.
3263
3270
  dtype (:class:`mindspore.dtype`, optional): defaults to ``None`` . Overrides the dtype of the
3264
3271
  output Tensor.
3265
3272
  keepdims (bool): If this is set to ``True`` , the axes which are reduced are left in the result as
@@ -3274,7 +3281,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3274
3281
  If the input tensor is a 0-d array, or if the axis is ``None`` , a scalar is returned.
3275
3282
 
3276
3283
  Raises:
3277
- TypeError: If input is not array_like, or `axis` is not int or tuple of ints,
3284
+ TypeError: If input is not array_like, or `axis` is not int, tuple of ints or list of ints,
3278
3285
  or `keepdims` is not integer, or `initial` is not scalar.
3279
3286
  ValueError: If any axis is out of range or duplicate axes exist.
3280
3287
 
@@ -3294,27 +3301,14 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3294
3301
  >>> print(input_x.sum(axis=1))
3295
3302
  [10. 35.]
3296
3303
  """
3297
- input_x = self.astype(mstype.int32) if self.dtype == mstype.bool_ else self
3298
- dtype = input_x.dtype if dtype is None else dtype
3299
- if not isinstance(keepdims, int):
3300
- raise TypeError("For 'Tensor.sum', the type of the argument 'keepdims' must be int, but "
3301
- "got {}.".format(type(keepdims)))
3302
3304
  if initial is not None and not isinstance(initial, (int, float, bool)):
3303
- raise TypeError("For 'Tensor.sum', when the argument 'initial' is not None, it must be int, "
3304
- "float or bool, but got {}.".format(type(initial)))
3305
- if axis is None:
3306
- axis = ()
3307
- else:
3308
- axis = validator.check_and_canonicalize_axes(axis, self.ndim)
3309
-
3310
- if not validator.check_type_support(input_x.dtype, 'GPU', (mstype.float64, mstype.float32, mstype.float16)):
3311
- input_x = input_x.astype(mstype.float32)
3312
- if 0 in self.shape:
3313
- input_x = tensor_operator_registry.get('make_tensor')([0], self.dtype)
3314
- res = tensor_operator_registry.get('sum')(bool(keepdims))(input_x, axis)
3305
+ raise TypeError(f"For Tensor.sum, initial must be int, float or bool, but got {type(initial)}.")
3306
+ res = tensor_operator_registry.get("sum")(self, axis, keepdims)
3315
3307
  if initial is not None:
3316
3308
  res += initial
3317
- return res.astype(dtype)
3309
+ if dtype is not None:
3310
+ res = res.astype(dtype)
3311
+ return res
3318
3312
 
3319
3313
  def sum_to_size(self, *size):
3320
3314
  r"""
@@ -3621,6 +3615,29 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3621
3615
  self._init_check()
3622
3616
  return tensor_operator_registry.get('dense_to_sparse_csr')(self)
3623
3617
 
3618
+ def tolist(self):
3619
+ r"""
3620
+ Convert a Tensor to List. If the input is Tensor scalar, a Python scalar will be returned.
3621
+
3622
+ Returns:
3623
+ List or Python scalar.
3624
+
3625
+ Supported Platforms:
3626
+ ``Ascend`` ``GPU`` ``CPU``
3627
+
3628
+ Examples:
3629
+ >>> import mindspore as ms
3630
+ >>> x = ms.Tensor([[1, 2, 3], [4, 5, 6]])
3631
+ >>> out1 = x.tolist()
3632
+ >>> print(out1)
3633
+ [[1, 2, 3], [4, 5, 6]]
3634
+ >>> out2 = x[0][0].tolist()
3635
+ >>> print(out2)
3636
+ 1
3637
+ """
3638
+ self._init_check()
3639
+ return self.asnumpy().tolist()
3640
+
3624
3641
  def unbind(self, dim=0):
3625
3642
  r"""
3626
3643
  For details, please refer to :func:`mindspore.ops.unbind`.
@@ -3757,7 +3774,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3757
3774
  r"""
3758
3775
  For details, please refer to :func:`mindspore.ops.tile`.
3759
3776
  """
3760
- return tensor_operator_registry.get('tile')()(self, reps)
3777
+ return tensor_operator_registry.get('tile')(self, reps)
3761
3778
 
3762
3779
  def topk(self, k, dim=None, largest=True, sorted=True):
3763
3780
  r"""
@@ -3868,6 +3885,60 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3868
3885
  self._init_check()
3869
3886
  return tensor_operator_registry.get('to')()(self, dtype)
3870
3887
 
3888
+ def type(self, dtype=None):
3889
+ r"""
3890
+ Change the dtype of the Tensor to the `dtype` . Return the type if `dtype` is ``None`` .
3891
+
3892
+ Args:
3893
+ dtype (mindspore.dtype, optional): The specified dtype of output tensor. Default: ``None``.
3894
+
3895
+ Returns:
3896
+ Tensor or str. If `dtype` is ``None`` , return a str, which describes the dtype of Tensor.
3897
+ If `dtype` is not ``None`` , then return a Tensor, and the dtype of returned Tensor is `dtype` .
3898
+
3899
+ Supported Platforms:
3900
+ ``Ascend`` ``GPU`` ``CPU``
3901
+
3902
+ Examples:
3903
+ >>> import mindspore
3904
+ >>> from mindspore import Tensor
3905
+ >>> x = Tensor([[1.2, 2], [3.4, 4]], dtype=mindspore.float32)
3906
+ >>> print(x.type())
3907
+ Float32
3908
+ >>> print(x.type(dtype=mindspore.int32))
3909
+ [[1 2]
3910
+ [3 4]]
3911
+ """
3912
+ self._init_check()
3913
+ if dtype is None:
3914
+ return str(self.dtype)
3915
+ return self.astype(dtype)
3916
+
3917
+ def type_as(self, other):
3918
+ r"""
3919
+ Change the dtype of the Tensor to the dtype of `other`.
3920
+
3921
+ Args:
3922
+ other (Tensor): The return tensor has the same dtype as `other`.
3923
+
3924
+ Returns:
3925
+ Tensor, has the same dtype as `other`.
3926
+
3927
+ Supported Platforms:
3928
+ ``Ascend`` ``GPU`` ``CPU``
3929
+
3930
+ Examples:
3931
+ >>> import mindspore
3932
+ >>> from mindspore import Tensor
3933
+ >>> x = Tensor([[1, 2], [3, 4]], dtype=mindspore.float32)
3934
+ >>> y = Tensor([[1, 2], [3, 4]], dtype=mindspore.int32)
3935
+ >>> x = x.type_as(y)
3936
+ >>> print(x.dtype)
3937
+ Int32
3938
+ """
3939
+ self._init_check()
3940
+ return self.astype(other.dtype)
3941
+
3871
3942
  def bool(self):
3872
3943
  r"""
3873
3944
  Converts input tensor dtype to `bool`.
@@ -4033,6 +4104,13 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
4033
4104
  self._init_check()
4034
4105
  return tensor_operator_registry.get('conj')(self)
4035
4106
 
4107
+ def count_nonzero(self, axis=(), keep_dims=False, dtype=mstype.int32):
4108
+ r"""
4109
+ For details, please refer to :func:`mindspore.ops.count_nonzero`.
4110
+ """
4111
+ self._init_check()
4112
+ return tensor_operator_registry.get('count_nonzero')(self, axis, keep_dims, dtype)
4113
+
4036
4114
  def cross(self, other, dim=None):
4037
4115
  r"""
4038
4116
  For details, please refer to :func:`mindspore.ops.cross`.
@@ -4088,7 +4166,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
4088
4166
 
4089
4167
  def expand(self, size):
4090
4168
  r"""
4091
- For details, please refer to :func:`mindspore.ops.expand`.
4169
+ For details, please refer to :func:`mindspore.ops.broadcast_to`.
4092
4170
  """
4093
4171
  self._init_check()
4094
4172
  return tensor_operator_registry.get('expand')(self, size)
@@ -4121,6 +4199,13 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
4121
4199
  self._init_check()
4122
4200
  return tensor_operator_registry.get('div')(self, value, rounding_mode=rounding_mode)
4123
4201
 
4202
+ def eq(self, other):
4203
+ r"""
4204
+ For details, please refer to :func:`mindspore.ops.eq`.
4205
+ """
4206
+ self._init_check()
4207
+ return tensor_operator_registry.get('equal')(self, other)
4208
+
4124
4209
  def equal(self, other):
4125
4210
  r"""
4126
4211
  For details, please refer to :func:`mindspore.ops.equal`.
@@ -4545,23 +4630,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
4545
4630
 
4546
4631
  def imag(self):
4547
4632
  r"""
4548
- Returns a new tensor containing imaginary value of the input tensor.
4549
- If input tensor is real, it will return zeros.
4550
-
4551
- Returns:
4552
- Tensor, the shape is the same as the input tensor.
4553
-
4554
- Supported Platforms:
4555
- ``GPU`` ``CPU``
4556
-
4557
- Examples:
4558
- >>> import numpy as np
4559
- >>> import mindspore
4560
- >>> from mindspore import Tensor
4561
- >>> x = Tensor(np.asarray(np.complex(1.3 + 0.4j)), mindspore.complex64)
4562
- >>> output = x.imag()
4563
- >>> print(output)
4564
- 0.4
4633
+ For details, please refer to :func:`mindspore.ops.imag`.
4565
4634
  """
4566
4635
  self._init_check()
4567
4636
  return tensor_operator_registry.get('imag')(self)
@@ -4738,10 +4807,19 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
4738
4807
 
4739
4808
  def _vm_compare(*args):
4740
4809
  """Implement `vm_compare` for tensor."""
4741
- obj_str = args[-1]
4810
+ if args:
4811
+ obj_str = args[-1]
4812
+ else:
4813
+ raise ValueError("_vm_compare does not receive any input.")
4742
4814
  if obj_str == "shape":
4743
4815
  fn = getattr(args[0].asnumpy(), obj_str)
4744
4816
  return fn
4817
+ if obj_str == "__setitem__":
4818
+ fn = getattr(args[0].asnumpy(), obj_str)
4819
+ index = args[1].asnumpy() if isinstance(args[1], Tensor) else args[1]
4820
+ value = args[2].asnumpy() if isinstance(args[2], Tensor) else args[2]
4821
+ fn(index, value)
4822
+ return args[0]
4745
4823
  if len(args) == 2:
4746
4824
  fn = getattr(args[0].asnumpy(), obj_str)
4747
4825
  return Tensor(fn())