mindspore 2.1.0__cp38-cp38-manylinux1_x86_64.whl → 2.2.0__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 (550) 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-x86_64-linux-gnu.so +0 -0
  24. mindspore/_c_expression.cpython-38-x86_64-linux-gnu.so +0 -0
  25. mindspore/_c_mindrecord.cpython-38-x86_64-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-x86_64-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/gpu/libcuda_ops.so.10 +0 -0
  172. mindspore/lib/plugin/gpu/libcuda_ops.so.11 +0 -0
  173. mindspore/lib/plugin/gpu10.1/libakg.so +0 -0
  174. mindspore/lib/plugin/gpu10.1/libnccl.so.2 +0 -0
  175. mindspore/lib/plugin/gpu11.1/libakg.so +0 -0
  176. mindspore/lib/plugin/gpu11.1/libnccl.so.2 +0 -0
  177. mindspore/lib/plugin/gpu11.6/libakg.so +0 -0
  178. mindspore/lib/plugin/gpu11.6/libnccl.so.2 +0 -0
  179. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  180. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  181. mindspore/lib/plugin/libmindspore_gpu.so.10.1 +0 -0
  182. mindspore/lib/plugin/libmindspore_gpu.so.11.1 +0 -0
  183. mindspore/lib/plugin/libmindspore_gpu.so.11.6 +0 -0
  184. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  185. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  186. mindspore/nn/__init__.py +0 -2
  187. mindspore/nn/cell.py +316 -74
  188. mindspore/nn/dynamic_lr.py +21 -21
  189. mindspore/nn/layer/activation.py +21 -28
  190. mindspore/nn/layer/basic.py +15 -13
  191. mindspore/nn/layer/channel_shuffle.py +1 -1
  192. mindspore/nn/layer/container.py +271 -9
  193. mindspore/nn/layer/conv.py +310 -207
  194. mindspore/nn/layer/dense.py +8 -5
  195. mindspore/nn/layer/embedding.py +33 -27
  196. mindspore/nn/layer/flash_attention.py +82 -41
  197. mindspore/nn/layer/image.py +8 -6
  198. mindspore/nn/layer/math.py +13 -18
  199. mindspore/nn/layer/normalization.py +107 -66
  200. mindspore/nn/layer/padding.py +1 -1
  201. mindspore/nn/layer/pooling.py +131 -109
  202. mindspore/nn/layer/rnn_cells.py +22 -17
  203. mindspore/nn/layer/rnns.py +13 -16
  204. mindspore/nn/layer/thor_layer.py +1 -1
  205. mindspore/nn/layer/transformer.py +221 -154
  206. mindspore/nn/learning_rate_schedule.py +9 -1
  207. mindspore/nn/loss/loss.py +235 -174
  208. mindspore/nn/optim/ada_grad.py +2 -1
  209. mindspore/nn/optim/adadelta.py +1 -0
  210. mindspore/nn/optim/adafactor.py +2 -1
  211. mindspore/nn/optim/adam.py +7 -4
  212. mindspore/nn/optim/adamax.py +3 -2
  213. mindspore/nn/optim/adasum.py +2 -2
  214. mindspore/nn/optim/asgd.py +2 -3
  215. mindspore/nn/optim/ftrl.py +6 -5
  216. mindspore/nn/optim/lamb.py +7 -4
  217. mindspore/nn/optim/lars.py +1 -1
  218. mindspore/nn/optim/lazyadam.py +5 -3
  219. mindspore/nn/optim/momentum.py +2 -1
  220. mindspore/nn/optim/optimizer.py +53 -4
  221. mindspore/nn/optim/proximal_ada_grad.py +3 -4
  222. mindspore/nn/optim/rmsprop.py +4 -3
  223. mindspore/nn/optim/rprop.py +23 -12
  224. mindspore/nn/optim/sgd.py +26 -11
  225. mindspore/nn/optim/thor.py +9 -7
  226. mindspore/nn/probability/bijector/bijector.py +5 -5
  227. mindspore/nn/probability/bijector/power_transform.py +27 -27
  228. mindspore/nn/probability/bijector/softplus.py +3 -3
  229. mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
  230. mindspore/nn/probability/distribution/bernoulli.py +5 -5
  231. mindspore/nn/probability/distribution/beta.py +3 -3
  232. mindspore/nn/probability/distribution/categorical.py +7 -7
  233. mindspore/nn/probability/distribution/cauchy.py +0 -1
  234. mindspore/nn/probability/distribution/distribution.py +3 -3
  235. mindspore/nn/probability/distribution/gamma.py +3 -3
  236. mindspore/nn/probability/distribution/geometric.py +4 -4
  237. mindspore/nn/probability/distribution/gumbel.py +4 -4
  238. mindspore/nn/probability/distribution/log_normal.py +2 -2
  239. mindspore/nn/probability/distribution/logistic.py +2 -2
  240. mindspore/nn/probability/distribution/poisson.py +4 -4
  241. mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
  242. mindspore/nn/probability/distribution/uniform.py +6 -6
  243. mindspore/nn/wrap/cell_wrapper.py +78 -34
  244. mindspore/nn/wrap/grad_reducer.py +8 -5
  245. mindspore/nn/wrap/loss_scale.py +105 -42
  246. mindspore/numpy/array_creations.py +1 -2
  247. mindspore/numpy/array_ops.py +3 -2
  248. mindspore/offline_debug/convert_async.py +2 -2
  249. mindspore/ops/_grad_experimental/__init__.py +0 -5
  250. mindspore/ops/_grad_experimental/grad_array_ops.py +1 -2
  251. mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
  252. mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
  253. mindspore/ops/_grad_experimental/grad_implementations.py +10 -0
  254. mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
  255. mindspore/ops/_grad_experimental/grad_math_ops.py +0 -181
  256. mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
  257. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  258. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +165 -109
  259. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +144 -86
  260. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +172 -187
  261. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +51 -57
  262. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +6 -17
  263. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +1 -1
  264. mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
  265. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  266. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  267. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  268. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  269. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  270. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  271. mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
  272. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  273. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  274. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  275. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  276. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  277. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  278. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  279. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
  280. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
  281. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  282. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  283. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  284. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  285. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  286. mindspore/ops/_op_impl/tbe/__init__.py +4 -4
  287. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  288. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  289. mindspore/ops/_primitive_cache.py +1 -1
  290. mindspore/ops/_tracefunc.py +45 -13
  291. mindspore/ops/_utils/utils.py +4 -1
  292. mindspore/ops/_vmap/vmap_array_ops.py +3 -3
  293. mindspore/ops/_vmap/vmap_base.py +3 -3
  294. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  295. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  296. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  297. mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
  298. mindspore/ops/arg_dtype_cast.py +54 -0
  299. mindspore/ops/composite/base.py +37 -10
  300. mindspore/ops/composite/math_ops.py +5 -4
  301. mindspore/ops/composite/multitype_ops/_compile_utils.py +273 -72
  302. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
  303. mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
  304. mindspore/ops/composite/multitype_ops/getitem_impl.py +40 -2
  305. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  306. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  307. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  308. mindspore/ops/deprecated.py +304 -0
  309. mindspore/ops/function/__init__.py +4 -1
  310. mindspore/ops/function/array_func.py +167 -189
  311. mindspore/ops/function/clip_func.py +81 -13
  312. mindspore/ops/function/debug_func.py +1 -1
  313. mindspore/ops/function/grad/grad_func.py +18 -8
  314. mindspore/ops/function/image_func.py +10 -4
  315. mindspore/ops/function/linalg_func.py +5 -5
  316. mindspore/ops/function/math_func.py +575 -386
  317. mindspore/ops/function/nn_func.py +470 -251
  318. mindspore/ops/function/random_func.py +86 -56
  319. mindspore/ops/function/sparse_func.py +1 -1
  320. mindspore/ops/function/sparse_unary_func.py +14 -12
  321. mindspore/ops/function/vmap_func.py +6 -5
  322. mindspore/ops/functional.py +15 -10
  323. mindspore/ops/op_info_register.py +235 -19
  324. mindspore/ops/operations/__init__.py +25 -17
  325. mindspore/ops/operations/_grad_ops.py +52 -7
  326. mindspore/ops/operations/_inner_ops.py +213 -12
  327. mindspore/ops/operations/_quant_ops.py +4 -8
  328. mindspore/ops/operations/_sequence_ops.py +42 -0
  329. mindspore/ops/operations/array_ops.py +64 -280
  330. mindspore/ops/operations/comm_ops.py +105 -57
  331. mindspore/ops/operations/custom_ops.py +10 -3
  332. mindspore/ops/operations/debug_ops.py +8 -4
  333. mindspore/ops/operations/image_ops.py +18 -12
  334. mindspore/ops/operations/math_ops.py +185 -138
  335. mindspore/ops/operations/nn_ops.py +716 -492
  336. mindspore/ops/operations/other_ops.py +0 -22
  337. mindspore/ops/operations/random_ops.py +53 -111
  338. mindspore/ops/operations/sparse_ops.py +3 -1
  339. mindspore/ops/primitive.py +24 -18
  340. mindspore/parallel/_auto_parallel_context.py +68 -8
  341. mindspore/parallel/_cost_model_context.py +2 -2
  342. mindspore/parallel/_offload_context.py +17 -3
  343. mindspore/parallel/_parallel_serialization.py +2 -2
  344. mindspore/parallel/_ps_context.py +12 -0
  345. mindspore/parallel/_tensor.py +14 -12
  346. mindspore/parallel/_transformer/layers.py +5 -3
  347. mindspore/parallel/_transformer/loss.py +1 -0
  348. mindspore/parallel/_transformer/moe.py +2 -2
  349. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  350. mindspore/parallel/_transformer/transformer.py +23 -3
  351. mindspore/parallel/_utils.py +11 -7
  352. mindspore/parallel/algo_parameter_config.py +85 -5
  353. mindspore/parallel/checkpoint_transform.py +6 -10
  354. mindspore/parallel/shard.py +4 -4
  355. mindspore/profiler/common/struct_type.py +3 -3
  356. mindspore/profiler/common/util.py +3 -2
  357. mindspore/profiler/envprofiling.py +1 -1
  358. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  359. mindspore/profiler/parser/ascend_flops_generator.py +2 -2
  360. mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
  361. mindspore/profiler/parser/ascend_hccl_generator.py +17 -12
  362. mindspore/profiler/parser/ascend_msprof_exporter.py +104 -252
  363. mindspore/profiler/parser/ascend_msprof_generator.py +8 -8
  364. mindspore/profiler/parser/ascend_op_generator.py +5 -5
  365. mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
  366. mindspore/profiler/parser/ascend_timeline_generator.py +9 -6
  367. mindspore/profiler/parser/base_timeline_generator.py +9 -7
  368. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +14 -10
  369. mindspore/profiler/parser/flops_parser.py +15 -11
  370. mindspore/profiler/parser/framework_parser.py +37 -21
  371. mindspore/profiler/parser/hccl_parser.py +16 -12
  372. mindspore/profiler/parser/integrator.py +22 -11
  373. mindspore/profiler/parser/memory_usage_parser.py +2 -2
  374. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  375. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  376. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  377. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  378. mindspore/profiler/parser/optime_parser.py +1 -1
  379. mindspore/profiler/parser/profiler_info.py +2 -2
  380. mindspore/profiler/parser/step_trace_parser.py +11 -14
  381. mindspore/profiler/profiling.py +139 -71
  382. mindspore/rewrite/api/node.py +102 -19
  383. mindspore/rewrite/api/node_type.py +5 -1
  384. mindspore/rewrite/api/scoped_value.py +9 -17
  385. mindspore/rewrite/api/symbol_tree.py +131 -47
  386. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  387. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  388. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  389. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
  390. mindspore/rewrite/common/rewrite_elog.py +5 -1
  391. mindspore/rewrite/namer.py +33 -24
  392. mindspore/rewrite/namespace.py +14 -5
  393. mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
  394. mindspore/rewrite/node/call_function.py +79 -0
  395. mindspore/rewrite/node/cell_container.py +135 -0
  396. mindspore/rewrite/node/control_flow.py +88 -0
  397. mindspore/rewrite/{node.py → node/node.py} +273 -234
  398. mindspore/rewrite/node/node_manager.py +254 -0
  399. mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
  400. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  401. mindspore/rewrite/parsers/assign_parser.py +216 -221
  402. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  403. mindspore/rewrite/parsers/class_def_parser.py +174 -113
  404. mindspore/rewrite/parsers/constant_parser.py +9 -6
  405. mindspore/rewrite/parsers/container_parser.py +9 -7
  406. mindspore/rewrite/parsers/for_parser.py +36 -15
  407. mindspore/rewrite/parsers/function_def_parser.py +24 -16
  408. mindspore/rewrite/parsers/if_parser.py +28 -24
  409. mindspore/rewrite/parsers/module_parser.py +196 -25
  410. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  411. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  412. mindspore/rewrite/parsers/return_parser.py +6 -6
  413. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  414. mindspore/rewrite/sparsify/utils.py +1 -1
  415. mindspore/rewrite/symbol_tree.py +525 -577
  416. mindspore/rewrite/symbol_tree_builder.py +9 -193
  417. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  418. mindspore/run_check/_check_version.py +2 -2
  419. mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
  420. mindspore/safeguard/rewrite_obfuscation.py +517 -0
  421. mindspore/scipy/linalg.py +1 -1
  422. mindspore/scipy/optimize/minimize.py +7 -3
  423. mindspore/train/_utils.py +7 -3
  424. mindspore/train/amp.py +323 -123
  425. mindspore/train/anf_ir_pb2.py +14 -2
  426. mindspore/train/callback/_backup_and_restore.py +2 -12
  427. mindspore/train/callback/_callback.py +29 -4
  428. mindspore/train/callback/_checkpoint.py +23 -8
  429. mindspore/train/callback/_early_stop.py +2 -2
  430. mindspore/train/callback/_landscape.py +4 -4
  431. mindspore/train/callback/_loss_monitor.py +2 -2
  432. mindspore/train/callback/_on_request_exit.py +2 -2
  433. mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
  434. mindspore/train/callback/_summary_collector.py +14 -7
  435. mindspore/train/callback/_time_monitor.py +58 -5
  436. mindspore/train/data_sink.py +5 -11
  437. mindspore/train/dataset_helper.py +83 -57
  438. mindspore/train/loss_scale_manager.py +2 -2
  439. mindspore/train/metrics/__init__.py +3 -3
  440. mindspore/train/metrics/cosine_similarity.py +1 -1
  441. mindspore/train/metrics/hausdorff_distance.py +3 -2
  442. mindspore/train/metrics/mean_surface_distance.py +3 -2
  443. mindspore/train/metrics/metric.py +39 -19
  444. mindspore/train/metrics/roc.py +2 -2
  445. mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
  446. mindspore/train/mind_ir_pb2.py +85 -36
  447. mindspore/train/model.py +185 -45
  448. mindspore/train/serialization.py +390 -150
  449. mindspore/train/summary/_writer_pool.py +3 -2
  450. mindspore/train/summary/summary_record.py +14 -10
  451. mindspore/train/train_thor/convert_utils.py +3 -3
  452. mindspore/train/train_thor/dataset_helper.py +1 -1
  453. mindspore/version.py +1 -1
  454. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/METADATA +6 -7
  455. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/RECORD +458 -518
  456. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/entry_points.txt +0 -1
  457. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  458. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  459. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  460. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  461. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  462. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  463. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  464. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  465. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  466. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  467. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  468. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  469. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  470. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  471. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  472. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  473. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  474. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  475. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  476. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  477. mindspore/_extends/graph_kernel/expander.py +0 -80
  478. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
  479. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  480. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  481. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  482. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  483. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  484. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  485. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  486. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  487. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  488. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  489. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  490. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  491. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  492. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  493. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  494. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  495. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  496. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  497. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  498. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  499. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  500. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  501. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  502. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  503. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  504. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  505. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  506. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  507. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  508. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  509. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  510. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  511. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  512. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  513. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  514. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  515. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  516. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  517. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  518. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  519. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  520. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  521. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  522. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  523. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  524. mindspore/dataset/datapreprocess/__init__.py +0 -20
  525. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  526. mindspore/include/api/net.h +0 -142
  527. mindspore/nn/lr_scheduler.py +0 -262
  528. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
  529. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
  530. mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
  531. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  532. mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
  533. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
  534. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
  535. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
  536. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  537. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  538. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
  539. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
  540. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  541. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  542. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
  543. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
  544. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
  545. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
  546. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
  547. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  548. mindspore/rewrite/node_visitor.py +0 -44
  549. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/WHEEL +0 -0
  550. {mindspore-2.1.0.dist-info → mindspore-2.2.0.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
 
@@ -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
 
@@ -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):
@@ -2655,7 +2699,10 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2655
2699
  shape (list[int]): Shape of the slice, it is used when initialize a slice of the parameter.
