mindspore 2.5.0__cp310-cp310-win_amd64.whl → 2.6.0rc1__cp310-cp310-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 +6 -4
- mindspore/_c_dataengine.cp310-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp310-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp310-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -0
- mindspore/_checkparam.py +3 -33
- mindspore/_deprecated/__init__.py +17 -0
- mindspore/_deprecated/jit.py +198 -0
- mindspore/_extends/builtin_operations.py +1 -1
- mindspore/_extends/parse/__init__.py +6 -7
- mindspore/_extends/parse/compile_config.py +19 -0
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +22 -3
- mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
- mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
- mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
- mindspore/_extends/parse/parser.py +24 -193
- mindspore/_extends/parse/resources.py +1 -5
- mindspore/_extends/parse/standard_method.py +97 -74
- mindspore/_extends/pijit/__init__.py +2 -2
- mindspore/_extends/pijit/pijit_func_white_list.py +16 -11
- mindspore/_extends/pijit/tensor_func_list.py +27 -0
- mindspore/_extends/utils.py +1 -1
- mindspore/amp.py +4 -4
- 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/__init__.py +2 -2
- mindspore/boost/base.py +3 -7
- mindspore/boost/boost_cell_wrapper.py +2 -2
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +4 -3
- mindspore/common/_grad_function.py +56 -0
- mindspore/common/_pijit_context.py +14 -5
- mindspore/common/_register_for_tensor.py +1 -1
- mindspore/common/_stub_tensor.py +5 -10
- mindspore/common/_tensor_cpp_method.py +1 -1
- mindspore/common/_tensor_docs.py +1915 -3287
- mindspore/common/api.py +341 -354
- mindspore/common/auto_dynamic_shape.py +41 -44
- mindspore/common/dtype.py +5 -2
- mindspore/common/dump.py +7 -5
- mindspore/common/file_system.py +3 -0
- mindspore/common/hook_handle.py +5 -3
- mindspore/common/initializer.py +10 -6
- mindspore/common/jit_begin_end.py +94 -0
- mindspore/common/jit_config.py +6 -1
- mindspore/common/jit_context.py +76 -0
- mindspore/common/jit_trace.py +378 -0
- mindspore/common/lazy_inline.py +2 -2
- mindspore/common/mutable.py +5 -4
- mindspore/common/parameter.py +106 -39
- mindspore/common/seed.py +2 -2
- mindspore/common/sparse_tensor.py +23 -17
- mindspore/common/tensor.py +297 -714
- mindspore/communication/__init__.py +7 -5
- mindspore/communication/_comm_helper.py +47 -2
- mindspore/communication/comm_func.py +70 -53
- mindspore/communication/management.py +83 -17
- mindspore/context.py +214 -560
- mindspore/dataset/__init__.py +44 -20
- mindspore/dataset/audio/__init__.py +2 -8
- mindspore/dataset/audio/transforms.py +3 -17
- mindspore/dataset/core/config.py +3 -3
- mindspore/dataset/engine/cache_client.py +1 -1
- mindspore/dataset/engine/datasets.py +102 -120
- mindspore/dataset/engine/datasets_audio.py +22 -22
- mindspore/dataset/engine/datasets_standard_format.py +43 -24
- mindspore/dataset/engine/datasets_text.py +78 -85
- mindspore/dataset/engine/datasets_user_defined.py +108 -76
- mindspore/dataset/engine/datasets_vision.py +111 -108
- mindspore/dataset/engine/iterators.py +5 -3
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
- mindspore/dataset/engine/samplers.py +279 -57
- mindspore/dataset/engine/serializer_deserializer.py +2 -1
- mindspore/dataset/engine/validators.py +10 -0
- mindspore/dataset/text/__init__.py +7 -6
- mindspore/dataset/text/transforms.py +6 -5
- mindspore/dataset/text/utils.py +3 -3
- mindspore/dataset/transforms/__init__.py +0 -9
- mindspore/dataset/transforms/transforms.py +3 -3
- mindspore/dataset/utils/browse_dataset.py +1 -1
- mindspore/dataset/vision/__init__.py +2 -9
- mindspore/dataset/vision/transforms.py +202 -158
- mindspore/dataset/vision/utils.py +7 -5
- mindspore/device_context/ascend/op_debug.py +60 -1
- mindspore/device_context/ascend/op_tuning.py +0 -4
- mindspore/device_manager.py +39 -3
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/es/embedding_service.py +35 -27
- mindspore/experimental/map_parameter.py +4 -4
- mindspore/experimental/optim/adadelta.py +22 -26
- mindspore/experimental/optim/adagrad.py +4 -4
- mindspore/experimental/optim/adam.py +4 -0
- mindspore/experimental/optim/adamax.py +4 -4
- mindspore/experimental/optim/adamw.py +4 -0
- mindspore/experimental/optim/asgd.py +1 -1
- mindspore/experimental/optim/lr_scheduler.py +40 -22
- mindspore/experimental/optim/radam.py +5 -5
- mindspore/experimental/optim/rprop.py +1 -1
- mindspore/experimental/optim/sgd.py +1 -1
- mindspore/hal/contiguous_tensors_handle.py +6 -10
- mindspore/hal/device.py +55 -81
- mindspore/hal/event.py +38 -55
- mindspore/hal/memory.py +93 -144
- mindspore/hal/stream.py +81 -125
- mindspore/include/dataset/constants.h +7 -4
- mindspore/include/dataset/execute.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +40 -2
- mindspore/mindrecord/__init__.py +20 -7
- mindspore/mindspore_backend_common.dll +0 -0
- mindspore/mindspore_backend_manager.dll +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_dump.dll +0 -0
- mindspore/mindspore_frontend.dll +0 -0
- mindspore/mindspore_glog.dll +0 -0
- mindspore/mindspore_memory_pool.dll +0 -0
- mindspore/mindspore_ms_backend.dll +0 -0
- mindspore/mindspore_ops.dll +0 -0
- mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
- mindspore/mindspore_ops_kernel_common.dll +0 -0
- mindspore/mindspore_profiler.dll +0 -0
- mindspore/mindspore_pyboost.dll +0 -0
- mindspore/mindspore_pynative.dll +0 -0
- mindspore/mindspore_res_manager.dll +0 -0
- mindspore/mindspore_runtime_pipeline.dll +0 -0
- mindspore/mint/__init__.py +131 -700
- mindspore/mint/distributed/__init__.py +5 -1
- mindspore/mint/distributed/distributed.py +194 -109
- mindspore/mint/linalg/__init__.py +2 -0
- mindspore/mint/nn/__init__.py +280 -18
- mindspore/mint/nn/functional.py +282 -64
- mindspore/mint/nn/layer/__init__.py +4 -0
- mindspore/mint/nn/layer/_functions.py +7 -3
- mindspore/mint/nn/layer/activation.py +120 -13
- mindspore/mint/nn/layer/conv.py +218 -24
- mindspore/mint/nn/layer/normalization.py +15 -16
- mindspore/mint/nn/layer/padding.py +1 -1
- mindspore/mint/nn/layer/pooling.py +66 -1
- mindspore/mint/optim/__init__.py +2 -1
- mindspore/mint/optim/sgd.py +171 -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 +4 -1
- mindspore/nn/cell.py +1250 -176
- mindspore/nn/layer/activation.py +23 -21
- mindspore/nn/layer/basic.py +22 -16
- mindspore/nn/layer/container.py +1 -1
- mindspore/nn/layer/conv.py +22 -17
- mindspore/nn/layer/embedding.py +9 -8
- mindspore/nn/layer/normalization.py +48 -42
- mindspore/nn/layer/pooling.py +75 -31
- mindspore/nn/layer/transformer.py +11 -10
- mindspore/nn/learning_rate_schedule.py +4 -2
- mindspore/nn/loss/loss.py +27 -19
- mindspore/nn/optim/ada_grad.py +6 -5
- mindspore/nn/optim/adadelta.py +9 -7
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +16 -12
- mindspore/nn/optim/adamax.py +8 -7
- mindspore/nn/optim/adasum.py +5 -5
- mindspore/nn/optim/asgd.py +1 -1
- mindspore/nn/optim/ftrl.py +11 -9
- mindspore/nn/optim/lamb.py +1 -1
- mindspore/nn/optim/lazyadam.py +12 -10
- mindspore/nn/optim/momentum.py +7 -6
- mindspore/nn/optim/optimizer.py +2 -2
- mindspore/nn/optim/proximal_ada_grad.py +12 -10
- mindspore/nn/optim/rmsprop.py +13 -12
- mindspore/nn/optim/rprop.py +9 -7
- mindspore/nn/optim/sgd.py +9 -6
- mindspore/nn/optim/tft_wrapper.py +5 -2
- mindspore/nn/probability/bijector/bijector.py +17 -11
- mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
- mindspore/nn/probability/bijector/invert.py +2 -2
- mindspore/nn/probability/bijector/scalar_affine.py +3 -3
- mindspore/nn/probability/bijector/softplus.py +3 -2
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +1 -1
- mindspore/nn/probability/distribution/cauchy.py +4 -2
- mindspore/nn/probability/distribution/exponential.py +6 -7
- mindspore/nn/probability/distribution/gamma.py +2 -2
- mindspore/nn/probability/distribution/gumbel.py +2 -2
- mindspore/nn/probability/distribution/half_normal.py +5 -3
- mindspore/nn/probability/distribution/logistic.py +5 -3
- mindspore/nn/probability/distribution/poisson.py +1 -1
- mindspore/nn/probability/distribution/uniform.py +5 -3
- mindspore/nn/reinforcement/_tensors_queue.py +1 -1
- mindspore/nn/reinforcement/tensor_array.py +1 -1
- mindspore/nn/wrap/__init__.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +178 -117
- mindspore/nn/wrap/grad_reducer.py +45 -36
- mindspore/nn/wrap/loss_scale.py +3 -3
- mindspore/numpy/array_creations.py +3 -3
- mindspore/numpy/array_ops.py +1 -1
- mindspore/numpy/math_ops.py +4 -4
- mindspore/numpy/utils.py +1 -2
- mindspore/numpy/utils_const.py +1 -2
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +3 -2
- mindspore/ops/_grad_experimental/grad_comm_ops.py +18 -3
- mindspore/ops/_grad_experimental/grad_debug_ops.py +8 -1
- mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
- mindspore/ops/_register_for_op.py +0 -11
- mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
- mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -4
- mindspore/ops/_vmap/vmap_array_ops.py +7 -6
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +2 -1
- mindspore/ops/_vmap/vmap_math_ops.py +4 -7
- mindspore/ops/_vmap/vmap_nn_ops.py +9 -8
- mindspore/ops/auto_generate/__init__.py +4 -3
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +102 -49
- mindspore/ops/auto_generate/gen_extend_func.py +281 -135
- mindspore/ops/auto_generate/gen_ops_def.py +2574 -2326
- mindspore/ops/auto_generate/gen_ops_prim.py +8566 -2755
- mindspore/ops/auto_generate/pyboost_inner_prim.py +106 -76
- mindspore/ops/composite/__init__.py +2 -1
- mindspore/ops/composite/base.py +19 -24
- mindspore/ops/composite/math_ops.py +6 -16
- mindspore/ops/composite/multitype_ops/__init__.py +5 -2
- mindspore/ops/composite/multitype_ops/_compile_utils.py +2 -3
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
- mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
- mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
- mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
- mindspore/ops/composite/multitype_ops/pow_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
- mindspore/ops/function/__init__.py +28 -2
- mindspore/ops/function/_add_attr_func.py +58 -0
- mindspore/ops/function/array_func.py +1629 -2345
- mindspore/ops/function/clip_func.py +38 -45
- mindspore/ops/function/debug_func.py +36 -44
- mindspore/ops/function/grad/__init__.py +1 -0
- mindspore/ops/function/grad/grad_func.py +104 -71
- mindspore/ops/function/image_func.py +1 -1
- mindspore/ops/function/linalg_func.py +46 -78
- mindspore/ops/function/math_func.py +3035 -3705
- mindspore/ops/function/nn_func.py +676 -241
- mindspore/ops/function/other_func.py +159 -1
- mindspore/ops/function/parameter_func.py +17 -30
- mindspore/ops/function/random_func.py +204 -361
- mindspore/ops/function/reshard_func.py +4 -70
- mindspore/ops/function/sparse_func.py +3 -3
- mindspore/ops/function/sparse_unary_func.py +5 -5
- mindspore/ops/function/spectral_func.py +25 -58
- mindspore/ops/function/vmap_func.py +24 -17
- mindspore/ops/functional.py +6 -4
- mindspore/ops/functional_overload.py +547 -4
- mindspore/ops/op_info_register.py +32 -244
- mindspore/ops/operations/__init__.py +10 -5
- mindspore/ops/operations/_custom_ops_utils.py +247 -0
- mindspore/ops/operations/_grad_ops.py +1 -10
- mindspore/ops/operations/_inner_ops.py +5 -76
- mindspore/ops/operations/_ms_kernel.py +4 -10
- mindspore/ops/operations/_rl_inner_ops.py +1 -1
- mindspore/ops/operations/_scalar_ops.py +3 -2
- mindspore/ops/operations/_sequence_ops.py +1 -1
- mindspore/ops/operations/_tensor_array.py +1 -1
- mindspore/ops/operations/array_ops.py +37 -22
- mindspore/ops/operations/comm_ops.py +150 -107
- mindspore/ops/operations/custom_ops.py +221 -23
- mindspore/ops/operations/debug_ops.py +115 -16
- mindspore/ops/operations/inner_ops.py +1 -1
- mindspore/ops/operations/linalg_ops.py +1 -58
- mindspore/ops/operations/manually_defined/_inner.py +1 -1
- mindspore/ops/operations/manually_defined/ops_def.py +746 -79
- mindspore/ops/operations/math_ops.py +21 -18
- mindspore/ops/operations/nn_ops.py +65 -191
- mindspore/ops/operations/other_ops.py +62 -9
- mindspore/ops/operations/random_ops.py +13 -7
- mindspore/ops/operations/reshard_ops.py +1 -1
- mindspore/ops/operations/sparse_ops.py +2 -2
- mindspore/ops/primitive.py +43 -32
- mindspore/ops/tensor_method.py +232 -13
- mindspore/ops_generate/__init__.py +0 -5
- mindspore/ops_generate/aclnn/__init__.py +0 -0
- mindspore/ops_generate/{aclnn_kernel_register_auto_cc_generator.py → aclnn/aclnn_kernel_register_auto_cc_generator.py} +43 -18
- mindspore/ops_generate/{gen_aclnn_implement.py → aclnn/gen_aclnn_implement.py} +49 -51
- mindspore/ops_generate/api/__init__.py +0 -0
- mindspore/ops_generate/{add_tensor_docs_generator.py → api/add_tensor_docs_generator.py} +9 -7
- mindspore/ops_generate/{cpp_create_prim_instance_helper_generator.py → api/cpp_create_prim_instance_helper_generator.py} +6 -9
- mindspore/ops_generate/{functional_map_cpp_generator.py → api/functional_map_cpp_generator.py} +25 -12
- mindspore/ops_generate/{functional_overload_py_generator.py → api/functional_overload_py_generator.py} +8 -6
- mindspore/ops_generate/{functions_cc_generator.py → api/functions_cc_generator.py} +14 -10
- mindspore/ops_generate/api/gen_api.py +103 -0
- mindspore/ops_generate/{op_api_proto.py → api/op_api_proto.py} +98 -69
- mindspore/ops_generate/{tensor_func_reg_cpp_generator.py → api/tensor_func_reg_cpp_generator.py} +82 -43
- mindspore/ops_generate/common/__init__.py +0 -0
- mindspore/ops_generate/common/gen_constants.py +91 -0
- mindspore/ops_generate/{gen_utils.py → common/gen_utils.py} +72 -19
- mindspore/ops_generate/{op_proto.py → common/op_proto.py} +64 -1
- mindspore/ops_generate/{template.py → common/template.py} +96 -84
- mindspore/ops_generate/gen_ops.py +23 -325
- mindspore/ops_generate/op_def/__init__.py +0 -0
- mindspore/ops_generate/op_def/gen_op_def.py +90 -0
- mindspore/ops_generate/{lite_ops_cpp_generator.py → op_def/lite_ops_cpp_generator.py} +47 -11
- mindspore/ops_generate/{ops_def_cc_generator.py → op_def/ops_def_cc_generator.py} +18 -7
- mindspore/ops_generate/{ops_def_h_generator.py → op_def/ops_def_h_generator.py} +5 -5
- mindspore/ops_generate/{ops_name_h_generator.py → op_def/ops_name_h_generator.py} +30 -15
- mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
- mindspore/ops_generate/op_def_py/__init__.py +0 -0
- mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
- mindspore/ops_generate/{op_def_py_generator.py → op_def_py/op_def_py_generator.py} +6 -5
- mindspore/ops_generate/{op_prim_py_generator.py → op_def_py/op_prim_py_generator.py} +24 -15
- mindspore/ops_generate/pyboost/__init__.py +0 -0
- mindspore/ops_generate/{auto_grad_impl_cc_generator.py → pyboost/auto_grad_impl_cc_generator.py} +11 -7
- mindspore/ops_generate/{auto_grad_reg_cc_generator.py → pyboost/auto_grad_reg_cc_generator.py} +7 -7
- mindspore/ops_generate/{gen_pyboost_func.py → pyboost/gen_pyboost_func.py} +40 -16
- mindspore/ops_generate/{op_template_parser.py → pyboost/op_template_parser.py} +105 -24
- mindspore/ops_generate/{pyboost_functions_cpp_generator.py → pyboost/pyboost_functions_cpp_generator.py} +55 -18
- mindspore/ops_generate/{pyboost_functions_h_generator.py → pyboost/pyboost_functions_h_generator.py} +42 -10
- mindspore/ops_generate/{pyboost_functions_py_generator.py → pyboost/pyboost_functions_py_generator.py} +6 -6
- mindspore/ops_generate/{pyboost_grad_function_cpp_generator.py → pyboost/pyboost_grad_function_cpp_generator.py} +11 -10
- mindspore/ops_generate/{pyboost_inner_prim_generator.py → pyboost/pyboost_inner_prim_generator.py} +8 -7
- mindspore/ops_generate/{pyboost_native_grad_functions_generator.py → pyboost/pyboost_native_grad_functions_generator.py} +14 -10
- mindspore/ops_generate/{pyboost_op_cpp_code_generator.py → pyboost/pyboost_op_cpp_code_generator.py} +140 -53
- mindspore/ops_generate/{pyboost_overload_functions_cpp_generator.py → pyboost/pyboost_overload_functions_cpp_generator.py} +28 -15
- mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +88 -4
- mindspore/ops_generate/resources/__init__.py +0 -0
- mindspore/ops_generate/resources/resource_list.py +30 -0
- mindspore/ops_generate/resources/resource_loader.py +36 -0
- mindspore/ops_generate/resources/resource_manager.py +64 -0
- mindspore/ops_generate/resources/yaml_loader.py +88 -0
- mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
- mindspore/parallel/__init__.py +6 -2
- mindspore/parallel/_auto_parallel_context.py +133 -6
- mindspore/parallel/_cell_wrapper.py +130 -15
- mindspore/parallel/_parallel_serialization.py +95 -4
- mindspore/parallel/_ps_context.py +1 -1
- mindspore/parallel/_recovery_context.py +7 -2
- mindspore/parallel/_tensor.py +142 -18
- mindspore/parallel/_utils.py +198 -25
- mindspore/parallel/algo_parameter_config.py +3 -3
- mindspore/parallel/auto_parallel.py +732 -0
- mindspore/parallel/checkpoint_convert.py +159 -0
- mindspore/parallel/checkpoint_transform.py +656 -37
- mindspore/parallel/cluster/process_entity/_api.py +151 -19
- mindspore/parallel/cluster/run.py +1 -1
- mindspore/parallel/function/__init__.py +24 -0
- mindspore/parallel/function/reshard_func.py +259 -0
- mindspore/parallel/nn/__init__.py +25 -0
- mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
- mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
- mindspore/parallel/parameter_broadcast.py +24 -13
- mindspore/parallel/shard.py +137 -61
- mindspore/parallel/transform_safetensors.py +287 -95
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +9 -5
- mindspore/profiler/analysis/parser/ascend_cann_parser.py +6 -2
- mindspore/profiler/analysis/parser/ms_framework_parser.py +4 -4
- mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -4
- mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +22 -0
- mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
- mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +241 -86
- mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +41 -2
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +33 -35
- mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +7 -0
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +8 -3
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +141 -30
- mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +5 -6
- mindspore/profiler/common/ascend_msprof_exporter.py +5 -4
- mindspore/profiler/common/constant.py +12 -0
- mindspore/profiler/common/msprof_cmd_tool.py +42 -23
- mindspore/profiler/common/path_manager.py +24 -0
- mindspore/profiler/common/profiler_context.py +26 -2
- mindspore/profiler/common/profiler_meta_data.py +74 -0
- mindspore/profiler/common/profiler_parameters.py +59 -18
- mindspore/profiler/common/profiler_path_manager.py +66 -7
- mindspore/profiler/dynamic_profiler.py +112 -79
- mindspore/profiler/envprofiler.py +26 -1
- mindspore/profiler/experimental_config.py +197 -0
- mindspore/profiler/mstx.py +57 -14
- mindspore/profiler/platform/npu_profiler.py +33 -7
- mindspore/profiler/profiler.py +541 -45
- mindspore/profiler/profiler_action_controller.py +1 -1
- mindspore/profiler/profiler_interface.py +4 -0
- mindspore/profiler/schedule.py +57 -22
- mindspore/rewrite/api/node.py +15 -13
- mindspore/rewrite/api/symbol_tree.py +1 -1
- mindspore/run_check/_check_version.py +25 -14
- mindspore/run_check/run_check.py +1 -1
- mindspore/runtime/__init__.py +2 -2
- mindspore/runtime/executor.py +40 -11
- mindspore/runtime/memory.py +25 -8
- mindspore/safeguard/rewrite_obfuscation.py +12 -9
- 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 +8 -8
- mindspore/train/_utils.py +35 -7
- mindspore/train/amp.py +1 -1
- mindspore/train/callback/__init__.py +2 -2
- mindspore/train/callback/_callback.py +2 -16
- mindspore/train/callback/_checkpoint.py +24 -40
- mindspore/train/callback/_cluster_monitor.py +14 -18
- mindspore/train/callback/_flops_collector.py +2 -3
- mindspore/train/callback/_history.py +7 -4
- mindspore/train/callback/_lambda_callback.py +2 -2
- mindspore/train/callback/_landscape.py +0 -3
- mindspore/train/callback/_loss_monitor.py +2 -1
- mindspore/train/callback/_on_request_exit.py +6 -5
- mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
- mindspore/train/callback/_summary_collector.py +8 -13
- mindspore/train/callback/_time_monitor.py +2 -1
- mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +179 -103
- mindspore/train/data_sink.py +25 -2
- mindspore/train/dataset_helper.py +4 -5
- mindspore/train/loss_scale_manager.py +8 -7
- mindspore/train/metrics/accuracy.py +3 -3
- mindspore/train/metrics/confusion_matrix.py +9 -9
- mindspore/train/metrics/error.py +3 -3
- mindspore/train/metrics/hausdorff_distance.py +4 -4
- mindspore/train/metrics/mean_surface_distance.py +3 -3
- mindspore/train/metrics/metric.py +0 -12
- mindspore/train/metrics/occlusion_sensitivity.py +4 -2
- mindspore/train/metrics/precision.py +8 -6
- mindspore/train/metrics/recall.py +9 -9
- mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
- mindspore/train/mind_ir_pb2.py +19 -12
- mindspore/train/model.py +176 -103
- mindspore/train/serialization.py +246 -988
- mindspore/train/summary/_summary_adapter.py +2 -2
- mindspore/train/summary/summary_record.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +3 -2
- mindspore/utils/dryrun.py +4 -2
- mindspore/utils/hooks.py +81 -0
- mindspore/utils/utils.py +138 -4
- mindspore/vcmeta.dll +0 -0
- mindspore/vcruntime140.dll +0 -0
- mindspore/vcruntime140_1.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/METADATA +2 -1
- {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/RECORD +483 -438
- mindspore/_install_custom.py +0 -43
- mindspore/common/_register_for_adapter.py +0 -74
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
- mindspore/ops/auto_generate/gen_arg_handler.py +0 -136
- mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
- mindspore/ops_generate/gen_constants.py +0 -190
- mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
- mindspore/ops_generate/ops_primitive_h_generator.py +0 -81
- /mindspore/ops_generate/{base_generator.py → common/base_generator.py} +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/WHEEL +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/entry_points.txt +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/top_level.txt +0 -0
mindspore/_install_custom.py
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# Copyright 2023 Huawei Technologies Co., Ltd
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
# ============================================================================
|
|
15
|
-
"""install custom op files"""
|
|
16
|
-
|
|
17
|
-
import os
|
|
18
|
-
import platform
|
|
19
|
-
import importlib.util
|
|
20
|
-
from mindspore import log as logger
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def _install_custom():
|
|
24
|
-
"""install custom op files"""
|
|
25
|
-
if platform.system() != "Linux":
|
|
26
|
-
return
|
|
27
|
-
custom_op_path = os.environ.get("MS_DEV_CUSTOM_OPP_PATH")
|
|
28
|
-
if not custom_op_path:
|
|
29
|
-
return
|
|
30
|
-
if not os.path.isdir(custom_op_path):
|
|
31
|
-
logger.warning("The path set in env 'MS_DEV_CUSTOM_OPP_PATH' is not a directory: '{}'".format(custom_op_path))
|
|
32
|
-
else:
|
|
33
|
-
for file_name in os.listdir(custom_op_path):
|
|
34
|
-
file_path = os.path.join(custom_op_path, file_name)
|
|
35
|
-
if os.path.isfile(file_path) and file_name.endswith(".py") and file_name != "__init__.py":
|
|
36
|
-
logger.info("start import file: '{}'".format(file_path))
|
|
37
|
-
mod_spec = importlib.util.spec_from_file_location(os.path.splitext(file_name)[0], file_path)
|
|
38
|
-
mod = importlib.util.module_from_spec(mod_spec)
|
|
39
|
-
mod_spec.loader.exec_module(mod)
|
|
40
|
-
os.environ.pop("MS_DEV_CUSTOM_OPP_PATH")
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
_install_custom()
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
# Copyright 2022-2023 Huawei Technologies Co., Ltd
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
# ============================================================================
|
|
15
|
-
|
|
16
|
-
"""Registry MSAdapter config."""
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
class Registry:
|
|
20
|
-
"""Registry class for ms adapter."""
|
|
21
|
-
|
|
22
|
-
def __init__(self):
|
|
23
|
-
self.is_registered = False
|
|
24
|
-
self._tensor = None
|
|
25
|
-
self._parameter = None
|
|
26
|
-
self._convert_map = {}
|
|
27
|
-
self.convert_adapter_tensor_map = {}
|
|
28
|
-
|
|
29
|
-
@property
|
|
30
|
-
def tensor(self):
|
|
31
|
-
"""Return the registered tensor."""
|
|
32
|
-
if self._tensor is None:
|
|
33
|
-
raise ValueError("Before using Tensor in MSAdapter, please call 'set_adapter_config'.")
|
|
34
|
-
return self._tensor
|
|
35
|
-
|
|
36
|
-
@property
|
|
37
|
-
def parameter(self):
|
|
38
|
-
"""Return the registered parrameter."""
|
|
39
|
-
if self._parameter is None:
|
|
40
|
-
raise ValueError("Before using Parameter in MSAdapter, please call 'set_adapter_config'.")
|
|
41
|
-
return self._parameter
|
|
42
|
-
|
|
43
|
-
@property
|
|
44
|
-
def convert_map(self):
|
|
45
|
-
"""Return the registered convert map."""
|
|
46
|
-
return self._convert_map
|
|
47
|
-
|
|
48
|
-
def register_tensor(self, value):
|
|
49
|
-
"""Register the tensor of ms adapter."""
|
|
50
|
-
if self._tensor is not None:
|
|
51
|
-
raise ValueError("Repeated registration of tensor in ms adapter config.")
|
|
52
|
-
self._tensor = value
|
|
53
|
-
self.is_registered = True
|
|
54
|
-
|
|
55
|
-
def register_parameter(self, value):
|
|
56
|
-
"""Register the parameter of ms adapter."""
|
|
57
|
-
if self._parameter is not None:
|
|
58
|
-
raise ValueError("Repeated registration of Parameter in ms adapter config.")
|
|
59
|
-
self._parameter = value
|
|
60
|
-
|
|
61
|
-
def register_convert_map(self, value):
|
|
62
|
-
"""Register the convert map of ms adapter."""
|
|
63
|
-
if not isinstance(value, dict):
|
|
64
|
-
raise ValueError(f"Expect a dict type, but got {type(value)}.")
|
|
65
|
-
self._convert_map = value
|
|
66
|
-
|
|
67
|
-
def register_convert_adapter_tensor_map(self, value):
|
|
68
|
-
"""Register the convert map for adapter tensor."""
|
|
69
|
-
if not isinstance(value, dict):
|
|
70
|
-
raise ValueError(f"Expect a dict type, but got {type(value)}.")
|
|
71
|
-
self.convert_adapter_tensor_map = value
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
ms_adapter_registry = Registry()
|
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
# This is the Python adaptation and derivative work of Myia (https://github.com/mila-iqia/myia/).
|
|
2
|
-
#
|
|
3
|
-
# Copyright 2023-2024 Huawei Technologies Co., Ltd
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
# ============================================================================
|
|
17
|
-
"""Operator argument data type cast function."""
|
|
18
|
-
|
|
19
|
-
import mindspore as ms
|
|
20
|
-
from mindspore import ops
|
|
21
|
-
from mindspore.common.tensor import Tensor
|
|
22
|
-
from mindspore.ops.operations._sequence_ops import TensorToScalar, TensorToTuple
|
|
23
|
-
from mindspore.ops_generate.gen_ops_inner_prim import TupleToList, ListToTuple
|
|
24
|
-
from mindspore._c_expression import OpDtype
|
|
25
|
-
|
|
26
|
-
tensor_to_tuple_ = TensorToTuple()
|
|
27
|
-
tuple_to_list = TupleToList()
|
|
28
|
-
list_to_tuple = ListToTuple()
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def int_to_float(data):
|
|
32
|
-
return float(data)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def scalar_to_tuple(data):
|
|
36
|
-
return (data,)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
def tensor_to_tuple(data):
|
|
40
|
-
# Since tuple is not supported for precision conversion during KernelSelect, the original int32 tensor input cases
|
|
41
|
-
# would be failed. Thus, the tuple precision is raised from int32 to int64 at frontend. But sequence data type cast
|
|
42
|
-
# must be adapted in future version.
|
|
43
|
-
if data.dtype == ms.int32:
|
|
44
|
-
data = ops.cast(data, ms.int64)
|
|
45
|
-
return tensor_to_tuple_(data)
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
def scalar_to_tensor(data):
|
|
49
|
-
if isinstance(data, bool):
|
|
50
|
-
return ops.scalar_to_tensor(data, ms.bool_)
|
|
51
|
-
if isinstance(data, int):
|
|
52
|
-
return ops.scalar_to_tensor(data, ms.int32)
|
|
53
|
-
if isinstance(data, float):
|
|
54
|
-
return ops.scalar_to_tensor(data, ms.float32)
|
|
55
|
-
return ops.scalar_to_tensor(data)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
def tuple_to_tensor(data):
|
|
59
|
-
return ops.tuple_to_array(data)
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
def list_to_tensor(data):
|
|
63
|
-
return ops.tuple_to_array(list_to_tuple(data))
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
# There will be some problems in using OpDtype.xxx directly in GRAPH_MODE, so convert it to int.
|
|
67
|
-
# type
|
|
68
|
-
DT_TYPE_VAL = int(OpDtype.DT_TYPE)
|
|
69
|
-
# scalar
|
|
70
|
-
DT_INT_VAL = int(OpDtype.DT_INT)
|
|
71
|
-
DT_FLOAT_VAL = int(OpDtype.DT_FLOAT)
|
|
72
|
-
DT_BOOL_VAL = int(OpDtype.DT_BOOL)
|
|
73
|
-
DT_NUMBER_VAL = int(OpDtype.DT_NUMBER)
|
|
74
|
-
# tuple
|
|
75
|
-
DT_TUPLE_BOOL_VAL = int(OpDtype.DT_TUPLE_BOOL)
|
|
76
|
-
DT_TUPLE_INT_VAL = int(OpDtype.DT_TUPLE_INT)
|
|
77
|
-
DT_TUPLE_FLOAT_VAL = int(OpDtype.DT_TUPLE_FLOAT)
|
|
78
|
-
DT_TUPLE_NUMBER_VAL = int(OpDtype.DT_TUPLE_NUMBER)
|
|
79
|
-
DT_TUPLE_TENSOR_VAL = int(OpDtype.DT_TUPLE_TENSOR)
|
|
80
|
-
DT_TUPLE_STR_VAL = int(OpDtype.DT_TUPLE_STR)
|
|
81
|
-
DT_TUPLE_ANY_VAL = int(OpDtype.DT_TUPLE_ANY)
|
|
82
|
-
# list
|
|
83
|
-
DT_LIST_BOOL_VAL = int(OpDtype.DT_LIST_BOOL)
|
|
84
|
-
DT_LIST_INT_VAL = int(OpDtype.DT_LIST_INT)
|
|
85
|
-
DT_LIST_FLOAT_VAL = int(OpDtype.DT_LIST_FLOAT)
|
|
86
|
-
DT_LIST_NUMBER_VAL = int(OpDtype.DT_LIST_NUMBER)
|
|
87
|
-
DT_LIST_TENSOR_VAL = int(OpDtype.DT_LIST_TENSOR)
|
|
88
|
-
DT_LIST_STR_VAL = int(OpDtype.DT_LIST_STR)
|
|
89
|
-
DT_LIST_ANY_VAL = int(OpDtype.DT_LIST_ANY)
|
|
90
|
-
# tensor
|
|
91
|
-
DT_TENSOR_VAL = int(OpDtype.DT_TENSOR)
|
|
92
|
-
|
|
93
|
-
dtype_to_string = {
|
|
94
|
-
DT_INT_VAL: "int",
|
|
95
|
-
DT_FLOAT_VAL: "float",
|
|
96
|
-
DT_BOOL_VAL: "bool",
|
|
97
|
-
DT_NUMBER_VAL: "number",
|
|
98
|
-
DT_TENSOR_VAL: "Tensor",
|
|
99
|
-
DT_TUPLE_BOOL_VAL: "tuple of bool",
|
|
100
|
-
DT_TUPLE_INT_VAL: "tuple of int",
|
|
101
|
-
DT_TUPLE_FLOAT_VAL: "tuple of float",
|
|
102
|
-
DT_TUPLE_NUMBER_VAL: "tuple of number",
|
|
103
|
-
DT_TUPLE_TENSOR_VAL: "tuple of tensor",
|
|
104
|
-
DT_TUPLE_STR_VAL: "tuple of string",
|
|
105
|
-
DT_TUPLE_ANY_VAL: "tuple of Any",
|
|
106
|
-
DT_LIST_BOOL_VAL: "list of bool",
|
|
107
|
-
DT_LIST_INT_VAL: "list of int",
|
|
108
|
-
DT_LIST_FLOAT_VAL: "list of float",
|
|
109
|
-
DT_LIST_NUMBER_VAL: "list of number",
|
|
110
|
-
DT_LIST_TENSOR_VAL: "list of Tensor",
|
|
111
|
-
DT_LIST_STR_VAL: "list of string",
|
|
112
|
-
DT_LIST_ANY_VAL: "list of Any"
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
def is_tuple(type_id):
|
|
117
|
-
"""
|
|
118
|
-
Check type id is tuple.
|
|
119
|
-
"""
|
|
120
|
-
return type_id in (DT_TUPLE_BOOL_VAL, DT_TUPLE_INT_VAL, DT_TUPLE_FLOAT_VAL, DT_TUPLE_NUMBER_VAL,
|
|
121
|
-
DT_TUPLE_TENSOR_VAL, DT_TUPLE_STR_VAL, DT_TUPLE_ANY_VAL)
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
def is_list(type_id):
|
|
125
|
-
"""
|
|
126
|
-
Check type id is list.
|
|
127
|
-
"""
|
|
128
|
-
return type_id in (DT_LIST_BOOL_VAL, DT_LIST_INT_VAL, DT_LIST_FLOAT_VAL, DT_LIST_NUMBER_VAL,
|
|
129
|
-
DT_LIST_TENSOR_VAL,
|
|
130
|
-
DT_LIST_STR_VAL, DT_LIST_ANY_VAL)
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
def is_number(type_id):
|
|
134
|
-
"""
|
|
135
|
-
Check type id is number.
|
|
136
|
-
"""
|
|
137
|
-
return type_id in (DT_INT_VAL, DT_FLOAT_VAL, DT_BOOL_VAL, DT_NUMBER_VAL)
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
def is_instance_of(data, type_id):
|
|
141
|
-
"""
|
|
142
|
-
Instead isinstance(obj, type).
|
|
143
|
-
"""
|
|
144
|
-
if type_id == DT_INT_VAL:
|
|
145
|
-
return isinstance(data, int)
|
|
146
|
-
if type_id == DT_FLOAT_VAL:
|
|
147
|
-
return isinstance(data, float)
|
|
148
|
-
if type_id == DT_BOOL_VAL:
|
|
149
|
-
return isinstance(data, bool)
|
|
150
|
-
if is_number(type_id):
|
|
151
|
-
return isinstance(data, (int, float, bool))
|
|
152
|
-
if is_tuple(type_id):
|
|
153
|
-
return isinstance(data, tuple)
|
|
154
|
-
if is_list(type_id):
|
|
155
|
-
return isinstance(data, list)
|
|
156
|
-
if type_id == DT_TENSOR_VAL:
|
|
157
|
-
return isinstance(data, Tensor)
|
|
158
|
-
return False
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
def is_instance_in(data, type_id):
|
|
162
|
-
"""
|
|
163
|
-
Instead isinstance(obj, tuple_types).
|
|
164
|
-
"""
|
|
165
|
-
if not isinstance(type_id, tuple):
|
|
166
|
-
return is_instance_of(data, type_id)
|
|
167
|
-
for type_id_i in type_id:
|
|
168
|
-
if is_instance_of(data, type_id_i):
|
|
169
|
-
return True
|
|
170
|
-
return False
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
def get_support_dtype_list(src_type, dst_type):
|
|
174
|
-
"""
|
|
175
|
-
Get support dtype list.
|
|
176
|
-
"""
|
|
177
|
-
support_list = ""
|
|
178
|
-
if isinstance(src_type, tuple):
|
|
179
|
-
for dtype in src_type:
|
|
180
|
-
support_list += dtype_to_string.get(dtype) + ", "
|
|
181
|
-
else:
|
|
182
|
-
support_list += dtype_to_string.get(src_type) + ", "
|
|
183
|
-
support_list += dtype_to_string.get(dst_type)
|
|
184
|
-
return support_list
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
def to_py_number(data, dst_type):
|
|
188
|
-
"""Convert tensor to python number"""
|
|
189
|
-
if dst_type == DT_INT_VAL:
|
|
190
|
-
data = ops.cast(data, ms.int64)
|
|
191
|
-
elif dst_type == DT_FLOAT_VAL:
|
|
192
|
-
data = ops.cast(data, ms.float32)
|
|
193
|
-
elif dst_type == DT_NUMBER_VAL:
|
|
194
|
-
src_type = data.dtype
|
|
195
|
-
if src_type in (ms.uint8, ms.uint16, ms.uint32, ms.uint64,
|
|
196
|
-
ms.int8, ms.int16, ms.int32, ms.int64):
|
|
197
|
-
data = ops.cast(data, ms.int64)
|
|
198
|
-
elif src_type in (ms.bfloat16, ms.float16, ms.float32, ms.float64):
|
|
199
|
-
data = ops.cast(data, ms.float32)
|
|
200
|
-
return TensorToScalar()(data)
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
def do_type_cast(data, dst_type):
|
|
204
|
-
"""Type conversion."""
|
|
205
|
-
if is_instance_of(data, dst_type):
|
|
206
|
-
return data
|
|
207
|
-
if dst_type == DT_FLOAT_VAL:
|
|
208
|
-
if isinstance(data, int):
|
|
209
|
-
return int_to_float(data)
|
|
210
|
-
elif is_tuple(dst_type):
|
|
211
|
-
if isinstance(data, (int, float, bool)):
|
|
212
|
-
return scalar_to_tuple(data)
|
|
213
|
-
if isinstance(data, list):
|
|
214
|
-
return list_to_tuple(data)
|
|
215
|
-
if isinstance(data, Tensor):
|
|
216
|
-
return tensor_to_tuple(data)
|
|
217
|
-
elif is_list(dst_type):
|
|
218
|
-
if isinstance(data, (int, float, bool)):
|
|
219
|
-
return tuple_to_list(scalar_to_tuple(data))
|
|
220
|
-
if isinstance(data, tuple):
|
|
221
|
-
return tuple_to_list(data)
|
|
222
|
-
if isinstance(data, Tensor):
|
|
223
|
-
return tuple_to_list(tensor_to_tuple(data))
|
|
224
|
-
elif dst_type == DT_TENSOR_VAL:
|
|
225
|
-
if isinstance(data, (int, float, bool)):
|
|
226
|
-
return scalar_to_tensor(data)
|
|
227
|
-
if isinstance(data, tuple):
|
|
228
|
-
return tuple_to_tensor(data)
|
|
229
|
-
if isinstance(data, list):
|
|
230
|
-
return list_to_tensor(data)
|
|
231
|
-
elif is_number(dst_type):
|
|
232
|
-
if isinstance(data, Tensor):
|
|
233
|
-
return to_py_number(data, dst_type)
|
|
234
|
-
raise TypeError("Type conversion failed.")
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
def type_it(op_name, arg_name, data, src_type, dst_type):
|
|
238
|
-
"""
|
|
239
|
-
cast operator argument data type.
|
|
240
|
-
"""
|
|
241
|
-
if isinstance(data, type(None)):
|
|
242
|
-
return data
|
|
243
|
-
if not isinstance(src_type, tuple):
|
|
244
|
-
src_type = int(src_type)
|
|
245
|
-
else:
|
|
246
|
-
src_type = tuple((int(t) for t in src_type))
|
|
247
|
-
dst_type = int(dst_type)
|
|
248
|
-
if not is_instance_in(data, src_type) and not is_instance_of(data, dst_type):
|
|
249
|
-
support_list = get_support_dtype_list(src_type, dst_type)
|
|
250
|
-
raise TypeError(f"For '{op_name}', the type of '{arg_name}' should be one of '[{support_list}]', "
|
|
251
|
-
f"but got {type(data)}.")
|
|
252
|
-
return do_type_cast(data, dst_type)
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
# Copyright 2023 Huawei Technologies Co., Ltd
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
# ============================================================================
|
|
15
|
-
"""Operator argument handle function."""
|
|
16
|
-
|
|
17
|
-
from mindspore.ops_generate.gen_ops_inner_prim import DtypeToEnum, StringToEnum
|
|
18
|
-
# Enum Class:
|
|
19
|
-
from mindspore._c_expression import FormatEnum as Format
|
|
20
|
-
from mindspore._c_expression import ReductionEnum as Reduction
|
|
21
|
-
from mindspore.common import Tensor
|
|
22
|
-
from mindspore.common import dtype as mstype
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def arg_invalid_info(op_name, arg_name, arg_val):
|
|
26
|
-
"""
|
|
27
|
-
generate invalid msg.
|
|
28
|
-
"""
|
|
29
|
-
return f"For '{op_name}', the value of '{arg_name}' is invalid: '{arg_val}'."
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
def to_pair(op_name, arg_name, arg_val):
|
|
33
|
-
"""
|
|
34
|
-
convert arg_val: int/tuple[int*2] -> tuple[int*2].
|
|
35
|
-
"""
|
|
36
|
-
if isinstance(arg_val, (int, float)):
|
|
37
|
-
return (arg_val, arg_val)
|
|
38
|
-
if isinstance(arg_val, (list, tuple)):
|
|
39
|
-
return arg_val
|
|
40
|
-
raise ValueError(arg_invalid_info(op_name, arg_name, arg_val))
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
def to_kernel_size(op_name, arg_name, kernel_size):
|
|
44
|
-
"""
|
|
45
|
-
convert kernel_size: int/tuple[int*4] -> tuple[int*2].
|
|
46
|
-
"""
|
|
47
|
-
if isinstance(kernel_size, int):
|
|
48
|
-
return (kernel_size, kernel_size)
|
|
49
|
-
if isinstance(kernel_size, (tuple, list)):
|
|
50
|
-
if len(kernel_size) == 4:
|
|
51
|
-
return (kernel_size[2], kernel_size[3])
|
|
52
|
-
return kernel_size
|
|
53
|
-
raise ValueError(arg_invalid_info(op_name, arg_name, kernel_size))
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
def to_strides(op_name, arg_name, stride):
|
|
57
|
-
"""
|
|
58
|
-
convert strides: int/tuple[int*4] -> tuple[int*2].
|
|
59
|
-
"""
|
|
60
|
-
if isinstance(stride, int):
|
|
61
|
-
return (stride, stride)
|
|
62
|
-
if isinstance(stride, (tuple, list)):
|
|
63
|
-
if len(stride) == 4:
|
|
64
|
-
return (stride[2], stride[3])
|
|
65
|
-
return stride
|
|
66
|
-
raise ValueError(arg_invalid_info(op_name, arg_name, stride))
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
def to_rates(op_name, arg_name, rates):
|
|
70
|
-
"""
|
|
71
|
-
convert rates: int/tuple[int*4] -> tuple[int*2].
|
|
72
|
-
"""
|
|
73
|
-
if isinstance(rates, int):
|
|
74
|
-
return (rates, rates)
|
|
75
|
-
if isinstance(rates, (tuple, list)):
|
|
76
|
-
if len(rates) == 4:
|
|
77
|
-
return (rates[2], rates[3])
|
|
78
|
-
return rates
|
|
79
|
-
raise ValueError(arg_invalid_info(op_name, arg_name, rates))
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
def to_dilations(op_name, arg_name, dilation):
|
|
83
|
-
"""
|
|
84
|
-
convert dilations: int/tuple[int*4] -> tuple[int*2].
|
|
85
|
-
"""
|
|
86
|
-
if isinstance(dilation, int):
|
|
87
|
-
return (dilation, dilation)
|
|
88
|
-
if isinstance(dilation, (tuple, list)):
|
|
89
|
-
if len(dilation) == 4:
|
|
90
|
-
return (dilation[2], dilation[3])
|
|
91
|
-
return dilation
|
|
92
|
-
raise ValueError(arg_invalid_info(op_name, arg_name, dilation))
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
def to_output_padding(op_name, arg_name, output_padding):
|
|
96
|
-
"""
|
|
97
|
-
convert output_padding: int/tuple[int*4] -> tuple[int*2].
|
|
98
|
-
"""
|
|
99
|
-
if isinstance(output_padding, int):
|
|
100
|
-
return (output_padding, output_padding)
|
|
101
|
-
if isinstance(output_padding, (tuple, list)):
|
|
102
|
-
if len(output_padding) == 4:
|
|
103
|
-
return (output_padding[2], output_padding[3])
|
|
104
|
-
return output_padding
|
|
105
|
-
raise ValueError(arg_invalid_info(op_name, arg_name, output_padding))
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
def to_2d_paddings(op_name, arg_name, pad):
|
|
109
|
-
"""
|
|
110
|
-
convert paddings: int -> tuple[int*2].
|
|
111
|
-
"""
|
|
112
|
-
if isinstance(pad, int):
|
|
113
|
-
return (pad,) * 2
|
|
114
|
-
if isinstance(pad, (tuple, list)):
|
|
115
|
-
return pad
|
|
116
|
-
raise ValueError(arg_invalid_info(op_name, arg_name, pad))
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
def generator_handler(op_name, arg_name, inputs):
|
|
120
|
-
"""
|
|
121
|
-
convert constant value in tuple to tensor
|
|
122
|
-
"""
|
|
123
|
-
new_inputs = []
|
|
124
|
-
for input_ in inputs:
|
|
125
|
-
if isinstance(input_, int):
|
|
126
|
-
new_inputs.append(Tensor(input_, mstype.int64))
|
|
127
|
-
else:
|
|
128
|
-
new_inputs.append(input_)
|
|
129
|
-
return tuple(new_inputs)
|
|
130
|
-
|
|
131
|
-
dtype_to_type_id = DtypeToEnum()
|
|
132
|
-
|
|
133
|
-
# string to enum
|
|
134
|
-
# A function for converting str type to enum type are written here,
|
|
135
|
-
# but the backend supports str input, and converting str input to enum input is not necessary.
|
|
136
|
-
str_to_enum = StringToEnum()
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# Copyright 2022 Huawei Technologies Co., Ltd
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
# ============================================================================
|
|
15
|
-
|
|
16
|
-
"""Register pyfunc for opaque_func_cpu_kernel"""
|
|
17
|
-
|
|
18
|
-
from mindspore.ops._register_for_op import OpaquePredicateRegistry
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
registered_func_name = OpaquePredicateRegistry()
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def add_opaque_predicate(fn_name, func):
|
|
25
|
-
"""restore opaque predicate functions"""
|
|
26
|
-
registered_func_name.register(fn_name, func)
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def get_opaque_predicate(fn_name):
|
|
30
|
-
"""get opaque predicate function by their name"""
|
|
31
|
-
return registered_func_name.get(fn_name)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def get_func_names():
|
|
35
|
-
"""get function names"""
|
|
36
|
-
return registered_func_name.func_names
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
def clean_funcs():
|
|
40
|
-
"""clean restored functions"""
|
|
41
|
-
registered_func_name.func_names = []
|