mindspore 2.5.0__cp311-cp311-win_amd64.whl → 2.6.0rc1__cp311-cp311-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.cp311-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp311-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp311-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
|
@@ -17,15 +17,16 @@
|
|
|
17
17
|
"""Providing auto dynamic shape interface methods."""
|
|
18
18
|
|
|
19
19
|
import os
|
|
20
|
+
import math
|
|
20
21
|
from mindspore import log as logger
|
|
21
|
-
from mindspore._c_expression import GraphExecutor_, Tensor
|
|
22
|
+
from mindspore._c_expression import GraphExecutor_, JitExecutor_, TensorPy as Tensor
|
|
22
23
|
from mindspore.common._utils import is_shape_unknown, is_dim_unknown
|
|
23
24
|
from mindspore.common.parameter import Parameter
|
|
24
25
|
|
|
25
26
|
SHAPE_DIM_ANY = -1
|
|
26
27
|
SHAPE_RANK_ANY = -2
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
auto_dynamic_shape_dict = {}
|
|
29
30
|
|
|
30
31
|
|
|
31
32
|
class _AutoDynamicShapeManager:
|
|
@@ -37,8 +38,6 @@ class _AutoDynamicShapeManager:
|
|
|
37
38
|
self.generalize_shape_cache = []
|
|
38
39
|
self.real_phase_and_compile_args_dict = {}
|
|
39
40
|
self.generalize_phase_and_compile_args_dict = {}
|
|
40
|
-
self._graph_executor = GraphExecutor_.get_instance()
|
|
41
|
-
|
|
42
41
|
|
|
43
42
|
def __del__(self):
|
|
44
43
|
self.real_shape_cache = []
|
|
@@ -167,7 +166,8 @@ class _AutoDynamicShapeManager:
|
|
|
167
166
|
else:
|
|
168
167
|
delete_cache = set()
|
|
169
168
|
delete_cache.add(delete_phase)
|
|
170
|
-
|
|
169
|
+
GraphExecutor_.get_instance().del_net_res(None, delete_cache)
|
|
170
|
+
JitExecutor_.get_instance().del_net_res(None, delete_cache)
|
|
171
171
|
del self.generalize_phase_and_compile_args_dict[delete_phase]
|
|
172
172
|
|
|
173
173
|
# step3: delete compile args
|
|
@@ -186,8 +186,8 @@ class _AutoDynamicShapeManager:
|
|
|
186
186
|
if isinstance(arg, Tensor) and isinstance(cache, Tensor):
|
|
187
187
|
if not self.is_tensor_equal(arg, cache):
|
|
188
188
|
return False
|
|
189
|
-
elif isinstance(arg, int) and isinstance(cache, int):
|
|
190
|
-
if arg
|
|
189
|
+
elif isinstance(arg, (int, float)) and isinstance(cache, (int, float)):
|
|
190
|
+
if not math.isclose(arg, cache):
|
|
191
191
|
return False
|
|
192
192
|
elif isinstance(arg, (tuple, list)) and isinstance(cache, (tuple, list)):
|
|
193
193
|
if not self._compare_input_args_and_cache_args(arg, cache):
|
|
@@ -199,22 +199,19 @@ class _AutoIdentifyDynamicShape:
|
|
|
199
199
|
"""
|
|
200
200
|
Represents a function auto identify dynamic shape.
|
|
201
201
|
"""
|
|
202
|
-
def __init__(self):
|
|
202
|
+
def __init__(self, auto_dynamic=False):
|
|
203
203
|
self.all_shape_cache = {}
|
|
204
204
|
self.is_sink_mode = False
|
|
205
|
-
self.is_enable_auto_dynamic_shape =
|
|
205
|
+
self.is_enable_auto_dynamic_shape = auto_dynamic or os.getenv('MS_AUTO_DYNAMIC_SHAPE_ENABLE') == '1'
|
|
206
206
|
self.save_cache_number = 3
|
|
207
|
-
self.enable_auto_identify = os.getenv('MS_AUTO_DYNAMIC_SHAPE_ENABLE')
|
|
208
207
|
self.auto_dynamic_shape_manager = _AutoDynamicShapeManager()
|
|
209
208
|
|
|
210
|
-
|
|
211
209
|
def __del__(self):
|
|
212
210
|
self.all_shape_cache = {}
|
|
213
211
|
self.is_sink_mode = False
|
|
214
212
|
self.is_enable_auto_dynamic_shape = True
|
|
215
213
|
self.save_cache_number = 3
|
|
216
214
|
|
|
217
|
-
|
|
218
215
|
def _check_input_args_number(self, args_list):
|
|
219
216
|
"""check input arg number"""
|
|
220
217
|
if self.auto_dynamic_shape_manager.get_real_shape_cache_number() > 0:
|
|
@@ -223,6 +220,12 @@ class _AutoIdentifyDynamicShape:
|
|
|
223
220
|
return False
|
|
224
221
|
return True
|
|
225
222
|
|
|
223
|
+
def _check_input_int_float(self, arg, cache):
|
|
224
|
+
"""check arg type is int or float"""
|
|
225
|
+
if (isinstance(arg, int) and not isinstance(cache, int)) or \
|
|
226
|
+
(isinstance(arg, float) and not isinstance(cache, float)):
|
|
227
|
+
return False
|
|
228
|
+
return math.isclose(arg, cache)
|
|
226
229
|
|
|
227
230
|
def _check_input_tensor_type(self, args_list, cache_list):
|
|
228
231
|
"""check input args type"""
|
|
@@ -236,19 +239,15 @@ class _AutoIdentifyDynamicShape:
|
|
|
236
239
|
res = self._check_input_tensor_type(arg, cache)
|
|
237
240
|
if not res:
|
|
238
241
|
return False
|
|
239
|
-
elif
|
|
240
|
-
|
|
241
|
-
if arg != cache:
|
|
242
|
+
elif isinstance(arg, (int, float)):
|
|
243
|
+
if not self._check_input_int_float(arg, cache):
|
|
242
244
|
return False
|
|
243
245
|
elif isinstance(arg, Tensor) and not isinstance(cache, Tensor):
|
|
244
246
|
return False
|
|
245
|
-
elif isinstance(arg, (int, float)) and not isinstance(cache, (int, float)):
|
|
246
|
-
return False
|
|
247
247
|
elif isinstance(arg, (tuple, list)) and not isinstance(cache, (tuple, list)):
|
|
248
248
|
return False
|
|
249
249
|
return True
|
|
250
250
|
|
|
251
|
-
|
|
252
251
|
def _check_input_number_and_type(self, args_list):
|
|
253
252
|
"""check input number and type"""
|
|
254
253
|
res = self._check_input_args_number(args_list)
|
|
@@ -262,18 +261,10 @@ class _AutoIdentifyDynamicShape:
|
|
|
262
261
|
return False
|
|
263
262
|
return True
|
|
264
263
|
|
|
265
|
-
|
|
266
264
|
def _is_enable_auto_dynamic_shape(self, args_list, is_sink_mode):
|
|
267
265
|
"""is enable auto identify shape"""
|
|
268
266
|
if not is_sink_mode and not args_list:
|
|
269
267
|
return False
|
|
270
|
-
|
|
271
|
-
if not self.enable_auto_identify:
|
|
272
|
-
self.enable_auto_identify = "0"
|
|
273
|
-
|
|
274
|
-
if self.enable_auto_identify == "0":
|
|
275
|
-
return False
|
|
276
|
-
|
|
277
268
|
for elem in args_list:
|
|
278
269
|
if elem is None:
|
|
279
270
|
continue
|
|
@@ -285,7 +276,6 @@ class _AutoIdentifyDynamicShape:
|
|
|
285
276
|
return self._is_enable_auto_dynamic_shape(elem, is_sink_mode)
|
|
286
277
|
return True
|
|
287
278
|
|
|
288
|
-
|
|
289
279
|
@staticmethod
|
|
290
280
|
def _do_generalize_in_sink(input_arg, cache, input_index, cache_index, cache_type):
|
|
291
281
|
"""do generalize in sink, input rank must be 2"""
|
|
@@ -340,8 +330,9 @@ class _AutoIdentifyDynamicShape:
|
|
|
340
330
|
|
|
341
331
|
def auto_dynamic_generate_compile_args(self, args_list, is_sink_mode):
|
|
342
332
|
"""generate compile args in auto dynamic shape"""
|
|
343
|
-
if not self.
|
|
344
|
-
not self._is_enable_auto_dynamic_shape(args_list, is_sink_mode)
|
|
333
|
+
if not self.is_enable_auto_dynamic_shape or \
|
|
334
|
+
not self._is_enable_auto_dynamic_shape(args_list, is_sink_mode) or \
|
|
335
|
+
not self._check_input_number_and_type(args_list):
|
|
345
336
|
self.is_enable_auto_dynamic_shape = False
|
|
346
337
|
return args_list
|
|
347
338
|
self.is_sink_mode = is_sink_mode
|
|
@@ -415,11 +406,12 @@ class _AutoIdentifyDynamicShape:
|
|
|
415
406
|
return Tensor(shape=shape_tuple, dtype=arg.dtype)
|
|
416
407
|
|
|
417
408
|
def generalize_sequence(arg, cache, i):
|
|
409
|
+
if not hasattr(arg, "__ms_mutable__"):
|
|
410
|
+
return arg, False
|
|
418
411
|
if is_sink_mode:
|
|
419
412
|
# when is_sink_mode=True, input must be the shape of Tensor.
|
|
420
413
|
res = self._do_generalize_in_sink(arg, cache, i, index, cache_type)
|
|
421
414
|
return res
|
|
422
|
-
|
|
423
415
|
res = self._do_generalize_one_input_shape(arg, cache, cache_type, index, is_sink_mode)
|
|
424
416
|
return res
|
|
425
417
|
|
|
@@ -437,12 +429,16 @@ class _AutoIdentifyDynamicShape:
|
|
|
437
429
|
res = generalize_tensor(arg, cache, i)
|
|
438
430
|
generalize_one_shape.append(res)
|
|
439
431
|
elif isinstance(arg, (tuple, list)) and isinstance(cache, (tuple, list)):
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
432
|
+
gen_seq_shape, can_generalize = generalize_sequence(arg, cache, i)
|
|
433
|
+
if not can_generalize:
|
|
434
|
+
return input_args, False
|
|
435
|
+
if isinstance(arg, tuple):
|
|
436
|
+
gen_seq_shape = tuple(gen_seq_shape)
|
|
437
|
+
generalize_one_shape.append(gen_seq_shape)
|
|
438
|
+
elif isinstance(arg, (int, float)) and isinstance(cache, (int, float)):
|
|
443
439
|
# when is_sink_mode=False, the input must may be scalar, or the value of list/tuple.
|
|
444
440
|
# is_sink_mode can not be True
|
|
445
|
-
if arg
|
|
441
|
+
if math.isclose(arg, cache):
|
|
446
442
|
generalize_one_shape.append(arg)
|
|
447
443
|
else:
|
|
448
444
|
logger.info("In auto dynamic shape mode, scalar/tuple/list must be equal, it can not be " \
|
|
@@ -479,29 +475,30 @@ class _AutoIdentifyDynamicShape:
|
|
|
479
475
|
_auto_dynamic_shape = _AutoIdentifyDynamicShape()
|
|
480
476
|
|
|
481
477
|
|
|
482
|
-
def get_auto_dynamic_shape_args(compile_args, key_id):
|
|
478
|
+
def get_auto_dynamic_shape_args(compile_args, key_id, enable_auto_dynamic=False):
|
|
483
479
|
"""get auto dynamic shape args."""
|
|
484
|
-
if key_id not in
|
|
485
|
-
|
|
486
|
-
compile_args =
|
|
480
|
+
if key_id not in auto_dynamic_shape_dict:
|
|
481
|
+
auto_dynamic_shape_dict[key_id] = _AutoIdentifyDynamicShape(enable_auto_dynamic)
|
|
482
|
+
compile_args = auto_dynamic_shape_dict[key_id].auto_dynamic_generate_compile_args(compile_args, False)
|
|
487
483
|
return compile_args
|
|
488
484
|
|
|
489
485
|
|
|
490
486
|
def update_auto_dynamic_shape_phase(compile_args, key_id, phase):
|
|
491
487
|
"""update auto dynamic shape phase."""
|
|
492
|
-
if key_id in
|
|
493
|
-
|
|
488
|
+
if key_id in auto_dynamic_shape_dict:
|
|
489
|
+
auto_dynamic_shape_dict[key_id].update_phase_and_compile_args(compile_args, phase, False)
|
|
494
490
|
|
|
495
491
|
|
|
496
|
-
def get_auto_dynamic_shape_args_with_check_input_signature(compile_args, key_id, input_signature
|
|
492
|
+
def get_auto_dynamic_shape_args_with_check_input_signature(compile_args, key_id, input_signature,
|
|
493
|
+
enable_auto_dynamic=False):
|
|
497
494
|
"""get auto dynamic shape args."""
|
|
498
495
|
if input_signature is None:
|
|
499
|
-
return get_auto_dynamic_shape_args(compile_args, key_id)
|
|
496
|
+
return get_auto_dynamic_shape_args(compile_args, key_id, enable_auto_dynamic)
|
|
500
497
|
return compile_args
|
|
501
498
|
|
|
502
499
|
|
|
503
500
|
def update_auto_dynamic_shape_phase_with_check_input_signature(compile_args, key_id, phase, input_signature):
|
|
504
501
|
"""update auto dynamic shape phase."""
|
|
505
502
|
if input_signature is None:
|
|
506
|
-
if key_id in
|
|
507
|
-
|
|
503
|
+
if key_id in auto_dynamic_shape_dict:
|
|
504
|
+
auto_dynamic_shape_dict[key_id].update_phase_and_compile_args(compile_args, phase, False)
|
mindspore/common/dtype.py
CHANGED
|
@@ -279,8 +279,11 @@ def dtype_to_nptype(type_):
|
|
|
279
279
|
complex64: np.complex64,
|
|
280
280
|
complex128: np.complex128,
|
|
281
281
|
}
|
|
282
|
-
if
|
|
283
|
-
|
|
282
|
+
if type_ == bfloat16:
|
|
283
|
+
if not np_version_valid(True):
|
|
284
|
+
raise TypeError("The Numpy bfloat16 data type is not supported now, please ensure that the current "
|
|
285
|
+
"Numpy version is not less than the version when the mindspore is compiled.")
|
|
286
|
+
return np_bfloat16
|
|
284
287
|
return _dtype_nptype_dict[type_]
|
|
285
288
|
|
|
286
289
|
|
mindspore/common/dump.py
CHANGED
|
@@ -27,17 +27,19 @@ def set_dump(target, enabled=True):
|
|
|
27
27
|
`target` should be an instance of :class:`mindspore.nn.Cell` or :class:`mindspore.ops.Primitive` .
|
|
28
28
|
Please note that this API takes effect only when Synchronous Dump is enabled and the `dump_mode`
|
|
29
29
|
field in dump config file is ``"2"`` . See the `dump document
|
|
30
|
-
<https://www.mindspore.cn/
|
|
30
|
+
<https://www.mindspore.cn/tutorials/en/master/debug/dump.html>`_ for details.
|
|
31
31
|
The default enabled status for
|
|
32
32
|
a :class:`mindspore.nn.Cell` or :class:`mindspore.ops.Primitive` is False.
|
|
33
33
|
|
|
34
34
|
Note:
|
|
35
|
-
1. This API only
|
|
35
|
+
1. This API is only effective for GRAPH_MODE whose graph compilation level is O0/O1 with Ascend backend,
|
|
36
|
+
and can not work for fusion Primitive operators.
|
|
37
|
+
2. This API only supports being called before training starts.
|
|
36
38
|
If you call this API during training, it may not be effective.
|
|
37
|
-
|
|
39
|
+
3. After using `set_dump(Cell, True)` , operators in forward and backward
|
|
38
40
|
computation (computation generated by the grad operations) of the
|
|
39
41
|
cell will be dumped.
|
|
40
|
-
|
|
42
|
+
4. For :class:`mindspore.nn.SoftmaxCrossEntropyWithLogits` layer, the forward
|
|
41
43
|
computation and backward computation use the same set of
|
|
42
44
|
operators. So you can only see dump data from backward computation.
|
|
43
45
|
Please note that :class:`mindspore.nn.SoftmaxCrossEntropyWithLogits` layer will also use
|
|
@@ -57,7 +59,7 @@ def set_dump(target, enabled=True):
|
|
|
57
59
|
.. note::
|
|
58
60
|
Please set environment variable `MINDSPORE_DUMP_CONFIG` to the dump config file and set `dump_mode` field
|
|
59
61
|
in dump config file to 2 before running this example.
|
|
60
|
-
See `dump document <https://www.mindspore.cn/
|
|
62
|
+
See `dump document <https://www.mindspore.cn/tutorials/en/master/debug/dump.html>`_ for details.
|
|
61
63
|
|
|
62
64
|
>>> import numpy as np
|
|
63
65
|
>>> import mindspore as ms
|
mindspore/common/file_system.py
CHANGED
|
@@ -23,6 +23,7 @@ class FileSystem:
|
|
|
23
23
|
self.create_args = ("ab",)
|
|
24
24
|
self.open = open
|
|
25
25
|
self.open_args = ("rb",)
|
|
26
|
+
self.backend = "basic"
|
|
26
27
|
|
|
27
28
|
|
|
28
29
|
def _register_basic_file_system(fs: FileSystem):
|
|
@@ -52,4 +53,6 @@ def _register_mindio_file_system(fs: FileSystem):
|
|
|
52
53
|
fs.create_args = ()
|
|
53
54
|
fs.open = mindio.open_file
|
|
54
55
|
fs.open_args = ()
|
|
56
|
+
fs.backend = "mindio"
|
|
57
|
+
logger.info("The weights are stored using MindIO as the backend.")
|
|
55
58
|
return True
|
mindspore/common/hook_handle.py
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"""The removable handle for cell hook function."""
|
|
16
16
|
from __future__ import absolute_import
|
|
17
17
|
import weakref
|
|
18
|
-
from mindspore._c_expression import
|
|
18
|
+
from mindspore._c_expression import TensorPy as Tensor_
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
class _TensorHookHandle:
|
|
@@ -31,7 +31,7 @@ class _TensorHookHandle:
|
|
|
31
31
|
|
|
32
32
|
def __init__(self, tensor):
|
|
33
33
|
self.id = None
|
|
34
|
-
self.
|
|
34
|
+
self.tensor_ref = weakref.ref(tensor)
|
|
35
35
|
|
|
36
36
|
def remove(self):
|
|
37
37
|
"""
|
|
@@ -67,7 +67,9 @@ class _TensorHookHandle:
|
|
|
67
67
|
"""
|
|
68
68
|
if self.id is not None:
|
|
69
69
|
Tensor_.remove_hook(self.id)
|
|
70
|
-
self.
|
|
70
|
+
tensor = self.tensor_ref()
|
|
71
|
+
if tensor is not None:
|
|
72
|
+
tensor._remove_hook() # pylint:disable=protected-access
|
|
71
73
|
|
|
72
74
|
|
|
73
75
|
class HookHandle:
|
mindspore/common/initializer.py
CHANGED
|
@@ -369,9 +369,9 @@ class HeUniform(Initializer):
|
|
|
369
369
|
.. math::
|
|
370
370
|
boundary = \text{gain} \times \sqrt{\frac{3}{fan\_mode}}
|
|
371
371
|
|
|
372
|
-
where :math:`gain` is an optional scaling factor. If
|
|
373
|
-
|
|
374
|
-
|
|
372
|
+
where :math:`gain` is an optional scaling factor. If `mode` is ``'fan_in'``,
|
|
373
|
+
:math:`fan\_mode` in the formula is the number of input units of the weight tensor. If `mode` is ``'fan_out'``,
|
|
374
|
+
:math:`fan\_mode` is the number of output units of the weight tensor.
|
|
375
375
|
|
|
376
376
|
For details of HeUniform algorithm, please check
|
|
377
377
|
`<https://arxiv.org/abs/1502.01852>`_.
|
|
@@ -651,12 +651,16 @@ class Orthogonal(Initializer):
|
|
|
651
651
|
class VarianceScaling(Initializer):
|
|
652
652
|
r"""
|
|
653
653
|
Generates an random array with scaling in order to initialize a tensor.
|
|
654
|
+
|
|
654
655
|
When `distribution` is 'truncated_normal' or 'untruncated_normal', the value will be sampled from truncated or
|
|
655
656
|
untruncated normal distribution with a mean of 0 and a scaled standard deviation
|
|
656
|
-
:math:`stddev = \sqrt{\frac{scale}{n}}`.
|
|
657
|
+
:math:`stddev = \sqrt{\frac{scale}{n}}`.
|
|
658
|
+
|
|
659
|
+
:math:`n` will be the number of input units if `mode` is ``'fan_in'``,
|
|
657
660
|
while :math:`n` will be
|
|
658
661
|
the number of output units if `mode` is ``'fan_out'``. :math:`n` will be the average of ``'fan_in'``
|
|
659
662
|
and ``'fan_out'`` if `mode` is ``'fan_avg'``.
|
|
663
|
+
|
|
660
664
|
When `distribution` is ``'uniform'``, the value will be sampled from a uniform distribution within the limit of
|
|
661
665
|
:math:`[-\sqrt{\frac{3*scale}{n}}, \sqrt{\frac{3*scale}{n}}]`.
|
|
662
666
|
|
|
@@ -825,6 +829,8 @@ def initializer(init, shape=None, dtype=mstype.float32):
|
|
|
825
829
|
Args:
|
|
826
830
|
init (Union[Tensor, str, Initializer, numbers.Number]): Initialize value.
|
|
827
831
|
|
|
832
|
+
- `Tensor`: The tensor will be called to initialize tensor.
|
|
833
|
+
|
|
828
834
|
- `str`: The `init` should be the alias of the class inheriting from `Initializer` and the corresponding
|
|
829
835
|
class will be called in practice. The value of `init` can be ``"normal"``, ``"ones"`` or
|
|
830
836
|
``"zeros"``, etc.
|
|
@@ -833,8 +839,6 @@ def initializer(init, shape=None, dtype=mstype.float32):
|
|
|
833
839
|
|
|
834
840
|
- `numbers.Number`: The `Constant` will be called to initialize tensor.
|
|
835
841
|
|
|
836
|
-
- `Tensor`: The tensor will be called to initialize tensor.
|
|
837
|
-
|
|
838
842
|
shape (Union[tuple, list, int]): The shape of the initialized tensor. Default: ``None`` .
|
|
839
843
|
dtype (:class:`mindspore.dtype`): The type of data in initialized tensor. Default: ``mstype.float32`` .
|
|
840
844
|
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Copyright 2024 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
|
+
"""JIT begin/end for various JIT context compile."""
|
|
17
|
+
|
|
18
|
+
from .jit_trace import _jit_trace_begin, _jit_trace_end
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def _jit_begin(fn_name, *args):
|
|
22
|
+
"""
|
|
23
|
+
Start to build a MindIR func graph for a code snippet.
|
|
24
|
+
|
|
25
|
+
This allows the MindSpore runtime to apply optimizations based on generated func graph.
|
|
26
|
+
|
|
27
|
+
Note:
|
|
28
|
+
Use it with `jit_end` cooperatively.
|
|
29
|
+
|
|
30
|
+
Also see: :func:`jit_end`.
|
|
31
|
+
|
|
32
|
+
Args:
|
|
33
|
+
fn_name (str): The name of func graph to be built.
|
|
34
|
+
args (tuple): The arguments of func graph.
|
|
35
|
+
|
|
36
|
+
Supported Platforms:
|
|
37
|
+
``Ascend`` ``GPU`` ``CPU``
|
|
38
|
+
|
|
39
|
+
Examples:
|
|
40
|
+
>>> import numpy as np
|
|
41
|
+
>>> from mindspore import Tensor
|
|
42
|
+
>>> from mindspore.common.jit_begin_end import _jit_begin as jit_begin
|
|
43
|
+
>>> from mindspore.common.jit_begin_end import _jit_end as jit_end
|
|
44
|
+
...
|
|
45
|
+
>>> x = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
46
|
+
>>> y = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
47
|
+
>>> def tensor_add(x, y):
|
|
48
|
+
... jit_begin(x, y)
|
|
49
|
+
... z = x + y
|
|
50
|
+
... z = jit_end(z)
|
|
51
|
+
... return z
|
|
52
|
+
...
|
|
53
|
+
>>> out = tensor_add(x, y)
|
|
54
|
+
"""
|
|
55
|
+
return _jit_trace_begin(fn_name, *args)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def _jit_end(*output_args):
|
|
59
|
+
"""
|
|
60
|
+
Finish building a MindIR func graph for a code snippet.
|
|
61
|
+
|
|
62
|
+
This allows the MindSpore runtime to apply optimizations based on generated func graph.
|
|
63
|
+
|
|
64
|
+
Note:
|
|
65
|
+
Use it with `jit_begin` cooperatively.
|
|
66
|
+
|
|
67
|
+
Also see: :func:`jit_begin`.
|
|
68
|
+
|
|
69
|
+
Args:
|
|
70
|
+
output_args (tuple): The output of func graph.
|
|
71
|
+
|
|
72
|
+
Returns:
|
|
73
|
+
The same as args `output_args`.
|
|
74
|
+
|
|
75
|
+
Supported Platforms:
|
|
76
|
+
``Ascend`` ``GPU`` ``CPU``
|
|
77
|
+
|
|
78
|
+
Examples:
|
|
79
|
+
>>> import numpy as np
|
|
80
|
+
>>> from mindspore import Tensor
|
|
81
|
+
>>> from mindspore.common.jit_begin_end import _jit_begin as jit_begin
|
|
82
|
+
>>> from mindspore.common.jit_begin_end import _jit_end as jit_end
|
|
83
|
+
...
|
|
84
|
+
>>> x = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
85
|
+
>>> y = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
86
|
+
>>> def tensor_add(x, y):
|
|
87
|
+
... jit_begin(x, y)
|
|
88
|
+
... z = x + y
|
|
89
|
+
... z = jit_end(z)
|
|
90
|
+
... return z
|
|
91
|
+
...
|
|
92
|
+
>>> out = tensor_add(x, y)
|
|
93
|
+
"""
|
|
94
|
+
return _jit_trace_end(*output_args)
|
mindspore/common/jit_config.py
CHANGED
|
@@ -21,7 +21,7 @@ class JitConfig:
|
|
|
21
21
|
Args:
|
|
22
22
|
jit_level (str, optional): Used to control the compilation optimization level.
|
|
23
23
|
Supports ["O0", "O1", "O2"]. Default: ``""`` , The framework automatically selects the execution method.
|
|
24
|
-
Not recommended, it is recommended to use the
|
|
24
|
+
Not recommended, it is recommended to use the JIT decorator.
|
|
25
25
|
|
|
26
26
|
- ``"O0"``: Except for optimizations that may affect functionality, all other optimizations are turned off,
|
|
27
27
|
adopt KernelByKernel execution mode.
|
|
@@ -96,3 +96,8 @@ class JitConfig:
|
|
|
96
96
|
self.jit_config_dict["jit_syntax_level"] = jit_syntax_level
|
|
97
97
|
self.jit_config_dict["debug_level"] = debug_level
|
|
98
98
|
self.jit_config_dict["infer_boost"] = infer_boost
|
|
99
|
+
if "backend" not in self.jit_config_dict:
|
|
100
|
+
if jit_level == "O0" or jit_level == "O1":
|
|
101
|
+
self.jit_config_dict["backend"] = "ms_backend"
|
|
102
|
+
elif jit_level == "O2":
|
|
103
|
+
self.jit_config_dict["backend"] = "GE"
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Copyright 2024 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
|
+
"""JIT Context for various JIT compile."""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class JitContext():
|
|
20
|
+
"""JIT context"""
|
|
21
|
+
def __init__(self):
|
|
22
|
+
self._compiled = False
|
|
23
|
+
self._result = None
|
|
24
|
+
self._phase = None
|
|
25
|
+
self._args = None
|
|
26
|
+
|
|
27
|
+
def run_op(self, prim, prim_res, *args):
|
|
28
|
+
raise AttributeError("For 'JitContext', the method 'run_op' is not defined.")
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def compiled(self):
|
|
32
|
+
return self._compiled
|
|
33
|
+
|
|
34
|
+
@compiled.setter
|
|
35
|
+
def compiled(self, value):
|
|
36
|
+
if not isinstance(value, bool):
|
|
37
|
+
raise TypeError(f"For 'JitContext', the property 'compiled' must be bool type, but got type {type(value)}.")
|
|
38
|
+
self._compiled = value
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def result(self):
|
|
42
|
+
return self._result
|
|
43
|
+
|
|
44
|
+
@result.setter
|
|
45
|
+
def result(self, value):
|
|
46
|
+
self._result = value
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def phase(self):
|
|
50
|
+
return self._phase
|
|
51
|
+
|
|
52
|
+
@phase.setter
|
|
53
|
+
def phase(self, value):
|
|
54
|
+
if not isinstance(value, str):
|
|
55
|
+
raise TypeError(f"For 'JitContext', the property 'phase' must be str type, but got type {type(value)}.")
|
|
56
|
+
self._phase = value
|
|
57
|
+
|
|
58
|
+
@property
|
|
59
|
+
def args(self):
|
|
60
|
+
return self._args
|
|
61
|
+
|
|
62
|
+
@args.setter
|
|
63
|
+
def args(self, value):
|
|
64
|
+
self._args = value
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
_jit_context = None
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def set_jit_context(new_jit_context):
|
|
71
|
+
global _jit_context
|
|
72
|
+
_jit_context = new_jit_context
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def jit_context():
|
|
76
|
+
return _jit_context
|