2656
2700
  Default: ``None``.
2657
2701
  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``.
2702
+ to get one shard of a parameter's slice. For more information about optimizer parallel, please refer to:
2703
+ `Optimizer Parallel
2704
+ <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/optimizer_parallel.html>`_.
2705
+ Default: ``None``.
2659
2706
 
2660
2707
  Returns:
2661
2708
  Initialized Tensor.
@@ -2724,14 +2771,20 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2724
2771
  self.init.seed, _ = self.seed
2725
2772
 
2726
2773
  with seed_context(self.init):
2727
- self.init(data)
2774
+ if slice_num_of_persistent_data == 1:
2775
+ self.init(data)
2728
2776
  self.init = None
2729
2777
 
2730
2778
  # At embedding cache scenes. When size of tensor is out of range, we store data to persistent storage
2731
2779
  if slice_num_of_persistent_data > 1:
2732
2780
  self.assign_value(Tensor_.persistent_data_from_numpy(data, slice_num_of_persistent_data))
2733
2781
  else:
2734
- self.assign_value(Tensor_.from_numpy(data))
2782
+ if self.dtype == mstype.bfloat16:
2783
+ # The dtype of data is np.float32 when mstype is bfloat16,
2784
+ # so we create tensor_ by init func instead of asnumpy
2785
+ self.assign_value(Tensor_(data, self.dtype))
2786
+ else:
2787
+ self.assign_value(Tensor_.from_numpy(data))
2735
2788
  return self
