mindspore 2.1.0__cp39-cp39-win_amd64.whl → 2.2.10__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 +4 -1
- 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/_check_jit_forbidden_api.py +3 -1
- mindspore/_checkparam.py +23 -29
- mindspore/_extends/graph_kernel/__init__.py +0 -1
- mindspore/_extends/graph_kernel/model/graph_split.py +84 -76
- mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
- mindspore/_extends/graph_kernel/splitter.py +4 -11
- mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
- mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +84 -67
- mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
- mindspore/_extends/parallel_compile/akg_compiler/util.py +10 -7
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +6 -5
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
- mindspore/_extends/parse/__init__.py +12 -15
- mindspore/_extends/parse/namespace.py +7 -33
- mindspore/_extends/parse/parser.py +61 -71
- mindspore/_extends/parse/resources.py +1 -1
- mindspore/_extends/parse/standard_method.py +74 -104
- mindspore/_extends/parse/trope.py +1 -1
- mindspore/_extends/remote/kernel_build_server.py +25 -7
- mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
- mindspore/_install_custom.py +43 -0
- mindspore/amp.py +47 -11
- mindspore/atlprov.dll +0 -0
- mindspore/boost/boost.py +1 -8
- mindspore/boost/boost_cell_wrapper.py +3 -2
- mindspore/boost/grad_accumulation.py +1 -1
- mindspore/boost/group_loss_scale_manager.py +8 -7
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +5 -3
- mindspore/common/_jit_fallback_utils.py +6 -0
- mindspore/common/_register_for_adapter.py +2 -0
- mindspore/common/_register_for_tensor.py +2 -2
- mindspore/common/_stub_tensor.py +13 -0
- mindspore/common/_utils.py +13 -0
- mindspore/common/api.py +174 -259
- mindspore/common/auto_dynamic_shape.py +494 -0
- mindspore/common/dtype.py +18 -11
- mindspore/common/dump.py +6 -4
- mindspore/common/initializer.py +14 -14
- mindspore/common/jit_config.py +33 -15
- mindspore/common/lazy_inline.py +126 -7
- mindspore/common/mindir_util.py +101 -0
- mindspore/common/parameter.py +51 -41
- mindspore/common/seed.py +4 -4
- mindspore/common/sparse_tensor.py +13 -14
- mindspore/common/tensor.py +243 -165
- mindspore/communication/__init__.py +7 -4
- mindspore/communication/_comm_helper.py +83 -4
- mindspore/communication/management.py +152 -84
- mindspore/config/op_info.config +14 -3
- mindspore/context.py +152 -61
- mindspore/dataset/__init__.py +5 -5
- mindspore/dataset/audio/__init__.py +2 -2
- mindspore/dataset/audio/transforms.py +52 -52
- mindspore/dataset/callback/ds_callback.py +16 -2
- mindspore/dataset/core/config.py +68 -51
- mindspore/dataset/engine/cache_client.py +28 -5
- mindspore/dataset/engine/datasets.py +250 -112
- mindspore/dataset/engine/datasets_audio.py +43 -211
- mindspore/dataset/engine/datasets_standard_format.py +16 -35
- mindspore/dataset/engine/datasets_text.py +43 -67
- mindspore/dataset/engine/datasets_user_defined.py +86 -100
- mindspore/dataset/engine/datasets_vision.py +219 -1029
- mindspore/dataset/engine/iterators.py +11 -4
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
- mindspore/dataset/engine/obs/util.py +3 -0
- mindspore/dataset/engine/samplers.py +1 -1
- mindspore/dataset/engine/validators.py +19 -5
- mindspore/dataset/text/__init__.py +3 -3
- mindspore/dataset/text/transforms.py +101 -127
- mindspore/dataset/text/utils.py +205 -138
- mindspore/dataset/transforms/__init__.py +1 -1
- mindspore/dataset/transforms/py_transforms_util.py +40 -12
- mindspore/dataset/transforms/transforms.py +95 -40
- mindspore/dataset/utils/browse_dataset.py +8 -2
- mindspore/dataset/utils/line_reader.py +17 -19
- mindspore/dataset/vision/__init__.py +3 -3
- mindspore/dataset/vision/c_transforms.py +6 -3
- mindspore/dataset/vision/transforms.py +409 -287
- mindspore/dataset/vision/utils.py +13 -14
- mindspore/dataset/vision/validators.py +11 -1
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/map_parameter.py +14 -0
- mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
- mindspore/{nn/optim_ex → experimental/optim}/adam.py +60 -67
- mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
- mindspore/experimental/optim/lr_scheduler.py +1427 -0
- mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
- mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
- mindspore/gen_ops.py +273 -0
- mindspore/include/OWNERS +0 -1
- mindspore/include/api/data_type.h +2 -1
- mindspore/include/api/graph.h +0 -15
- mindspore/include/api/kernel.h +2 -0
- mindspore/include/api/kernel_api.h +37 -12
- mindspore/include/api/model.h +17 -14
- mindspore/include/api/status.h +8 -3
- mindspore/include/api/types.h +37 -4
- mindspore/include/c_api/ms/abstract.h +67 -0
- mindspore/include/c_api/ms/attribute.h +197 -0
- mindspore/include/c_api/ms/base/handle_types.h +43 -0
- mindspore/include/c_api/ms/base/macros.h +32 -0
- mindspore/include/c_api/ms/base/status.h +33 -0
- mindspore/include/c_api/ms/base/types.h +282 -0
- mindspore/include/c_api/ms/context.h +102 -0
- mindspore/include/c_api/ms/graph.h +160 -0
- mindspore/include/c_api/ms/node.h +606 -0
- mindspore/include/c_api/ms/tensor.h +161 -0
- mindspore/include/c_api/ms/value.h +84 -0
- mindspore/include/dataset/constants.h +6 -5
- mindspore/include/dataset/execute.h +23 -13
- mindspore/include/dataset/text.h +26 -26
- mindspore/include/dataset/transforms.h +13 -13
- mindspore/include/dataset/vision.h +60 -60
- mindspore/include/dataset/vision_ascend.h +5 -6
- mindspore/include/dataset/vision_lite.h +17 -17
- mindspore/jpeg62.dll +0 -0
- mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
- mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
- 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_shared_lib.dll +0 -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/nn/__init__.py +0 -2
- mindspore/nn/cell.py +313 -74
- mindspore/nn/dynamic_lr.py +21 -21
- mindspore/nn/layer/activation.py +22 -30
- mindspore/nn/layer/basic.py +15 -13
- mindspore/nn/layer/channel_shuffle.py +1 -1
- mindspore/nn/layer/container.py +271 -9
- mindspore/nn/layer/conv.py +323 -204
- mindspore/nn/layer/dense.py +8 -5
- mindspore/nn/layer/embedding.py +33 -27
- mindspore/nn/layer/flash_attention.py +141 -88
- mindspore/nn/layer/image.py +8 -6
- mindspore/nn/layer/math.py +16 -25
- mindspore/nn/layer/normalization.py +107 -66
- mindspore/nn/layer/padding.py +1 -1
- mindspore/nn/layer/pooling.py +131 -109
- mindspore/nn/layer/rnn_cells.py +27 -22
- mindspore/nn/layer/rnns.py +13 -16
- mindspore/nn/layer/thor_layer.py +1 -1
- mindspore/nn/layer/transformer.py +221 -154
- mindspore/nn/learning_rate_schedule.py +9 -1
- mindspore/nn/loss/loss.py +235 -174
- mindspore/nn/optim/ada_grad.py +2 -1
- mindspore/nn/optim/adadelta.py +1 -0
- mindspore/nn/optim/adafactor.py +2 -1
- mindspore/nn/optim/adam.py +7 -4
- mindspore/nn/optim/adamax.py +3 -2
- mindspore/nn/optim/adasum.py +2 -2
- mindspore/nn/optim/asgd.py +2 -3
- mindspore/nn/optim/ftrl.py +6 -5
- mindspore/nn/optim/lamb.py +7 -4
- mindspore/nn/optim/lars.py +1 -1
- mindspore/nn/optim/lazyadam.py +5 -3
- mindspore/nn/optim/momentum.py +2 -1
- mindspore/nn/optim/optimizer.py +53 -4
- mindspore/nn/optim/proximal_ada_grad.py +3 -4
- mindspore/nn/optim/rmsprop.py +4 -3
- mindspore/nn/optim/rprop.py +23 -12
- mindspore/nn/optim/sgd.py +26 -11
- mindspore/nn/optim/thor.py +9 -7
- mindspore/nn/probability/bijector/bijector.py +5 -5
- mindspore/nn/probability/bijector/power_transform.py +27 -27
- mindspore/nn/probability/bijector/softplus.py +3 -3
- mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
- mindspore/nn/probability/distribution/bernoulli.py +5 -5
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +7 -7
- mindspore/nn/probability/distribution/cauchy.py +0 -1
- mindspore/nn/probability/distribution/distribution.py +3 -3
- mindspore/nn/probability/distribution/gamma.py +3 -3
- mindspore/nn/probability/distribution/geometric.py +4 -4
- mindspore/nn/probability/distribution/gumbel.py +4 -4
- mindspore/nn/probability/distribution/log_normal.py +2 -2
- mindspore/nn/probability/distribution/logistic.py +2 -2
- mindspore/nn/probability/distribution/poisson.py +4 -4
- mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
- mindspore/nn/probability/distribution/uniform.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +84 -34
- mindspore/nn/wrap/grad_reducer.py +8 -5
- mindspore/nn/wrap/loss_scale.py +105 -42
- mindspore/numpy/array_creations.py +1 -2
- mindspore/numpy/array_ops.py +3 -2
- mindspore/numpy/utils_const.py +5 -5
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/_grad_experimental/__init__.py +0 -5
- mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
- mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
- mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
- mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
- mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
- mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
- mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
- mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
- mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +165 -109
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +144 -86
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +172 -187
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +51 -57
- mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +6 -17
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +1 -1
- mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
- mindspore/ops/_op_impl/aicpu/add.py +3 -3
- mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
- mindspore/ops/_op_impl/aicpu/eps.py +32 -0
- mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
- mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
- mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
- mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
- mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
- mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
- mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
- mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
- mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
- mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
- mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
- mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
- mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
- mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
- mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
- mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
- mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
- mindspore/ops/_op_impl/tbe/__init__.py +4 -4
- mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
- mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
- mindspore/ops/_primitive_cache.py +1 -1
- mindspore/ops/_tracefunc.py +45 -13
- mindspore/ops/_utils/utils.py +6 -1
- mindspore/ops/_vmap/vmap_array_ops.py +3 -3
- mindspore/ops/_vmap/vmap_base.py +3 -3
- mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
- mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
- mindspore/ops/_vmap/vmap_math_ops.py +5 -2
- mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
- mindspore/ops/arg_dtype_cast.py +54 -0
- mindspore/ops/composite/base.py +37 -10
- mindspore/ops/composite/math_ops.py +5 -4
- mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
- mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
- mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
- mindspore/ops/deprecated.py +304 -0
- mindspore/ops/function/__init__.py +4 -1
- mindspore/ops/function/array_func.py +174 -193
- mindspore/ops/function/clip_func.py +81 -13
- mindspore/ops/function/debug_func.py +1 -1
- mindspore/ops/function/grad/grad_func.py +18 -9
- mindspore/ops/function/image_func.py +10 -4
- mindspore/ops/function/linalg_func.py +5 -5
- mindspore/ops/function/math_func.py +575 -386
- mindspore/ops/function/nn_func.py +568 -260
- mindspore/ops/function/random_func.py +88 -57
- mindspore/ops/function/sparse_func.py +1 -1
- mindspore/ops/function/sparse_unary_func.py +14 -12
- mindspore/ops/function/vmap_func.py +6 -5
- mindspore/ops/functional.py +15 -10
- mindspore/ops/op_info_register.py +244 -25
- mindspore/ops/operations/__init__.py +28 -19
- mindspore/ops/operations/_grad_ops.py +72 -7
- mindspore/ops/operations/_inner_ops.py +350 -17
- mindspore/ops/operations/_quant_ops.py +4 -8
- mindspore/ops/operations/_sequence_ops.py +42 -0
- mindspore/ops/operations/array_ops.py +68 -282
- mindspore/ops/operations/comm_ops.py +107 -59
- mindspore/ops/operations/custom_ops.py +94 -70
- mindspore/ops/operations/debug_ops.py +8 -4
- mindspore/ops/operations/image_ops.py +18 -12
- mindspore/ops/operations/inner_ops.py +26 -3
- mindspore/ops/operations/math_ops.py +189 -141
- mindspore/ops/operations/nn_ops.py +794 -489
- mindspore/ops/operations/other_ops.py +0 -22
- mindspore/ops/operations/random_ops.py +53 -111
- mindspore/ops/operations/sparse_ops.py +3 -1
- mindspore/ops/primitive.py +24 -18
- mindspore/parallel/_auto_parallel_context.py +68 -8
- mindspore/parallel/_cost_model_context.py +2 -2
- mindspore/parallel/_offload_context.py +17 -3
- mindspore/parallel/_parallel_serialization.py +12 -5
- mindspore/parallel/_ps_context.py +12 -0
- mindspore/parallel/_tensor.py +18 -13
- mindspore/parallel/_transformer/layers.py +5 -3
- mindspore/parallel/_transformer/loss.py +1 -0
- mindspore/parallel/_transformer/moe.py +2 -2
- mindspore/parallel/_transformer/op_parallel_config.py +12 -1
- mindspore/parallel/_transformer/transformer.py +23 -3
- mindspore/parallel/_utils.py +11 -7
- mindspore/parallel/algo_parameter_config.py +85 -5
- mindspore/parallel/checkpoint_transform.py +19 -12
- mindspore/parallel/shard.py +21 -14
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/common/struct_type.py +3 -3
- mindspore/profiler/common/util.py +4 -2
- mindspore/profiler/envprofiling.py +1 -1
- mindspore/profiler/parser/aicpu_data_parser.py +5 -3
- mindspore/profiler/parser/ascend_flops_generator.py +2 -2
- mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
- mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
- mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
- mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
- mindspore/profiler/parser/ascend_op_generator.py +6 -6
- mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
- mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
- mindspore/profiler/parser/base_timeline_generator.py +10 -8
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
- mindspore/profiler/parser/flops_parser.py +15 -11
- mindspore/profiler/parser/framework_parser.py +38 -22
- mindspore/profiler/parser/hccl_parser.py +16 -12
- mindspore/profiler/parser/integrator.py +22 -11
- mindspore/profiler/parser/memory_usage_parser.py +2 -2
- mindspore/profiler/parser/minddata_analyzer.py +12 -14
- mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
- mindspore/profiler/parser/msadvisor_parser.py +8 -4
- mindspore/profiler/parser/op_intermediate_parser.py +5 -2
- mindspore/profiler/parser/optime_parser.py +1 -1
- mindspore/profiler/parser/profiler_info.py +21 -2
- mindspore/profiler/parser/step_trace_parser.py +11 -14
- mindspore/profiler/profiling.py +179 -89
- mindspore/rewrite/api/node.py +102 -19
- mindspore/rewrite/api/node_type.py +5 -1
- mindspore/rewrite/api/pattern_engine.py +1 -1
- mindspore/rewrite/api/scoped_value.py +9 -17
- mindspore/rewrite/api/symbol_tree.py +131 -47
- mindspore/rewrite/ast_helpers/__init__.py +2 -1
- mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
- mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
- mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
- mindspore/rewrite/common/rewrite_elog.py +5 -1
- mindspore/rewrite/namer.py +33 -24
- mindspore/rewrite/namespace.py +14 -5
- mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
- mindspore/rewrite/node/call_function.py +79 -0
- mindspore/rewrite/node/cell_container.py +135 -0
- mindspore/rewrite/node/control_flow.py +88 -0
- mindspore/rewrite/{node.py → node/node.py} +273 -234
- mindspore/rewrite/node/node_manager.py +254 -0
- mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
- mindspore/rewrite/parsers/arguments_parser.py +22 -21
- mindspore/rewrite/parsers/assign_parser.py +216 -221
- mindspore/rewrite/parsers/attribute_parser.py +9 -7
- mindspore/rewrite/parsers/class_def_parser.py +174 -113
- mindspore/rewrite/parsers/constant_parser.py +9 -6
- mindspore/rewrite/parsers/container_parser.py +9 -7
- mindspore/rewrite/parsers/for_parser.py +36 -15
- mindspore/rewrite/parsers/function_def_parser.py +24 -16
- mindspore/rewrite/parsers/if_parser.py +28 -24
- mindspore/rewrite/parsers/module_parser.py +196 -25
- mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
- mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
- mindspore/rewrite/parsers/return_parser.py +6 -6
- mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
- mindspore/rewrite/sparsify/utils.py +1 -1
- mindspore/rewrite/symbol_tree.py +523 -578
- mindspore/rewrite/symbol_tree_builder.py +9 -193
- mindspore/rewrite/symbol_tree_dumper.py +2 -2
- mindspore/run_check/_check_version.py +6 -4
- mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
- mindspore/safeguard/rewrite_obfuscation.py +541 -0
- mindspore/tbbmalloc.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/_utils.py +7 -3
- mindspore/train/amp.py +323 -123
- mindspore/train/anf_ir_pb2.py +14 -2
- mindspore/train/callback/_backup_and_restore.py +2 -12
- mindspore/train/callback/_callback.py +29 -4
- mindspore/train/callback/_checkpoint.py +23 -8
- mindspore/train/callback/_early_stop.py +2 -2
- mindspore/train/callback/_landscape.py +4 -4
- mindspore/train/callback/_loss_monitor.py +2 -2
- mindspore/train/callback/_on_request_exit.py +2 -2
- mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
- mindspore/train/callback/_summary_collector.py +15 -8
- mindspore/train/callback/_time_monitor.py +58 -5
- mindspore/train/data_sink.py +5 -11
- mindspore/train/dataset_helper.py +84 -57
- mindspore/train/loss_scale_manager.py +2 -2
- mindspore/train/metrics/__init__.py +3 -3
- mindspore/train/metrics/cosine_similarity.py +1 -1
- mindspore/train/metrics/hausdorff_distance.py +3 -2
- mindspore/train/metrics/mean_surface_distance.py +3 -2
- mindspore/train/metrics/metric.py +39 -19
- mindspore/train/metrics/roc.py +2 -2
- mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
- mindspore/train/mind_ir_pb2.py +85 -36
- mindspore/train/model.py +187 -47
- mindspore/train/serialization.py +487 -161
- mindspore/train/summary/_summary_adapter.py +1 -1
- mindspore/train/summary/_writer_pool.py +3 -2
- mindspore/train/summary/summary_record.py +37 -17
- mindspore/train/train_thor/convert_utils.py +3 -3
- mindspore/train/train_thor/dataset_helper.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/vcmeta.dll +0 -0
- mindspore/vcruntime140.dll +0 -0
- mindspore/vcruntime140_1.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/METADATA +5 -3
- {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/RECORD +433 -479
- mindspore/_extends/graph_kernel/expander.py +0 -80
- mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
- mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
- mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
- mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
- mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
- mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
- mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
- mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
- mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
- mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
- mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
- mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
- mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
- mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
- mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
- mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
- mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
- mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
- mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
- mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
- mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
- mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
- mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
- mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
- mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
- mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
- mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
- mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
- mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
- mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
- mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
- mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
- mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
- mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
- mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
- mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
- mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
- mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
- mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
- mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
- mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
- mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
- mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
- mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
- mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
- mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
- mindspore/dataset/datapreprocess/__init__.py +0 -20
- mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
- mindspore/include/api/net.h +0 -142
- mindspore/nn/lr_scheduler.py +0 -262
- mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
- mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
- mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
- mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
- mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
- mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
- mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
- mindspore/rewrite/node_visitor.py +0 -44
- {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/WHEEL +0 -0
- {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/entry_points.txt +0 -0
- {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/top_level.txt +0 -0
|
@@ -196,6 +196,9 @@ class SequenceSlice(Primitive):
|
|
|
196
196
|
"""Initialize SequenceSlice"""
|
|
197
197
|
self.init_prim_io_names(inputs=['seq', 'start', 'stop', 'step'], outputs=['output_data'])
|
|
198
198
|
|
|
199
|
+
def __call__(self, sequence, start, stop, step):
|
|
200
|
+
return sequence[start:stop:step]
|
|
201
|
+
|
|
199
202
|
|
|
200
203
|
class InSequence(Primitive):
|
|
201
204
|
r"""
|
|
@@ -223,6 +226,9 @@ class InSequence(Primitive):
|
|
|
223
226
|
"""Initialize ListAppend"""
|
|
224
227
|
self.init_prim_io_names(inputs=['element', 'input_data'], outputs=['output_data'])
|
|
225
228
|
|
|
229
|
+
def __call__(self, target, sequence):
|
|
230
|
+
return target in sequence
|
|
231
|
+
|
|
226
232
|
|
|
227
233
|
class SequenceSliceSetItem(Primitive):
|
|
228
234
|
r"""
|
|
@@ -291,6 +297,9 @@ class SequenceAdd(Primitive):
|
|
|
291
297
|
"""Initialize SequenceAdd"""
|
|
292
298
|
self.init_prim_io_names(inputs=['input_1', 'input_2'], outputs=['output_data'])
|
|
293
299
|
|
|
300
|
+
def __call__(self, x, y):
|
|
301
|
+
return x + y
|
|
302
|
+
|
|
294
303
|
|
|
295
304
|
class SequenceAddOffset(Primitive):
|
|
296
305
|
r"""
|
|
@@ -536,6 +545,9 @@ class SequenceCount(Primitive):
|
|
|
536
545
|
"""Initialize SequenceCount"""
|
|
537
546
|
self.init_prim_io_names(inputs=['sequence', 'target'], outputs=['output_data'])
|
|
538
547
|
|
|
548
|
+
def __call__(self, sequence, target):
|
|
549
|
+
return sequence.count(target)
|
|
550
|
+
|
|
539
551
|
|
|
540
552
|
class SequenceIndex(Primitive):
|
|
541
553
|
r"""
|
|
@@ -566,6 +578,9 @@ class SequenceIndex(Primitive):
|
|
|
566
578
|
"""Initialize SequenceIndex"""
|
|
567
579
|
self.init_prim_io_names(inputs=['sequence', 'target', 'start', 'end'], outputs=['output_data'])
|
|
568
580
|
|
|
581
|
+
def __call__(self, sequence, target, start=None, end=None):
|
|
582
|
+
return sequence.index(target, start, end)
|
|
583
|
+
|
|
569
584
|
|
|
570
585
|
class SequenceMul(Primitive):
|
|
571
586
|
r"""
|
|
@@ -594,6 +609,9 @@ class SequenceMul(Primitive):
|
|
|
594
609
|
"""Initialize SequenceMul"""
|
|
595
610
|
self.init_prim_io_names(inputs=['sequence', 'scalar'], outputs=['output_data'])
|
|
596
611
|
|
|
612
|
+
def __call__(self, sequence, scalar):
|
|
613
|
+
return sequence * scalar
|
|
614
|
+
|
|
597
615
|
|
|
598
616
|
class SequenceZerosLike(Primitive):
|
|
599
617
|
r"""
|
|
@@ -946,6 +964,9 @@ class tuple_greater_than(Primitive):
|
|
|
946
964
|
self.init_prim_io_names(
|
|
947
965
|
inputs=['input_0', 'input_1'], outputs=['output_data'])
|
|
948
966
|
|
|
967
|
+
def __call__(self, x, y):
|
|
968
|
+
return x > y
|
|
969
|
+
|
|
949
970
|
|
|
950
971
|
class tuple_greater_equal(Primitive):
|
|
951
972
|
r"""
|
|
@@ -974,6 +995,9 @@ class tuple_greater_equal(Primitive):
|
|
|
974
995
|
self.init_prim_io_names(
|
|
975
996
|
inputs=['input_0', 'input_1'], outputs=['output_data'])
|
|
976
997
|
|
|
998
|
+
def __call__(self, x, y):
|
|
999
|
+
return x >= y
|
|
1000
|
+
|
|
977
1001
|
|
|
978
1002
|
class list_greater_than(Primitive):
|
|
979
1003
|
r"""
|
|
@@ -1002,6 +1026,9 @@ class list_greater_than(Primitive):
|
|
|
1002
1026
|
self.init_prim_io_names(
|
|
1003
1027
|
inputs=['input_0', 'input_1'], outputs=['output_data'])
|
|
1004
1028
|
|
|
1029
|
+
def __call__(self, x, y):
|
|
1030
|
+
return x > y
|
|
1031
|
+
|
|
1005
1032
|
|
|
1006
1033
|
class list_greater_equal(Primitive):
|
|
1007
1034
|
r"""
|
|
@@ -1030,6 +1057,9 @@ class list_greater_equal(Primitive):
|
|
|
1030
1057
|
self.init_prim_io_names(
|
|
1031
1058
|
inputs=['input_0', 'input_1'], outputs=['output_data'])
|
|
1032
1059
|
|
|
1060
|
+
def __call__(self, x, y):
|
|
1061
|
+
return x >= y
|
|
1062
|
+
|
|
1033
1063
|
|
|
1034
1064
|
class tuple_lt(Primitive):
|
|
1035
1065
|
r"""
|
|
@@ -1058,6 +1088,9 @@ class tuple_lt(Primitive):
|
|
|
1058
1088
|
self.init_prim_io_names(
|
|
1059
1089
|
inputs=['input_0', 'input_1'], outputs=['output_data'])
|
|
1060
1090
|
|
|
1091
|
+
def __call__(self, x, y):
|
|
1092
|
+
return x < y
|
|
1093
|
+
|
|
1061
1094
|
|
|
1062
1095
|
class list_lt(Primitive):
|
|
1063
1096
|
r"""
|
|
@@ -1086,6 +1119,9 @@ class list_lt(Primitive):
|
|
|
1086
1119
|
self.init_prim_io_names(
|
|
1087
1120
|
inputs=['input_0', 'input_1'], outputs=['output_data'])
|
|
1088
1121
|
|
|
1122
|
+
def __call__(self, x, y):
|
|
1123
|
+
return x < y
|
|
1124
|
+
|
|
1089
1125
|
|
|
1090
1126
|
class tuple_le(Primitive):
|
|
1091
1127
|
r"""
|
|
@@ -1114,6 +1150,9 @@ class tuple_le(Primitive):
|
|
|
1114
1150
|
self.init_prim_io_names(
|
|
1115
1151
|
inputs=['input_0', 'input_1'], outputs=['output_data'])
|
|
1116
1152
|
|
|
1153
|
+
def __call__(self, x, y):
|
|
1154
|
+
return x <= y
|
|
1155
|
+
|
|
1117
1156
|
|
|
1118
1157
|
class list_le(Primitive):
|
|
1119
1158
|
r"""
|
|
@@ -1141,3 +1180,6 @@ class list_le(Primitive):
|
|
|
1141
1180
|
"""Initialize list_le"""
|
|
1142
1181
|
self.init_prim_io_names(
|
|
1143
1182
|
inputs=['input_0', 'input_1'], outputs=['output_data'])
|
|
1183
|
+
|
|
1184
|
+
def __call__(self, x, y):
|
|
1185
|
+
return x <= y
|
|
@@ -28,7 +28,8 @@ from mindspore.ops._utils import get_broadcast_shape
|
|
|
28
28
|
from mindspore.common._utils import is_shape_unknown, is_dim_unknown
|
|
29
29
|
from mindspore.ops.primitive import Primitive, PrimitiveWithInfer, PrimitiveWithCheck, prim_attr_register, _run_op
|
|
30
30
|
from mindspore import _checkparam as validator
|
|
31
|
-
from mindspore._checkparam import _check_3d_int_or_tuple
|
|
31
|
+
from mindspore._checkparam import _check_3d_int_or_tuple
|
|
32
|
+
from mindspore.ops._tracefunc import PackFunc
|
|
32
33
|
from mindspore.common import dtype as mstype
|
|
33
34
|
from mindspore.common._decorator import deprecated
|
|
34
35
|
from mindspore.common.parameter import Parameter
|
|
@@ -174,39 +175,11 @@ def _check_infer_attr_reduce(axis, keep_dims, prim_name):
|
|
|
174
175
|
|
|
175
176
|
class Expand(Primitive):
|
|
176
177
|
"""
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
.. warning::
|
|
180
|
-
This is an experimental API that is subject to change or deletion.
|
|
181
|
-
|
|
182
|
-
Refer to :func:`mindspore.ops.expand` for more details.
|
|
183
|
-
|
|
184
|
-
Inputs:
|
|
185
|
-
- **x** (Tensor) - The input tensor.
|
|
186
|
-
- **shape** (Tensor) - The new shape of x.
|
|
187
|
-
|
|
188
|
-
Outputs:
|
|
189
|
-
Tensor after expansion, it shape is determined by `shape`.
|
|
190
|
-
|
|
191
|
-
Supported Platforms:
|
|
192
|
-
``Ascend`` ``CPU``
|
|
193
|
-
|
|
194
|
-
Examples:
|
|
195
|
-
>>> x = Tensor(np.array([[1], [2], [3]]), mindspore.float32)
|
|
196
|
-
>>> shape = Tensor(np.array([3,4]), mindspore.int32)
|
|
197
|
-
>>> expand = ops.Expand()
|
|
198
|
-
>>> y = expand(x, shape)
|
|
199
|
-
>>> print(y)
|
|
200
|
-
[[1. 1. 1. 1.]
|
|
201
|
-
[2. 2. 2. 2.]
|
|
202
|
-
[3. 3. 3. 3.]]
|
|
203
|
-
>>> input_x = Tensor(2, mindspore.int16)
|
|
204
|
-
>>> size = Tensor(np.array([1, 1]), mindspore.int32)
|
|
205
|
-
>>> y = ops.Expand()(input_x, size)
|
|
206
|
-
>>> print(y)
|
|
207
|
-
[[2]]
|
|
178
|
+
:class:`mindspore.ops.Expand` will be deprecated in the future.
|
|
179
|
+
Please use :class:`mindspore.ops.BroadcastTo` instead.
|
|
208
180
|
"""
|
|
209
181
|
|
|
182
|
+
@deprecated("2.1", "BroadcastTo", False)
|
|
210
183
|
@prim_attr_register
|
|
211
184
|
def __init__(self):
|
|
212
185
|
"""Initialize Expand."""
|
|
@@ -216,7 +189,8 @@ class Expand(Primitive):
|
|
|
216
189
|
|
|
217
190
|
class ExpandDims(PrimitiveWithCheck):
|
|
218
191
|
"""
|
|
219
|
-
Adds an additional dimension to `input_x` at the given axis
|
|
192
|
+
Adds an additional dimension to `input_x` at the given axis, the dimension of
|
|
193
|
+
`input_x` should be greater than or equal to 1.
|
|
220
194
|
|
|
221
195
|
Refer to :func:`mindspore.ops.expand_dims` for more details.
|
|
222
196
|
|
|
@@ -243,11 +217,6 @@ class ExpandDims(PrimitiveWithCheck):
|
|
|
243
217
|
>>> print(output)
|
|
244
218
|
[[[2. 2.]
|
|
245
219
|
[2. 2.]]]
|
|
246
|
-
>>> input_tensor = Tensor(2.1+2j, mindspore.complex64)
|
|
247
|
-
>>> expand_dims = ops.ExpandDims()
|
|
248
|
-
>>> output = expand_dims(input_tensor, 0)
|
|
249
|
-
>>> print(output)
|
|
250
|
-
[2.1+2.j]
|
|
251
220
|
"""
|
|
252
221
|
|
|
253
222
|
@prim_attr_register
|
|
@@ -380,7 +349,7 @@ class Cast(PrimitiveWithCheck):
|
|
|
380
349
|
data = x.data
|
|
381
350
|
if data.dtype == dtype:
|
|
382
351
|
return (True, x)
|
|
383
|
-
if isinstance(x, Tensor) and x.dtype == dtype and not
|
|
352
|
+
if isinstance(x, Tensor) and x.dtype == dtype and not PackFunc.is_tracing():
|
|
384
353
|
x = Tensor(x)
|
|
385
354
|
x.set_cast_dtype()
|
|
386
355
|
return (True, x)
|
|
@@ -404,9 +373,9 @@ class Cast(PrimitiveWithCheck):
|
|
|
404
373
|
value = None
|
|
405
374
|
np_dst_type = mstype.dtype_to_nptype(dst_type)
|
|
406
375
|
if isinstance(x, (int, float)):
|
|
407
|
-
value = Tensor(np.array(x).astype(np_dst_type))
|
|
376
|
+
value = Tensor(np.array(x).astype(np_dst_type), dtype=dst_type)
|
|
408
377
|
else:
|
|
409
|
-
value = Tensor(x.asnumpy().astype(np_dst_type))
|
|
378
|
+
value = Tensor(x.asnumpy().astype(np_dst_type), dtype=dst_type)
|
|
410
379
|
return value
|
|
411
380
|
|
|
412
381
|
|
|
@@ -766,23 +735,6 @@ class Unsqueeze(PrimitiveWithCheck):
|
|
|
766
735
|
self.axis = axis
|
|
767
736
|
|
|
768
737
|
|
|
769
|
-
class DynamicShape(Primitive):
|
|
770
|
-
"""
|
|
771
|
-
Same as operator TensorShape. DynamicShape will be deprecated in the future.
|
|
772
|
-
Please use TensorShape instead.
|
|
773
|
-
|
|
774
|
-
Supported Platforms:
|
|
775
|
-
Deprecated
|
|
776
|
-
"""
|
|
777
|
-
|
|
778
|
-
@deprecated("1.7", "TensorShape", True)
|
|
779
|
-
@prim_attr_register
|
|
780
|
-
def __init__(self, dtype=9):
|
|
781
|
-
"""init Shape"""
|
|
782
|
-
self.init_prim_io_names(inputs=['tensor'], outputs=['output'])
|
|
783
|
-
self.add_prim_attr('is_dynamic_shape', True)
|
|
784
|
-
|
|
785
|
-
|
|
786
738
|
class Squeeze(Primitive):
|
|
787
739
|
"""
|
|
788
740
|
Return the Tensor after deleting the dimension of size 1 in the specified `axis`.
|
|
@@ -1256,7 +1208,7 @@ class UniqueWithPad(Primitive):
|
|
|
1256
1208
|
|
|
1257
1209
|
|
|
1258
1210
|
class Split(Primitive):
|
|
1259
|
-
"""
|
|
1211
|
+
r"""
|
|
1260
1212
|
Splits the input tensor into output_num of tensors along the given axis and output numbers.
|
|
1261
1213
|
|
|
1262
1214
|
Refer to :func:`mindspore.ops.split` for more details.
|
|
@@ -1270,7 +1222,7 @@ class Split(Primitive):
|
|
|
1270
1222
|
|
|
1271
1223
|
Outputs:
|
|
1272
1224
|
tuple[Tensor], the shape of each output tensor is the same, which is
|
|
1273
|
-
:math:`(x_0, x_1, ..., x_{axis}/{
|
|
1225
|
+
:math:`(x_0, x_1, ..., x_{axis}/{output\_num}, ..., x_{R-1})`.
|
|
1274
1226
|
And the data type is the same as `input_x`.
|
|
1275
1227
|
|
|
1276
1228
|
Supported Platforms:
|
|
@@ -1358,7 +1310,7 @@ class Size(Primitive):
|
|
|
1358
1310
|
|
|
1359
1311
|
Inputs:
|
|
1360
1312
|
- **input_x** (Tensor) - Input parameters, the shape of tensor is :math:`(x_1, x_2, ..., x_R)`. The data type is
|
|
1361
|
-
`number <https://www.mindspore.cn/docs/en/r2.
|
|
1313
|
+
`number <https://www.mindspore.cn/docs/en/r2.2/api_python/mindspore.html#mindspore.dtype>`_.
|
|
1362
1314
|
|
|
1363
1315
|
Outputs:
|
|
1364
1316
|
int. A scalar representing the elements' size of `input_x`, tensor is the number of elements
|
|
@@ -1479,10 +1431,20 @@ class MatrixDiagPartV3(Primitive):
|
|
|
1479
1431
|
Refer to :func:`mindspore.ops.matrix_diag_part` for more details.
|
|
1480
1432
|
|
|
1481
1433
|
Args:
|
|
1482
|
-
align (str, optional):
|
|
1483
|
-
"LEFT_RIGHT", "LEFT_LEFT", "RIGHT_RIGHT".
|
|
1484
|
-
|
|
1485
|
-
|
|
1434
|
+
align (str, optional): specifies how superdiagonals and subdiagonals should be aligned.
|
|
1435
|
+
Supported values: ``"RIGHT_LEFT"`` , ``"LEFT_RIGHT"`` , ``"LEFT_LEFT"`` , ``"RIGHT_RIGHT"`` .
|
|
1436
|
+
Default: ``"RIGHT_LEFT"`` .
|
|
1437
|
+
|
|
1438
|
+
- When set to ``"RIGHT_LEFT"`` , the alignment of superdiagonals will be towards the right side
|
|
1439
|
+
(padding the row on the left), while subdiagonals will be towards the left side
|
|
1440
|
+
(padding the row on the right)
|
|
1441
|
+
- When set to ``"LEFT_RIGHT"`` , the alignment of superdiagonals will be towards the left side
|
|
1442
|
+
(padding the row on the right), while subdiagonals will be towards the right side
|
|
1443
|
+
(padding the row on the left)
|
|
1444
|
+
- When set to ``"LEFT_LEFT"`` , the alignment of both superdiagonals and subdiagonals will be towards
|
|
1445
|
+
the left side(padding the row on the right).
|
|
1446
|
+
- When set to ``"RIGHT_RIGHT"`` , the alignment of both superdiagonals and subdiagonals will be towards
|
|
1447
|
+
the right side(padding the row on the left).
|
|
1486
1448
|
|
|
1487
1449
|
Inputs:
|
|
1488
1450
|
- **x** (Tensor) - Rank r, where r >= 2.
|
|
@@ -1721,7 +1683,7 @@ class Fill(PrimitiveWithCheck):
|
|
|
1721
1683
|
if isinstance(x, Tensor):
|
|
1722
1684
|
x = x.asnumpy()
|
|
1723
1685
|
ret = np.full(dims, x, x_nptype)
|
|
1724
|
-
return Tensor(ret)
|
|
1686
|
+
return Tensor(ret, dtype=dtype)
|
|
1725
1687
|
|
|
1726
1688
|
def infer_value(self, dtype, dims, x):
|
|
1727
1689
|
x_nptype = mstype.dtype_to_nptype(dtype)
|
|
@@ -1731,7 +1693,7 @@ class Fill(PrimitiveWithCheck):
|
|
|
1731
1693
|
if isinstance(x, Tensor):
|
|
1732
1694
|
x = x.asnumpy()
|
|
1733
1695
|
ret = np.full(dims, x, x_nptype)
|
|
1734
|
-
return Tensor(ret)
|
|
1696
|
+
return Tensor(ret, dtype=dtype)
|
|
1735
1697
|
return None
|
|
1736
1698
|
|
|
1737
1699
|
|
|
@@ -1800,15 +1762,21 @@ class FillV2(PrimitiveWithCheck):
|
|
|
1800
1762
|
"""Initialize FillV2"""
|
|
1801
1763
|
self.init_prim_io_names(inputs=['shape', 'value'], outputs=['y'])
|
|
1802
1764
|
|
|
1765
|
+
def check_elim(self, dims, x):
|
|
1766
|
+
x_is_invalid = x is None or (not isinstance(x, (Tensor, Tensor_))) or (x.shape != ())
|
|
1767
|
+
dims_is_invalid = dims is None or (isinstance(dims, (tuple, list)) and dims) or\
|
|
1768
|
+
isinstance(dims, (Tensor, Tensor_))
|
|
1769
|
+
if x_is_invalid or dims_is_invalid:
|
|
1770
|
+
return (False, None)
|
|
1771
|
+
return (True, x)
|
|
1772
|
+
|
|
1803
1773
|
def infer_value(self, dims, x):
|
|
1804
|
-
|
|
1805
|
-
dims
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
return Tensor(ret)
|
|
1811
|
-
return None
|
|
1774
|
+
dims_is_invalid = dims is None or\
|
|
1775
|
+
(isinstance(dims, (tuple, list)) and dims) or\
|
|
1776
|
+
isinstance(dims, (Tensor, Tensor_))
|
|
1777
|
+
if x is None or dims_is_invalid:
|
|
1778
|
+
return None
|
|
1779
|
+
return x
|
|
1812
1780
|
|
|
1813
1781
|
|
|
1814
1782
|
class Ones(Primitive):
|
|
@@ -1997,7 +1965,8 @@ class TupleToArray(PrimitiveWithInfer):
|
|
|
1997
1965
|
ret = np.array(x, np.float32)
|
|
1998
1966
|
return Tensor(ret)
|
|
1999
1967
|
|
|
2000
|
-
def __call__(self,
|
|
1968
|
+
def __call__(self, *args):
|
|
1969
|
+
x, = args
|
|
2001
1970
|
args = list()
|
|
2002
1971
|
if isinstance(x, range):
|
|
2003
1972
|
args.append(tuple(x))
|
|
@@ -2006,24 +1975,6 @@ class TupleToArray(PrimitiveWithInfer):
|
|
|
2006
1975
|
return _run_op(self, self.name, args)
|
|
2007
1976
|
|
|
2008
1977
|
|
|
2009
|
-
class ScalarToArray(PrimitiveWithInfer):
|
|
2010
|
-
"""
|
|
2011
|
-
The `ScalarToArray` primitive is deprecated. Please use the :class:`mindspore.ops.ScalarToTensor` instead.
|
|
2012
|
-
"""
|
|
2013
|
-
@deprecated("2.0", "ops.scalar_to_tensor", False)
|
|
2014
|
-
@prim_attr_register
|
|
2015
|
-
def __init__(self):
|
|
2016
|
-
pass
|
|
2017
|
-
|
|
2018
|
-
def infer_value(self, x):
|
|
2019
|
-
validator.check_value_type("x", x, [int, float], self.name)
|
|
2020
|
-
if isinstance(x, int):
|
|
2021
|
-
ret = np.array(x, np.int32)
|
|
2022
|
-
else:
|
|
2023
|
-
ret = np.array(x, np.float32)
|
|
2024
|
-
return Tensor(ret)
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
1978
|
class ScalarToTensor(PrimitiveWithInfer):
|
|
2028
1979
|
"""
|
|
2029
1980
|
Converts a scalar to a `Tensor`, and converts the data type to the specified type.
|
|
@@ -2059,7 +2010,7 @@ class ScalarToTensor(PrimitiveWithInfer):
|
|
|
2059
2010
|
validator.check_value_type("x", x, [bool, int, float], self.name)
|
|
2060
2011
|
validator.check_subclass("dtype", dtype, mstype.number, self.name)
|
|
2061
2012
|
data_type = mstype.dtype_to_nptype(dtype)
|
|
2062
|
-
return Tensor(np.array(x, data_type))
|
|
2013
|
+
return Tensor(np.array(x, data_type), dtype=dtype)
|
|
2063
2014
|
|
|
2064
2015
|
|
|
2065
2016
|
class InvertPermutation(PrimitiveWithInfer):
|
|
@@ -2479,7 +2430,10 @@ class Tile(PrimitiveWithInfer):
|
|
|
2479
2430
|
"""Initialize Tile"""
|
|
2480
2431
|
self.init_prim_io_names(inputs=['x', 'multiples'], outputs=['output'])
|
|
2481
2432
|
|
|
2482
|
-
def check_elim(self,
|
|
2433
|
+
def check_elim(self, *args):
|
|
2434
|
+
base_tensor, multiplier = args
|
|
2435
|
+
if PackFunc.is_tracing() and not PackFunc.current.is_pynative_mode:
|
|
2436
|
+
return (False, None)
|
|
2483
2437
|
if not isinstance(base_tensor, Tensor):
|
|
2484
2438
|
raise TypeError(f"For '{self.name}', the type of 'input_x' must be Tensor, "
|
|
2485
2439
|
f"but got {type(base_tensor).__name__}.")
|
|
@@ -2999,7 +2953,7 @@ def _get_stack_shape(value, x_shape, x_type, axis, prim_name):
|
|
|
2999
2953
|
out_n = len(x_shape)
|
|
3000
2954
|
for i in range(1, out_n):
|
|
3001
2955
|
if x_type[i] != x_type[i-1]:
|
|
3002
|
-
raise TypeError("For
|
|
2956
|
+
raise TypeError(f"For {prim_name}, all types should be same, but got {x_type}")
|
|
3003
2957
|
|
|
3004
2958
|
new_x_shape = []
|
|
3005
2959
|
for i, shp in enumerate(x_shape):
|
|
@@ -3021,8 +2975,8 @@ def _get_stack_shape(value, x_shape, x_type, axis, prim_name):
|
|
|
3021
2975
|
for j in range(0, rank_base):
|
|
3022
2976
|
if new_x_shape[i]["shape"][j] != new_x_shape[0]["shape"][j] and \
|
|
3023
2977
|
new_x_shape[i]["shape"][j] != -1 and new_x_shape[0]["shape"][j] != -1:
|
|
3024
|
-
raise ValueError("For
|
|
3025
|
-
|
|
2978
|
+
raise ValueError(f"For {prim_name} element {new_x_shape[i]['id']} shape"
|
|
2979
|
+
f"in input can not pack with first element")
|
|
3026
2980
|
|
|
3027
2981
|
validator.check_int_range(axis, -rank_base - 1, rank_base, validator.INC_BOTH, 'axis', prim_name)
|
|
3028
2982
|
if axis < 0:
|
|
@@ -3038,30 +2992,6 @@ def _get_stack_shape(value, x_shape, x_type, axis, prim_name):
|
|
|
3038
2992
|
return out_shape
|
|
3039
2993
|
|
|
3040
2994
|
|
|
3041
|
-
class Pack(PrimitiveWithInfer):
|
|
3042
|
-
"""
|
|
3043
|
-
Same as operator Stack. Pack will be deprecated in the future.
|
|
3044
|
-
Please use Stack instead.
|
|
3045
|
-
"""
|
|
3046
|
-
|
|
3047
|
-
@deprecated("1.1", "Stack", True)
|
|
3048
|
-
@prim_attr_register
|
|
3049
|
-
def __init__(self, axis=0):
|
|
3050
|
-
"""Initialize Pack"""
|
|
3051
|
-
validator.check_value_type("axis", axis, [int], self.name)
|
|
3052
|
-
self.axis = axis
|
|
3053
|
-
|
|
3054
|
-
def __infer__(self, value):
|
|
3055
|
-
x_shape = value['shape']
|
|
3056
|
-
x_type = value['dtype']
|
|
3057
|
-
self.add_prim_attr('num', len(x_shape))
|
|
3058
|
-
all_shape = _get_stack_shape(value, x_shape, x_type, self.axis, self.name)
|
|
3059
|
-
out = {'shape': all_shape,
|
|
3060
|
-
'dtype': x_type[0],
|
|
3061
|
-
'value': None}
|
|
3062
|
-
return out
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
2995
|
class Stack(PrimitiveWithInfer):
|
|
3066
2996
|
r"""
|
|
3067
2997
|
Stacks a list of tensors in specified axis.
|
|
@@ -3138,47 +3068,6 @@ class Stack(PrimitiveWithInfer):
|
|
|
3138
3068
|
return out
|
|
3139
3069
|
|
|
3140
3070
|
|
|
3141
|
-
class Unpack(PrimitiveWithInfer):
|
|
3142
|
-
"""
|
|
3143
|
-
Same as operator Unstack. Unpack will be deprecated in the future.
|
|
3144
|
-
Please use Unstack instead.
|
|
3145
|
-
"""
|
|
3146
|
-
|
|
3147
|
-
@deprecated("1.1", "Unstack", True)
|
|
3148
|
-
@prim_attr_register
|
|
3149
|
-
def __init__(self, axis=0):
|
|
3150
|
-
"""Initialize Unpack"""
|
|
3151
|
-
validator.check_value_type("axis", axis, [int], self.name)
|
|
3152
|
-
self.axis = axis
|
|
3153
|
-
|
|
3154
|
-
def __infer__(self, x):
|
|
3155
|
-
validator.check_subclass("x", x['dtype'], mstype.tensor_type, self.name)
|
|
3156
|
-
x_shape = list(x['shape'])
|
|
3157
|
-
dim = len(x_shape)
|
|
3158
|
-
validator.check_int_range(self.axis, -dim, dim, validator.INC_LEFT, 'axis value', self.name)
|
|
3159
|
-
if self.axis < 0:
|
|
3160
|
-
self.axis = self.axis + dim
|
|
3161
|
-
output_num = x_shape[self.axis]
|
|
3162
|
-
validator.check_value_type("num", output_num, [int], self.name)
|
|
3163
|
-
validator.check_positive_int(output_num, "output_num", self.name)
|
|
3164
|
-
self.add_prim_attr('num', output_num)
|
|
3165
|
-
output_valid_check = x_shape[self.axis] - output_num
|
|
3166
|
-
validator.check_int(output_valid_check, 0, validator.EQ,
|
|
3167
|
-
"The dimension which to unstack divides output_num", self.name)
|
|
3168
|
-
out_shapes = []
|
|
3169
|
-
out_dtypes = []
|
|
3170
|
-
out_shape = x_shape[:self.axis] + x_shape[self.axis + 1:]
|
|
3171
|
-
for _ in range(output_num):
|
|
3172
|
-
out_shapes.append(tuple(out_shape))
|
|
3173
|
-
out_dtypes.append(x['dtype'])
|
|
3174
|
-
out_shapes = tuple(out_shapes)
|
|
3175
|
-
out_dtypes = tuple(out_dtypes)
|
|
3176
|
-
out = {'shape': out_shapes,
|
|
3177
|
-
'dtype': out_dtypes,
|
|
3178
|
-
'value': None}
|
|
3179
|
-
return out
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
3071
|
class Unstack(Primitive):
|
|
3183
3072
|
r"""
|
|
3184
3073
|
Unstacks tensor in specified axis, this is the opposite of ops.Stack.
|
|
@@ -3377,6 +3266,9 @@ class ReverseV2(Primitive):
|
|
|
3377
3266
|
for i, each in enumerate(axis):
|
|
3378
3267
|
validator.check_value_type(f'axis[{i}]', each, [int], self.name)
|
|
3379
3268
|
self.axis = axis
|
|
3269
|
+
if isinstance(axis, list):
|
|
3270
|
+
self.axis = tuple(axis)
|
|
3271
|
+
self.add_prim_attr('axis', self.axis)
|
|
3380
3272
|
self.init_prim_io_names(inputs=['x'], outputs=['output'])
|
|
3381
3273
|
|
|
3382
3274
|
|
|
@@ -3538,9 +3430,7 @@ class StridedSlice(PrimitiveWithInfer):
|
|
|
3538
3430
|
Inputs:
|
|
3539
3431
|
- **input_x** (Tensor) - The input Tensor to be extracted from.
|
|
3540
3432
|
- **begin** (tuple[int]) - A tuple which represents the location where to start.
|
|
3541
|
-
Only non-negative int is allowed.
|
|
3542
3433
|
- **end** (tuple[int]) - A tuple or which represents the maximum location where to end.
|
|
3543
|
-
Only non-negative int is allowed.
|
|
3544
3434
|
- **strides** (tuple[int]) - A tuple which represents the strides is continuously added
|
|
3545
3435
|
before reaching the maximum location. Only int is allowed, it can be negative
|
|
3546
3436
|
which results in reversed slicing.
|
|
@@ -3655,10 +3545,10 @@ class StridedSlice(PrimitiveWithInfer):
|
|
|
3655
3545
|
end_v, end_len = self._check_and_get_value(end, 'end')
|
|
3656
3546
|
strides_v, strides_len = self._check_and_get_value(strides, 'strides')
|
|
3657
3547
|
|
|
3658
|
-
is_dynamic_tuple = (self._is_none_in_tuple(begin_v
|
|
3659
|
-
or self._is_none_in_tuple(end_v
|
|
3660
|
-
or self._is_none_in_tuple(strides_v
|
|
3661
|
-
is_dynamic = None in (begin_v
|
|
3548
|
+
is_dynamic_tuple = (self._is_none_in_tuple(begin_v.get('value'))
|
|
3549
|
+
or self._is_none_in_tuple(end_v.get('value'))
|
|
3550
|
+
or self._is_none_in_tuple(strides_v.get('value')))
|
|
3551
|
+
is_dynamic = None in (begin_v.get('value'), end_v.get('value'), strides_v.get('value'))
|
|
3662
3552
|
|
|
3663
3553
|
if not is_dynamic and (begin_len != strides_len or end_len != strides_len):
|
|
3664
3554
|
raise ValueError(
|
|
@@ -4047,7 +3937,7 @@ class DiagPart(PrimitiveWithCheck):
|
|
|
4047
3937
|
|
|
4048
3938
|
If the `input_x` is a Tensor of shape :math:`[D_1,..., D_k, D_1,..., D_k]`, then the
|
|
4049
3939
|
output will be a Tensor of rank k of shape :math:`[D_1,..., D_k]` where:
|
|
4050
|
-
:math:`output[i_1,..., i_k] =
|
|
3940
|
+
:math:`output[i_1,..., i_k] = input\_x[i_1,..., i_k, i_1,..., i_k]`.
|
|
4051
3941
|
|
|
4052
3942
|
Inputs:
|
|
4053
3943
|
- **input_x** (Tensor) - The rank of input tensor is 2k(k > 0).
|
|
@@ -5626,67 +5516,6 @@ class ScatterNdMin(_ScatterNdOp):
|
|
|
5626
5516
|
super().__init__(use_locking)
|
|
5627
5517
|
|
|
5628
5518
|
|
|
5629
|
-
class ScatterNonAliasingAdd(Primitive):
|
|
5630
|
-
"""
|
|
5631
|
-
The ScatterNonAliasingAdd Interface is deprecated from version 2.1.
|
|
5632
|
-
Please use :class:`mindspore.ops.TensorScatterAdd` instead.
|
|
5633
|
-
This interface may has precision error on Ascend and will be removed in a future version.
|
|
5634
|
-
|
|
5635
|
-
Applies sparse addition to the input using individual values or slices.
|
|
5636
|
-
|
|
5637
|
-
Using given values to update tensor value through the add operation, along with the input indices.
|
|
5638
|
-
This operation outputs the `input_x` after the update is done, which makes it convenient to use the updated value.
|
|
5639
|
-
|
|
5640
|
-
Inputs of `input_x` and `updates` comply with the implicit type conversion rules to make the data types consistent.
|
|
5641
|
-
If they have different data types, the lower priority data type will be converted to
|
|
5642
|
-
the relatively highest priority data type.
|
|
5643
|
-
|
|
5644
|
-
Inputs:
|
|
5645
|
-
- **input_x** (Parameter) - The target parameter. The data type must be float16, float32 or int32.
|
|
5646
|
-
- **indices** (Tensor) - The index to perform the addition operation whose data type must be mindspore.int32.
|
|
5647
|
-
- **updates** (Tensor) - The tensor that performs the addition operation with `input_x`,
|
|
5648
|
-
the data type is the same as `input_x`, the shape is `indices.shape[:-1] + x.shape[indices.shape[-1]:]`.
|
|
5649
|
-
|
|
5650
|
-
Outputs:
|
|
5651
|
-
Parameter, the updated `input_x`.
|
|
5652
|
-
|
|
5653
|
-
Raises:
|
|
5654
|
-
TypeError: If dtype of `indices` is not int32.
|
|
5655
|
-
TypeError: If dtype of `input_x` is not one of float16, float32, int32.
|
|
5656
|
-
ValueError: If the shape of `updates` is not equal to `indices.shape[:-1] + x.shape[indices.shape[-1]:]`.
|
|
5657
|
-
RuntimeError: If the data type of `input_x` and `updates` conversion of Parameter
|
|
5658
|
-
is required when data type conversion of Parameter is not supported.
|
|
5659
|
-
|
|
5660
|
-
Supported Platforms:
|
|
5661
|
-
Deprecated
|
|
5662
|
-
|
|
5663
|
-
Examples:
|
|
5664
|
-
>>> import mindspore
|
|
5665
|
-
>>> import numpy as np
|
|
5666
|
-
>>> from mindspore import Tensor, ops, Parameter
|
|
5667
|
-
>>> input_x = Parameter(Tensor(np.array([1, 2, 3, 4, 5, 6, 7, 8]), mindspore.float32), name="x")
|
|
5668
|
-
>>> indices = Tensor(np.array([[2], [4], [1], [7]]), mindspore.int32)
|
|
5669
|
-
>>> updates = Tensor(np.array([6, 7, 8, 9]), mindspore.float32)
|
|
5670
|
-
>>> scatter_non_aliasing_add = ops.ScatterNonAliasingAdd()
|
|
5671
|
-
>>> output = scatter_non_aliasing_add(input_x, indices, updates)
|
|
5672
|
-
>>> print(output)
|
|
5673
|
-
[ 1. 10. 9. 4. 12. 6. 7. 17.]
|
|
5674
|
-
"""
|
|
5675
|
-
|
|
5676
|
-
__mindspore_signature__ = (
|
|
5677
|
-
sig.make_sig('input_x', sig.sig_rw.RW_WRITE, dtype=sig.sig_dtype.T),
|
|
5678
|
-
sig.make_sig('indices', dtype=sig.sig_dtype.T1),
|
|
5679
|
-
sig.make_sig('updates', dtype=sig.sig_dtype.T)
|
|
5680
|
-
)
|
|
5681
|
-
|
|
5682
|
-
@deprecated("2.1", "ops.ScatterNonAliasingAdd", False)
|
|
5683
|
-
@prim_attr_register
|
|
5684
|
-
def __init__(self):
|
|
5685
|
-
"""Initialize ScatterNonAliasingAdd"""
|
|
5686
|
-
self.init_prim_io_names(inputs=['input_x', 'indices', 'updates'], outputs=['y'])
|
|
5687
|
-
self.add_prim_attr('side_effect_mem', True)
|
|
5688
|
-
|
|
5689
|
-
|
|
5690
5519
|
class SpaceToDepth(Primitive):
|
|
5691
5520
|
r"""
|
|
5692
5521
|
Rearrange blocks of spatial data into depth.
|
|
@@ -6049,54 +5878,6 @@ class SpaceToBatchND(Primitive):
|
|
|
6049
5878
|
self.paddings = paddings
|
|
6050
5879
|
|
|
6051
5880
|
|
|
6052
|
-
class BatchToSpaceND(Primitive):
|
|
6053
|
-
r"""
|
|
6054
|
-
:class:`mindspore.ops.BatchToSpaceND` is deprecated from version 2.0 and will be removed in a future version,
|
|
6055
|
-
use :func:`mindspore.ops.batch_to_space_nd` instead.
|
|
6056
|
-
|
|
6057
|
-
Supported Platforms:
|
|
6058
|
-
``Ascend`` ``GPU`` ``CPU``
|
|
6059
|
-
|
|
6060
|
-
Examples:
|
|
6061
|
-
>>> import mindspore
|
|
6062
|
-
>>> import numpy as np
|
|
6063
|
-
>>> from mindspore import Tensor, ops
|
|
6064
|
-
>>> block_size = 2
|
|
6065
|
-
>>> crops = [[0, 0], [0, 0]]
|
|
6066
|
-
>>> batch_to_space = ops.BatchToSpaceND(block_size, crops)
|
|
6067
|
-
>>> input_x = Tensor(np.array([[[[1]]], [[[2]]], [[[3]]], [[[4]]]]), mindspore.float32)
|
|
6068
|
-
>>> output = batch_to_space(input_x)
|
|
6069
|
-
>>> print(output)
|
|
6070
|
-
[[[[1. 2.]
|
|
6071
|
-
[3. 4.]]]]
|
|
6072
|
-
"""
|
|
6073
|
-
|
|
6074
|
-
@deprecated("2.0", "ops.batch_to_space_nd", False)
|
|
6075
|
-
@prim_attr_register
|
|
6076
|
-
def __init__(self, block_shape, crops):
|
|
6077
|
-
"""Initialize BatchToSpaceND"""
|
|
6078
|
-
if isinstance(block_shape, int):
|
|
6079
|
-
block_shape = (block_shape,) * np.array(crops).shape[0]
|
|
6080
|
-
self.add_prim_attr("block_shape", block_shape)
|
|
6081
|
-
validator.check_value_type('block_shape type', block_shape, [list, tuple], self.name)
|
|
6082
|
-
validator.check('block_shape shape', len(np.array(block_shape).shape), '', 1, validator.EQ, self.name)
|
|
6083
|
-
block_rank = len(block_shape)
|
|
6084
|
-
if context.get_context("device_target") == "Ascend":
|
|
6085
|
-
validator.check('block_shape length', block_rank, '', 2, validator.EQ, self.name)
|
|
6086
|
-
for elem in block_shape:
|
|
6087
|
-
validator.check('block_shape element', elem, '', 1, validator.GE, self.name)
|
|
6088
|
-
validator.check_value_type('block_shape element', elem, [int], self.name)
|
|
6089
|
-
self.block_shape = block_shape
|
|
6090
|
-
|
|
6091
|
-
validator.check_value_type('crops type', crops, [list, tuple], self.name)
|
|
6092
|
-
validator.check('crops length', len(crops), '', 1, validator.GE, self.name)
|
|
6093
|
-
validator.check('crops shape', np.array(crops).shape, '', (block_rank, 2), validator.EQ, self.name)
|
|
6094
|
-
for elem in itertools.chain(*crops):
|
|
6095
|
-
validator.check_non_negative_int(elem, 'crops element', self.name)
|
|
6096
|
-
validator.check_value_type('crops element', elem, [int], self.name)
|
|
6097
|
-
self.crops = crops
|
|
6098
|
-
|
|
6099
|
-
|
|
6100
5881
|
class BatchToSpaceNDV2(Primitive):
|
|
6101
5882
|
r"""
|
|
6102
5883
|
Divides batch dimension with blocks and interleaves these blocks back into spatial dimensions.
|
|
@@ -6300,7 +6081,7 @@ class Meshgrid(PrimitiveWithInfer):
|
|
|
6300
6081
|
|
|
6301
6082
|
|
|
6302
6083
|
class ReverseSequence(PrimitiveWithInfer):
|
|
6303
|
-
"""
|
|
6084
|
+
r"""
|
|
6304
6085
|
Reverses variable length slices.
|
|
6305
6086
|
|
|
6306
6087
|
Args:
|
|
@@ -6316,7 +6097,12 @@ class ReverseSequence(PrimitiveWithInfer):
|
|
|
6316
6097
|
|
|
6317
6098
|
Raises:
|
|
6318
6099
|
TypeError: If `seq_dim` or `batch_dim` is not an int.
|
|
6319
|
-
ValueError: If
|
|
6100
|
+
ValueError: If :math:`len(seq\_lengths) != x.shape[batch\_dim]`.
|
|
6101
|
+
ValueError: If :math:`batch\_dim == seq\_dim`.
|
|
6102
|
+
ValueError: If :math:`seq\_dim < 0` or :math:`seq\_dim >= len(x.shape)`.
|
|
6103
|
+
ValueError: If :math:`batch\_dim < 0` or :math:`batch\_dim >= len(x.shape)`.
|
|
6104
|
+
RuntimeError: If any value of `seq_lengths` is less than 0.
|
|
6105
|
+
RuntimeError: If any value of `seq_lengths` is larger than `x.shape[seq_dim]`.
|
|
6320
6106
|
|
|
6321
6107
|
Supported Platforms:
|
|
6322
6108
|
``Ascend`` ``GPU`` ``CPU``
|