mindspore 2.1.0__cp37-cp37m-manylinux1_x86_64.whl → 2.2.11__cp37-cp37m-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.
- mindspore/.commit_id +1 -1
- mindspore/__init__.py +4 -1
- mindspore/_akg/akg/build_module.py +5 -6
- mindspore/_akg/akg/composite/build_module.py +139 -22
- mindspore/_akg/akg/composite/split_stitch.py +10 -11
- mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
- mindspore/_akg/akg/tvm/api.py +4 -3
- mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
- mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
- mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
- mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
- mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
- mindspore/_akg/akg/tvm/build_module.py +16 -1
- mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
- mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
- mindspore/_akg/akg/tvm/ir_builder.py +1 -1
- mindspore/_akg/akg/tvm/module.py +1 -2
- mindspore/_akg/akg/tvm/stmt.py +2 -2
- mindspore/_akg/akg/utils/ascend_profilier/cann_file_parser.py +76 -0
- mindspore/_akg/akg/utils/ascend_profilier/file_manager.py +56 -0
- mindspore/_akg/akg/utils/ascend_profilier/op_summary_bean.py +23 -0
- mindspore/_akg/akg/utils/ascend_profilier/op_summary_headers.py +8 -0
- mindspore/_akg/akg/utils/ascend_profilier/op_summary_parser.py +42 -0
- mindspore/_akg/akg/utils/ascend_profilier/path_manager.py +65 -0
- mindspore/_akg/akg/utils/composite_op_helper.py +16 -12
- mindspore/_akg/akg/utils/dump_ascend_meta.py +22 -3
- mindspore/_akg/akg/utils/kernel_exec.py +98 -274
- mindspore/_akg/akg/utils/result_analysis.py +4 -24
- mindspore/_akg/akg/utils/tbe_codegen_utils.py +219 -0
- mindspore/_akg/akg/utils/util.py +56 -1
- mindspore/_c_dataengine.cpython-37m-x86_64-linux-gnu.so +0 -0
- mindspore/_c_expression.cpython-37m-x86_64-linux-gnu.so +0 -0
- mindspore/_c_mindrecord.cpython-37m-x86_64-linux-gnu.so +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -1
- mindspore/_checkparam.py +23 -29
- mindspore/_extends/graph_kernel/__init__.py +0 -1
- mindspore/_extends/graph_kernel/model/graph_split.py +84 -76
- mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
- mindspore/_extends/graph_kernel/splitter.py +4 -11
- mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
- mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +84 -67
- mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
- mindspore/_extends/parallel_compile/akg_compiler/util.py +10 -7
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +6 -5
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
- mindspore/_extends/parse/__init__.py +13 -15
- mindspore/_extends/parse/namespace.py +7 -33
- mindspore/_extends/parse/parser.py +67 -72
- mindspore/_extends/parse/resources.py +1 -1
- mindspore/_extends/parse/standard_method.py +86 -106
- mindspore/_extends/parse/trope.py +1 -1
- mindspore/_extends/remote/kernel_build_server.py +25 -7
- mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
- mindspore/_install_custom.py +43 -0
- mindspore/_mindspore_offline_debug.cpython-37m-x86_64-linux-gnu.so +0 -0
- mindspore/amp.py +47 -11
- mindspore/bin/cache_admin +0 -0
- mindspore/bin/cache_server +0 -0
- mindspore/boost/boost.py +1 -8
- mindspore/boost/boost_cell_wrapper.py +3 -2
- mindspore/boost/grad_accumulation.py +1 -1
- mindspore/boost/group_loss_scale_manager.py +8 -7
- mindspore/common/__init__.py +5 -3
- mindspore/common/_jit_fallback_utils.py +6 -0
- mindspore/common/_register_for_adapter.py +2 -0
- mindspore/common/_register_for_tensor.py +2 -2
- mindspore/common/_stub_tensor.py +13 -0
- mindspore/common/_utils.py +29 -0
- mindspore/common/api.py +174 -259
- mindspore/common/auto_dynamic_shape.py +494 -0
- mindspore/common/dtype.py +18 -11
- mindspore/common/dump.py +6 -4
- mindspore/common/initializer.py +14 -14
- mindspore/common/jit_config.py +33 -15
- mindspore/common/lazy_inline.py +126 -7
- mindspore/common/mindir_util.py +101 -0
- mindspore/common/parameter.py +51 -41
- mindspore/common/seed.py +4 -4
- mindspore/common/sparse_tensor.py +13 -14
- mindspore/common/tensor.py +243 -165
- mindspore/communication/__init__.py +7 -4
- mindspore/communication/_comm_helper.py +83 -4
- mindspore/communication/management.py +152 -84
- mindspore/config/op_info.config +14 -3
- mindspore/config/super_bar_config.json +4 -2
- mindspore/context.py +152 -61
- mindspore/dataset/__init__.py +5 -5
- mindspore/dataset/audio/__init__.py +2 -2
- mindspore/dataset/audio/transforms.py +52 -52
- mindspore/dataset/callback/ds_callback.py +16 -2
- mindspore/dataset/core/config.py +68 -51
- mindspore/dataset/engine/cache_client.py +33 -7
- mindspore/dataset/engine/datasets.py +250 -112
- mindspore/dataset/engine/datasets_audio.py +43 -211
- mindspore/dataset/engine/datasets_standard_format.py +16 -35
- mindspore/dataset/engine/datasets_text.py +43 -67
- mindspore/dataset/engine/datasets_user_defined.py +86 -100
- mindspore/dataset/engine/datasets_vision.py +219 -1029
- mindspore/dataset/engine/iterators.py +11 -4
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
- mindspore/dataset/engine/obs/util.py +3 -0
- mindspore/dataset/engine/samplers.py +1 -1
- mindspore/dataset/engine/validators.py +19 -5
- mindspore/dataset/text/__init__.py +3 -3
- mindspore/dataset/text/transforms.py +101 -127
- mindspore/dataset/text/utils.py +205 -138
- mindspore/dataset/transforms/__init__.py +1 -1
- mindspore/dataset/transforms/py_transforms_util.py +40 -12
- mindspore/dataset/transforms/transforms.py +95 -40
- mindspore/dataset/utils/browse_dataset.py +8 -2
- mindspore/dataset/utils/line_reader.py +17 -19
- mindspore/dataset/vision/__init__.py +3 -3
- mindspore/dataset/vision/c_transforms.py +6 -3
- mindspore/dataset/vision/transforms.py +409 -287
- mindspore/dataset/vision/utils.py +13 -14
- mindspore/dataset/vision/validators.py +11 -1
- mindspore/experimental/map_parameter.py +14 -0
- mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
- mindspore/{nn/optim_ex → experimental/optim}/adam.py +60 -67
- mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
- mindspore/experimental/optim/lr_scheduler.py +1427 -0
- mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
- mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
- mindspore/gen_ops.py +273 -0
- mindspore/include/OWNERS +0 -1
- mindspore/include/api/data_type.h +2 -1
- mindspore/include/api/graph.h +0 -15
- mindspore/include/api/kernel.h +2 -0
- mindspore/include/api/kernel_api.h +37 -12
- mindspore/include/api/model.h +17 -14
- mindspore/include/api/status.h +8 -3
- mindspore/include/api/types.h +37 -4
- mindspore/include/c_api/ms/abstract.h +67 -0
- mindspore/include/c_api/ms/attribute.h +197 -0
- mindspore/include/c_api/ms/base/handle_types.h +43 -0
- mindspore/include/c_api/ms/base/macros.h +32 -0
- mindspore/include/c_api/ms/base/status.h +33 -0
- mindspore/include/c_api/ms/base/types.h +282 -0
- mindspore/include/c_api/ms/context.h +102 -0
- mindspore/include/c_api/ms/graph.h +160 -0
- mindspore/include/c_api/ms/node.h +606 -0
- mindspore/include/c_api/ms/tensor.h +161 -0
- mindspore/include/c_api/ms/value.h +84 -0
- mindspore/include/dataset/constants.h +6 -5
- mindspore/include/dataset/execute.h +23 -13
- mindspore/include/dataset/text.h +26 -26
- mindspore/include/dataset/transforms.h +13 -13
- mindspore/include/dataset/vision.h +60 -60
- mindspore/include/dataset/vision_ascend.h +5 -6
- mindspore/include/dataset/vision_lite.h +17 -17
- mindspore/include/mindapi/base/type_id.h +1 -0
- mindspore/include/mindapi/base/types.h +1 -0
- mindspore/lib/libdnnl.so.2 +0 -0
- mindspore/lib/libjemalloc.so.2 +0 -0
- mindspore/lib/libmindspore.so +0 -0
- mindspore/lib/libmindspore_backend.so +0 -0
- mindspore/lib/libmindspore_common.so +0 -0
- mindspore/lib/libmindspore_core.so +0 -0
- mindspore/lib/libmindspore_glog.so.0 +0 -0
- mindspore/lib/libmindspore_gpr.so.15 +0 -0
- mindspore/lib/libmindspore_grpc++.so.1 +0 -0
- mindspore/lib/libmindspore_grpc.so.15 +0 -0
- mindspore/lib/libmindspore_shared_lib.so +0 -0
- mindspore/lib/libnnacl.so +0 -0
- mindspore/lib/libopencv_core.so.4.5 +0 -0
- mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
- mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
- mindspore/lib/libps_cache.so +0 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310/aic-ascend310-ops-info.json +123 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310p/aic-ascend310p-ops-info.json +123 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910/aic-ascend910-ops-info.json +158 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910b/aic-ascend910b-ops-info.json +37 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_proto/libop_proto.so +0 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +8998 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
- mindspore/lib/plugin/ascend/libakg.so +0 -0
- mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
- mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
- mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
- mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
- mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
- mindspore/lib/plugin/cpu/libakg.so +0 -0
- mindspore/lib/plugin/gpu/libcuda_ops.so.10 +0 -0
- mindspore/lib/plugin/gpu/libcuda_ops.so.11 +0 -0
- mindspore/lib/plugin/gpu10.1/libakg.so +0 -0
- mindspore/lib/plugin/gpu10.1/libnccl.so.2 +0 -0
- mindspore/lib/plugin/gpu11.1/libakg.so +0 -0
- mindspore/lib/plugin/gpu11.1/libnccl.so.2 +0 -0
- mindspore/lib/plugin/gpu11.6/libakg.so +0 -0
- mindspore/lib/plugin/gpu11.6/libnccl.so.2 +0 -0
- mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
- mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
- mindspore/lib/plugin/libmindspore_gpu.so.10.1 +0 -0
- mindspore/lib/plugin/libmindspore_gpu.so.11.1 +0 -0
- mindspore/lib/plugin/libmindspore_gpu.so.11.6 +0 -0
- mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
- mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
- mindspore/nn/__init__.py +0 -2
- mindspore/nn/cell.py +313 -74
- mindspore/nn/dynamic_lr.py +21 -21
- mindspore/nn/layer/activation.py +22 -30
- mindspore/nn/layer/basic.py +15 -13
- mindspore/nn/layer/channel_shuffle.py +1 -1
- mindspore/nn/layer/container.py +271 -9
- mindspore/nn/layer/conv.py +323 -204
- mindspore/nn/layer/dense.py +8 -5
- mindspore/nn/layer/embedding.py +33 -27
- mindspore/nn/layer/flash_attention.py +61 -95
- mindspore/nn/layer/image.py +8 -6
- mindspore/nn/layer/math.py +16 -25
- mindspore/nn/layer/normalization.py +107 -66
- mindspore/nn/layer/padding.py +1 -1
- mindspore/nn/layer/pooling.py +131 -109
- mindspore/nn/layer/rnn_cells.py +27 -22
- mindspore/nn/layer/rnns.py +13 -16
- mindspore/nn/layer/thor_layer.py +1 -1
- mindspore/nn/layer/transformer.py +221 -154
- mindspore/nn/learning_rate_schedule.py +9 -1
- mindspore/nn/loss/loss.py +235 -174
- mindspore/nn/optim/ada_grad.py +2 -1
- mindspore/nn/optim/adadelta.py +1 -0
- mindspore/nn/optim/adafactor.py +2 -1
- mindspore/nn/optim/adam.py +7 -4
- mindspore/nn/optim/adamax.py +3 -2
- mindspore/nn/optim/adasum.py +2 -2
- mindspore/nn/optim/asgd.py +2 -3
- mindspore/nn/optim/ftrl.py +6 -5
- mindspore/nn/optim/lamb.py +7 -4
- mindspore/nn/optim/lars.py +1 -1
- mindspore/nn/optim/lazyadam.py +5 -3
- mindspore/nn/optim/momentum.py +2 -1
- mindspore/nn/optim/optimizer.py +53 -4
- mindspore/nn/optim/proximal_ada_grad.py +3 -4
- mindspore/nn/optim/rmsprop.py +4 -3
- mindspore/nn/optim/rprop.py +23 -12
- mindspore/nn/optim/sgd.py +26 -11
- mindspore/nn/optim/thor.py +9 -7
- mindspore/nn/probability/bijector/bijector.py +5 -5
- mindspore/nn/probability/bijector/power_transform.py +27 -27
- mindspore/nn/probability/bijector/softplus.py +3 -3
- mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
- mindspore/nn/probability/distribution/bernoulli.py +5 -5
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +7 -7
- mindspore/nn/probability/distribution/cauchy.py +0 -1
- mindspore/nn/probability/distribution/distribution.py +3 -3
- mindspore/nn/probability/distribution/gamma.py +3 -3
- mindspore/nn/probability/distribution/geometric.py +4 -4
- mindspore/nn/probability/distribution/gumbel.py +4 -4
- mindspore/nn/probability/distribution/log_normal.py +2 -2
- mindspore/nn/probability/distribution/logistic.py +2 -2
- mindspore/nn/probability/distribution/poisson.py +4 -4
- mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
- mindspore/nn/probability/distribution/uniform.py +6 -6
- mindspore/nn/wrap/__init__.py +4 -2
- mindspore/nn/wrap/cell_wrapper.py +87 -34
- mindspore/nn/wrap/grad_reducer.py +8 -5
- mindspore/nn/wrap/loss_scale.py +105 -42
- mindspore/numpy/array_creations.py +1 -2
- mindspore/numpy/array_ops.py +3 -2
- mindspore/numpy/utils_const.py +5 -5
- mindspore/offline_debug/convert_async.py +2 -2
- mindspore/ops/_grad_experimental/__init__.py +0 -5
- mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
- mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
- mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
- mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
- mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
- mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
- mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
- mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
- mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
- mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
- mindspore/ops/_op_impl/aicpu/add.py +3 -3
- mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
- mindspore/ops/_op_impl/{_custom_op/flash_attention/constants.py → aicpu/eps.py} +18 -27
- mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
- mindspore/ops/_op_impl/aicpu/linear_sum_assignment.py +21 -2
- mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
- mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
- mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
- mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
- mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
- mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
- mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
- mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
- mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
- mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
- mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
- mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
- mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
- mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
- mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
- mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
- mindspore/ops/_op_impl/tbe/__init__.py +4 -4
- mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
- mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
- mindspore/ops/_primitive_cache.py +1 -1
- mindspore/ops/_tracefunc.py +45 -13
- mindspore/ops/_utils/utils.py +6 -1
- mindspore/ops/_vmap/vmap_array_ops.py +3 -3
- mindspore/ops/_vmap/vmap_base.py +3 -3
- mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
- mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
- mindspore/ops/_vmap/vmap_math_ops.py +5 -2
- mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
- mindspore/ops/arg_dtype_cast.py +54 -0
- mindspore/ops/composite/base.py +37 -10
- mindspore/ops/composite/math_ops.py +5 -4
- mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
- mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
- mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
- mindspore/ops/deprecated.py +304 -0
- mindspore/ops/function/__init__.py +4 -1
- mindspore/ops/function/array_func.py +174 -193
- mindspore/ops/function/clip_func.py +81 -13
- mindspore/ops/function/debug_func.py +1 -1
- mindspore/ops/function/grad/grad_func.py +18 -9
- mindspore/ops/function/image_func.py +10 -4
- mindspore/ops/function/linalg_func.py +5 -5
- mindspore/ops/function/math_func.py +575 -386
- mindspore/ops/function/nn_func.py +568 -260
- mindspore/ops/function/random_func.py +88 -57
- mindspore/ops/function/sparse_func.py +1 -1
- mindspore/ops/function/sparse_unary_func.py +14 -12
- mindspore/ops/function/vmap_func.py +6 -5
- mindspore/ops/functional.py +15 -10
- mindspore/ops/op_info_register.py +244 -25
- mindspore/ops/operations/__init__.py +31 -19
- mindspore/ops/operations/_grad_ops.py +71 -7
- mindspore/ops/operations/_inner_ops.py +350 -17
- mindspore/ops/operations/_quant_ops.py +4 -8
- mindspore/ops/operations/_sequence_ops.py +42 -0
- mindspore/ops/operations/array_ops.py +68 -282
- mindspore/ops/operations/comm_ops.py +107 -59
- mindspore/ops/operations/custom_ops.py +94 -70
- mindspore/ops/operations/debug_ops.py +8 -4
- mindspore/ops/operations/image_ops.py +18 -12
- mindspore/ops/operations/inner_ops.py +26 -3
- mindspore/ops/operations/math_ops.py +192 -144
- mindspore/ops/operations/nn_ops.py +857 -489
- mindspore/ops/operations/other_ops.py +0 -22
- mindspore/ops/operations/random_ops.py +53 -111
- mindspore/ops/operations/sparse_ops.py +3 -1
- mindspore/ops/primitive.py +24 -18
- mindspore/parallel/_auto_parallel_context.py +68 -8
- mindspore/parallel/_cost_model_context.py +2 -2
- mindspore/parallel/_offload_context.py +17 -3
- mindspore/parallel/_parallel_serialization.py +12 -5
- mindspore/parallel/_ps_context.py +12 -0
- mindspore/parallel/_tensor.py +18 -13
- mindspore/parallel/_transformer/layers.py +5 -3
- mindspore/parallel/_transformer/loss.py +1 -0
- mindspore/parallel/_transformer/moe.py +2 -2
- mindspore/parallel/_transformer/op_parallel_config.py +12 -1
- mindspore/parallel/_transformer/transformer.py +23 -3
- mindspore/parallel/_utils.py +11 -7
- mindspore/parallel/algo_parameter_config.py +85 -5
- mindspore/parallel/checkpoint_transform.py +19 -12
- mindspore/parallel/shard.py +21 -14
- mindspore/profiler/common/struct_type.py +3 -3
- mindspore/profiler/common/util.py +4 -2
- mindspore/profiler/envprofiling.py +1 -1
- mindspore/profiler/parser/aicpu_data_parser.py +5 -3
- mindspore/profiler/parser/ascend_flops_generator.py +2 -2
- mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
- mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
- mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
- mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
- mindspore/profiler/parser/ascend_op_generator.py +6 -6
- mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
- mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
- mindspore/profiler/parser/base_timeline_generator.py +10 -8
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
- mindspore/profiler/parser/flops_parser.py +15 -11
- mindspore/profiler/parser/framework_parser.py +38 -22
- mindspore/profiler/parser/hccl_parser.py +16 -12
- mindspore/profiler/parser/integrator.py +22 -11
- mindspore/profiler/parser/memory_usage_parser.py +2 -2
- mindspore/profiler/parser/minddata_analyzer.py +12 -14
- mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
- mindspore/profiler/parser/msadvisor_parser.py +8 -4
- mindspore/profiler/parser/op_intermediate_parser.py +5 -2
- mindspore/profiler/parser/optime_parser.py +1 -1
- mindspore/profiler/parser/profiler_info.py +21 -2
- mindspore/profiler/parser/step_trace_parser.py +11 -14
- mindspore/profiler/profiling.py +179 -89
- mindspore/rewrite/api/node.py +102 -19
- mindspore/rewrite/api/node_type.py +5 -1
- mindspore/rewrite/api/pattern_engine.py +1 -1
- mindspore/rewrite/api/scoped_value.py +9 -17
- mindspore/rewrite/api/symbol_tree.py +131 -47
- mindspore/rewrite/ast_helpers/__init__.py +2 -1
- mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
- mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
- mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
- mindspore/rewrite/common/rewrite_elog.py +5 -1
- mindspore/rewrite/namer.py +33 -24
- mindspore/rewrite/namespace.py +14 -5
- mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
- mindspore/rewrite/node/call_function.py +79 -0
- mindspore/rewrite/node/cell_container.py +135 -0
- mindspore/rewrite/node/control_flow.py +88 -0
- mindspore/rewrite/{node.py → node/node.py} +273 -234
- mindspore/rewrite/node/node_manager.py +254 -0
- mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
- mindspore/rewrite/parsers/arguments_parser.py +22 -21
- mindspore/rewrite/parsers/assign_parser.py +216 -221
- mindspore/rewrite/parsers/attribute_parser.py +9 -7
- mindspore/rewrite/parsers/class_def_parser.py +174 -113
- mindspore/rewrite/parsers/constant_parser.py +9 -6
- mindspore/rewrite/parsers/container_parser.py +9 -7
- mindspore/rewrite/parsers/for_parser.py +42 -21
- mindspore/rewrite/parsers/function_def_parser.py +24 -16
- mindspore/rewrite/parsers/if_parser.py +28 -24
- mindspore/rewrite/parsers/module_parser.py +196 -25
- mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
- mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
- mindspore/rewrite/parsers/return_parser.py +6 -6
- mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
- mindspore/rewrite/sparsify/utils.py +1 -1
- mindspore/rewrite/symbol_tree.py +523 -578
- mindspore/rewrite/symbol_tree_builder.py +9 -193
- mindspore/rewrite/symbol_tree_dumper.py +2 -2
- mindspore/run_check/_check_version.py +6 -4
- mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
- mindspore/safeguard/rewrite_obfuscation.py +541 -0
- mindspore/scipy/linalg.py +1 -1
- mindspore/scipy/ops.py +55 -5
- mindspore/scipy/optimize/__init__.py +3 -2
- mindspore/scipy/optimize/linear_sum_assignment.py +38 -33
- mindspore/scipy/optimize/minimize.py +7 -3
- mindspore/train/_utils.py +7 -3
- mindspore/train/amp.py +323 -123
- mindspore/train/anf_ir_pb2.py +14 -2
- mindspore/train/callback/_backup_and_restore.py +2 -12
- mindspore/train/callback/_callback.py +29 -4
- mindspore/train/callback/_checkpoint.py +23 -8
- mindspore/train/callback/_early_stop.py +2 -2
- mindspore/train/callback/_landscape.py +4 -4
- mindspore/train/callback/_loss_monitor.py +2 -2
- mindspore/train/callback/_on_request_exit.py +2 -2
- mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
- mindspore/train/callback/_summary_collector.py +15 -8
- mindspore/train/callback/_time_monitor.py +58 -5
- mindspore/train/data_sink.py +5 -11
- mindspore/train/dataset_helper.py +84 -57
- mindspore/train/loss_scale_manager.py +2 -2
- mindspore/train/metrics/__init__.py +3 -3
- mindspore/train/metrics/cosine_similarity.py +1 -1
- mindspore/train/metrics/hausdorff_distance.py +3 -2
- mindspore/train/metrics/mean_surface_distance.py +3 -2
- mindspore/train/metrics/metric.py +39 -19
- mindspore/train/metrics/roc.py +2 -2
- mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
- mindspore/train/mind_ir_pb2.py +85 -36
- mindspore/train/model.py +187 -47
- mindspore/train/serialization.py +487 -161
- mindspore/train/summary/_summary_adapter.py +1 -1
- mindspore/train/summary/_writer_pool.py +3 -2
- mindspore/train/summary/summary_record.py +37 -17
- mindspore/train/train_thor/convert_utils.py +3 -3
- mindspore/train/train_thor/dataset_helper.py +1 -1
- mindspore/version.py +1 -1
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/METADATA +8 -8
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/RECORD +488 -539
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/entry_points.txt +0 -1
- mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
- mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
- mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
- mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
- mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
- mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
- mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
- mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
- mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
- mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
- mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
- mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
- mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
- mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
- mindspore/_akg/akg/tvm/rpc/base.py +0 -182
- mindspore/_akg/akg/tvm/rpc/client.py +0 -436
- mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
- mindspore/_akg/akg/tvm/rpc/server.py +0 -413
- mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
- mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
- mindspore/_extends/graph_kernel/expander.py +0 -80
- mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
- mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
- mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
- mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
- mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
- mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
- mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
- mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
- mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
- mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
- mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
- mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
- mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
- mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
- mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
- mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
- mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
- mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
- mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
- mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
- mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
- mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
- mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
- mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
- mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
- mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
- mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
- mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
- mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
- mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
- mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
- mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
- mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
- mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
- mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
- mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
- mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
- mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
- mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
- mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
- mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
- mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
- mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
- mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
- mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
- mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
- mindspore/dataset/datapreprocess/__init__.py +0 -20
- mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
- mindspore/include/api/net.h +0 -142
- mindspore/nn/lr_scheduler.py +0 -262
- mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
- mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
- mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
- mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
- mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
- mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +0 -350
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +0 -409
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +0 -578
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +0 -199
- mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +0 -446
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/__init__.py +0 -0
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/sparse_tiling.py +0 -45
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/strategy.py +0 -67
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +0 -62
- mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
- mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
- mindspore/rewrite/node_visitor.py +0 -44
- /mindspore/{ops/_op_impl/_custom_op/flash_attention → _akg/akg/utils/ascend_profilier}/__init__.py +0 -0
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/WHEEL +0 -0
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/top_level.txt +0 -0
mindspore/common/tensor.py
CHANGED
|
@@ -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.
|
|
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.
|
|
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
|
|
129
|
-
|
|
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
|
|
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
|
-
|
|
362
|
-
|
|
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
|
|
788
|
-
[14.944194 0
|
|
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
|
-
|
|
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')(
|
|
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')(
|
|
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')(
|
|
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
|
-
|
|
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')(
|
|
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')(
|
|
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
|
-
|
|
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
|
-
|
|
2059
|
-
|
|
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
|
-
|
|
2078
|
-
|
|
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)
|
|
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)
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
2855
|
-
|
|
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
|
|
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')(
|
|
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('
|
|
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.
|
|
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
|
|
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
|
|
3304
|
-
|
|
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
|
-
|
|
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')(
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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())
|