2736
2789
 
2737
2790
  def resize(self, *new_shape):
@@ -2851,54 +2904,8 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2851
2904
  """
2852
2905
  For details, please refer to :func:`mindspore.ops.diagonal`.
2853
2906
  """
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)
2907
+ self._init_check()
2908
+ return tensor_operator_registry.get('diagonal')(self, offset, axis1, axis2)
2902
2909
 
2903
2910
  def diagonal_scatter(self, src, offset=0, dim1=0, dim2=1):
2904
2911
  r"""
@@ -2959,7 +2966,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
2959
2966
  Takes elements from a tensor along an axis.
2960
2967
 
2961
2968
  Args:
2962
- indices (Tensor): The indices with shape `(Nj...)` of the values to extract.
2969
+ indices (Tensor): The indices with shape :math:`(Nj...)` of the values to extract.
2963
2970
  axis (int, optional): The axis over which to select values. By default,
2964
2971
  the flattened input tensor is used. Default: ``None`` .
2965
2972
  mode (str, optional): Support ``'raise'``, ``'wrap'``, ``'clip'``.
@@ -3227,10 +3234,10 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3227
3234
  axis = ()
3228
3235
  else:
3229
3236
  axis = validator.check_and_canonicalize_axes(axis, self.ndim)
3230
- x_mean = tensor_operator_registry.get('mean')(True)(self, axis)
3237
+ x_mean = tensor_operator_registry.get('mean')(self, axis, True)
3231
3238
  x_sub = tensor_operator_registry.get('__sub__')(self, x_mean)
3232
3239
  x_pow = tensor_operator_registry.get('__pow__')(x_sub, 2)
3233
- x_sum = tensor_operator_registry.get('sum')(bool(keepdims))(x_pow, axis)
3240
+ x_sum = tensor_operator_registry.get('reducesum')(bool(keepdims))(x_pow, axis)
3234
3241
  nums = 1
3235
3242
  if axis == ():
3236
3243
  nums = self.size
@@ -3255,11 +3262,12 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3255
3262
  `extobj` are not supported.
3256
3263
 
3257
3264
  Args:
3258
- axis (Union[None, int, tuple(int)]): Axis or axes along which a sum is performed. Default: ``None`` .
3265
+ axis (Union[None, int, tuple(int), list(int)]): Axis or axes along which a sum is performed.
3266
+ Default: ``None`` .
3259
3267
  If None, sum all the elements of the input tensor.
3260
3268
  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.
3269
+ If the axis is a tuple or list of ints, a sum is performed on all the axes specified in the tuple
3270
+ or list instead of a single axis or all the axes as before.
3263
3271
  dtype (:class:`mindspore.dtype`, optional): defaults to ``None`` . Overrides the dtype of the
3264
3272
  output Tensor.
3265
3273
  keepdims (bool): If this is set to ``True`` , the axes which are reduced are left in the result as
@@ -3274,7 +3282,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3274
3282
  If the input tensor is a 0-d array, or if the axis is ``None`` , a scalar is returned.
3275
3283
 
3276
3284
  Raises:
3277
- TypeError: If input is not array_like, or `axis` is not int or tuple of ints,
3285
+ TypeError: If input is not array_like, or `axis` is not int, tuple of ints or list of ints,
3278
3286
  or `keepdims` is not integer, or `initial` is not scalar.
3279
3287
  ValueError: If any axis is out of range or duplicate axes exist.
3280
3288
 
@@ -3294,27 +3302,14 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3294
3302
  >>> print(input_x.sum(axis=1))
3295
3303
  [10. 35.]
3296
3304
  """
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
3305
  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)
