mindspore 2.2.14__cp39-cp39-win_amd64.whl → 2.4.0__cp39-cp39-win_amd64.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.
- mindspore/.commit_id +1 -1
- mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
- mindspore/Newtonsoft.Json.dll +0 -0
- mindspore/__init__.py +8 -5
- mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
- mindspore/_checkparam.py +124 -25
- mindspore/_extends/builtin_operations.py +2 -1
- mindspore/_extends/graph_kernel/model/graph_parallel.py +16 -6
- mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +3 -16
- mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +16 -4
- mindspore/_extends/parallel_compile/akg_compiler/compiler.py +1 -0
- mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +96 -0
- mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +2 -1
- mindspore/_extends/parallel_compile/akg_compiler/util.py +5 -2
- mindspore/_extends/parse/__init__.py +18 -14
- mindspore/_extends/parse/compile_config.py +299 -0
- mindspore/_extends/parse/namespace.py +2 -2
- mindspore/_extends/parse/parser.py +182 -68
- mindspore/_extends/parse/resources.py +45 -14
- mindspore/_extends/parse/standard_method.py +192 -252
- mindspore/{ops/_op_impl/tbe/atomic_addr_clean.py → _extends/pijit/__init__.py} +6 -16
- mindspore/_extends/pijit/pijit_func_white_list.py +669 -0
- mindspore/_extends/remote/kernel_build_server.py +2 -0
- mindspore/_profiler.py +30 -0
- mindspore/amp.py +67 -26
- mindspore/atlprov.dll +0 -0
- mindspore/avcodec-59.dll +0 -0
- mindspore/avdevice-59.dll +0 -0
- mindspore/avfilter-8.dll +0 -0
- mindspore/avformat-59.dll +0 -0
- mindspore/avutil-57.dll +0 -0
- mindspore/boost/adasum.py +1 -1
- mindspore/boost/base.py +1 -1
- mindspore/boost/boost_cell_wrapper.py +2 -2
- mindspore/boost/grad_freeze.py +2 -2
- mindspore/boost/group_loss_scale_manager.py +1 -1
- mindspore/boost/less_batch_normalization.py +9 -6
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +20 -7
- mindspore/common/_jit_fallback_utils.py +2 -3
- mindspore/common/_pijit_context.py +190 -0
- mindspore/common/_register_for_adapter.py +7 -0
- mindspore/common/_register_for_recompute.py +48 -0
- mindspore/common/_register_for_tensor.py +10 -10
- mindspore/common/_stub_tensor.py +7 -1
- mindspore/common/_tensor_overload.py +139 -0
- mindspore/common/_utils.py +5 -17
- mindspore/common/api.py +449 -129
- mindspore/common/auto_dynamic_shape.py +27 -14
- mindspore/common/dtype.py +17 -10
- mindspore/common/dump.py +8 -11
- mindspore/common/file_system.py +48 -0
- mindspore/common/generator.py +254 -0
- mindspore/common/hook_handle.py +65 -30
- mindspore/common/initializer.py +1 -1
- mindspore/common/jit_config.py +34 -14
- mindspore/common/lazy_inline.py +72 -19
- mindspore/common/mindir_util.py +12 -2
- mindspore/common/mutable.py +79 -14
- mindspore/common/no_inline.py +54 -0
- mindspore/common/np_dtype.py +25 -0
- mindspore/common/parameter.py +73 -21
- mindspore/common/recompute.py +292 -0
- mindspore/common/seed.py +9 -9
- mindspore/common/sparse_tensor.py +276 -24
- mindspore/common/symbol.py +122 -0
- mindspore/common/tensor.py +668 -514
- mindspore/communication/__init__.py +6 -11
- mindspore/communication/_comm_helper.py +43 -3
- mindspore/communication/comm_func.py +1395 -0
- mindspore/communication/management.py +117 -104
- mindspore/config/op_info.config +22 -54
- mindspore/context.py +455 -71
- mindspore/dataset/__init__.py +5 -5
- mindspore/dataset/audio/__init__.py +6 -6
- mindspore/dataset/audio/transforms.py +711 -158
- mindspore/dataset/callback/ds_callback.py +2 -2
- mindspore/dataset/core/config.py +7 -0
- mindspore/dataset/core/validator_helpers.py +7 -0
- mindspore/dataset/engine/cache_client.py +2 -2
- mindspore/dataset/engine/datasets.py +201 -116
- mindspore/dataset/engine/datasets_audio.py +14 -14
- mindspore/dataset/engine/datasets_standard_format.py +83 -3
- mindspore/dataset/engine/datasets_text.py +39 -39
- mindspore/dataset/engine/datasets_user_defined.py +230 -141
- mindspore/dataset/engine/datasets_vision.py +78 -74
- mindspore/dataset/engine/iterators.py +29 -0
- mindspore/dataset/engine/obs/util.py +7 -0
- mindspore/dataset/engine/offload.py +5 -7
- mindspore/dataset/engine/queue.py +138 -66
- mindspore/dataset/engine/serializer_deserializer.py +2 -2
- mindspore/dataset/engine/validators.py +41 -15
- mindspore/dataset/text/__init__.py +2 -5
- mindspore/dataset/text/transforms.py +408 -121
- mindspore/dataset/text/utils.py +9 -9
- mindspore/dataset/transforms/__init__.py +0 -3
- mindspore/dataset/transforms/transforms.py +261 -76
- mindspore/dataset/utils/browse_dataset.py +9 -9
- mindspore/dataset/utils/line_reader.py +2 -0
- mindspore/dataset/vision/__init__.py +7 -10
- mindspore/dataset/vision/c_transforms.py +10 -10
- mindspore/dataset/vision/py_transforms_util.py +1 -1
- mindspore/dataset/vision/transforms.py +2844 -549
- mindspore/dataset/vision/utils.py +161 -10
- mindspore/dataset/vision/validators.py +16 -3
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/{rewrite/ast_creator_register.py → experimental/es/__init__.py} +5 -20
- mindspore/experimental/es/embedding_service.py +883 -0
- mindspore/experimental/es/embedding_service_layer.py +581 -0
- mindspore/experimental/llm_boost/__init__.py +21 -0
- mindspore/experimental/llm_boost/atb/__init__.py +23 -0
- mindspore/experimental/llm_boost/atb/boost_base.py +211 -0
- mindspore/experimental/llm_boost/atb/llama_boost.py +115 -0
- mindspore/experimental/llm_boost/atb/qwen_boost.py +101 -0
- mindspore/experimental/llm_boost/register.py +129 -0
- mindspore/experimental/llm_boost/utils.py +31 -0
- mindspore/experimental/optim/__init__.py +12 -2
- mindspore/experimental/optim/adadelta.py +161 -0
- mindspore/experimental/optim/adagrad.py +168 -0
- mindspore/experimental/optim/adam.py +35 -34
- mindspore/experimental/optim/adamax.py +170 -0
- mindspore/experimental/optim/adamw.py +124 -15
- mindspore/experimental/optim/asgd.py +153 -0
- mindspore/experimental/optim/lr_scheduler.py +66 -121
- mindspore/experimental/optim/nadam.py +157 -0
- mindspore/experimental/optim/optimizer.py +18 -8
- mindspore/experimental/optim/radam.py +194 -0
- mindspore/experimental/optim/rmsprop.py +154 -0
- mindspore/experimental/optim/rprop.py +164 -0
- mindspore/experimental/optim/sgd.py +28 -19
- mindspore/hal/__init__.py +40 -0
- mindspore/hal/_ascend.py +57 -0
- mindspore/hal/_base.py +57 -0
- mindspore/hal/_cpu.py +56 -0
- mindspore/hal/_gpu.py +57 -0
- mindspore/hal/contiguous_tensors_handle.py +175 -0
- mindspore/hal/device.py +356 -0
- mindspore/hal/event.py +179 -0
- mindspore/hal/memory.py +326 -0
- mindspore/hal/stream.py +357 -0
- mindspore/include/api/data_type.h +2 -2
- mindspore/include/api/dual_abi_helper.h +16 -3
- mindspore/include/api/model.h +4 -3
- mindspore/include/api/model_group.h +13 -1
- mindspore/include/api/status.h +14 -0
- mindspore/include/api/types.h +10 -10
- mindspore/include/c_api/model_c.h +173 -0
- mindspore/include/c_api/types_c.h +19 -0
- mindspore/include/dataset/config.h +2 -2
- mindspore/include/dataset/constants.h +2 -2
- mindspore/include/dataset/execute.h +3 -5
- mindspore/include/dataset/vision.h +58 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +3 -3
- mindspore/mindrecord/__init__.py +5 -1
- mindspore/mindrecord/config.py +809 -0
- mindspore/mindrecord/filereader.py +25 -0
- mindspore/mindrecord/filewriter.py +138 -103
- mindspore/mindrecord/mindpage.py +40 -6
- mindspore/mindrecord/shardutils.py +3 -2
- mindspore/mindrecord/shardwriter.py +7 -0
- mindspore/mindrecord/tools/cifar100_to_mr.py +8 -13
- mindspore/mindrecord/tools/cifar10_to_mr.py +9 -15
- mindspore/mindrecord/tools/csv_to_mr.py +4 -9
- mindspore/mindrecord/tools/imagenet_to_mr.py +3 -8
- mindspore/mindrecord/tools/mnist_to_mr.py +7 -12
- mindspore/mindrecord/tools/tfrecord_to_mr.py +1 -6
- mindspore/mindspore_backend.dll +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_glog.dll +0 -0
- mindspore/mindspore_np_dtype.dll +0 -0
- mindspore/mindspore_ops.dll +0 -0
- mindspore/mint/__init__.py +1586 -0
- mindspore/mint/distributed/__init__.py +31 -0
- mindspore/mint/distributed/distributed.py +254 -0
- mindspore/{rewrite/ast_transformers → mint/linalg}/__init__.py +9 -4
- mindspore/mint/nn/__init__.py +757 -0
- mindspore/mint/nn/functional.py +679 -0
- mindspore/mint/nn/layer/__init__.py +39 -0
- mindspore/mint/nn/layer/activation.py +133 -0
- mindspore/mint/nn/layer/normalization.py +477 -0
- mindspore/mint/nn/layer/pooling.py +110 -0
- mindspore/mint/optim/__init__.py +24 -0
- mindspore/mint/optim/adamw.py +206 -0
- mindspore/mint/special/__init__.py +63 -0
- mindspore/msobj140.dll +0 -0
- mindspore/mspdb140.dll +0 -0
- mindspore/mspdbcore.dll +0 -0
- mindspore/mspdbst.dll +0 -0
- mindspore/mspft140.dll +0 -0
- mindspore/msvcdis140.dll +0 -0
- mindspore/msvcp140_1.dll +0 -0
- mindspore/msvcp140_2.dll +0 -0
- mindspore/msvcp140_atomic_wait.dll +0 -0
- mindspore/msvcp140_codecvt_ids.dll +0 -0
- mindspore/multiprocessing/__init__.py +73 -0
- mindspore/nn/cell.py +461 -323
- mindspore/nn/dynamic_lr.py +2 -2
- mindspore/nn/layer/activation.py +292 -135
- mindspore/nn/layer/basic.py +288 -83
- mindspore/nn/layer/channel_shuffle.py +3 -16
- mindspore/nn/layer/container.py +3 -3
- mindspore/nn/layer/conv.py +75 -66
- mindspore/nn/layer/embedding.py +221 -45
- mindspore/nn/layer/image.py +4 -7
- mindspore/nn/layer/math.py +1 -1
- mindspore/nn/layer/normalization.py +150 -68
- mindspore/nn/layer/padding.py +64 -87
- mindspore/nn/layer/pooling.py +175 -12
- mindspore/nn/layer/rnn_cells.py +6 -16
- mindspore/nn/layer/rnns.py +6 -5
- mindspore/nn/layer/thor_layer.py +1 -2
- mindspore/nn/layer/timedistributed.py +1 -1
- mindspore/nn/layer/transformer.py +55 -53
- mindspore/nn/learning_rate_schedule.py +6 -5
- mindspore/nn/loss/__init__.py +2 -2
- mindspore/nn/loss/loss.py +145 -88
- mindspore/nn/optim/__init__.py +2 -1
- mindspore/nn/optim/ada_grad.py +4 -2
- mindspore/nn/optim/adadelta.py +4 -2
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +102 -181
- mindspore/nn/optim/adamax.py +4 -2
- mindspore/nn/optim/adasum.py +3 -3
- mindspore/nn/optim/asgd.py +4 -2
- mindspore/nn/optim/ftrl.py +31 -61
- mindspore/nn/optim/lamb.py +5 -3
- mindspore/nn/optim/lars.py +2 -2
- mindspore/nn/optim/lazyadam.py +6 -4
- mindspore/nn/optim/momentum.py +13 -25
- mindspore/nn/optim/optimizer.py +6 -3
- mindspore/nn/optim/proximal_ada_grad.py +4 -2
- mindspore/nn/optim/rmsprop.py +9 -3
- mindspore/nn/optim/rprop.py +4 -2
- mindspore/nn/optim/sgd.py +5 -3
- mindspore/nn/optim/tft_wrapper.py +127 -0
- mindspore/nn/optim/thor.py +2 -2
- mindspore/nn/probability/distribution/_utils/custom_ops.py +2 -2
- mindspore/nn/probability/distribution/beta.py +2 -2
- mindspore/nn/probability/distribution/categorical.py +4 -6
- mindspore/nn/probability/distribution/cauchy.py +2 -2
- mindspore/nn/probability/distribution/exponential.py +2 -2
- mindspore/nn/probability/distribution/geometric.py +1 -1
- mindspore/nn/probability/distribution/gumbel.py +2 -2
- mindspore/nn/probability/distribution/logistic.py +1 -1
- mindspore/nn/probability/distribution/poisson.py +2 -2
- mindspore/nn/probability/distribution/uniform.py +2 -2
- mindspore/nn/reinforcement/_tensors_queue.py +13 -1
- mindspore/nn/wrap/__init__.py +2 -1
- mindspore/nn/wrap/cell_wrapper.py +46 -12
- mindspore/nn/wrap/grad_reducer.py +148 -8
- mindspore/nn/wrap/loss_scale.py +44 -7
- mindspore/numpy/__init__.py +2 -0
- mindspore/numpy/array_creations.py +67 -68
- mindspore/numpy/array_ops.py +70 -66
- mindspore/numpy/dtypes.py +3 -3
- mindspore/numpy/fft.py +966 -0
- mindspore/numpy/logic_ops.py +11 -10
- mindspore/numpy/math_ops.py +147 -152
- mindspore/numpy/utils.py +3 -0
- mindspore/numpy/utils_const.py +4 -4
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +9 -6
- mindspore/ops/_grad_experimental/grad_array_ops.py +4 -129
- mindspore/ops/_grad_experimental/grad_comm_ops.py +135 -36
- mindspore/ops/_grad_experimental/grad_math_ops.py +61 -298
- mindspore/ops/_grad_experimental/grad_nn_ops.py +0 -53
- mindspore/ops/_grad_experimental/grad_quant_ops.py +3 -3
- mindspore/ops/_grad_experimental/grad_sparse.py +1 -1
- mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
- mindspore/ops/_op_impl/__init__.py +0 -1
- mindspore/ops/_op_impl/aicpu/gamma.py +2 -0
- mindspore/ops/_op_impl/aicpu/generate_eod_mask.py +1 -1
- mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +1 -3
- mindspore/ops/_op_impl/aicpu/poisson.py +2 -0
- mindspore/ops/_op_impl/cpu/__init__.py +1 -3
- mindspore/ops/_op_impl/cpu/adam.py +2 -2
- mindspore/ops/_op_impl/cpu/adam_weight_decay.py +3 -2
- mindspore/ops/_op_impl/cpu/maximum_grad.py +16 -14
- mindspore/ops/_op_impl/cpu/minimum_grad.py +8 -0
- mindspore/ops/_vmap/vmap_array_ops.py +162 -101
- mindspore/ops/_vmap/vmap_base.py +8 -1
- mindspore/ops/_vmap/vmap_grad_math_ops.py +95 -9
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +143 -58
- mindspore/ops/_vmap/vmap_image_ops.py +70 -13
- mindspore/ops/_vmap/vmap_math_ops.py +147 -59
- mindspore/ops/_vmap/vmap_nn_ops.py +292 -117
- mindspore/ops/_vmap/vmap_other_ops.py +1 -1
- mindspore/ops/auto_generate/__init__.py +31 -0
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +309 -0
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +252 -0
- mindspore/ops/auto_generate/gen_arg_handler.py +197 -0
- mindspore/ops/auto_generate/gen_extend_func.py +1701 -0
- mindspore/ops/auto_generate/gen_ops_def.py +8482 -0
- mindspore/ops/auto_generate/gen_ops_prim.py +16704 -0
- mindspore/ops/auto_generate/pyboost_inner_prim.py +549 -0
- mindspore/ops/composite/__init__.py +5 -2
- mindspore/ops/composite/base.py +201 -66
- mindspore/ops/composite/math_ops.py +10 -49
- mindspore/ops/composite/multitype_ops/_compile_utils.py +192 -618
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +25 -134
- mindspore/ops/composite/multitype_ops/add_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/div_impl.py +8 -0
- mindspore/ops/composite/multitype_ops/equal_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +8 -0
- mindspore/ops/composite/multitype_ops/getitem_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/greater_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/in_impl.py +8 -2
- mindspore/ops/composite/multitype_ops/left_shift_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/less_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/logic_not_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/logical_and_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/logical_or_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/mod_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/mul_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/negative_impl.py +9 -3
- mindspore/ops/composite/multitype_ops/not_equal_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/not_in_impl.py +8 -3
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +2 -2
- mindspore/ops/composite/multitype_ops/pow_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/right_shift_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +32 -21
- mindspore/ops/composite/multitype_ops/sub_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +6 -3
- mindspore/ops/deprecated.py +14 -3
- mindspore/ops/function/__init__.py +53 -11
- mindspore/ops/function/array_func.py +1269 -1821
- mindspore/ops/function/clip_func.py +19 -31
- mindspore/ops/function/debug_func.py +114 -5
- mindspore/ops/function/fft_func.py +44 -0
- mindspore/ops/function/grad/grad_func.py +30 -22
- mindspore/ops/function/image_func.py +27 -21
- mindspore/ops/function/linalg_func.py +35 -68
- mindspore/ops/function/math_func.py +1170 -2697
- mindspore/ops/function/nn_func.py +2116 -1128
- mindspore/ops/function/other_func.py +8 -8
- mindspore/ops/function/parameter_func.py +5 -93
- mindspore/ops/function/random_func.py +435 -113
- mindspore/ops/function/reshard_func.py +104 -0
- mindspore/ops/function/sparse_func.py +4 -4
- mindspore/ops/function/sparse_unary_func.py +9 -16
- mindspore/ops/function/spectral_func.py +1 -1
- mindspore/ops/function/vmap_func.py +16 -15
- mindspore/ops/functional.py +355 -346
- mindspore/ops/op_info_register.py +18 -45
- mindspore/ops/operations/__init__.py +38 -24
- mindspore/ops/operations/_grad_ops.py +21 -927
- mindspore/ops/operations/_infer_ops.py +19 -0
- mindspore/ops/operations/_inner_ops.py +173 -607
- mindspore/ops/operations/_rl_inner_ops.py +2 -2
- mindspore/ops/operations/_scalar_ops.py +5 -480
- mindspore/ops/operations/_sequence_ops.py +6 -36
- mindspore/ops/operations/_tensor_array.py +8 -8
- mindspore/ops/operations/array_ops.py +106 -2837
- mindspore/ops/operations/comm_ops.py +799 -127
- mindspore/ops/operations/custom_ops.py +124 -119
- mindspore/ops/operations/debug_ops.py +142 -41
- mindspore/ops/operations/image_ops.py +1 -217
- mindspore/ops/operations/inner_ops.py +5 -40
- mindspore/ops/operations/linalg_ops.py +1 -49
- mindspore/ops/operations/manually_defined/__init__.py +24 -0
- mindspore/ops/operations/manually_defined/_inner.py +73 -0
- mindspore/ops/operations/manually_defined/ops_def.py +2271 -0
- mindspore/ops/operations/math_ops.py +666 -4972
- mindspore/ops/operations/nn_ops.py +205 -2213
- mindspore/ops/operations/other_ops.py +60 -49
- mindspore/ops/operations/random_ops.py +50 -54
- mindspore/ops/operations/reshard_ops.py +53 -0
- mindspore/ops/operations/sparse_ops.py +4 -4
- mindspore/ops/primitive.py +216 -103
- mindspore/ops_generate/__init__.py +27 -0
- mindspore/ops_generate/arg_dtype_cast.py +252 -0
- mindspore/ops_generate/arg_handler.py +197 -0
- mindspore/ops_generate/gen_aclnn_implement.py +263 -0
- mindspore/ops_generate/gen_constants.py +36 -0
- mindspore/ops_generate/gen_ops.py +1099 -0
- mindspore/ops_generate/gen_ops_inner_prim.py +131 -0
- mindspore/ops_generate/gen_pyboost_func.py +1052 -0
- mindspore/ops_generate/gen_utils.py +209 -0
- mindspore/ops_generate/op_proto.py +145 -0
- mindspore/ops_generate/pyboost_utils.py +367 -0
- mindspore/ops_generate/template.py +261 -0
- mindspore/parallel/__init__.py +8 -4
- mindspore/parallel/_auto_parallel_context.py +100 -10
- mindspore/parallel/_cell_wrapper.py +99 -9
- mindspore/parallel/_cost_model_context.py +1 -1
- mindspore/parallel/_dp_allreduce_fusion.py +159 -159
- mindspore/parallel/_parallel_serialization.py +67 -23
- mindspore/parallel/_ps_context.py +1 -1
- mindspore/parallel/_recovery_context.py +1 -1
- mindspore/parallel/_tensor.py +99 -22
- mindspore/parallel/_transformer/__init__.py +1 -1
- mindspore/parallel/_transformer/layers.py +1 -1
- mindspore/parallel/_transformer/loss.py +1 -1
- mindspore/parallel/_transformer/moe.py +1 -1
- mindspore/parallel/_transformer/op_parallel_config.py +1 -1
- mindspore/parallel/_transformer/transformer.py +2 -2
- mindspore/parallel/_utils.py +173 -6
- mindspore/parallel/algo_parameter_config.py +8 -10
- mindspore/parallel/checkpoint_transform.py +204 -38
- mindspore/parallel/cluster/__init__.py +15 -0
- mindspore/parallel/cluster/process_entity/__init__.py +18 -0
- mindspore/parallel/cluster/process_entity/_api.py +352 -0
- mindspore/parallel/cluster/process_entity/_utils.py +101 -0
- mindspore/parallel/cluster/run.py +136 -0
- mindspore/parallel/mpi/__init__.py +1 -1
- mindspore/parallel/mpi/_mpi_config.py +1 -1
- mindspore/parallel/parameter_broadcast.py +151 -0
- mindspore/parallel/shard.py +279 -37
- mindspore/parallel/transform_safetensors.py +993 -0
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +4 -2
- mindspore/profiler/common/constant.py +29 -0
- mindspore/profiler/common/process_pool.py +41 -0
- mindspore/profiler/common/registry.py +47 -0
- mindspore/profiler/common/singleton.py +28 -0
- mindspore/profiler/common/util.py +153 -0
- mindspore/profiler/dynamic_profiler.py +694 -0
- mindspore/profiler/envprofiling.py +18 -20
- mindspore/{_extends/parallel_compile/tbe_compiler → profiler/parser/ascend_analysis}/__init__.py +1 -1
- mindspore/profiler/parser/ascend_analysis/constant.py +71 -0
- mindspore/profiler/parser/ascend_analysis/file_manager.py +180 -0
- mindspore/profiler/parser/ascend_analysis/function_event.py +185 -0
- mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +136 -0
- mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +131 -0
- mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +104 -0
- mindspore/profiler/parser/ascend_analysis/path_manager.py +313 -0
- mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +123 -0
- mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +86 -0
- mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +75 -0
- mindspore/profiler/parser/ascend_cluster_generator.py +14 -9
- mindspore/profiler/parser/ascend_communicate_generator.py +0 -1
- mindspore/profiler/parser/ascend_flops_generator.py +20 -4
- mindspore/profiler/parser/ascend_hccl_generator.py +29 -278
- mindspore/profiler/parser/ascend_integrate_generator.py +42 -0
- mindspore/profiler/parser/ascend_memory_generator.py +185 -0
- mindspore/profiler/parser/ascend_msprof_exporter.py +148 -146
- mindspore/profiler/parser/ascend_msprof_generator.py +73 -283
- mindspore/profiler/parser/ascend_op_generator.py +92 -42
- mindspore/profiler/parser/ascend_timeline_generator.py +298 -133
- mindspore/profiler/parser/base_timeline_generator.py +25 -25
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +25 -12
- mindspore/profiler/parser/framework_parser.py +4 -393
- mindspore/profiler/parser/gpu_analysis/__init__.py +14 -0
- mindspore/profiler/parser/gpu_analysis/function_event.py +44 -0
- mindspore/profiler/parser/gpu_analysis/fwk_file_parser.py +89 -0
- mindspore/profiler/parser/gpu_analysis/profiler_info_parser.py +72 -0
- mindspore/profiler/parser/integrator.py +3 -1
- mindspore/profiler/parser/memory_usage_parser.py +0 -154
- mindspore/profiler/parser/minddata_parser.py +72 -3
- mindspore/profiler/parser/profiler_info.py +94 -7
- mindspore/profiler/profiler.py +153 -0
- mindspore/profiler/profiling.py +631 -508
- mindspore/rewrite/__init__.py +2 -14
- mindspore/rewrite/api/node.py +122 -36
- mindspore/rewrite/api/pattern_engine.py +2 -3
- mindspore/rewrite/api/scoped_value.py +16 -15
- mindspore/rewrite/api/symbol_tree.py +45 -29
- mindspore/rewrite/ast_helpers/__init__.py +3 -6
- mindspore/rewrite/ast_helpers/ast_converter.py +143 -0
- mindspore/rewrite/ast_helpers/ast_finder.py +48 -0
- mindspore/rewrite/ast_helpers/ast_flattener.py +268 -0
- mindspore/rewrite/ast_helpers/ast_modifier.py +160 -92
- mindspore/rewrite/common/__init__.py +1 -2
- mindspore/rewrite/common/config.py +24 -0
- mindspore/rewrite/common/{rewrite_elog.py → error_log.py} +39 -39
- mindspore/rewrite/{namer.py → common/namer.py} +63 -18
- mindspore/rewrite/common/namespace.py +118 -0
- mindspore/rewrite/node/__init__.py +5 -5
- mindspore/rewrite/node/call_function.py +23 -7
- mindspore/rewrite/node/cell_container.py +7 -3
- mindspore/rewrite/node/control_flow.py +53 -28
- mindspore/rewrite/node/node.py +212 -196
- mindspore/rewrite/node/node_manager.py +51 -22
- mindspore/rewrite/node/node_topological_manager.py +3 -23
- mindspore/rewrite/parsers/__init__.py +12 -0
- mindspore/rewrite/parsers/arguments_parser.py +8 -9
- mindspore/rewrite/parsers/assign_parser.py +637 -413
- mindspore/rewrite/parsers/attribute_parser.py +3 -4
- mindspore/rewrite/parsers/class_def_parser.py +115 -148
- mindspore/rewrite/parsers/constant_parser.py +5 -5
- mindspore/rewrite/parsers/container_parser.py +4 -6
- mindspore/rewrite/parsers/expr_parser.py +55 -0
- mindspore/rewrite/parsers/for_parser.py +31 -98
- mindspore/rewrite/parsers/function_def_parser.py +13 -5
- mindspore/rewrite/parsers/if_parser.py +28 -10
- mindspore/rewrite/parsers/module_parser.py +8 -182
- mindspore/rewrite/parsers/parser.py +1 -5
- mindspore/rewrite/parsers/parser_register.py +1 -1
- mindspore/rewrite/parsers/return_parser.py +5 -10
- mindspore/rewrite/parsers/while_parser.py +59 -0
- mindspore/rewrite/sparsify/utils.py +1 -1
- mindspore/rewrite/symbol_tree/__init__.py +20 -0
- mindspore/rewrite/{symbol_tree.py → symbol_tree/symbol_tree.py} +705 -186
- mindspore/rewrite/{symbol_tree_builder.py → symbol_tree/symbol_tree_builder.py} +8 -8
- mindspore/rewrite/{symbol_tree_dumper.py → symbol_tree/symbol_tree_dumper.py} +4 -4
- mindspore/run_check/_check_version.py +40 -115
- mindspore/run_check/run_check.py +1 -1
- mindspore/safeguard/rewrite_obfuscation.py +597 -263
- mindspore/swresample-4.dll +0 -0
- mindspore/swscale-6.dll +0 -0
- mindspore/tbbmalloc.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/__init__.py +7 -5
- mindspore/train/_utils.py +204 -4
- mindspore/train/amp.py +335 -295
- mindspore/train/anf_ir_pb2.py +14 -2
- mindspore/train/callback/__init__.py +5 -2
- mindspore/train/callback/_backup_and_restore.py +5 -5
- mindspore/train/callback/_callback.py +4 -4
- mindspore/train/callback/_checkpoint.py +220 -43
- mindspore/train/callback/_cluster_monitor.py +201 -0
- mindspore/train/callback/_early_stop.py +2 -2
- mindspore/train/callback/_flops_collector.py +239 -0
- mindspore/train/callback/_landscape.py +15 -9
- mindspore/train/callback/_loss_monitor.py +5 -5
- mindspore/train/callback/_on_request_exit.py +136 -33
- mindspore/train/callback/_reduce_lr_on_plateau.py +2 -2
- mindspore/train/callback/_summary_collector.py +12 -12
- mindspore/train/callback/_tft_register.py +352 -0
- mindspore/train/callback/_time_monitor.py +3 -3
- mindspore/train/data_sink.py +6 -5
- mindspore/train/dataset_helper.py +66 -23
- mindspore/train/loss_scale_manager.py +2 -2
- mindspore/train/metrics/accuracy.py +7 -7
- mindspore/train/metrics/confusion_matrix.py +8 -6
- mindspore/train/metrics/cosine_similarity.py +6 -4
- mindspore/train/metrics/error.py +2 -2
- mindspore/train/metrics/metric.py +3 -3
- mindspore/train/metrics/perplexity.py +2 -1
- mindspore/train/metrics/roc.py +4 -4
- mindspore/train/metrics/topk.py +2 -2
- mindspore/train/mind_ir_pb2.py +116 -37
- mindspore/train/model.py +382 -76
- mindspore/train/serialization.py +787 -288
- mindspore/train/summary/_summary_adapter.py +1 -1
- mindspore/train/summary/summary_record.py +51 -28
- mindspore/train/train_thor/convert_utils.py +3 -3
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +21 -0
- mindspore/utils/utils.py +60 -0
- mindspore/vcmeta.dll +0 -0
- mindspore/vcruntime140.dll +0 -0
- mindspore/vcruntime140_1.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-2.2.14.dist-info → mindspore-2.4.0.dist-info}/METADATA +8 -4
- mindspore-2.4.0.dist-info/RECORD +1406 -0
- {mindspore-2.2.14.dist-info → mindspore-2.4.0.dist-info}/entry_points.txt +1 -0
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +0 -662
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +0 -377
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +0 -201
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +0 -515
- mindspore/gen_ops.py +0 -273
- mindspore/include/c_api/ms/abstract.h +0 -67
- mindspore/include/c_api/ms/attribute.h +0 -197
- mindspore/include/c_api/ms/base/handle_types.h +0 -43
- mindspore/include/c_api/ms/base/macros.h +0 -32
- mindspore/include/c_api/ms/base/status.h +0 -33
- mindspore/include/c_api/ms/base/types.h +0 -282
- mindspore/include/c_api/ms/context.h +0 -102
- mindspore/include/c_api/ms/graph.h +0 -160
- mindspore/include/c_api/ms/node.h +0 -606
- mindspore/include/c_api/ms/tensor.h +0 -161
- mindspore/include/c_api/ms/value.h +0 -84
- mindspore/mindspore_shared_lib.dll +0 -0
- mindspore/nn/layer/flash_attention.py +0 -189
- mindspore/ops/_op_impl/aicpu/strided_slice_v2.py +0 -93
- mindspore/ops/_op_impl/aicpu/strided_slice_v2_grad.py +0 -66
- mindspore/ops/_op_impl/cpu/concat.py +0 -39
- mindspore/ops/_op_impl/cpu/tensor_shape.py +0 -42
- mindspore/ops/_op_impl/tbe/__init__.py +0 -47
- mindspore/ops/_op_impl/tbe/abs.py +0 -38
- mindspore/ops/_op_impl/tbe/abs_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/abs_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/abs_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/accumulate_n_v2.py +0 -41
- mindspore/ops/_op_impl/tbe/accumulate_n_v2_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/acos.py +0 -37
- mindspore/ops/_op_impl/tbe/acos_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/acos_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/acos_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/acosh.py +0 -37
- mindspore/ops/_op_impl/tbe/acosh_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/acosh_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/acosh_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/act_ulq_clamp_max_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/act_ulq_clamp_min_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/acts_ulq.py +0 -45
- mindspore/ops/_op_impl/tbe/acts_ulq_input_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/adam_apply_one.py +0 -50
- mindspore/ops/_op_impl/tbe/adam_apply_one_assign.py +0 -53
- mindspore/ops/_op_impl/tbe/adam_apply_one_ds.py +0 -51
- mindspore/ops/_op_impl/tbe/adam_apply_one_with_decay.py +0 -54
- mindspore/ops/_op_impl/tbe/adam_apply_one_with_decay_assign.py +0 -54
- mindspore/ops/_op_impl/tbe/adam_apply_one_with_decay_ds.py +0 -55
- mindspore/ops/_op_impl/tbe/adaptive_max_pool2d.py +0 -37
- mindspore/ops/_op_impl/tbe/add.py +0 -42
- mindspore/ops/_op_impl/tbe/add_ds.py +0 -43
- mindspore/ops/_op_impl/tbe/add_n.py +0 -39
- mindspore/ops/_op_impl/tbe/add_n_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/addcdiv.py +0 -41
- mindspore/ops/_op_impl/tbe/addcdiv_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/addcmul.py +0 -43
- mindspore/ops/_op_impl/tbe/addcmul_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/apply_ada_max.py +0 -68
- mindspore/ops/_op_impl/tbe/apply_ada_max_ds.py +0 -69
- mindspore/ops/_op_impl/tbe/apply_adadelta.py +0 -66
- mindspore/ops/_op_impl/tbe/apply_adadelta_ds.py +0 -67
- mindspore/ops/_op_impl/tbe/apply_adagrad.py +0 -55
- mindspore/ops/_op_impl/tbe/apply_adagrad_d_a.py +0 -67
- mindspore/ops/_op_impl/tbe/apply_adagrad_ds.py +0 -56
- mindspore/ops/_op_impl/tbe/apply_adagrad_v2.py +0 -48
- mindspore/ops/_op_impl/tbe/apply_adagrad_v2_ds.py +0 -49
- mindspore/ops/_op_impl/tbe/apply_adam.py +0 -79
- mindspore/ops/_op_impl/tbe/apply_adam_ds.py +0 -80
- mindspore/ops/_op_impl/tbe/apply_adam_with_amsgrad.py +0 -60
- mindspore/ops/_op_impl/tbe/apply_adam_with_amsgrad_ds.py +0 -61
- mindspore/ops/_op_impl/tbe/apply_add_sign.py +0 -65
- mindspore/ops/_op_impl/tbe/apply_add_sign_ds.py +0 -66
- mindspore/ops/_op_impl/tbe/apply_centered_rms_prop.py +0 -77
- mindspore/ops/_op_impl/tbe/apply_centered_rms_prop_ds.py +0 -78
- mindspore/ops/_op_impl/tbe/apply_ftrl.py +0 -67
- mindspore/ops/_op_impl/tbe/apply_ftrl_ds.py +0 -68
- mindspore/ops/_op_impl/tbe/apply_gradient_descent.py +0 -44
- mindspore/ops/_op_impl/tbe/apply_gradient_descent_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/apply_keras_momentum.py +0 -49
- mindspore/ops/_op_impl/tbe/apply_momentum.py +0 -64
- mindspore/ops/_op_impl/tbe/apply_momentum_ds.py +0 -65
- mindspore/ops/_op_impl/tbe/apply_power_sign.py +0 -65
- mindspore/ops/_op_impl/tbe/apply_power_sign_ds.py +0 -66
- mindspore/ops/_op_impl/tbe/apply_proximal_adagrad.py +0 -57
- mindspore/ops/_op_impl/tbe/apply_proximal_adagrad_ds.py +0 -58
- mindspore/ops/_op_impl/tbe/apply_proximal_gradient_descent.py +0 -54
- mindspore/ops/_op_impl/tbe/apply_proximal_gradient_descent_ds.py +0 -55
- mindspore/ops/_op_impl/tbe/apply_rms_prop.py +0 -52
- mindspore/ops/_op_impl/tbe/approximate_equal.py +0 -39
- mindspore/ops/_op_impl/tbe/approximate_equal_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/arg_max.py +0 -38
- mindspore/ops/_op_impl/tbe/arg_max_with_value.py +0 -38
- mindspore/ops/_op_impl/tbe/arg_max_with_value_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/arg_min.py +0 -38
- mindspore/ops/_op_impl/tbe/arg_min_v2_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/arg_min_with_value.py +0 -38
- mindspore/ops/_op_impl/tbe/arg_min_with_value_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/asin.py +0 -37
- mindspore/ops/_op_impl/tbe/asin_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/asin_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/asin_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/asinh.py +0 -37
- mindspore/ops/_op_impl/tbe/asinh_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/asinh_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/asinh_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/assign.py +0 -79
- mindspore/ops/_op_impl/tbe/assign_add.py +0 -59
- mindspore/ops/_op_impl/tbe/assign_add_ds.py +0 -60
- mindspore/ops/_op_impl/tbe/assign_ds.py +0 -80
- mindspore/ops/_op_impl/tbe/assign_sub.py +0 -55
- mindspore/ops/_op_impl/tbe/assign_sub_ds.py +0 -56
- mindspore/ops/_op_impl/tbe/atan.py +0 -37
- mindspore/ops/_op_impl/tbe/atan2.py +0 -38
- mindspore/ops/_op_impl/tbe/atan2_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/atan_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/atan_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/atan_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/atanh.py +0 -37
- mindspore/ops/_op_impl/tbe/atanh_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/avg_pool.py +0 -43
- mindspore/ops/_op_impl/tbe/avg_pool_3d.py +0 -44
- mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +0 -45
- mindspore/ops/_op_impl/tbe/avg_pool_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/avg_pool_grad.py +0 -42
- mindspore/ops/_op_impl/tbe/avg_pool_grad_vm.py +0 -42
- mindspore/ops/_op_impl/tbe/basic_lstm_cell.py +0 -57
- mindspore/ops/_op_impl/tbe/basic_lstm_cell_c_state_grad.py +0 -50
- mindspore/ops/_op_impl/tbe/basic_lstm_cell_c_state_grad_v2.py +0 -51
- mindspore/ops/_op_impl/tbe/basic_lstm_cell_input_grad.py +0 -42
- mindspore/ops/_op_impl/tbe/basic_lstm_cell_weight_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/batch_matmul.py +0 -42
- mindspore/ops/_op_impl/tbe/batch_matmul_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/batch_matmul_v2.py +0 -47
- mindspore/ops/_op_impl/tbe/batch_to_space.py +0 -38
- mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +0 -38
- mindspore/ops/_op_impl/tbe/batch_to_space_nd_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/batch_to_space_nd_v2.py +0 -41
- mindspore/ops/_op_impl/tbe/batchnorm.py +0 -58
- mindspore/ops/_op_impl/tbe/batchnorm_grad.py +0 -58
- mindspore/ops/_op_impl/tbe/bce_with_logits_loss.py +0 -42
- mindspore/ops/_op_impl/tbe/bessel_i0e.py +0 -37
- mindspore/ops/_op_impl/tbe/bessel_i0e_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/bessel_i1e.py +0 -37
- mindspore/ops/_op_impl/tbe/bessel_i1e_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/bias_add.py +0 -38
- mindspore/ops/_op_impl/tbe/bias_add_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/bias_add_grad.py +0 -53
- mindspore/ops/_op_impl/tbe/binary_cross_entropy.py +0 -39
- mindspore/ops/_op_impl/tbe/binary_cross_entropy_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/binary_cross_entropy_grad.py +0 -44
- mindspore/ops/_op_impl/tbe/binary_cross_entropy_grad_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/bitwise_and.py +0 -39
- mindspore/ops/_op_impl/tbe/bitwise_and_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/bitwise_or.py +0 -39
- mindspore/ops/_op_impl/tbe/bitwise_or_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/bitwise_xor.py +0 -39
- mindspore/ops/_op_impl/tbe/bitwise_xor_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/bn_infer.py +0 -43
- mindspore/ops/_op_impl/tbe/bn_infer_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/bn_infer_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/bn_infer_grad_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/bn_inference.py +0 -50
- mindspore/ops/_op_impl/tbe/bn_training_reduce.py +0 -38
- mindspore/ops/_op_impl/tbe/bn_training_reduce_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/bn_training_reduce_grad.py +0 -46
- mindspore/ops/_op_impl/tbe/bn_training_reduce_grad_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/bn_training_update.py +0 -52
- mindspore/ops/_op_impl/tbe/bn_training_update_ds.py +0 -53
- mindspore/ops/_op_impl/tbe/bn_training_update_grad.py +0 -44
- mindspore/ops/_op_impl/tbe/bn_training_update_grad_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/bn_training_update_v2.py +0 -48
- mindspore/ops/_op_impl/tbe/bn_training_update_v3.py +0 -51
- mindspore/ops/_op_impl/tbe/bounding_box_decode.py +0 -41
- mindspore/ops/_op_impl/tbe/bounding_box_decode_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/bounding_box_encode.py +0 -38
- mindspore/ops/_op_impl/tbe/broadcast_to.py +0 -40
- mindspore/ops/_op_impl/tbe/broadcast_to_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/cast.py +0 -55
- mindspore/ops/_op_impl/tbe/cast_ds.py +0 -58
- mindspore/ops/_op_impl/tbe/cdist.py +0 -38
- mindspore/ops/_op_impl/tbe/cdist_grad.py +0 -42
- mindspore/ops/_op_impl/tbe/ceil.py +0 -37
- mindspore/ops/_op_impl/tbe/ceil_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/celu.py +0 -39
- mindspore/ops/_op_impl/tbe/centralization.py +0 -39
- mindspore/ops/_op_impl/tbe/check_valid.py +0 -38
- mindspore/ops/_op_impl/tbe/check_valid_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/clip_by_norm_no_div_sum.py +0 -41
- mindspore/ops/_op_impl/tbe/clip_by_norm_no_div_sum_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/clip_by_value.py +0 -41
- mindspore/ops/_op_impl/tbe/clip_by_value_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/concat.py +0 -40
- mindspore/ops/_op_impl/tbe/concat_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/confusion_matrix.py +0 -63
- mindspore/ops/_op_impl/tbe/confusion_mul_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/confusion_softmax_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/confusion_transpose_d.py +0 -39
- mindspore/ops/_op_impl/tbe/conv2d.py +0 -47
- mindspore/ops/_op_impl/tbe/conv2d_backprop_filter.py +0 -42
- mindspore/ops/_op_impl/tbe/conv2d_backprop_filter_ds.py +0 -43
- mindspore/ops/_op_impl/tbe/conv2d_backprop_input.py +0 -42
- mindspore/ops/_op_impl/tbe/conv2d_backprop_input_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/conv2d_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/conv2d_transpose.py +0 -48
- mindspore/ops/_op_impl/tbe/conv3d.py +0 -45
- mindspore/ops/_op_impl/tbe/conv3d_backprop_filter.py +0 -42
- mindspore/ops/_op_impl/tbe/conv3d_backprop_input.py +0 -42
- mindspore/ops/_op_impl/tbe/conv3d_transpose.py +0 -47
- mindspore/ops/_op_impl/tbe/conv3d_transpose_ds.py +0 -48
- mindspore/ops/_op_impl/tbe/cos.py +0 -37
- mindspore/ops/_op_impl/tbe/cos_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/cosh.py +0 -37
- mindspore/ops/_op_impl/tbe/cosh_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/ctc_loss_v2.py +0 -42
- mindspore/ops/_op_impl/tbe/ctc_loss_v2_grad.py +0 -44
- mindspore/ops/_op_impl/tbe/cum_sum.py +0 -42
- mindspore/ops/_op_impl/tbe/cum_sum_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/cummin.py +0 -41
- mindspore/ops/_op_impl/tbe/cumprod.py +0 -42
- mindspore/ops/_op_impl/tbe/data_format_dim_map.py +0 -38
- mindspore/ops/_op_impl/tbe/data_format_dim_map_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/deformable_offsets.py +0 -45
- mindspore/ops/_op_impl/tbe/deformable_offsets_grad.py +0 -48
- mindspore/ops/_op_impl/tbe/depth_to_space_ds.py +0 -49
- mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +0 -44
- mindspore/ops/_op_impl/tbe/depthwise_conv2d_backprop_filter.py +0 -41
- mindspore/ops/_op_impl/tbe/depthwise_conv2d_backprop_input.py +0 -41
- mindspore/ops/_op_impl/tbe/diag.py +0 -38
- mindspore/ops/_op_impl/tbe/diag_part.py +0 -38
- mindspore/ops/_op_impl/tbe/dilation.py +0 -40
- mindspore/ops/_op_impl/tbe/div.py +0 -41
- mindspore/ops/_op_impl/tbe/div_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/div_no_nan.py +0 -41
- mindspore/ops/_op_impl/tbe/div_no_nan_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/dropout_do_mask.py +0 -38
- mindspore/ops/_op_impl/tbe/dropout_do_mask_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/dropout_do_mask_v3.py +0 -39
- mindspore/ops/_op_impl/tbe/dynamic_atomic_addr_clean.py +0 -34
- mindspore/ops/_op_impl/tbe/dynamic_gru_v2.py +0 -95
- mindspore/ops/_op_impl/tbe/dynamic_rnn.py +0 -82
- mindspore/ops/_op_impl/tbe/elu.py +0 -38
- mindspore/ops/_op_impl/tbe/elu_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/elu_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/elu_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/equal.py +0 -42
- mindspore/ops/_op_impl/tbe/equal_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/erf.py +0 -37
- mindspore/ops/_op_impl/tbe/erf_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/erfc.py +0 -37
- mindspore/ops/_op_impl/tbe/erfc_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/erfinv.py +0 -36
- mindspore/ops/_op_impl/tbe/exp.py +0 -40
- mindspore/ops/_op_impl/tbe/exp_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/expand_dims.py +0 -38
- mindspore/ops/_op_impl/tbe/expm1.py +0 -37
- mindspore/ops/_op_impl/tbe/expm1_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/extract_image_patches.py +0 -41
- mindspore/ops/_op_impl/tbe/extract_volume_patches.py +0 -39
- mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars.py +0 -39
- mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars_gradient.py +0 -43
- mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars_per_channel.py +0 -39
- mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars_per_channel_gradient.py +0 -43
- mindspore/ops/_op_impl/tbe/fast_gelu.py +0 -37
- mindspore/ops/_op_impl/tbe/fast_gelu_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/fast_gelu_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/fast_gelu_grad_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/fill.py +0 -56
- mindspore/ops/_op_impl/tbe/fill_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/flatten.py +0 -48
- mindspore/ops/_op_impl/tbe/floor.py +0 -37
- mindspore/ops/_op_impl/tbe/floor_div.py +0 -41
- mindspore/ops/_op_impl/tbe/floor_div_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/floor_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/floor_mod.py +0 -39
- mindspore/ops/_op_impl/tbe/floor_mod_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/fused_dbn_dw.py +0 -52
- mindspore/ops/_op_impl/tbe/fused_mul_add.py +0 -38
- mindspore/ops/_op_impl/tbe/fused_mul_add_n.py +0 -48
- mindspore/ops/_op_impl/tbe/fused_mul_add_n_l2loss.py +0 -53
- mindspore/ops/_op_impl/tbe/fused_mul_apply_momentum.py +0 -57
- mindspore/ops/_op_impl/tbe/fused_mul_apply_momentum_extern.py +0 -67
- mindspore/ops/_op_impl/tbe/gather_nd.py +0 -52
- mindspore/ops/_op_impl/tbe/gather_nd_ds.py +0 -48
- mindspore/ops/_op_impl/tbe/gather_v2.py +0 -56
- mindspore/ops/_op_impl/tbe/gather_v2_ds.py +0 -68
- mindspore/ops/_op_impl/tbe/gelu.py +0 -37
- mindspore/ops/_op_impl/tbe/gelu_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/gelu_grad.py +0 -42
- mindspore/ops/_op_impl/tbe/gelu_grad_ds.py +0 -43
- mindspore/ops/_op_impl/tbe/ger.py +0 -43
- mindspore/ops/_op_impl/tbe/ger_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/greater.py +0 -43
- mindspore/ops/_op_impl/tbe/greater_equal.py +0 -41
- mindspore/ops/_op_impl/tbe/greater_equal_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/gru_v2_hidden_grad.py +0 -51
- mindspore/ops/_op_impl/tbe/gru_v2_hidden_grad_cell.py +0 -52
- mindspore/ops/_op_impl/tbe/hard_swish.py +0 -37
- mindspore/ops/_op_impl/tbe/hard_swish_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/hard_swish_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/hard_swish_grad_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/histogram_fixed_width.py +0 -40
- mindspore/ops/_op_impl/tbe/hshrink.py +0 -33
- mindspore/ops/_op_impl/tbe/hshrink_grad.py +0 -37
- mindspore/ops/_op_impl/tbe/hsigmoid.py +0 -45
- mindspore/ops/_op_impl/tbe/hsigmoid_grad.py +0 -39
- mindspore/ops/_op_impl/tbe/ifmr.py +0 -47
- mindspore/ops/_op_impl/tbe/ifmr_ds.py +0 -48
- mindspore/ops/_op_impl/tbe/im2col.py +0 -42
- mindspore/ops/_op_impl/tbe/in_top_k.py +0 -37
- mindspore/ops/_op_impl/tbe/inplace_add.py +0 -39
- mindspore/ops/_op_impl/tbe/inplace_index_add.py +0 -46
- mindspore/ops/_op_impl/tbe/inplace_sub.py +0 -39
- mindspore/ops/_op_impl/tbe/inplace_update.py +0 -39
- mindspore/ops/_op_impl/tbe/inplace_update_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/inv.py +0 -38
- mindspore/ops/_op_impl/tbe/inv_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/inv_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/inv_grad_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/invert.py +0 -37
- mindspore/ops/_op_impl/tbe/invert_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/iou.py +0 -38
- mindspore/ops/_op_impl/tbe/iou_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/is_close.py +0 -40
- mindspore/ops/_op_impl/tbe/kl_div_loss.py +0 -38
- mindspore/ops/_op_impl/tbe/kl_div_loss_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/kl_div_loss_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/l2_loss.py +0 -36
- mindspore/ops/_op_impl/tbe/l2_loss_ds.py +0 -37
- mindspore/ops/_op_impl/tbe/l2_normalize.py +0 -38
- mindspore/ops/_op_impl/tbe/l2_normalize_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/lamb_apply_optimizer_assign.py +0 -55
- mindspore/ops/_op_impl/tbe/lamb_apply_weight_assign.py +0 -42
- mindspore/ops/_op_impl/tbe/lamb_next_mv.py +0 -59
- mindspore/ops/_op_impl/tbe/lamb_next_mv_with_decay.py +0 -59
- mindspore/ops/_op_impl/tbe/lamb_next_right.py +0 -44
- mindspore/ops/_op_impl/tbe/lamb_update_with_lr.py +0 -48
- mindspore/ops/_op_impl/tbe/lamb_update_with_lr_v2.py +0 -44
- mindspore/ops/_op_impl/tbe/lars_update.py +0 -50
- mindspore/ops/_op_impl/tbe/lars_update_ds.py +0 -51
- mindspore/ops/_op_impl/tbe/layer_norm.py +0 -46
- mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop.py +0 -44
- mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_v2.py +0 -40
- mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_v2_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/layer_norm_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/layer_norm_grad.py +0 -48
- mindspore/ops/_op_impl/tbe/layer_norm_x_backprop.py +0 -43
- mindspore/ops/_op_impl/tbe/layer_norm_x_backprop_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/layer_norm_x_backprop_v2.py +0 -45
- mindspore/ops/_op_impl/tbe/layer_norm_x_backprop_v2_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/lerp.py +0 -38
- mindspore/ops/_op_impl/tbe/less.py +0 -41
- mindspore/ops/_op_impl/tbe/less_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/less_equal.py +0 -41
- mindspore/ops/_op_impl/tbe/less_equal_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/log.py +0 -40
- mindspore/ops/_op_impl/tbe/log1p.py +0 -37
- mindspore/ops/_op_impl/tbe/log1p_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/log_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/logical_and.py +0 -37
- mindspore/ops/_op_impl/tbe/logical_and_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/logical_not.py +0 -36
- mindspore/ops/_op_impl/tbe/logical_not_ds.py +0 -37
- mindspore/ops/_op_impl/tbe/logical_or.py +0 -37
- mindspore/ops/_op_impl/tbe/logical_or_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/logsoftmax.py +0 -37
- mindspore/ops/_op_impl/tbe/logsoftmax_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/logsoftmax_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/logsoftmax_grad_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/lp_norm.py +0 -40
- mindspore/ops/_op_impl/tbe/lp_norm_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/lrn.py +0 -41
- mindspore/ops/_op_impl/tbe/lrn_grad.py +0 -42
- mindspore/ops/_op_impl/tbe/lstm_input_grad.py +0 -51
- mindspore/ops/_op_impl/tbe/masked_fill.py +0 -40
- mindspore/ops/_op_impl/tbe/masked_fill_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/matmul.py +0 -53
- mindspore/ops/_op_impl/tbe/matmul_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/matmul_v2.py +0 -50
- mindspore/ops/_op_impl/tbe/matrix_diag.py +0 -45
- mindspore/ops/_op_impl/tbe/matrix_diag_part.py +0 -45
- mindspore/ops/_op_impl/tbe/matrix_set_diag.py +0 -46
- mindspore/ops/_op_impl/tbe/max_pool.py +0 -39
- mindspore/ops/_op_impl/tbe/max_pool3d.py +0 -44
- mindspore/ops/_op_impl/tbe/max_pool3d_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/max_pool3d_grad_grad.py +0 -44
- mindspore/ops/_op_impl/tbe/max_pool_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/max_pool_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/max_pool_grad_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/max_pool_grad_grad_with_argmax.py +0 -41
- mindspore/ops/_op_impl/tbe/max_pool_grad_with_argmax.py +0 -42
- mindspore/ops/_op_impl/tbe/max_pool_with_argmax.py +0 -40
- mindspore/ops/_op_impl/tbe/maximum.py +0 -39
- mindspore/ops/_op_impl/tbe/maximum_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/maximum_grad.py +0 -46
- mindspore/ops/_op_impl/tbe/maximum_grad_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/mem_set.py +0 -38
- mindspore/ops/_op_impl/tbe/minimum.py +0 -40
- mindspore/ops/_op_impl/tbe/minimum_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/minimum_grad.py +0 -46
- mindspore/ops/_op_impl/tbe/minimum_grad_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/mish.py +0 -37
- mindspore/ops/_op_impl/tbe/mod.py +0 -41
- mindspore/ops/_op_impl/tbe/mod_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/mul.py +0 -37
- mindspore/ops/_op_impl/tbe/mul_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/mul_no_nan.py +0 -39
- mindspore/ops/_op_impl/tbe/mul_no_nan_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/multilabel_margin_loss.py +0 -39
- mindspore/ops/_op_impl/tbe/neg.py +0 -39
- mindspore/ops/_op_impl/tbe/neg_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/new_im2col.py +0 -40
- mindspore/ops/_op_impl/tbe/nll_loss.py +0 -41
- mindspore/ops/_op_impl/tbe/nll_loss_grad.py +0 -44
- mindspore/ops/_op_impl/tbe/nms_with_mask.py +0 -39
- mindspore/ops/_op_impl/tbe/not_equal.py +0 -41
- mindspore/ops/_op_impl/tbe/not_equal_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/npu_alloc_float_status.py +0 -34
- mindspore/ops/_op_impl/tbe/npu_clear_float_status.py +0 -35
- mindspore/ops/_op_impl/tbe/npu_clear_float_status_v2.py +0 -35
- mindspore/ops/_op_impl/tbe/npu_get_float_status.py +0 -35
- mindspore/ops/_op_impl/tbe/npu_get_float_status_v2.py +0 -35
- mindspore/ops/_op_impl/tbe/one_hot.py +0 -48
- mindspore/ops/_op_impl/tbe/one_hot_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/ones_like.py +0 -40
- mindspore/ops/_op_impl/tbe/ones_like_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/p_s_r_o_i_pooling.py +0 -40
- mindspore/ops/_op_impl/tbe/p_s_r_o_i_pooling_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/pack.py +0 -58
- mindspore/ops/_op_impl/tbe/pack_ds.py +0 -59
- mindspore/ops/_op_impl/tbe/pad_d.py +0 -40
- mindspore/ops/_op_impl/tbe/pad_d_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/parallel_concat.py +0 -70
- mindspore/ops/_op_impl/tbe/parallel_resize_bilinear.py +0 -45
- mindspore/ops/_op_impl/tbe/parallel_resize_bilinear_grad.py +0 -44
- mindspore/ops/_op_impl/tbe/pdist.py +0 -36
- mindspore/ops/_op_impl/tbe/pooling.py +0 -46
- mindspore/ops/_op_impl/tbe/population_count.py +0 -38
- mindspore/ops/_op_impl/tbe/pow.py +0 -41
- mindspore/ops/_op_impl/tbe/pow_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/prelu.py +0 -37
- mindspore/ops/_op_impl/tbe/prelu_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/prelu_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/range.py +0 -39
- mindspore/ops/_op_impl/tbe/real_div.py +0 -38
- mindspore/ops/_op_impl/tbe/real_div_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/reciprocal.py +0 -36
- mindspore/ops/_op_impl/tbe/reciprocal_ds.py +0 -37
- mindspore/ops/_op_impl/tbe/reciprocal_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/reciprocal_grad_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/reduce_all.py +0 -38
- mindspore/ops/_op_impl/tbe/reduce_all_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/reduce_any.py +0 -38
- mindspore/ops/_op_impl/tbe/reduce_any_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/reduce_max.py +0 -43
- mindspore/ops/_op_impl/tbe/reduce_max_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/reduce_mean.py +0 -40
- mindspore/ops/_op_impl/tbe/reduce_mean_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/reduce_min.py +0 -41
- mindspore/ops/_op_impl/tbe/reduce_min_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/reduce_prod.py +0 -42
- mindspore/ops/_op_impl/tbe/reduce_prod_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/reduce_std.py +0 -44
- mindspore/ops/_op_impl/tbe/reduce_sum.py +0 -39
- mindspore/ops/_op_impl/tbe/reduce_sum_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/relu.py +0 -39
- mindspore/ops/_op_impl/tbe/relu6.py +0 -38
- mindspore/ops/_op_impl/tbe/relu6_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/relu6_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/relu6_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/relu_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/relu_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/relu_grad_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/relu_grad_v2.py +0 -40
- mindspore/ops/_op_impl/tbe/relu_grad_v2_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/relu_v2.py +0 -40
- mindspore/ops/_op_impl/tbe/relu_v2_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/renorm.py +0 -39
- mindspore/ops/_op_impl/tbe/resize_bilinear.py +0 -40
- mindspore/ops/_op_impl/tbe/resize_bilinear_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/resize_bilinear_v2.py +0 -43
- mindspore/ops/_op_impl/tbe/resize_nearest_neighbor.py +0 -40
- mindspore/ops/_op_impl/tbe/resize_nearest_neighbor_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/resize_nearest_neighbor_grad.py +0 -39
- mindspore/ops/_op_impl/tbe/resize_nearest_neighbor_grad_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/reverse_v2_d.py +0 -37
- mindspore/ops/_op_impl/tbe/rint.py +0 -37
- mindspore/ops/_op_impl/tbe/rint_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/roi_align.py +0 -43
- mindspore/ops/_op_impl/tbe/roi_align_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/roi_align_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/roi_align_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/roll.py +0 -42
- mindspore/ops/_op_impl/tbe/round.py +0 -38
- mindspore/ops/_op_impl/tbe/round_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/rsqrt.py +0 -37
- mindspore/ops/_op_impl/tbe/rsqrt_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/rsqrt_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/rsqrt_grad_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/scatter_add.py +0 -44
- mindspore/ops/_op_impl/tbe/scatter_div.py +0 -46
- mindspore/ops/_op_impl/tbe/scatter_max.py +0 -45
- mindspore/ops/_op_impl/tbe/scatter_min.py +0 -45
- mindspore/ops/_op_impl/tbe/scatter_mul.py +0 -44
- mindspore/ops/_op_impl/tbe/scatter_nd.py +0 -41
- mindspore/ops/_op_impl/tbe/scatter_nd_add.py +0 -45
- mindspore/ops/_op_impl/tbe/scatter_nd_d.py +0 -41
- mindspore/ops/_op_impl/tbe/scatter_nd_ds.py +0 -49
- mindspore/ops/_op_impl/tbe/scatter_nd_sub.py +0 -47
- mindspore/ops/_op_impl/tbe/scatter_nd_sub_ds.py +0 -48
- mindspore/ops/_op_impl/tbe/scatter_nd_update.py +0 -47
- mindspore/ops/_op_impl/tbe/scatter_nd_update_ds.py +0 -48
- mindspore/ops/_op_impl/tbe/scatter_non_aliasing_add.py +0 -39
- mindspore/ops/_op_impl/tbe/scatter_non_aliasing_add_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/scatter_sub.py +0 -47
- mindspore/ops/_op_impl/tbe/scatter_sub_ds.py +0 -48
- mindspore/ops/_op_impl/tbe/scatter_update.py +0 -43
- mindspore/ops/_op_impl/tbe/select.py +0 -38
- mindspore/ops/_op_impl/tbe/select_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/selu.py +0 -39
- mindspore/ops/_op_impl/tbe/selu_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/sgd.py +0 -62
- mindspore/ops/_op_impl/tbe/sigmoid.py +0 -37
- mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits.py +0 -41
- mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_grad.py +0 -42
- mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_grad_ds.py +0 -43
- mindspore/ops/_op_impl/tbe/sigmoid_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/sigmoid_grad.py +0 -39
- mindspore/ops/_op_impl/tbe/sigmoid_grad_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/sign.py +0 -38
- mindspore/ops/_op_impl/tbe/sign_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/sin.py +0 -37
- mindspore/ops/_op_impl/tbe/sin_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/sinh.py +0 -37
- mindspore/ops/_op_impl/tbe/sinh_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/slice.py +0 -58
- mindspore/ops/_op_impl/tbe/smooth_l1_loss.py +0 -45
- mindspore/ops/_op_impl/tbe/smooth_l1_loss_ds.py +0 -46
- mindspore/ops/_op_impl/tbe/smooth_l1_loss_grad.py +0 -46
- mindspore/ops/_op_impl/tbe/smooth_l1_loss_grad_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/soft_margin_loss.py +0 -38
- mindspore/ops/_op_impl/tbe/soft_margin_loss_grad.py +0 -39
- mindspore/ops/_op_impl/tbe/soft_shrink.py +0 -36
- mindspore/ops/_op_impl/tbe/soft_shrink_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/softmax.py +0 -37
- mindspore/ops/_op_impl/tbe/softmax_cross_entropy_with_logits.py +0 -38
- mindspore/ops/_op_impl/tbe/softmax_cross_entropy_with_logits_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/softmax_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/softmax_grad_ext.py +0 -42
- mindspore/ops/_op_impl/tbe/softmax_v2_with_dropout_do_mask_v3.py +0 -39
- mindspore/ops/_op_impl/tbe/softplus.py +0 -37
- mindspore/ops/_op_impl/tbe/softplus_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/softplus_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/softplus_grad_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/softsign.py +0 -37
- mindspore/ops/_op_impl/tbe/softsign_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/sort.py +0 -38
- mindspore/ops/_op_impl/tbe/sort_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/space_to_batch.py +0 -38
- mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +0 -38
- mindspore/ops/_op_impl/tbe/space_to_depth.py +0 -47
- mindspore/ops/_op_impl/tbe/sparse_apply_adadelta.py +0 -56
- mindspore/ops/_op_impl/tbe/sparse_apply_adagrad.py +0 -45
- mindspore/ops/_op_impl/tbe/sparse_apply_adagrad_ds.py +0 -46
- mindspore/ops/_op_impl/tbe/sparse_apply_adagrad_v2.py +0 -46
- mindspore/ops/_op_impl/tbe/sparse_apply_adagrad_v2_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/sparse_apply_ftrl_d.py +0 -53
- mindspore/ops/_op_impl/tbe/sparse_apply_ftrl_d_ds.py +0 -50
- mindspore/ops/_op_impl/tbe/sparse_apply_ftrl_v2.py +0 -50
- mindspore/ops/_op_impl/tbe/sparse_apply_proximal_adagrad.py +0 -66
- mindspore/ops/_op_impl/tbe/sparse_apply_proximal_adagrad_ds.py +0 -67
- mindspore/ops/_op_impl/tbe/sparse_apply_r_m_s_prop.py +0 -57
- mindspore/ops/_op_impl/tbe/sparse_apply_r_m_s_prop_ds.py +0 -58
- mindspore/ops/_op_impl/tbe/sparse_gather_v2.py +0 -56
- mindspore/ops/_op_impl/tbe/sparse_gather_v2_ds.py +0 -58
- mindspore/ops/_op_impl/tbe/split_d.py +0 -38
- mindspore/ops/_op_impl/tbe/split_d_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/split_v.py +0 -39
- mindspore/ops/_op_impl/tbe/splitv.py +0 -39
- mindspore/ops/_op_impl/tbe/sqrt.py +0 -37
- mindspore/ops/_op_impl/tbe/sqrt_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/sqrt_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/sqrt_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/square.py +0 -38
- mindspore/ops/_op_impl/tbe/square_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/square_sum_all.py +0 -40
- mindspore/ops/_op_impl/tbe/square_sum_all_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/square_sum_v1.py +0 -38
- mindspore/ops/_op_impl/tbe/square_sum_v1_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/square_sum_v2.py +0 -39
- mindspore/ops/_op_impl/tbe/squared_difference.py +0 -39
- mindspore/ops/_op_impl/tbe/squared_difference_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/squeeze.py +0 -37
- mindspore/ops/_op_impl/tbe/strided_read.py +0 -38
- mindspore/ops/_op_impl/tbe/strided_slice_d.py +0 -44
- mindspore/ops/_op_impl/tbe/strided_slice_ds.py +0 -71
- mindspore/ops/_op_impl/tbe/strided_slice_grad_d.py +0 -51
- mindspore/ops/_op_impl/tbe/strided_slice_grad_ds.py +0 -57
- mindspore/ops/_op_impl/tbe/strided_write.py +0 -38
- mindspore/ops/_op_impl/tbe/sub.py +0 -39
- mindspore/ops/_op_impl/tbe/sub_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/tan.py +0 -38
- mindspore/ops/_op_impl/tbe/tan_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/tanh.py +0 -37
- mindspore/ops/_op_impl/tbe/tanh_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/tanh_grad.py +0 -39
- mindspore/ops/_op_impl/tbe/tanh_grad_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/tensor_move.py +0 -49
- mindspore/ops/_op_impl/tbe/tensor_move_ds.py +0 -50
- mindspore/ops/_op_impl/tbe/tensor_scatter_update.py +0 -41
- mindspore/ops/_op_impl/tbe/tile.py +0 -37
- mindspore/ops/_op_impl/tbe/tile_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/top_k.py +0 -42
- mindspore/ops/_op_impl/tbe/top_k_ds.py +0 -43
- mindspore/ops/_op_impl/tbe/trans_data.py +0 -167
- mindspore/ops/_op_impl/tbe/trans_data_ds.py +0 -180
- mindspore/ops/_op_impl/tbe/trans_data_rnn.py +0 -44
- mindspore/ops/_op_impl/tbe/transpose.py +0 -60
- mindspore/ops/_op_impl/tbe/transpose_d.py +0 -47
- mindspore/ops/_op_impl/tbe/transpose_nod.py +0 -60
- mindspore/ops/_op_impl/tbe/trunc.py +0 -39
- mindspore/ops/_op_impl/tbe/truncate_div.py +0 -41
- mindspore/ops/_op_impl/tbe/truncate_div_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/truncate_mod.py +0 -41
- mindspore/ops/_op_impl/tbe/truncate_mod_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/unpack.py +0 -38
- mindspore/ops/_op_impl/tbe/unpack_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/unsorted_segment_max.py +0 -49
- mindspore/ops/_op_impl/tbe/unsorted_segment_max_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/unsorted_segment_min.py +0 -49
- mindspore/ops/_op_impl/tbe/unsorted_segment_min_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/unsorted_segment_prod.py +0 -49
- mindspore/ops/_op_impl/tbe/unsorted_segment_prod_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/unsorted_segment_sum.py +0 -38
- mindspore/ops/_op_impl/tbe/unsorted_segment_sum_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/wts_arq.py +0 -40
- mindspore/ops/_op_impl/tbe/xdivy.py +0 -38
- mindspore/ops/_op_impl/tbe/xdivy_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/xlogy.py +0 -38
- mindspore/ops/_op_impl/tbe/xlogy_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/zeros_like.py +0 -41
- mindspore/ops/_op_impl/tbe/zeros_like_ds.py +0 -42
- mindspore/ops/_tracefunc.py +0 -241
- mindspore/ops/arg_dtype_cast.py +0 -54
- mindspore/ops/silent_check.py +0 -162
- mindspore/profiler/parser/msadvisor_analyzer.py +0 -82
- mindspore/profiler/parser/msadvisor_parser.py +0 -240
- mindspore/rewrite/api/tree_node_helper.py +0 -60
- mindspore/rewrite/ast_helpers/ast_creator.py +0 -115
- mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +0 -267
- mindspore/rewrite/ast_transformers/remove_return_out_of_if.py +0 -228
- mindspore/rewrite/namespace.py +0 -53
- mindspore-2.2.14.dist-info/RECORD +0 -1924
- {mindspore-2.2.14.dist-info → mindspore-2.4.0.dist-info}/WHEEL +0 -0
- {mindspore-2.2.14.dist-info → mindspore-2.4.0.dist-info}/top_level.txt +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2023 Huawei Technologies Co., Ltd
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
# you may not use this file except in compliance with the License.
|
|
@@ -25,9 +25,28 @@ from mindspore.ops.composite.multitype_ops import _constexpr_utils as const_util
|
|
|
25
25
|
from mindspore.common import dtype as mstype
|
|
26
26
|
from mindspore.common.seed import _get_graph_seed
|
|
27
27
|
from mindspore.common.tensor import Tensor
|
|
28
|
-
from mindspore.ops.operations.random_ops import RandomShuffle, RandomChoiceWithMask
|
|
29
|
-
from mindspore.ops._primitive_cache import _get_cache_prim
|
|
28
|
+
from mindspore.ops.operations.random_ops import RandomShuffle, RandomChoiceWithMask
|
|
30
29
|
from mindspore.common.api import _function_forbid_reuse
|
|
30
|
+
from mindspore.ops.auto_generate import randperm
|
|
31
|
+
from mindspore.common.generator import default_generator
|
|
32
|
+
from mindspore.ops.auto_generate import UniformExt, NormalTensorTensor, \
|
|
33
|
+
NormalTensorFloat, NormalFloatTensor, NormalFloatFloat, RandExt, RandLikeExt, MultinomialExt
|
|
34
|
+
|
|
35
|
+
normal_tensor_tensor_op = NormalTensorTensor()
|
|
36
|
+
normal_tensor_float_op = NormalTensorFloat()
|
|
37
|
+
normal_float_tensor_op = NormalFloatTensor()
|
|
38
|
+
normal_float_float_op = NormalFloatFloat()
|
|
39
|
+
cast_ = P.Cast()
|
|
40
|
+
log_ = P.Log()
|
|
41
|
+
real_div_ = P.RealDiv()
|
|
42
|
+
reshape_ = P.Reshape()
|
|
43
|
+
shape_ = P.Shape()
|
|
44
|
+
top_k_ = P.TopK()
|
|
45
|
+
uniform_ = UniformExt()
|
|
46
|
+
rand_ext_ = RandExt()
|
|
47
|
+
rand_like_ext_ = RandLikeExt()
|
|
48
|
+
multinomial_ext_ = MultinomialExt()
|
|
49
|
+
generator_step_ = Tensor(10, mstype.int64)
|
|
31
50
|
|
|
32
51
|
|
|
33
52
|
@constexpr
|
|
@@ -77,7 +96,8 @@ def random_gamma(shape, alpha, seed=None):
|
|
|
77
96
|
"""
|
|
78
97
|
seed1, seed2 = _get_seed(seed, "random_gamma")
|
|
79
98
|
random_gamma_op = P.RandomGamma(seed1, seed2)
|
|
80
|
-
random_gamma_op = _set_prim_op_user_data(
|
|
99
|
+
random_gamma_op = _set_prim_op_user_data(
|
|
100
|
+
random_gamma_op, "random_cache", False)
|
|
81
101
|
output = random_gamma_op(shape, alpha)
|
|
82
102
|
return output
|
|
83
103
|
|
|
@@ -97,14 +117,18 @@ def standard_laplace(shape, seed=None):
|
|
|
97
117
|
.. math::
|
|
98
118
|
\text{f}(x) = \frac{1}{2}\exp(-|x|)
|
|
99
119
|
|
|
120
|
+
.. warning::
|
|
121
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
122
|
+
the `seed` parameter has no effect.
|
|
123
|
+
|
|
100
124
|
Args:
|
|
101
125
|
shape (Union[tuple, Tensor]): The shape of random tensor to be generated. Only constant value is allowed
|
|
102
126
|
when the input type is tuple. And the operator supports dynamic shape only when the input type is Tensor.
|
|
103
127
|
seed (int, optional): Seed is used as entropy source for Random number engines generating pseudo-random numbers.
|
|
104
|
-
Default: ``None``
|
|
128
|
+
Default: ``None`` .
|
|
105
129
|
|
|
106
130
|
Returns:
|
|
107
|
-
Tensor. The shape that the input
|
|
131
|
+
Tensor. The shape that the input `shape` denotes. The dtype is float32.
|
|
108
132
|
|
|
109
133
|
Raises:
|
|
110
134
|
TypeError: If shape is neither a tuple nor a Tensor.
|
|
@@ -124,7 +148,8 @@ def standard_laplace(shape, seed=None):
|
|
|
124
148
|
"""
|
|
125
149
|
seed1, seed2 = _get_seed(seed, "standard_laplace")
|
|
126
150
|
standard_laplace_op = P.StandardLaplace(seed=seed1, seed2=seed2)
|
|
127
|
-
standard_laplace_op = _set_prim_op_user_data(
|
|
151
|
+
standard_laplace_op = _set_prim_op_user_data(
|
|
152
|
+
standard_laplace_op, "random_cache", False)
|
|
128
153
|
return standard_laplace_op(shape)
|
|
129
154
|
|
|
130
155
|
|
|
@@ -133,6 +158,10 @@ def random_categorical(logits, num_sample, seed=0, dtype=mstype.int64):
|
|
|
133
158
|
r"""
|
|
134
159
|
Generates random samples from a given categorical distribution tensor.
|
|
135
160
|
|
|
161
|
+
.. warning::
|
|
162
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
163
|
+
the `seed` parameter has no effect.
|
|
164
|
+
|
|
136
165
|
Args:
|
|
137
166
|
logits (Tensor): The input tensor. 2-D Tensor with shape :math:`(batch\_size, num\_classes)`.
|
|
138
167
|
num_sample (int): Number of sample to be drawn. Only constant values is allowed.
|
|
@@ -163,7 +192,8 @@ def random_categorical(logits, num_sample, seed=0, dtype=mstype.int64):
|
|
|
163
192
|
(10, 8)
|
|
164
193
|
"""
|
|
165
194
|
random_categorical_ = P.RandomCategorical(dtype)
|
|
166
|
-
random_categorical_ = _set_prim_op_user_data(
|
|
195
|
+
random_categorical_ = _set_prim_op_user_data(
|
|
196
|
+
random_categorical_, "random_cache", False)
|
|
167
197
|
return random_categorical_(logits, num_sample, seed)
|
|
168
198
|
|
|
169
199
|
|
|
@@ -223,10 +253,44 @@ def multinomial_with_replacement(x, seed, offset, numsamples, replacement=False)
|
|
|
223
253
|
offset = Tensor(offset, dtype=mstype.int64)
|
|
224
254
|
multinomial_with_replacement_ = P.MultinomialWithReplacement(numsamples=numsamples,
|
|
225
255
|
replacement=replacement)
|
|
226
|
-
multinomial_with_replacement_ = _set_prim_op_user_data(
|
|
256
|
+
multinomial_with_replacement_ = _set_prim_op_user_data(
|
|
257
|
+
multinomial_with_replacement_, "random_cache", False)
|
|
227
258
|
return multinomial_with_replacement_(x, seed, offset)
|
|
228
259
|
|
|
229
260
|
|
|
261
|
+
@_function_forbid_reuse
|
|
262
|
+
def uniform_ext(tensor, a, b, generator=None):
|
|
263
|
+
"""
|
|
264
|
+
Generates random numbers in the half-open interval [a, b).
|
|
265
|
+
|
|
266
|
+
Args:
|
|
267
|
+
tensor (Tensor): The origin input tensor.
|
|
268
|
+
a (number): The lower bound of the interval.
|
|
269
|
+
b (number): The upper bound of the interval.
|
|
270
|
+
generator (Generator, optional): The random seed. Default: None.
|
|
271
|
+
|
|
272
|
+
Raises:
|
|
273
|
+
TypeError: If `a` is larger than `b`.
|
|
274
|
+
|
|
275
|
+
Returns:
|
|
276
|
+
Tensor, with the same shape as tensor.
|
|
277
|
+
|
|
278
|
+
Examples:
|
|
279
|
+
>>> import mindspore
|
|
280
|
+
>>> from mindspore import ops
|
|
281
|
+
>>> x = ops.ones((4, 2))
|
|
282
|
+
>>> generator = mindspore.Generator()
|
|
283
|
+
>>> generator.manual_seed(100)
|
|
284
|
+
>>> result = ops.function.random_func.uniform_ext(x, 1., 2., generator)
|
|
285
|
+
>>> print(result.shape)
|
|
286
|
+
(4, 2)
|
|
287
|
+
"""
|
|
288
|
+
if generator is None:
|
|
289
|
+
generator = default_generator
|
|
290
|
+
seed, offset = generator._step(generator_step_) # pylint: disable=protected-access
|
|
291
|
+
return uniform_(tensor, a, b, seed, offset)
|
|
292
|
+
|
|
293
|
+
|
|
230
294
|
@_function_forbid_reuse
|
|
231
295
|
def uniform(shape, minval, maxval, seed=None, dtype=mstype.float32):
|
|
232
296
|
"""
|
|
@@ -284,21 +348,25 @@ def uniform(shape, minval, maxval, seed=None, dtype=mstype.float32):
|
|
|
284
348
|
(3, 2, 2)
|
|
285
349
|
"""
|
|
286
350
|
if not isinstance(minval, Tensor) or not isinstance(maxval, Tensor):
|
|
287
|
-
raise TypeError(
|
|
351
|
+
raise TypeError(
|
|
352
|
+
f"For functional operator[uniform], the input[minval] and input[maxval] must be a Tensor.")
|
|
288
353
|
|
|
289
354
|
minval_dtype = F.dtype(minval)
|
|
290
355
|
maxval_dtype = F.dtype(maxval)
|
|
291
|
-
const_utils.check_type_valid(
|
|
356
|
+
const_utils.check_type_valid(
|
|
357
|
+
dtype, [mstype.int32, mstype.float32], 'uniform')
|
|
292
358
|
const_utils.check_tensors_dtype_same(minval_dtype, dtype, "uniform")
|
|
293
359
|
const_utils.check_tensors_dtype_same(maxval_dtype, dtype, "uniform")
|
|
294
360
|
seed1, seed2 = _get_seed(seed, "uniform")
|
|
295
361
|
if const_utils.is_same_type(dtype, mstype.int32):
|
|
296
362
|
random_uniform = P.UniformInt(seed1, seed2)
|
|
297
|
-
random_uniform = _set_prim_op_user_data(
|
|
363
|
+
random_uniform = _set_prim_op_user_data(
|
|
364
|
+
random_uniform, "random_cache", False)
|
|
298
365
|
value = random_uniform(shape, minval, maxval)
|
|
299
366
|
else:
|
|
300
367
|
uniform_real = P.UniformReal(seed1, seed2)
|
|
301
|
-
uniform_real = _set_prim_op_user_data(
|
|
368
|
+
uniform_real = _set_prim_op_user_data(
|
|
369
|
+
uniform_real, "random_cache", False)
|
|
302
370
|
uniform_real = uniform_real(shape)
|
|
303
371
|
value = uniform_real * (maxval - minval) + minval
|
|
304
372
|
return value
|
|
@@ -315,6 +383,10 @@ def standard_normal(shape, seed=None):
|
|
|
315
383
|
.. math::
|
|
316
384
|
f(x)=\frac{1}{\sqrt{2 \pi}} e^{\left(-\frac{x^{2}}{2}\right)}
|
|
317
385
|
|
|
386
|
+
.. warning::
|
|
387
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
388
|
+
the `seed` parameter has no effect.
|
|
389
|
+
|
|
318
390
|
Args:
|
|
319
391
|
shape (Union[tuple, Tensor]): The shape of random tensor to be generated. Only constant value is allowed
|
|
320
392
|
when the input type is tuple. And the operator supports dynamic shape only when the input type is Tensor.
|
|
@@ -341,7 +413,8 @@ def standard_normal(shape, seed=None):
|
|
|
341
413
|
"""
|
|
342
414
|
seed1, seed2 = _get_seed(seed, "standard_normal")
|
|
343
415
|
standard_normal_op = P.StandardNormal(seed=seed1, seed2=seed2)
|
|
344
|
-
standard_normal_op = _set_prim_op_user_data(
|
|
416
|
+
standard_normal_op = _set_prim_op_user_data(
|
|
417
|
+
standard_normal_op, "random_cache", False)
|
|
345
418
|
return standard_normal_op(shape)
|
|
346
419
|
|
|
347
420
|
|
|
@@ -359,8 +432,14 @@ def uniform_candidate_sampler(true_classes,
|
|
|
359
432
|
This function samples a set of classes(sampled_candidates) from [0, range_max-1] based on uniform distribution.
|
|
360
433
|
If unique=True, candidates are drawn without replacement, else unique=False with replacement.
|
|
361
434
|
|
|
435
|
+
.. warning::
|
|
436
|
+
- The Ascend backend does not support the reproducibility of random numbers, so
|
|
437
|
+
the `seed` parameter has no effect.
|
|
438
|
+
- The Ascend backend does not support dynamic shape scenarios currently.
|
|
439
|
+
|
|
362
440
|
Args:
|
|
363
441
|
true_classes (Tensor): A Tensor. The target classes with a Tensor shape of :math:`(batch\_size, num\_true)` .
|
|
442
|
+
The value range of the elements must be :math:`[0, range\_max)`.
|
|
364
443
|
num_true (int): The number of target classes in each training example.
|
|
365
444
|
num_sampled (int): The number of classes to randomly sample. The sampled_candidates will have a shape
|
|
366
445
|
of num_sampled. If unique=True, num_sampled must be less than or equal to range_max.
|
|
@@ -374,11 +453,11 @@ def uniform_candidate_sampler(true_classes,
|
|
|
374
453
|
|
|
375
454
|
Returns:
|
|
376
455
|
- **sampled_candidates** (Tensor) - The sampled_candidates is independent of the true classes.
|
|
377
|
-
|
|
456
|
+
shape: :math:`(num\_sampled, )` .
|
|
378
457
|
- **true_expected_count** (Tensor) - The expected counts under the sampling distribution of each
|
|
379
|
-
of true_classes.
|
|
458
|
+
of true_classes. shape: :math:`(batch\_size, num\_true)` .
|
|
380
459
|
- **sampled_expected_count** (Tensor) - The expected counts under the sampling distribution of
|
|
381
|
-
each of sampled_candidates.
|
|
460
|
+
each of sampled_candidates. shape: :math:`(num\_sampled, )` .
|
|
382
461
|
|
|
383
462
|
Raises:
|
|
384
463
|
TypeError: If neither `num_true` nor `num_sampled` is an int.
|
|
@@ -408,7 +487,8 @@ def uniform_candidate_sampler(true_classes,
|
|
|
408
487
|
seed=seed,
|
|
409
488
|
remove_accidental_hits=remove_accidental_hits)
|
|
410
489
|
sampler_op = _set_prim_op_user_data(sampler_op, "random_cache", False)
|
|
411
|
-
sampled_candidates, true_expected_count, sampled_expected_count = sampler_op(
|
|
490
|
+
sampled_candidates, true_expected_count, sampled_expected_count = sampler_op(
|
|
491
|
+
true_classes)
|
|
412
492
|
return sampled_candidates, true_expected_count, sampled_expected_count
|
|
413
493
|
|
|
414
494
|
|
|
@@ -422,11 +502,15 @@ def random_poisson(shape, rate, seed=None, dtype=mstype.float32):
|
|
|
422
502
|
|
|
423
503
|
\text{P}(i|μ) = \frac{\exp(-μ)μ^{i}}{i!}
|
|
424
504
|
|
|
505
|
+
.. warning::
|
|
506
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
507
|
+
the `seed` parameter has no effect.
|
|
508
|
+
|
|
425
509
|
Args:
|
|
426
510
|
shape (Tensor): The shape of random tensor to be sampled from each poisson distribution, 1-D `Tensor` whose
|
|
427
511
|
dtype is mstype.int32 or mstype.int64.
|
|
428
512
|
rate (Tensor): The :math:`μ` parameter the distribution is constructed with.
|
|
429
|
-
It represents the mean of
|
|
513
|
+
It represents the mean of poisson distribution
|
|
430
514
|
and also the variance of the distribution. It should be a `Tensor` whose dtype is mstype.int64,
|
|
431
515
|
mstype.int32, mstype.float64, mstype.float32 or mstype.float16.
|
|
432
516
|
seed (int, optional): Seed is used as entropy source for the random number engines to generate pseudo-random
|
|
@@ -472,7 +556,8 @@ def random_poisson(shape, rate, seed=None, dtype=mstype.float32):
|
|
|
472
556
|
"""
|
|
473
557
|
seed1, seed2 = _get_seed(seed, "random_poisson")
|
|
474
558
|
prim_random_poisson = P.RandomPoisson(seed1, seed2, dtype)
|
|
475
|
-
prim_random_poisson = _set_prim_op_user_data(
|
|
559
|
+
prim_random_poisson = _set_prim_op_user_data(
|
|
560
|
+
prim_random_poisson, "random_cache", False)
|
|
476
561
|
value = prim_random_poisson(shape, rate)
|
|
477
562
|
return value
|
|
478
563
|
|
|
@@ -507,7 +592,8 @@ def shuffle(x, seed=None):
|
|
|
507
592
|
"""
|
|
508
593
|
seed, seed2 = _get_seed(seed, "shuffle")
|
|
509
594
|
random_shuffle_ = RandomShuffle(seed=seed, seed2=seed2)
|
|
510
|
-
random_shuffle_ = _set_prim_op_user_data(
|
|
595
|
+
random_shuffle_ = _set_prim_op_user_data(
|
|
596
|
+
random_shuffle_, "random_cache", False)
|
|
511
597
|
output = random_shuffle_(x)
|
|
512
598
|
return output
|
|
513
599
|
|
|
@@ -519,6 +605,10 @@ def log_uniform_candidate_sampler(true_classes, num_true=1, num_sampled=5, uniqu
|
|
|
519
605
|
|
|
520
606
|
Randomly samples a tensor of sampled classes from the range of integers [0, range_max).
|
|
521
607
|
|
|
608
|
+
.. warning::
|
|
609
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
610
|
+
the `seed` parameter has no effect.
|
|
611
|
+
|
|
522
612
|
Args:
|
|
523
613
|
true_classes (Tensor): The target classes. With data type of int64 and
|
|
524
614
|
shape :math:`(batch\_size, num\_true)` .
|
|
@@ -561,7 +651,8 @@ def log_uniform_candidate_sampler(true_classes, num_true=1, num_sampled=5, uniqu
|
|
|
561
651
|
|
|
562
652
|
"""
|
|
563
653
|
|
|
564
|
-
sampler = P.LogUniformCandidateSampler(
|
|
654
|
+
sampler = P.LogUniformCandidateSampler(
|
|
655
|
+
num_true, num_sampled, unique, range_max, seed)
|
|
565
656
|
sampler = _set_prim_op_user_data(sampler, "random_cache", False)
|
|
566
657
|
return sampler(true_classes)
|
|
567
658
|
|
|
@@ -576,12 +667,16 @@ def choice_with_mask(input_x, count=256, seed=None):
|
|
|
576
667
|
The returned index tensor denotes the index of the nonzero
|
|
577
668
|
sample, the mask tensor denotes which elements in the index tensor are valid.
|
|
578
669
|
|
|
670
|
+
.. warning::
|
|
671
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
672
|
+
the `seed` parameter has no effect.
|
|
673
|
+
|
|
579
674
|
Args:
|
|
580
675
|
input_x (Tensor[bool]): The input tensor.
|
|
581
676
|
The input tensor rank must be greater than or equal to 1 and less than or equal to 5.
|
|
582
677
|
count (int, optional): Number of items expected to get and the number must be greater than 0. Default: ``256`` .
|
|
583
678
|
seed (int, optional): Seed is used as entropy source for Random number engines generating pseudo-random numbers.
|
|
584
|
-
Default: ``None``
|
|
679
|
+
Default: ``None`` .
|
|
585
680
|
|
|
586
681
|
Returns:
|
|
587
682
|
Two tensors, the first one is the index tensor and the other one is the mask tensor.
|
|
@@ -600,7 +695,7 @@ def choice_with_mask(input_x, count=256, seed=None):
|
|
|
600
695
|
Examples:
|
|
601
696
|
>>> import numpy as np
|
|
602
697
|
>>> from mindspore import Tensor, ops
|
|
603
|
-
>>> input_x = Tensor(np.ones(shape=[240000, 4]).astype(np.
|
|
698
|
+
>>> input_x = Tensor(np.ones(shape=[240000, 4]).astype(np.bool_))
|
|
604
699
|
>>> output_y, output_mask = ops.choice_with_mask(input_x)
|
|
605
700
|
>>> result = output_y.shape
|
|
606
701
|
>>> print(result)
|
|
@@ -610,8 +705,10 @@ def choice_with_mask(input_x, count=256, seed=None):
|
|
|
610
705
|
(256,)
|
|
611
706
|
"""
|
|
612
707
|
seed1, seed2 = _get_seed(seed, "choice_with_mask")
|
|
613
|
-
choice_with_mask_ = RandomChoiceWithMask(
|
|
614
|
-
|
|
708
|
+
choice_with_mask_ = RandomChoiceWithMask(
|
|
709
|
+
count=count, seed=seed1, seed2=seed2)
|
|
710
|
+
choice_with_mask_ = _set_prim_op_user_data(
|
|
711
|
+
choice_with_mask_, "random_cache", False)
|
|
615
712
|
output = choice_with_mask_(input_x)
|
|
616
713
|
return output
|
|
617
714
|
|
|
@@ -622,56 +719,54 @@ def is_cpu_backend():
|
|
|
622
719
|
return context.get_context('device_target') == 'CPU'
|
|
623
720
|
|
|
624
721
|
|
|
625
|
-
|
|
626
|
-
def randperm(n, seed=0, offset=0, dtype=mstype.int64):
|
|
722
|
+
def normal_ext(mean=0.0, std=1.0, size=None, generator=None):
|
|
627
723
|
r"""
|
|
628
|
-
Generates random
|
|
629
|
-
|
|
630
|
-
Returns the tensor with the determined shape inferred by n, the random numbers in it drawn from the data range
|
|
631
|
-
that a given type can represent.
|
|
632
|
-
|
|
633
|
-
.. warning::
|
|
634
|
-
This is an experimental API that is subject to change or deletion.
|
|
724
|
+
Generates random numbers according to the standard Normal (or Gaussian) random number distribution.
|
|
635
725
|
|
|
636
726
|
Args:
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
Its value must be one of the following types: int32, int16, int8,
|
|
645
|
-
uint8, int64, float64, float32, float16. Default: mstype.int64.
|
|
727
|
+
mean (Union[float, Tensor], optional): Mean value of each element, the shape of the 'mean' tensor
|
|
728
|
+
should be the same as that of the 'std' tensor. Default: ``0.0``.
|
|
729
|
+
std (Union[float, Tensor], optional): Standard deviation for each element, the shape of the 'std' tensor
|
|
730
|
+
should be the same as that of the 'mean' tensor. The value of std should be greater than or equal to 0.
|
|
731
|
+
Default: ``1.0``.
|
|
732
|
+
size (tuple, optional): output size, where 'mean' and 'std' are constants. Default: ``None``.
|
|
733
|
+
generator (generator, optional): MindSpore generator. Default: ``None``.
|
|
646
734
|
|
|
647
735
|
Returns:
|
|
648
|
-
|
|
649
|
-
|
|
736
|
+
Outputs a tensor with the same shape as 'mean',
|
|
737
|
+
or when 'mean' and 'std' are constants and shape is specified as 'size'.
|
|
650
738
|
|
|
651
739
|
Raises:
|
|
652
|
-
TypeError: If `
|
|
653
|
-
ValueError: If `n` is a negative or 0 element.
|
|
654
|
-
ValueError: If `seed` is a negative element.
|
|
655
|
-
ValueError: If `n` is larger than the maximal data of the set dtype.
|
|
740
|
+
TypeError: If `mean` or `std` is not Union[float, Tensor].
|
|
656
741
|
|
|
657
742
|
Supported Platforms:
|
|
658
|
-
``
|
|
743
|
+
``Ascend``
|
|
659
744
|
|
|
660
745
|
Examples:
|
|
746
|
+
>>> import mindspore
|
|
747
|
+
>>> import numpy as np
|
|
661
748
|
>>> from mindspore import ops
|
|
662
|
-
>>> from mindspore import
|
|
663
|
-
>>>
|
|
664
|
-
>>>
|
|
665
|
-
>>>
|
|
666
|
-
>>> output
|
|
667
|
-
|
|
668
|
-
[1 0 2 3]
|
|
749
|
+
>>> from mindspore import Tensor
|
|
750
|
+
>>> mean = Tensor(np.array([1.0, 2.0, 3.0]), mindspore.float32)
|
|
751
|
+
>>> std = Tensor(np.array([1.0, 2.0, 3.0]), mindspore.float32)
|
|
752
|
+
>>> output = ops.function.random_func.normal_ext(mean, std)
|
|
753
|
+
>>> print(output.shape)
|
|
754
|
+
(3,)
|
|
669
755
|
"""
|
|
670
|
-
if
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
756
|
+
if generator is None:
|
|
757
|
+
generator = default_generator
|
|
758
|
+
seed, offset = generator._step(generator_step_) # pylint: disable=protected-access
|
|
759
|
+
|
|
760
|
+
is_mean_tensor = isinstance(mean, Tensor)
|
|
761
|
+
is_std_tensor = isinstance(std, Tensor)
|
|
762
|
+
|
|
763
|
+
if is_mean_tensor and is_std_tensor:
|
|
764
|
+
return normal_tensor_tensor_op(mean, std, seed, offset)
|
|
765
|
+
if is_mean_tensor and not is_std_tensor:
|
|
766
|
+
return normal_tensor_float_op(mean, std, seed, offset)
|
|
767
|
+
if not is_mean_tensor and is_std_tensor:
|
|
768
|
+
return normal_float_tensor_op(mean, std, seed, offset)
|
|
769
|
+
return normal_float_float_op(mean, std, size, seed, offset)
|
|
675
770
|
|
|
676
771
|
|
|
677
772
|
@_function_forbid_reuse
|
|
@@ -679,6 +774,10 @@ def normal(shape, mean, stddev, seed=None):
|
|
|
679
774
|
"""
|
|
680
775
|
Generates random numbers according to the Normal (or Gaussian) random number distribution.
|
|
681
776
|
|
|
777
|
+
.. warning::
|
|
778
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
779
|
+
the `seed` parameter has no effect.
|
|
780
|
+
|
|
682
781
|
Args:
|
|
683
782
|
shape (tuple): The shape of random tensor to be generated.
|
|
684
783
|
The format is :math:`(N,*)` where :math:`*` means, any number of additional dimensions.
|
|
@@ -745,6 +844,10 @@ def laplace(shape, mean, lambda_param, seed=None):
|
|
|
745
844
|
.. math::
|
|
746
845
|
\text{f}(x;μ,λ) = \frac{1}{2λ}\exp(-\frac{|x-μ|}{λ}),
|
|
747
846
|
|
|
847
|
+
.. warning::
|
|
848
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
849
|
+
the `seed` parameter has no effect.
|
|
850
|
+
|
|
748
851
|
Args:
|
|
749
852
|
shape (tuple): The shape of random tensor to be generated.
|
|
750
853
|
The format is :math:`(N,*)` where :math:`*` means, any number of additional dimensions.
|
|
@@ -776,7 +879,8 @@ def laplace(shape, mean, lambda_param, seed=None):
|
|
|
776
879
|
mean_dtype = F.dtype(mean)
|
|
777
880
|
lambda_param_dtype = F.dtype(lambda_param)
|
|
778
881
|
const_utils.check_tensors_dtype_same(mean_dtype, mstype.float32, "laplace")
|
|
779
|
-
const_utils.check_tensors_dtype_same(
|
|
882
|
+
const_utils.check_tensors_dtype_same(
|
|
883
|
+
lambda_param_dtype, mstype.float32, "laplace")
|
|
780
884
|
seed1, seed2 = _get_seed(seed, "laplace")
|
|
781
885
|
stdlaplace = P.StandardLaplace(seed1, seed2)
|
|
782
886
|
stdlaplace = _set_prim_op_user_data(stdlaplace, "random_cache", False)
|
|
@@ -791,12 +895,16 @@ def gamma(shape, alpha, beta, seed=None):
|
|
|
791
895
|
r"""
|
|
792
896
|
Generates random numbers according to the Gamma random number distribution.
|
|
793
897
|
|
|
898
|
+
.. warning::
|
|
899
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
900
|
+
the `seed` parameter has no effect.
|
|
901
|
+
|
|
794
902
|
Args:
|
|
795
903
|
shape (tuple): The shape of random tensor to be generated.
|
|
796
904
|
alpha (Tensor): The :math:`\alpha` distribution parameter. It should be greater than 0 with float32 data type.
|
|
797
905
|
beta (Tensor): The :math:`\beta` distribution parameter. It should be greater than 0 with float32 data type.
|
|
798
|
-
seed (int): Seed is used as entropy source for the random number engines to generate
|
|
799
|
-
|
|
906
|
+
seed (int, optional): Seed is used as entropy source for the random number engines to generate
|
|
907
|
+
pseudo-random numbers, must be non-negative. Default: ``None`` .
|
|
800
908
|
|
|
801
909
|
Returns:
|
|
802
910
|
Tensor. The shape should be equal to the broadcasted shape between the input `shape` and shapes
|
|
@@ -894,6 +1002,10 @@ def rand(*size, dtype=None, seed=None):
|
|
|
894
1002
|
Returns a new tensor that fills numbers from the uniform distribution over an interval :math:`[0, 1)`
|
|
895
1003
|
based on the given shape and dtype.
|
|
896
1004
|
|
|
1005
|
+
.. warning::
|
|
1006
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
1007
|
+
the `seed` parameter has no effect.
|
|
1008
|
+
|
|
897
1009
|
Args:
|
|
898
1010
|
size (Union[int, tuple(int), list(int)]): Shape of the new tensor, e.g. :math:`(2, 3)` or :math:`2`.
|
|
899
1011
|
|
|
@@ -914,7 +1026,7 @@ def rand(*size, dtype=None, seed=None):
|
|
|
914
1026
|
``Ascend`` ``GPU`` ``CPU``
|
|
915
1027
|
|
|
916
1028
|
Examples:
|
|
917
|
-
>>>
|
|
1029
|
+
>>> from mindspore import ops
|
|
918
1030
|
>>> print(ops.rand((2,3)))
|
|
919
1031
|
[[4.1702199e-01 9.9718481e-01 7.2032452e-01]
|
|
920
1032
|
[9.3255734e-01 1.1438108e-04 1.2812445e-01]]
|
|
@@ -922,9 +1034,9 @@ def rand(*size, dtype=None, seed=None):
|
|
|
922
1034
|
if dtype is None:
|
|
923
1035
|
dtype = mstype.float32
|
|
924
1036
|
elif dtype not in mstype.float_type:
|
|
925
|
-
raise ValueError(
|
|
1037
|
+
raise ValueError(
|
|
1038
|
+
f"For 'rand', the 'dtype' must be a float type, but got {dtype}.")
|
|
926
1039
|
shape = _generate_shapes(size)
|
|
927
|
-
cast_ = P.Cast()
|
|
928
1040
|
seed1, seed2 = _get_seed(seed, 'rand')
|
|
929
1041
|
rand_op = P.UniformReal(seed1, seed2)
|
|
930
1042
|
rand_op = _set_prim_op_user_data(rand_op, "random_cache", False)
|
|
@@ -938,6 +1050,10 @@ def rand_like(input, seed=None, *, dtype=None):
|
|
|
938
1050
|
Returns a new tensor that fills numbers from the uniform distribution over an interval :math:`[0, 1)`
|
|
939
1051
|
based on the given shape and dtype.
|
|
940
1052
|
|
|
1053
|
+
.. warning::
|
|
1054
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
1055
|
+
the `seed` parameter has no effect.
|
|
1056
|
+
|
|
941
1057
|
Args:
|
|
942
1058
|
input (Tensor): Input Tensor to specify the output shape and its default dtype.
|
|
943
1059
|
seed (int, optional): Random seed, must be greater or equal to 0. Default: ``None`` , and ``0`` will be used.
|
|
@@ -966,13 +1082,14 @@ def rand_like(input, seed=None, *, dtype=None):
|
|
|
966
1082
|
[9.3255734e-01 1.1438108e-04 1.2812445e-01]]
|
|
967
1083
|
"""
|
|
968
1084
|
if not isinstance(input, Tensor):
|
|
969
|
-
raise TypeError(
|
|
1085
|
+
raise TypeError(
|
|
1086
|
+
f"For 'rand_like', the 'input' must be a Tensor, but got {type(input)}")
|
|
970
1087
|
if dtype is None:
|
|
971
1088
|
dtype = input.dtype
|
|
972
1089
|
if dtype not in mstype.float_type:
|
|
973
|
-
raise ValueError(
|
|
1090
|
+
raise ValueError(
|
|
1091
|
+
f"For 'rand_like', the 'dtype' must be a float type, but got {dtype}.")
|
|
974
1092
|
shape = input.shape
|
|
975
|
-
cast_ = P.Cast()
|
|
976
1093
|
seed1, seed2 = _get_seed(seed, 'rand_like')
|
|
977
1094
|
rand_op = P.UniformReal(seed1, seed2)
|
|
978
1095
|
rand_op = _set_prim_op_user_data(rand_op, "random_cache", False)
|
|
@@ -980,12 +1097,86 @@ def rand_like(input, seed=None, *, dtype=None):
|
|
|
980
1097
|
return cast_(output, dtype)
|
|
981
1098
|
|
|
982
1099
|
|
|
1100
|
+
@_function_forbid_reuse
|
|
1101
|
+
def rand_ext(*size, generator=None, dtype=None):
|
|
1102
|
+
r"""
|
|
1103
|
+
Returns a new tensor that fills numbers from the uniform distribution over an interval :math:`[0, 1)`
|
|
1104
|
+
based on the given shape and dtype.
|
|
1105
|
+
|
|
1106
|
+
Args:
|
|
1107
|
+
size (Union[int, tuple(int), list(int)]): Shape of the new tensor, e.g. :math:`(2, 3)` or :math:`2`.
|
|
1108
|
+
|
|
1109
|
+
Keyword Args:
|
|
1110
|
+
generator (:class:`mindspore.Generator`, optional): a pseudorandom number generator.
|
|
1111
|
+
Default: ``None``, uses the default pseudorandom number generator.
|
|
1112
|
+
dtype (:class:`mindspore.dtype`, optional): Designated tensor dtype, it must be float type. If None,
|
|
1113
|
+
`mindspore.float32` will be applied. Default: ``None`` .
|
|
1114
|
+
|
|
1115
|
+
Returns:
|
|
1116
|
+
Tensor, with the designated shape and dtype, filled with random numbers from the uniform distribution on
|
|
1117
|
+
the interval :math:`[0, 1)`.
|
|
1118
|
+
|
|
1119
|
+
Raises:
|
|
1120
|
+
ValueError: If `dtype` is not a `mstype.float_type` type.
|
|
1121
|
+
|
|
1122
|
+
Supported Platforms:
|
|
1123
|
+
``Ascend``
|
|
1124
|
+
|
|
1125
|
+
Examples:
|
|
1126
|
+
>>> from mindspore import ops
|
|
1127
|
+
>>> print(ops.function.random_func.rand_ext(2, 3).shape)
|
|
1128
|
+
(2, 3)
|
|
1129
|
+
"""
|
|
1130
|
+
if not generator:
|
|
1131
|
+
generator = default_generator
|
|
1132
|
+
seed, offset = generator._step(generator_step_) # pylint: disable=protected-access
|
|
1133
|
+
return rand_ext_(size, seed, offset, dtype)
|
|
1134
|
+
|
|
1135
|
+
|
|
1136
|
+
@_function_forbid_reuse
|
|
1137
|
+
def rand_like_ext(input, *, dtype=None):
|
|
1138
|
+
r"""
|
|
1139
|
+
Returns a new tensor that fills numbers from the uniform distribution over an interval :math:`[0, 1)`
|
|
1140
|
+
based on the given dtype and shape of the input tensor.
|
|
1141
|
+
|
|
1142
|
+
Args:
|
|
1143
|
+
input (Tensor): Input Tensor to specify the output shape and its default dtype.
|
|
1144
|
+
|
|
1145
|
+
Keyword Args:
|
|
1146
|
+
dtype (:class:`mindspore.dtype`, optional): Designated tensor dtype, it must be float type. If None,
|
|
1147
|
+
the same dtype of `input` will be applied. Default: ``None`` .
|
|
1148
|
+
|
|
1149
|
+
Returns:
|
|
1150
|
+
Tensor, with the designated shape and dtype, filled with random numbers from the uniform distribution on
|
|
1151
|
+
the interval :math:`[0, 1)`.
|
|
1152
|
+
|
|
1153
|
+
Raises:
|
|
1154
|
+
ValueError: If `dtype` is not a `mstype.float_type` type.
|
|
1155
|
+
|
|
1156
|
+
Supported Platforms:
|
|
1157
|
+
``Ascend``
|
|
1158
|
+
|
|
1159
|
+
Examples:
|
|
1160
|
+
>>> import mindspore as ms
|
|
1161
|
+
>>> from mindspore import Tensor, ops
|
|
1162
|
+
>>> a = Tensor([[2, 3, 4], [1, 2, 3]])
|
|
1163
|
+
>>> print(ops.function.random_func.rand_like_ext(a, dtype=ms.float32).shape)
|
|
1164
|
+
(2, 3)
|
|
1165
|
+
"""
|
|
1166
|
+
seed, offset = default_generator._step(generator_step_) # pylint: disable=protected-access
|
|
1167
|
+
return rand_like_ext_(input, seed, offset, dtype)
|
|
1168
|
+
|
|
1169
|
+
|
|
983
1170
|
@_function_forbid_reuse
|
|
984
1171
|
def randn(*size, dtype=None, seed=None):
|
|
985
1172
|
r"""
|
|
986
1173
|
Returns a new Tensor with given shape and dtype, filled with a sample (or samples)
|
|
987
1174
|
from the standard normal distribution.
|
|
988
1175
|
|
|
1176
|
+
.. warning::
|
|
1177
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
1178
|
+
the `seed` parameter has no effect.
|
|
1179
|
+
|
|
989
1180
|
Args:
|
|
990
1181
|
size (Union[int, tuple(int), list(int)]): Shape of the new tensor, e.g., :math:`(2, 3)` or :math:`2`.
|
|
991
1182
|
|
|
@@ -1007,7 +1198,7 @@ def randn(*size, dtype=None, seed=None):
|
|
|
1007
1198
|
``Ascend`` ``GPU`` ``CPU``
|
|
1008
1199
|
|
|
1009
1200
|
Examples:
|
|
1010
|
-
>>>
|
|
1201
|
+
>>> from mindspore import ops
|
|
1011
1202
|
>>> print(ops.randn((2, 2)))
|
|
1012
1203
|
[[ 0.30639967 -0.42438635]
|
|
1013
1204
|
[-0.4287376 1.3054721 ]]
|
|
@@ -1015,9 +1206,9 @@ def randn(*size, dtype=None, seed=None):
|
|
|
1015
1206
|
if dtype is None:
|
|
1016
1207
|
dtype = mstype.float32
|
|
1017
1208
|
elif dtype not in mstype.float_type:
|
|
1018
|
-
raise ValueError(
|
|
1209
|
+
raise ValueError(
|
|
1210
|
+
f"For 'randn', the 'dtype' must be a float type, but got {dtype}.")
|
|
1019
1211
|
shape = _generate_shapes(size)
|
|
1020
|
-
cast_ = P.Cast()
|
|
1021
1212
|
seed1, seed2 = _get_seed(seed, 'randn')
|
|
1022
1213
|
rand_op = P.StandardNormal(seed1, seed2)
|
|
1023
1214
|
rand_op = _set_prim_op_user_data(rand_op, "random_cache", False)
|
|
@@ -1031,6 +1222,10 @@ def randn_like(input, seed=None, *, dtype=None):
|
|
|
1031
1222
|
Returns a new Tensor with given shape and dtype, filled with a sample (or samples) from the standard normal
|
|
1032
1223
|
distribution.
|
|
1033
1224
|
|
|
1225
|
+
.. warning::
|
|
1226
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
1227
|
+
the `seed` parameter has no effect.
|
|
1228
|
+
|
|
1034
1229
|
Args:
|
|
1035
1230
|
input (Tensor): Input Tensor to specify the output shape and its default dtype.
|
|
1036
1231
|
seed (int, optional): Random seed, must be greater or equal to 0. Default: ``None`` , and 0 will be used.
|
|
@@ -1059,13 +1254,14 @@ def randn_like(input, seed=None, *, dtype=None):
|
|
|
1059
1254
|
[-0.4287376 1.3054721 0.64747655]]
|
|
1060
1255
|
"""
|
|
1061
1256
|
if not isinstance(input, Tensor):
|
|
1062
|
-
raise TypeError(
|
|
1257
|
+
raise TypeError(
|
|
1258
|
+
f"For 'randn_like', the 'input' must be a Tensor, but got {type(input)}")
|
|
1063
1259
|
if dtype is None:
|
|
1064
1260
|
dtype = mstype.float32
|
|
1065
1261
|
if dtype not in mstype.float_type:
|
|
1066
|
-
raise ValueError(
|
|
1262
|
+
raise ValueError(
|
|
1263
|
+
f"For 'randn_like', the 'dtype' must be a float type, but got {dtype}.")
|
|
1067
1264
|
shape = input.shape
|
|
1068
|
-
cast_ = P.Cast()
|
|
1069
1265
|
seed1, seed2 = _get_seed(seed, 'randn_like')
|
|
1070
1266
|
rand_op = P.StandardNormal(seed1, seed2)
|
|
1071
1267
|
rand_op = _set_prim_op_user_data(rand_op, "random_cache", False)
|
|
@@ -1078,6 +1274,10 @@ def randint(low, high, size, seed=None, *, dtype=None):
|
|
|
1078
1274
|
r"""
|
|
1079
1275
|
Returns a Tensor whose elements are random integers in the range of [ `low` , `high` ) .
|
|
1080
1276
|
|
|
1277
|
+
.. warning::
|
|
1278
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
1279
|
+
the `seed` parameter has no effect.
|
|
1280
|
+
|
|
1081
1281
|
Args:
|
|
1082
1282
|
low (int): Start value of interval.
|
|
1083
1283
|
high (int): End value of interval.
|
|
@@ -1103,7 +1303,7 @@ def randint(low, high, size, seed=None, *, dtype=None):
|
|
|
1103
1303
|
``Ascend`` ``GPU`` ``CPU``
|
|
1104
1304
|
|
|
1105
1305
|
Examples:
|
|
1106
|
-
>>>
|
|
1306
|
+
>>> from mindspore import ops
|
|
1107
1307
|
>>> print(ops.randint(1, 10, (2,3)))
|
|
1108
1308
|
[[4 9 7]
|
|
1109
1309
|
[9 1 2]]
|
|
@@ -1111,15 +1311,18 @@ def randint(low, high, size, seed=None, *, dtype=None):
|
|
|
1111
1311
|
if dtype is None:
|
|
1112
1312
|
dtype = mstype.int64
|
|
1113
1313
|
elif dtype not in mstype.int_type:
|
|
1114
|
-
raise ValueError(
|
|
1314
|
+
raise ValueError(
|
|
1315
|
+
f"For 'randint', the 'dtype' must be an int type, but got {dtype}.")
|
|
1115
1316
|
if not isinstance(size, tuple):
|
|
1116
|
-
raise ValueError(
|
|
1317
|
+
raise ValueError(
|
|
1318
|
+
f"For 'randint', the input 'size' must be a tuple, but got {size}.")
|
|
1117
1319
|
if not isinstance(low, int) or isinstance(low, bool):
|
|
1118
|
-
raise TypeError(
|
|
1320
|
+
raise TypeError(
|
|
1321
|
+
f"For 'randint_like', 'low' must be an int, but got {type(low)}.")
|
|
1119
1322
|
if not isinstance(high, int) or isinstance(high, bool):
|
|
1120
|
-
raise TypeError(
|
|
1323
|
+
raise TypeError(
|
|
1324
|
+
f"For 'randint_like', 'high' must be an int, but got {type(high)}.")
|
|
1121
1325
|
seed1, seed2 = _get_seed(seed, 'randint')
|
|
1122
|
-
cast_ = P.Cast()
|
|
1123
1326
|
rand_op = P.UniformInt(seed1, seed2)
|
|
1124
1327
|
rand_op = _set_prim_op_user_data(rand_op, "random_cache", False)
|
|
1125
1328
|
low_ = Tensor(low, mstype.int32)
|
|
@@ -1134,6 +1337,10 @@ def randint_like(input, low, high, seed=None, *, dtype=None):
|
|
|
1134
1337
|
Returns a tensor with the same shape as Tensor `input` whose elements are random integers in the range
|
|
1135
1338
|
of [ `low` , `high` ) .
|
|
1136
1339
|
|
|
1340
|
+
.. warning::
|
|
1341
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
1342
|
+
the `seed` parameter has no effect.
|
|
1343
|
+
|
|
1137
1344
|
Args:
|
|
1138
1345
|
input (Tensor): Input Tensor to specify the output shape and its default dtype.
|
|
1139
1346
|
low(int): Start value of interval.
|
|
@@ -1164,20 +1371,23 @@ def randint_like(input, low, high, seed=None, *, dtype=None):
|
|
|
1164
1371
|
[9 1 2]]
|
|
1165
1372
|
"""
|
|
1166
1373
|
if not isinstance(input, Tensor):
|
|
1167
|
-
raise TypeError(
|
|
1374
|
+
raise TypeError(
|
|
1375
|
+
f"For 'randint_like', the 'input' must be a Tensor, but got {type(input)}")
|
|
1168
1376
|
if dtype is None:
|
|
1169
1377
|
dtype = input.dtype
|
|
1170
1378
|
if dtype not in mstype.int_type:
|
|
1171
|
-
raise ValueError(
|
|
1379
|
+
raise ValueError(
|
|
1380
|
+
f"For 'randint_like', the 'dtype' must be an int type, but got {dtype}.")
|
|
1172
1381
|
if not isinstance(low, int) or isinstance(low, bool):
|
|
1173
|
-
raise TypeError(
|
|
1382
|
+
raise TypeError(
|
|
1383
|
+
f"For 'randint_like', 'low' must be an int, but got {type(low)}.")
|
|
1174
1384
|
if not isinstance(high, int) or isinstance(high, bool):
|
|
1175
|
-
raise TypeError(
|
|
1385
|
+
raise TypeError(
|
|
1386
|
+
f"For 'randint_like', 'high' must be an int, but got {type(high)}.")
|
|
1176
1387
|
size = input.shape
|
|
1177
1388
|
seed1, seed2 = _get_seed(seed, 'randint_like')
|
|
1178
1389
|
rand_op = P.UniformInt(seed1, seed2)
|
|
1179
1390
|
rand_op = _set_prim_op_user_data(rand_op, "random_cache", False)
|
|
1180
|
-
cast_ = P.Cast()
|
|
1181
1391
|
low_ = Tensor(low, mstype.int32)
|
|
1182
1392
|
high_ = Tensor(high, mstype.int32)
|
|
1183
1393
|
size_ = Tensor(size, mstype.int32)
|
|
@@ -1234,7 +1444,8 @@ def poisson(shape, mean, seed=None):
|
|
|
1234
1444
|
"""
|
|
1235
1445
|
seed1, seed2 = _get_seed(seed, "poisson")
|
|
1236
1446
|
random_poisson_op = P.Poisson(seed1, seed2)
|
|
1237
|
-
random_poisson_op = _set_prim_op_user_data(
|
|
1447
|
+
random_poisson_op = _set_prim_op_user_data(
|
|
1448
|
+
random_poisson_op, "random_cache", False)
|
|
1238
1449
|
value = random_poisson_op(shape, mean)
|
|
1239
1450
|
return value
|
|
1240
1451
|
|
|
@@ -1274,6 +1485,10 @@ def multinomial(input, num_samples, replacement=True, seed=None):
|
|
|
1274
1485
|
but must be non-negative, finite and have a non-zero sum. When using values as weights, it can be understood as
|
|
1275
1486
|
normalizing the input along the last dimension.
|
|
1276
1487
|
|
|
1488
|
+
.. warning::
|
|
1489
|
+
The Ascend backend does not support the reproducibility of random numbers, so
|
|
1490
|
+
the `seed` parameter has no effect.
|
|
1491
|
+
|
|
1277
1492
|
Args:
|
|
1278
1493
|
input (Tensor): The input tensor containing probabilities, must be 1 or 2 dimensions, with
|
|
1279
1494
|
float32 data type.
|
|
@@ -1284,7 +1499,7 @@ def multinomial(input, num_samples, replacement=True, seed=None):
|
|
|
1284
1499
|
|
|
1285
1500
|
Returns:
|
|
1286
1501
|
Tensor, has the same rows with input. The number of sampled indices of each row is `num_samples`.
|
|
1287
|
-
The dtype is
|
|
1502
|
+
The dtype is int32.
|
|
1288
1503
|
|
|
1289
1504
|
Raises:
|
|
1290
1505
|
TypeError: If `input` is not a Tensor whose dtype is not float32.
|
|
@@ -1329,50 +1544,156 @@ def multinomial(input, num_samples, replacement=True, seed=None):
|
|
|
1329
1544
|
>>> # [[0 0 0 0 0 0 0 0 1 0]
|
|
1330
1545
|
>>> # [1 1 1 1 1 0 1 1 1 1]]
|
|
1331
1546
|
"""
|
|
1332
|
-
shape = _get_cache_prim(P.Shape)()
|
|
1333
|
-
reshape = _get_cache_prim(P.Reshape)()
|
|
1334
|
-
|
|
1335
1547
|
def _check_valid_dim(dim, name):
|
|
1336
1548
|
if dim not in (1, 2):
|
|
1337
|
-
raise ValueError(
|
|
1549
|
+
raise ValueError(
|
|
1550
|
+
f"For '{name}', the dimension of inputs must be 1d or 2d, but got {dim}.")
|
|
1338
1551
|
|
|
1339
|
-
_check_valid_dim(len(
|
|
1552
|
+
_check_valid_dim(len(shape_(input)), "multinomial")
|
|
1340
1553
|
seed1, seed2 = _get_seed(seed, "multinomial")
|
|
1341
1554
|
if not replacement:
|
|
1342
|
-
if
|
|
1555
|
+
if shape_(input)[-1] < num_samples:
|
|
1343
1556
|
const_utils.raise_value_error(f"For 'multinomial', the 'num_samples' must be less than "
|
|
1344
1557
|
f"the last dimension of input without 'replacement', "
|
|
1345
1558
|
f"but got 'num_samples': {num_samples} and "
|
|
1346
1559
|
f"'replacement': {replacement}")
|
|
1347
1560
|
n_dist = 1
|
|
1348
|
-
if len(
|
|
1349
|
-
n_dist =
|
|
1561
|
+
if len(shape_(input)) > 1:
|
|
1562
|
+
n_dist = shape_(input)[-2]
|
|
1350
1563
|
random_uniform_real = P.UniformReal(seed1, seed2)
|
|
1351
|
-
random_cache_op = _set_prim_op_user_data(
|
|
1352
|
-
|
|
1564
|
+
random_cache_op = _set_prim_op_user_data(
|
|
1565
|
+
random_uniform_real, "random_cache", False)
|
|
1566
|
+
random_uniform = random_cache_op((n_dist * shape_(input)[-1],))
|
|
1353
1567
|
if n_dist != 1:
|
|
1354
|
-
random_uniform =
|
|
1355
|
-
|
|
1356
|
-
log = _get_cache_prim(P.Log)()
|
|
1357
|
-
top_k = _get_cache_prim(P.TopK)()
|
|
1568
|
+
random_uniform = reshape_(
|
|
1569
|
+
random_uniform, (n_dist, shape_(input)[-1]))
|
|
1358
1570
|
|
|
1359
|
-
vals =
|
|
1360
|
-
_, indices =
|
|
1571
|
+
vals = real_div_(log_(random_uniform), input + 1e-6)
|
|
1572
|
+
_, indices = top_k_(vals, num_samples)
|
|
1361
1573
|
return indices
|
|
1362
1574
|
random_nomial = P.Multinomial(seed1, seed2)
|
|
1363
|
-
random_nomial = _set_prim_op_user_data(
|
|
1575
|
+
random_nomial = _set_prim_op_user_data(
|
|
1576
|
+
random_nomial, "random_cache", False)
|
|
1364
1577
|
return random_nomial(input, num_samples)
|
|
1365
1578
|
|
|
1366
1579
|
|
|
1580
|
+
@_function_forbid_reuse
|
|
1581
|
+
def multinomial_ext(input, num_samples, replacement=False, *, generator=None):
|
|
1582
|
+
r"""
|
|
1583
|
+
Returns a tensor sampled from the multinomial probability distribution located in the corresponding
|
|
1584
|
+
row of the input tensor.
|
|
1585
|
+
|
|
1586
|
+
The polynomial distribution is a probability distribution that generalizes the binomial distribution formula to
|
|
1587
|
+
multiple states. In the polynomial distribution, each event has a fixed probability, and the sum of these
|
|
1588
|
+
probabilities is 1. The purpose of the `mindspore.mint.multinomial` interface is to perform `num_samples` sampling
|
|
1589
|
+
on the input `input`, and the output tensor is the index of the input tensor for each sampling.
|
|
1590
|
+
The values in `input` represent the probability of selecting the corresponding index for each sampling.
|
|
1591
|
+
|
|
1592
|
+
Here is an extreme example for better understanding. Suppose we have an input probability tensor with
|
|
1593
|
+
values `Tensor([90 / 100, 10 / 100, 0], mindspore.float32)`, which means we can sample three indices,
|
|
1594
|
+
namely index 0, index 1, and index 2, with probabilities of 90%, 10%, and 0%, respectively. We perform n samplings,
|
|
1595
|
+
and the resulting sequence is the calculation result of the polynomial distribution, with a length equal to the
|
|
1596
|
+
number of samplings.
|
|
1597
|
+
|
|
1598
|
+
In case 1 of the sample code, we perform two non-replacement samplings (`replacement` is `False`).
|
|
1599
|
+
The calculation result is most likely `[0, 1]`, and less likely `[1, 0]`. Since the probability of selecting
|
|
1600
|
+
index 0 is 90% for each sampling, the first result is most likely to be index 0. Since the probability of selecting
|
|
1601
|
+
index 2 is 0, index 2 cannot appear in the sampling result. Therefore, the second result must be index 1,
|
|
1602
|
+
and the resulting sequence is `[0, 1]`.
|
|
1603
|
+
|
|
1604
|
+
In case 2 of the sample code, we perform 10 replacement samplings (`replacement` is `True`).
|
|
1605
|
+
As expected, about 90% of the sampling results are index 0.
|
|
1606
|
+
|
|
1607
|
+
In case 3 of the sample code, we extend the input to 2 dimensions, and the sampling results
|
|
1608
|
+
in each dimension also match our sampling expectations.
|
|
1609
|
+
|
|
1610
|
+
Note:
|
|
1611
|
+
The rows of input do not need to sum to one (in which case we use the values as weights),
|
|
1612
|
+
but must be non-negative, finite and have a non-zero sum.
|
|
1613
|
+
When using values as weights, it can be understood as normalizing the input along the last dimension.
|
|
1614
|
+
|
|
1615
|
+
.. warning::
|
|
1616
|
+
This is an experimental API that is subject to change or deletion.
|
|
1617
|
+
|
|
1618
|
+
Args:
|
|
1619
|
+
input (Tensor): The input tensor containing probabilities, must be 1 or 2 dimensions, with float32 data type.
|
|
1620
|
+
num_samples (int): Number of samples to draw.
|
|
1621
|
+
replacement (bool, optional): Whether to draw with replacement or not. Default: ``False`` .
|
|
1622
|
+
|
|
1623
|
+
Keyword Args:
|
|
1624
|
+
generator (generator, optional): MindSpore generator. Default: ``None``.
|
|
1625
|
+
|
|
1626
|
+
Returns:
|
|
1627
|
+
Tensor, dtype is Int64.
|
|
1628
|
+
If `input` is a vector, out is a vector of size `num_samples`.
|
|
1629
|
+
If `input` is a matrix with m rows, out is an matrix of shape(m * num_samples).
|
|
1630
|
+
|
|
1631
|
+
Raises:
|
|
1632
|
+
TypeError: If `input` is not a Tensor whose dtype is not in float16, float32, float64 or bfloat16.
|
|
1633
|
+
, 或是shape为(1, 1)的Tensor
|
|
1634
|
+
TypeError: If `num_samples` is not an int, a Scalar of int
|
|
1635
|
+
or a Tensor with shape[1,] and only one int element.
|
|
1636
|
+
RuntimeError: If :math:`\text{num_samples} <= 0`.
|
|
1637
|
+
RuntimeError: If `replacement` is False, :math:`\text{num_samples} > shape` of the last dimension of `input`.
|
|
1638
|
+
RuntimeError: If shape of the last dimension of `input` exceeds ``2^24``.
|
|
1639
|
+
|
|
1640
|
+
Supported Platforms:
|
|
1641
|
+
``Ascend``
|
|
1642
|
+
|
|
1643
|
+
Examples:
|
|
1644
|
+
>>> import mindspore
|
|
1645
|
+
>>> from mindspore import Tensor, ops
|
|
1646
|
+
>>> from mindspore import dtype as mstype
|
|
1647
|
+
>>> # case 1: The output is random, and the length of the output is the same as num_sample.
|
|
1648
|
+
>>> # replacement is False.
|
|
1649
|
+
>>> input1 = Tensor([90 / 100, 10 / 100, 0], mindspore.float32)
|
|
1650
|
+
>>> input2 = Tensor([90, 10, 0], mindspore.float32)
|
|
1651
|
+
>>> # input1 and input2 have the same meaning.
|
|
1652
|
+
>>> output1 = ops.multinomial_ext(input1, 2)
|
|
1653
|
+
>>> output2 = ops.multinomial_ext(input2, 2)
|
|
1654
|
+
>>> # print(output1)
|
|
1655
|
+
>>> # [0 1]
|
|
1656
|
+
>>> # print(output2)
|
|
1657
|
+
>>> # [0 1]
|
|
1658
|
+
>>> print(len(output1))
|
|
1659
|
+
2
|
|
1660
|
+
>>> print(len(output2))
|
|
1661
|
+
2
|
|
1662
|
+
>>> # case 2: The output is random, and the length of the output is the same as num_sample.
|
|
1663
|
+
>>> # replacement is True.
|
|
1664
|
+
>>> output3 = ops.multinomial_ext(input1, 10, replacement=True)
|
|
1665
|
+
>>> # print(output3)
|
|
1666
|
+
>>> # [0 0 1 0 0 0 0 0 0 0]
|
|
1667
|
+
>>> print(len(output3))
|
|
1668
|
+
10
|
|
1669
|
+
>>> # case 3: The output is random, and the length of the output is the same as num_sample.
|
|
1670
|
+
>>> # replacement is True.
|
|
1671
|
+
>>> # rank is 2
|
|
1672
|
+
>>> input4 = Tensor([[90, 10, 0], [10, 90, 0]], mstype.float32)
|
|
1673
|
+
>>> output4 = ops.multinomial_ext(input4, 10, replacement=True)
|
|
1674
|
+
>>> # print(output4)
|
|
1675
|
+
>>> # [[0 0 0 0 0 0 0 0 1 0]
|
|
1676
|
+
>>> # [1 1 1 1 1 0 1 1 1 1]]
|
|
1677
|
+
"""
|
|
1678
|
+
|
|
1679
|
+
if generator is None:
|
|
1680
|
+
generator = default_generator
|
|
1681
|
+
seed, offset = generator._step(generator_step_) # pylint: disable=protected-access
|
|
1682
|
+
return multinomial_ext_(input, num_samples, replacement, seed, offset)
|
|
1683
|
+
|
|
1684
|
+
|
|
1367
1685
|
def _check_shape(input_shape):
|
|
1368
1686
|
"""Check 'shape' value."""
|
|
1369
1687
|
if not isinstance(input_shape, tuple):
|
|
1370
|
-
const_utils.raise_type_error(
|
|
1688
|
+
const_utils.raise_type_error(
|
|
1689
|
+
f"Type of 'shape' must be tuple, but got: {type(input_shape)}")
|
|
1371
1690
|
for item in input_shape:
|
|
1372
1691
|
if not isinstance(item, int):
|
|
1373
|
-
const_utils.raise_type_error(
|
|
1692
|
+
const_utils.raise_type_error(
|
|
1693
|
+
f"Elements of 'shape' must be int, but got: {type(item)}")
|
|
1374
1694
|
if item < 1:
|
|
1375
|
-
const_utils.raise_value_error(
|
|
1695
|
+
const_utils.raise_value_error(
|
|
1696
|
+
f"Elements of 'shape' must be positive int, but got: {item}")
|
|
1376
1697
|
return True
|
|
1377
1698
|
|
|
1378
1699
|
|
|
@@ -1387,7 +1708,8 @@ def _check_param(op_name, param_name, param_value):
|
|
|
1387
1708
|
__all__ = [
|
|
1388
1709
|
'standard_laplace', 'random_categorical', 'uniform', 'standard_normal', 'random_gamma',
|
|
1389
1710
|
'uniform_candidate_sampler', 'random_poisson', 'log_uniform_candidate_sampler', 'shuffle', 'choice_with_mask',
|
|
1390
|
-
'normal', 'laplace', 'gamma', 'poisson', 'multinomial', 'rand', 'rand_like',
|
|
1391
|
-
'
|
|
1711
|
+
'normal', 'laplace', 'gamma', 'poisson', 'multinomial', 'rand', 'rand_like',
|
|
1712
|
+
'randn', 'randn_like',
|
|
1713
|
+
'randint', 'randint_like', 'multinomial_with_replacement', 'randperm'
|
|
1392
1714
|
]
|
|
1393
1715
|
__all__.sort()
|