3306
+ raise TypeError(f"For Tensor.sum, initial must be int, float or bool, but got {type(initial)}.")
3307
+ res = tensor_operator_registry.get("sum")(self, axis, keepdims)
3315
3308
  if initial is not None:
3316
3309
  res += initial
3317
- return res.astype(dtype)
3310
+ if dtype is not None:
3311
+ res = res.astype(dtype)
3312
+ return res
3318
3313
 
3319
3314
  def sum_to_size(self, *size):
3320
3315
  r"""
@@ -3621,6 +3616,29 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3621
3616
  self._init_check()
3622
3617
  return tensor_operator_registry.get('dense_to_sparse_csr')(self)
3623
3618
 
3619
+ def tolist(self):
3620
+ r"""
3621
+ Convert a Tensor to List. If the input is Tensor scalar, a Python scalar will be returned.
3622
+
3623
+ Returns:
3624
+ List or Python scalar.
3625
+
3626
+ Supported Platforms:
3627
+ ``Ascend`` ``GPU`` ``CPU``
3628
+
3629
+ Examples:
3630
+ >>> import mindspore as ms
3631
+ >>> x = ms.Tensor([[1, 2, 3], [4, 5, 6]])
3632
+ >>> out1 = x.tolist()
3633
+ >>> print(out1)
3634
+ [[1, 2, 3], [4, 5, 6]]
3635
+ >>> out2 = x[0][0].tolist()
3636
+ >>> print(out2)
3637
+ 1
3638
+ """
3639
+ self._init_check()
3640
+ return self.asnumpy().tolist()
3641
+
3624
3642
  def unbind(self, dim=0):
3625
3643
  r"""
3626
3644
  For details, please refer to :func:`mindspore.ops.unbind`.
@@ -3757,7 +3775,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3757
3775
  r"""
3758
3776
  For details, please refer to :func:`mindspore.ops.tile`.
3759
3777
  """
3760
- return tensor_operator_registry.get('tile')()(self, reps)
3778
+ return tensor_operator_registry.get('tile')(self, reps)
3761
3779
 
3762
3780
  def topk(self, k, dim=None, largest=True, sorted=True):
3763
3781
  r"""
@@ -3868,6 +3886,60 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
3868
3886
  self._init_check()
3869
3887
  return tensor_operator_registry.get('to')()(self, dtype)
3870
3888
 
3889
+ def type(self, dtype=None):
3890
+ r"""
3891
+ Change the dtype of the Tensor to the `dtype` . Return the type if `dtype` is ``None`` .
3892
+
3893
+ Args:
3894
+ dtype (mindspore.dtype, optional): The specified dtype of output tensor. Default: ``None``.
3895
+
3896
+ Returns:
3897
+ Tensor or str. If `dtype` is ``None`` , return a str, which describes the dtype of Tensor.
3898
+ If `dtype` is not ``None`` , then return a Tensor, and the dtype of returned Tensor is `dtype` .
3899
+
3900
+ Supported Platforms:
3901
+ ``Ascend`` ``GPU`` ``CPU``
3902
+
3903
+ Examples:
3904
+ >>> import mindspore
3905
+ >>> from mindspore import Tensor
3906
+ >>> x = Tensor([[1.2, 2], [3.4, 4]], dtype=mindspore.float32)
3907
+ >>> print(x.type())
3908
+ Float32
3909
+ >>> print(x.type(dtype=mindspore.int32))
3910
+ [[1 2]
3911
+ [3 4]]
3912
+ """
3913
+ self._init_check()
3914
+ if dtype is None:
3915
+ return str(self.dtype)
3916
+ return self.astype(dtype)
3917
+
3918
+ def type_as(self, other):
3919
+ r"""
3920
+ Change the dtype of the Tensor to the dtype of `other`.
3921
+
3922
+ Args:
3923
+ other (Tensor): The return tensor has the same dtype as `other`.
3924
+
3925
+ Returns:
3926
+ Tensor, has the same dtype as `other`.
3927
+
3928
+ Supported Platforms:
3929
+ ``Ascend`` ``GPU`` ``CPU``
3930
+
3931
+ Examples:
3932
+ >>> import mindspore
3933
+ >>> from mindspore import Tensor
3934
+ >>> x = Tensor([[1, 2], [3, 4]], dtype=mindspore.float32)
3935
+ >>> y = Tensor([[1, 2], [3, 4]], dtype=mindspore.int32)
3936
+ >>> x = x.type_as(y)
3937
+ >>> print(x.dtype)
3938
+ Int32
3939
+ """
3940
+ self._init_check()
3941
+ return self.astype(other.dtype)
3942
+
3871
3943
  def bool(self):
3872
3944
  r"""
3873
3945
  Converts input tensor dtype to `bool`.
@@ -4033,6 +4105,13 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
4033
4105
  self._init_check()
4034
4106
  return tensor_operator_registry.get('conj')(self)
4035
4107
 
4108
+ def count_nonzero(self, axis=(), keep_dims=False, dtype=mstype.int32):
4109
+ r"""
4110
+ For details, please refer to :func:`mindspore.ops.count_nonzero`.
4111
+ """
4112
+ self._init_check()
4113
+ return tensor_operator_registry.get('count_nonzero')(self, axis, keep_dims, dtype)
4114
+
4036
4115
  def cross(self, other, dim=None):
4037
4116
  r"""
4038
4117
  For details, please refer to :func:`mindspore.ops.cross`.
@@ -4088,7 +4167,7 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
4088
4167
 
4089
4168
  def expand(self, size):
4090
4169
  r"""
4091
- For details, please refer to :func:`mindspore.ops.expand`.
4170
+ For details, please refer to :func:`mindspore.ops.broadcast_to`.
4092
4171
  """
4093
4172
  self._init_check()
4094
4173
  return tensor_operator_registry.get('expand')(self, size)
@@ -4121,6 +4200,13 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
4121
4200
  self._init_check()
4122
4201
  return tensor_operator_registry.get('div')(self, value, rounding_mode=rounding_mode)
4123
4202
 
4203
+ def eq(self, other):
4204
+ r"""
4205
+ For details, please refer to :func:`mindspore.ops.eq`.
4206
+ """
4207
+ self._init_check()
4208
+ return tensor_operator_registry.get('equal')(self, other)
4209
+
4124
4210
  def equal(self, other):
4125
4211
  r"""
4126
4212
  For details, please refer to :func:`mindspore.ops.equal`.
@@ -4738,10 +4824,19 @@ class Tensor(Tensor_, metaclass=_TensorMeta):
4738
4824
 
4739
4825
  def _vm_compare(*args):
4740
4826
  """Implement `vm_compare` for tensor."""
4741
- obj_str = args[-1]
4827
+ if args:
4828
+ obj_str = args[-1]
4829
+ else:
4830
+ raise ValueError("_vm_compare does not receive any input.")
4742
4831
  if obj_str == "shape":
4743
4832
  fn = getattr(args[0].asnumpy(), obj_str)
4744
4833
  return fn
4834
+ if obj_str == "__setitem__":
4835
+ fn = getattr(args[0].asnumpy(), obj_str)
4836
+ index = args[1].asnumpy() if isinstance(args[1], Tensor) else args[1]
4837
+ value = args[2].asnumpy() if isinstance(args[2], Tensor) else args[2]
4838
+ fn(index, value)
4839
+ return args[0]
4745
4840
  if len(args) == 2:
4746
4841
  fn = getattr(args[0].asnumpy(), obj_str)
4747
4842
  return Tensor(fn())