mindspore 2.5.0__cp311-cp311-win_amd64.whl → 2.6.0__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 +25 -194
- mindspore/_extends/parse/resources.py +1 -5
- mindspore/_extends/parse/standard_method.py +109 -75
- 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 +2014 -3386
- mindspore/common/api.py +386 -355
- 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/generator.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 +332 -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 +228 -571
- 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 +109 -77
- 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/llm_boost/ascend_native/llama_boost_ascend_native.py +0 -2
- 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 +115 -147
- 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 +133 -702
- mindspore/mint/distributed/__init__.py +5 -1
- mindspore/mint/distributed/distributed.py +198 -113
- 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 +234 -28
- 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 +1253 -179
- 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 +53 -42
- 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 +18 -14
- mindspore/nn/optim/adamax.py +8 -7
- mindspore/nn/optim/adasum.py +5 -5
- mindspore/nn/optim/asgd.py +3 -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/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 +32 -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 +127 -52
- mindspore/ops/auto_generate/gen_extend_func.py +286 -208
- mindspore/ops/auto_generate/gen_ops_def.py +2783 -2335
- mindspore/ops/auto_generate/gen_ops_prim.py +8992 -2686
- 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 +4 -5
- 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 +1631 -2347
- 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 +3024 -3855
- mindspore/ops/function/nn_func.py +678 -274
- mindspore/ops/function/other_func.py +159 -1
- mindspore/ops/function/parameter_func.py +17 -30
- mindspore/ops/function/random_func.py +216 -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 +26 -18
- mindspore/ops/functional.py +8 -5
- mindspore/ops/functional_overload.py +655 -4
- mindspore/ops/op_info_register.py +32 -244
- mindspore/ops/operations/__init__.py +21 -14
- mindspore/ops/operations/_custom_ops_utils.py +235 -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 +39 -24
- mindspore/ops/operations/comm_ops.py +150 -107
- mindspore/ops/operations/custom_ops.py +287 -32
- mindspore/ops/operations/debug_ops.py +119 -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 +67 -224
- 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 +243 -17
- 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 -10
- 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 +140 -12
- mindspore/parallel/_cell_wrapper.py +132 -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 +658 -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 +258 -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 -62
- mindspore/parallel/transform_safetensors.py +288 -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 +25 -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 +37 -13
- 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 +43 -9
- 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} +204 -105
- 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 +262 -127
- 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/runtime_execution_order_check.py +2 -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.0.dist-info}/METADATA +2 -1
- {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/RECORD +485 -440
- 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.0.dist-info}/WHEEL +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
|
@@ -66,18 +66,20 @@ def _cal_total_norm(x, norm_type):
|
|
|
66
66
|
|
|
67
67
|
def clip_by_norm(x, max_norm, norm_type=2.0, error_if_nonfinite=False):
|
|
68
68
|
r"""
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
The input Tensor is cropped based on norm. The computation is done by concatenating the norms of
|
|
70
|
+
all the input elementsinto a vector and then computing the norm of that vector.
|
|
71
|
+
The Tensor gradient value corresponding to the `identifier`.
|
|
71
72
|
|
|
72
73
|
Note:
|
|
73
74
|
The interface is suitable for gradient clipping scenarios, and only supports input of type float.
|
|
74
75
|
|
|
75
76
|
Args:
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
x (Union[Tensor, list[Tensor], tuple[Tensor]]): Input that wishes to be clipped.
|
|
78
|
+
max_norm (Union[float, int]): The upper limit of the norm for this group of network parameters.
|
|
79
|
+
norm_type (Union[float, int], optional): Norm type. Default: ``2.0``.
|
|
80
|
+
error_if_nonfinite (bool, optional): If it is ``True``,
|
|
81
|
+
an exception is thrown if the total norm from the input
|
|
82
|
+
is nan, inf or -inf. If it is ``False``, no exception will be thrown.Default: ``False`` .
|
|
81
83
|
|
|
82
84
|
Returns:
|
|
83
85
|
Tensors, a list or tuple of Tensors, representing clipped Tensors.
|
|
@@ -224,9 +226,7 @@ def clip_by_value(x, clip_value_min=None, clip_value_max=None):
|
|
|
224
226
|
|
|
225
227
|
def clamp(input, min=None, max=None):
|
|
226
228
|
r"""
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
Limits the value of :math:`input` to a range, whose lower limit is `min` and upper limit is `max` .
|
|
229
|
+
Clamp all elements of the input tensor within the range [min, max].
|
|
230
230
|
|
|
231
231
|
.. math::
|
|
232
232
|
|
|
@@ -239,41 +239,37 @@ def clamp(input, min=None, max=None):
|
|
|
239
239
|
|
|
240
240
|
Note:
|
|
241
241
|
- `min` and `max` cannot be None at the same time;
|
|
242
|
-
-
|
|
243
|
-
-
|
|
242
|
+
- If `min` is ``None`` , there is no lower bound.
|
|
243
|
+
- if `max` is ``None`` , there is no upper bound.
|
|
244
244
|
- If `min` is greater than `max`, the value of all elements in Tensor will be set to `max`;
|
|
245
|
-
- The data type of `input`, `min` and `max` should support implicit type conversion and cannot be bool type.
|
|
246
245
|
|
|
247
246
|
Args:
|
|
248
|
-
input (Tensor):
|
|
249
|
-
min (Union(Tensor, float, int), optional): The minimum value. Default
|
|
250
|
-
max (Union(Tensor, float, int), optional): The maximum value. Default
|
|
247
|
+
input (Tensor): The input tensor.
|
|
248
|
+
min (Union(Tensor, float, int), optional): The minimum value. Default ``None`` .
|
|
249
|
+
max (Union(Tensor, float, int), optional): The maximum value. Default ``None`` .
|
|
251
250
|
|
|
252
251
|
Returns:
|
|
253
|
-
Tensor
|
|
254
|
-
The data type and shape are the same as input.
|
|
255
|
-
|
|
256
|
-
Raises:
|
|
257
|
-
ValueError: If both `min` and `max` are None.
|
|
258
|
-
TypeError: If the type of `input` is not in Tensor.
|
|
259
|
-
TypeError: If the type of `min` is not in None, Tensor, float or int.
|
|
260
|
-
TypeError: If the type of `max` is not in None, Tensor, float or int.
|
|
252
|
+
Tensor
|
|
261
253
|
|
|
262
254
|
Supported Platforms:
|
|
263
255
|
``Ascend`` ``GPU`` ``CPU``
|
|
264
256
|
|
|
265
257
|
Examples:
|
|
266
|
-
>>> # case 1: the data type of input is Tensor
|
|
267
258
|
>>> import mindspore
|
|
268
|
-
>>>
|
|
269
|
-
>>>
|
|
270
|
-
>>>
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
>>>
|
|
275
|
-
|
|
276
|
-
|
|
259
|
+
>>> # case 1: `min` and `max` are integer
|
|
260
|
+
>>> input = mindspore.tensor([[1, 25, 5, 7], [4, 11, 6, 21]])
|
|
261
|
+
>>> mindspore.ops.clamp(input, 5, 20)
|
|
262
|
+
Tensor(shape=[2, 4], dtype=Int64, value=
|
|
263
|
+
[[ 5, 20, 5, 7],
|
|
264
|
+
[ 5, 11, 6, 20]])
|
|
265
|
+
>>>
|
|
266
|
+
>>> # case 2: If `min` and `max` are tensors, their shapes need to be broadcastable with input.
|
|
267
|
+
>>> min = mindspore.tensor([2, 4, 6, 8])
|
|
268
|
+
>>> max = mindspore.tensor([10, 12, 14, 18])
|
|
269
|
+
>>> mindspore.ops.clamp(input, min, max)
|
|
270
|
+
Tensor(shape=[2, 4], dtype=Int64, value=
|
|
271
|
+
[[ 2, 12, 6, 8],
|
|
272
|
+
[ 4, 11, 6, 18]])
|
|
277
273
|
"""
|
|
278
274
|
if isinstance(min, Tensor) or isinstance(max, Tensor):
|
|
279
275
|
return clamp_tensor(input, min, max)
|
|
@@ -411,30 +407,27 @@ def clip_by_global_norm(x, clip_norm=1.0, use_norm=None):
|
|
|
411
407
|
Clips tensor values by the ratio of the sum of their norms.
|
|
412
408
|
|
|
413
409
|
Note:
|
|
414
|
-
- Input `x` should be a tuple or list of tensors. Otherwise, it will raise an error.
|
|
415
410
|
- On the SEMI_AUTO_PARALLEL mode or AUTO_PARALLEL mode, if the input `x` is the gradient,
|
|
416
411
|
the gradient norm values on all devices will be automatically aggregated by allreduce inserted after
|
|
417
412
|
the local square sum of the gradients.
|
|
418
413
|
|
|
419
414
|
Args:
|
|
420
415
|
x (Union(tuple[Tensor], list[Tensor])): Input data to clip.
|
|
421
|
-
clip_norm (Union(float, int)): The clipping ratio, it should be greater than 0. Default
|
|
422
|
-
use_norm (None): The global norm.
|
|
416
|
+
clip_norm (Union(float, int)): The clipping ratio, it should be greater than 0. Default ``1.0`` .
|
|
417
|
+
use_norm (None): The global norm. Currently only none is supported. Default ``None`` .
|
|
423
418
|
|
|
424
419
|
Returns:
|
|
425
|
-
|
|
426
|
-
same as the original input shape.
|
|
420
|
+
Tuple of tensors
|
|
427
421
|
|
|
428
422
|
Supported Platforms:
|
|
429
423
|
``Ascend`` ``GPU`` ``CPU``
|
|
430
424
|
|
|
431
425
|
Examples:
|
|
432
|
-
>>>
|
|
433
|
-
>>>
|
|
434
|
-
>>>
|
|
435
|
-
>>>
|
|
436
|
-
>>>
|
|
437
|
-
>>> out = ops.clip_by_global_norm(input_x, 1.0)
|
|
426
|
+
>>> import mindspore
|
|
427
|
+
>>> x1 = mindspore.tensor([[2., 3.], [1., 2.]], dtype=mindspore.float32)
|
|
428
|
+
>>> x2 = mindspore.tensor([[1., 4.], [3., 1.]], dtype=mindspore.float32)
|
|
429
|
+
>>> input_x = (x1, x2)
|
|
430
|
+
>>> out = mindspore.ops.clip_by_global_norm(input_x, 1.0)
|
|
438
431
|
>>> print(out)
|
|
439
432
|
(Tensor(shape=[2, 2], dtype=Float32, value=
|
|
440
433
|
[[ 2.98142403e-01, 4.47213590e-01],
|
|
@@ -23,9 +23,9 @@ from .._primitive_cache import _get_cache_prim
|
|
|
23
23
|
|
|
24
24
|
def print_(*input_x):
|
|
25
25
|
"""
|
|
26
|
-
Outputs the inputs to stdout.
|
|
26
|
+
Outputs the inputs to stdout.
|
|
27
|
+
The outputs are printed to screen by default.
|
|
27
28
|
It can also be saved in a file by setting the parameter `print_file_path` in `context`.
|
|
28
|
-
Once set, the output will be saved in the file specified by print_file_path.
|
|
29
29
|
:func:`mindspore.parse_print` can be employed to reload the data.
|
|
30
30
|
For more information, please refer to :func:`mindspore.set_context` and :func:`mindspore.parse_print`.
|
|
31
31
|
In Ascend platform with graph mode, the environment variables `MS_DUMP_SLICE_SIZE` and `MS_DUMP_WAIT_TIME`
|
|
@@ -33,7 +33,7 @@ def print_(*input_x):
|
|
|
33
33
|
|
|
34
34
|
Note:
|
|
35
35
|
In pynative mode, please use python print function.
|
|
36
|
-
In Ascend platform with graph mode, the bool, int and float would be converted into
|
|
36
|
+
In Ascend platform with graph mode, the bool, int and float would be converted into tensor to print, and
|
|
37
37
|
str remains unchanged.
|
|
38
38
|
This function is used for debugging.
|
|
39
39
|
|
|
@@ -44,18 +44,14 @@ def print_(*input_x):
|
|
|
44
44
|
Returns:
|
|
45
45
|
Invalid value, should be ignored.
|
|
46
46
|
|
|
47
|
-
Raises:
|
|
48
|
-
TypeError: If `input_x` is not one of the following: Tensor, bool, int, float, str, tuple or list.
|
|
49
|
-
|
|
50
47
|
Supported Platforms:
|
|
51
48
|
``Ascend`` ``GPU`` ``CPU``
|
|
52
49
|
|
|
53
50
|
Examples:
|
|
54
|
-
>>> import
|
|
55
|
-
>>>
|
|
56
|
-
>>>
|
|
57
|
-
>>>
|
|
58
|
-
>>> result = ops.print_('Print Tensor x and Tensor y:', x, y)
|
|
51
|
+
>>> import mindspore
|
|
52
|
+
>>> x = mindspore.tensor(mindspore.ops.ones([2, 1], mindspore.int32))
|
|
53
|
+
>>> y = mindspore.tensor(mindspore.ops.ones([2, 2], mindspore.int32))
|
|
54
|
+
>>> result = mindspore.ops.print_('Print Tensor x and Tensor y:', x, y)
|
|
59
55
|
Print Tensor x and Tensor y:
|
|
60
56
|
Tensor(shape=[2, 1], dtype=Int32, value=
|
|
61
57
|
[[1],
|
|
@@ -71,10 +67,10 @@ def print_(*input_x):
|
|
|
71
67
|
|
|
72
68
|
def tensordump(file_name, tensor, mode='out'):
|
|
73
69
|
"""
|
|
74
|
-
Save
|
|
70
|
+
Save tensor in npy format.
|
|
75
71
|
|
|
76
72
|
.. warning::
|
|
77
|
-
- The parameter mode will no longer support the value 'all'.
|
|
73
|
+
- The parameter `mode` will no longer support the value 'all'.
|
|
78
74
|
|
|
79
75
|
In Parallel situation, tensordump will dump slice of data at each rank.
|
|
80
76
|
In Ascend platform with graph mode, Your code OpA --> OpB may compiled as OpA --> RedistributionOps --> OpB.
|
|
@@ -89,18 +85,18 @@ def tensordump(file_name, tensor, mode='out'):
|
|
|
89
85
|
So the parameter mode is to handle this situation.
|
|
90
86
|
|
|
91
87
|
Assuming OpA's output is used as both tensordump's input parameter and OpB's input parameter.
|
|
92
|
-
Different requirements of saving dump data can be achieved by configuring parameter mode:
|
|
88
|
+
Different requirements of saving dump data can be achieved by configuring parameter `mode` :
|
|
93
89
|
|
|
94
|
-
- If the mode is 'out', the dump data contains only OpA's output slice.
|
|
95
|
-
- If the mode is 'in', the dump data contains only OpB's input slice.
|
|
90
|
+
- If the `mode` is 'out', the dump data contains only OpA's output slice.
|
|
91
|
+
- If the `mode` is 'in', the dump data contains only OpB's input slice.
|
|
96
92
|
|
|
97
|
-
For mode 'in', the input slice npy file format is: fileName_dumpMode_dtype_id.npy.
|
|
93
|
+
For `mode` 'in', the input slice npy file format is: fileName_dumpMode_dtype_id.npy.
|
|
98
94
|
|
|
99
|
-
For mode 'out', the output slice npy file format is:
|
|
95
|
+
For `mode` 'out', the output slice npy file format is: fileName_dtype_id.npy.
|
|
100
96
|
|
|
101
97
|
- fileName: Value of the parameter file_name
|
|
102
|
-
(if parameter file_name is a user-specified path, the value of fileName is the last level of the path).
|
|
103
|
-
- dumpMode: Value of the parameter mode
|
|
98
|
+
(if parameter `file_name` is a user-specified path, the value of fileName is the last level of the path).
|
|
99
|
+
- dumpMode: Value of the parameter `mode`.
|
|
104
100
|
- dtype: The original data type. Data of type bfloat16 stored in the .npy file will be converted to float32.
|
|
105
101
|
- id: An auto increment ID.
|
|
106
102
|
|
|
@@ -108,21 +104,14 @@ def tensordump(file_name, tensor, mode='out'):
|
|
|
108
104
|
- In Ascend platform with graph mode, the environment variables `MS_DUMP_SLICE_SIZE` and `MS_DUMP_WAIT_TIME`
|
|
109
105
|
can be set to solve operator execution failure when outputting big tensor or outputting tensor intensively.
|
|
110
106
|
- The operator of tensordump doesn't support in control flow.
|
|
111
|
-
- If current parallel mode is STAND_ALONE, mode should only be 'out'.
|
|
112
|
-
- Parameter mode will be set to 'out' if user doesn't configure it.
|
|
107
|
+
- If current parallel mode is STAND_ALONE, `mode` should only be 'out'.
|
|
113
108
|
- This function is used for debugging.
|
|
114
109
|
|
|
115
110
|
Args:
|
|
116
111
|
file_name (str): The path of the npy file saves.
|
|
117
112
|
tensor (Tensor): The tensor that user want to dump.
|
|
118
113
|
mode (str, optional): Used to control tensordump behavior, available value is one of ['in', 'out'].
|
|
119
|
-
Default
|
|
120
|
-
|
|
121
|
-
Raises:
|
|
122
|
-
TypeError: If `file_name` is not str.
|
|
123
|
-
TypeError: If `tensor` is not Tensor.
|
|
124
|
-
TypeError: If `mode` is not str.
|
|
125
|
-
ValueError: If `mode` is not in one of ['in', 'out'].
|
|
114
|
+
Default ``out`` .
|
|
126
115
|
|
|
127
116
|
Supported Platforms:
|
|
128
117
|
``Ascend``
|
|
@@ -134,38 +123,41 @@ def tensordump(file_name, tensor, mode='out'):
|
|
|
134
123
|
|
|
135
124
|
>>> import os
|
|
136
125
|
>>> import numpy as np
|
|
137
|
-
>>> import mindspore
|
|
138
|
-
>>> from mindspore import nn,
|
|
139
|
-
>>> from mindspore.ops import operations as P
|
|
126
|
+
>>> import mindspore
|
|
127
|
+
>>> from mindspore import nn, context
|
|
140
128
|
>>> from mindspore.communication import init, get_rank
|
|
129
|
+
>>> from mindspore.parallel.auto_parallel import AutoParallel
|
|
130
|
+
>>> from mindspore.nn.utils import no_init_parameters
|
|
141
131
|
>>> init()
|
|
142
132
|
>>> rank_id = get_rank()
|
|
143
|
-
>>> dump_path = f'
|
|
133
|
+
>>> dump_path = f'rank_{rank_id}_mul1_mul2.npy'
|
|
144
134
|
>>> class Net(nn.Cell):
|
|
145
135
|
... def __init__(self, strategy1, strategy2):
|
|
146
136
|
... super(Net, self).__init__()
|
|
147
|
-
... self.matmul1 =
|
|
148
|
-
... self.matmul2 =
|
|
137
|
+
... self.matmul1 = mindspore.ops.MatMul().shard(strategy1)
|
|
138
|
+
... self.matmul2 = mindspore.ops.MatMul().shard(strategy2)
|
|
149
139
|
...
|
|
150
140
|
... def construct(self, x, y, b):
|
|
151
141
|
... out1 = self.matmul1(x, y)
|
|
152
|
-
... ops.tensordump(dump_path, out1, 'out')
|
|
142
|
+
... mindspore.ops.tensordump(dump_path, out1, 'out')
|
|
153
143
|
... out2 = self.matmul2(out1, b)
|
|
154
144
|
... return out2
|
|
155
145
|
...
|
|
156
|
-
>>>
|
|
146
|
+
>>> mindspore.set_context(mode=mindspore.GRAPH_MODE)
|
|
157
147
|
>>> os.environ["MS_DEV_SAVE_GRAPHS"] = "2"
|
|
158
|
-
>>> context.set_auto_parallel_context(parallel_mode='semi_auto_parallel', full_batch=True)
|
|
159
148
|
>>> strategy1 = ((1, 2), (2, 1))
|
|
160
149
|
>>> strategy2 = ((1, 2), (2, 1))
|
|
161
|
-
>>>
|
|
162
|
-
>>>
|
|
163
|
-
>>>
|
|
164
|
-
>>>
|
|
165
|
-
>>>
|
|
150
|
+
>>> with no_init_parameters():
|
|
151
|
+
>>> net = Net(strategy1, strategy2)
|
|
152
|
+
>>> x = mindspore.tensor(0.1 * mindspore.ops.randn(64, 64), mindspore.float32)
|
|
153
|
+
>>> y = mindspore.tensor(0.1 * mindspore.ops.randn(64, 64), mindspore.float32)
|
|
154
|
+
>>> b = mindspore.tensor(0.1 * mindspore.ops.randn(64, 64), mindspore.float32)
|
|
155
|
+
>>> parallel_net = Autoparallel(net, parallel_mode="semi_auto")
|
|
156
|
+
>>> parallel_net.dataset_strategy(config="full_batch")
|
|
157
|
+
>>> out = parallel_net(x, y, b)
|
|
166
158
|
>>> print(f"out shape is: {out.shape}")
|
|
167
159
|
>>> # out shape is (64, 64)
|
|
168
|
-
>>> matmul1_output_slice = np.load('
|
|
160
|
+
>>> matmul1_output_slice = np.load(f'rank_{rank_id}_mul1_mul2_float32_0.npy') # load matmul1's output slice
|
|
169
161
|
>>> print(f"matmul1_output_slice is loaded, shape is: {matmul1_output_slice.shape}")
|
|
170
162
|
>>> # matmul1_output_slice is loaded, shape is: (64, 64)
|
|
171
163
|
"""
|
|
@@ -22,12 +22,13 @@ from mindspore.common import Tensor
|
|
|
22
22
|
from mindspore.common import dtype as mstype
|
|
23
23
|
from mindspore.nn.cell import Cell
|
|
24
24
|
from mindspore.nn.grad.cell_grad import _LinearizeInner
|
|
25
|
-
from mindspore.ops.operations.other_ops import
|
|
25
|
+
from mindspore.ops.operations.other_ops import stop_gradient_op
|
|
26
26
|
from mindspore.ops.primitive import constexpr, _primexpr
|
|
27
27
|
from mindspore.ops.function.array_func import ones, expand_dims, size, reshape, broadcast_to, transpose, zeros
|
|
28
28
|
from mindspore.ops.composite import _Vmap, _Grad, _TaylorOperation, GradOperation
|
|
29
29
|
from mindspore.ops import operations as P
|
|
30
30
|
from mindspore.ops.operations import _inner_ops as inner
|
|
31
|
+
from mindspore.ops.auto_generate.gen_ops_prim import inplace_stop_gradient_op
|
|
31
32
|
|
|
32
33
|
cast = P.Cast()
|
|
33
34
|
dtype = P.DType()
|
|
@@ -103,11 +104,13 @@ def grad(fn, grad_position=0, weights=None, has_aux=False, return_ids=False):
|
|
|
103
104
|
|
|
104
105
|
Args:
|
|
105
106
|
fn (Union[Cell, Function]): Function to do GradOperation.
|
|
106
|
-
grad_position (Union[NoneType, int, tuple[int]]):
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
If
|
|
110
|
-
|
|
107
|
+
grad_position (Union[NoneType, int, tuple[int]]):
|
|
108
|
+
Index to specify which inputs to be differentiated. Default: ``0`` .
|
|
109
|
+
|
|
110
|
+
- If int, get the gradient with respect to single input.
|
|
111
|
+
- If tuple, get the gradients with respect to selected inputs. `grad_position` begins with 0.
|
|
112
|
+
- If None, none derivative of any input will be figured out, and in this case, `weights` is required.
|
|
113
|
+
|
|
111
114
|
weights (Union[ParameterTuple, Parameter, list[Parameter]]): The parameters of the training network that need to
|
|
112
115
|
calculate the gradient. `weights` can be got through `weights = net.trainable_params()` .
|
|
113
116
|
Default: ``None`` .
|
|
@@ -237,36 +240,43 @@ def value_and_grad(fn, grad_position=0, weights=None, has_aux=False, return_ids=
|
|
|
237
240
|
|
|
238
241
|
As for gradient, three typical cases are included:
|
|
239
242
|
|
|
240
|
-
1. gradient with respect to inputs. In this case, `grad_position` is not None while `weights` is None
|
|
241
|
-
2. gradient with respect to weights. In this case, `grad_position` is None while `weights` is not None
|
|
242
|
-
3. gradient with respect to inputs and weights. In this case, `grad_position` and `weights` are not None
|
|
243
|
+
1. gradient with respect to inputs. In this case, `grad_position` is not None while `weights` is ``None``.
|
|
244
|
+
2. gradient with respect to weights. In this case, `grad_position` is None while `weights` is not ``None``.
|
|
245
|
+
3. gradient with respect to inputs and weights. In this case, `grad_position` and `weights` are not ``None``.
|
|
243
246
|
|
|
244
247
|
Args:
|
|
245
248
|
fn (Union[Cell, Function]): Function to do GradOperation.
|
|
246
|
-
grad_position (Union[NoneType, int, tuple[int]]): Index to specify which inputs
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
If
|
|
250
|
-
|
|
251
|
-
|
|
249
|
+
grad_position (Union[NoneType, int, tuple[int]], optional): Index to specify which inputs
|
|
250
|
+
to be differentiated. Default: ``0`` .
|
|
251
|
+
|
|
252
|
+
- If int, get the gradient with respect to single input.
|
|
253
|
+
- If tuple, get the gradients with respect to selected inputs. `grad_position` begins with 0.
|
|
254
|
+
- If None, none derivative of any input will be solved, and in this case, `weights` is required.
|
|
255
|
+
|
|
256
|
+
weights (Union[ParameterTuple, Parameter, list[Parameter]], optional):
|
|
257
|
+
The parameters of the training network that need to
|
|
252
258
|
calculate the gradient. `weights` can be got through `weights = net.trainable_params()` .
|
|
253
259
|
Default: ``None`` .
|
|
254
|
-
has_aux (bool): If ``True`` , only the first output of `fn` contributes the gradient of `fn`,
|
|
260
|
+
has_aux (bool, optional): If ``True`` , only the first output of `fn` contributes the gradient of `fn`,
|
|
261
|
+
while the other
|
|
255
262
|
outputs will be returned straightly. It means the `fn` must return more than one outputs in this case.
|
|
256
263
|
Default: ``False`` .
|
|
257
|
-
return_ids(bool): Whether
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
264
|
+
return_ids(bool, optional): Whether the returned derivation function contains
|
|
265
|
+
`grad_position` or `weights` information. If ``True``,
|
|
266
|
+
all gradient values in the returned derivation function will be replaced
|
|
267
|
+
with: [gradient, grad_position] or [gradient, weights].
|
|
261
268
|
Default: ``False`` .
|
|
262
269
|
|
|
263
270
|
Returns:
|
|
264
|
-
Function,
|
|
271
|
+
Function, the derivative function used to compute the gradient of a given function.
|
|
265
272
|
For example, as for `out1, out2 = fn(*args)` , gradient function will return outputs like
|
|
266
|
-
`((out1, out2), gradient)` . When `has_aux` is set to ``True``,
|
|
273
|
+
`((out1, out2), gradient)` . When `has_aux` is set to ``True``,
|
|
274
|
+
only `out1` contributes to the differentiation. If `return_ids` is ``True``,
|
|
275
|
+
all gradient values in the returned derivation function will be replaced
|
|
276
|
+
with: [gradient, grad_position] or [gradient, weights].
|
|
267
277
|
|
|
268
278
|
Raises:
|
|
269
|
-
ValueError: If both `grad_position` and `weights` are None
|
|
279
|
+
ValueError: If both `grad_position` and `weights` are ``None``.
|
|
270
280
|
TypeError: If type of Args does not belong to required ones.
|
|
271
281
|
|
|
272
282
|
Supported Platforms:
|
|
@@ -378,10 +388,10 @@ def get_grad(gradients, identifier):
|
|
|
378
388
|
:func:`mindspore.grad`.
|
|
379
389
|
|
|
380
390
|
Returns:
|
|
381
|
-
The gradient
|
|
391
|
+
The Tensor gradient value corresponding to the `identifier`.
|
|
382
392
|
|
|
383
393
|
Raises:
|
|
384
|
-
RuntimeError: If gradient is not found.
|
|
394
|
+
RuntimeError: If gradient value corresponding to the `identifier` is not found.
|
|
385
395
|
TypeError: If type of Args does not belong to required ones.
|
|
386
396
|
|
|
387
397
|
Supported Platforms:
|
|
@@ -457,49 +467,42 @@ def jet(fn, primals, series):
|
|
|
457
467
|
while the other to 0, which is like the derivative of origin input with respect to itself.
|
|
458
468
|
|
|
459
469
|
Note:
|
|
460
|
-
If `primals` is
|
|
470
|
+
If `primals` is tensor of int type, it will be converted to Tensor of float type.
|
|
461
471
|
|
|
462
472
|
Args:
|
|
463
473
|
fn (Union[Cell, function]): Function to do TaylorOperation.
|
|
464
474
|
primals (Union[Tensor, tuple[Tensor]]): The inputs to `fn`.
|
|
465
|
-
series (Union[Tensor, tuple[Tensor]]):
|
|
466
|
-
|
|
467
|
-
output with respect to the
|
|
475
|
+
series (Union[Tensor, tuple[Tensor]]): The original 1st to nth order derivatives of the input.
|
|
476
|
+
The index `i` of the zeroth dimension of the tensor corresponds to the `i+1` -th order derivative of the
|
|
477
|
+
output with respect to the input.
|
|
468
478
|
|
|
469
479
|
Returns:
|
|
470
|
-
Tuple,
|
|
480
|
+
Tuple(out_primals, out_series)
|
|
471
481
|
|
|
472
482
|
- **out_primals** (Union[Tensor, list[Tensor]]) - The output of `fn(primals)`.
|
|
473
|
-
- **out_series** (Union[Tensor, list[Tensor]]) - The `1` to `i+1
|
|
483
|
+
- **out_series** (Union[Tensor, list[Tensor]]) - The `1` to `i+1` -th order of derivative of output with respect
|
|
474
484
|
to the inputs.
|
|
475
485
|
|
|
476
|
-
Raises:
|
|
477
|
-
TypeError: If `primals` is not a tensor or tuple of tensors.
|
|
478
|
-
TypeError: If type of `primals` is not the same as type of `series`.
|
|
479
|
-
|
|
480
486
|
Supported Platforms:
|
|
481
487
|
``Ascend`` ``GPU`` ``CPU``
|
|
482
488
|
|
|
483
489
|
Examples:
|
|
484
|
-
>>> import
|
|
485
|
-
>>>
|
|
486
|
-
>>>
|
|
487
|
-
>>> from mindspore import ops
|
|
488
|
-
>>> from mindspore import Tensor
|
|
489
|
-
>>> ms.set_context(mode=ms.GRAPH_MODE)
|
|
490
|
+
>>> import mindspore
|
|
491
|
+
>>> from mindspore import nn
|
|
492
|
+
>>> mindspore.set_context(mode=mindspore.GRAPH_MODE)
|
|
490
493
|
>>> class Net(nn.Cell):
|
|
491
494
|
... def __init__(self):
|
|
492
495
|
... super().__init__()
|
|
493
|
-
... self.sin = ops.Sin()
|
|
494
|
-
... self.exp = ops.Exp()
|
|
496
|
+
... self.sin = mindspore.ops.Sin()
|
|
497
|
+
... self.exp = mindspore.ops.Exp()
|
|
495
498
|
... def construct(self, x):
|
|
496
499
|
... out1 = self.sin(x)
|
|
497
500
|
... out2 = self.exp(out1)
|
|
498
501
|
... return out2
|
|
499
|
-
>>> primals =
|
|
500
|
-
>>> series =
|
|
502
|
+
>>> primals = mindspore.tensor([[1, 2], [3, 4]], mindspore.float32)
|
|
503
|
+
>>> series = mindspore.tensor([[[1, 1], [1, 1]], [[0, 0], [0, 0]], [[0, 0], [0, 0]]], mindspore.float32)
|
|
501
504
|
>>> net = Net()
|
|
502
|
-
>>> out_primals, out_series = ops.jet(net, primals, series)
|
|
505
|
+
>>> out_primals, out_series = mindspore.ops.jet(net, primals, series)
|
|
503
506
|
>>> print(out_primals, out_series)
|
|
504
507
|
[[2.319777 2.4825778]
|
|
505
508
|
[1.1515628 0.4691642]] [[[ 1.2533808 -1.0331168 ]
|
|
@@ -567,49 +570,41 @@ def derivative(fn, primals, order):
|
|
|
567
570
|
input first order derivative is set to 1, while the other to 0.
|
|
568
571
|
|
|
569
572
|
Note:
|
|
570
|
-
If `primals` is
|
|
573
|
+
If `primals` is tensor of int type, it will be converted to tensor of float type.
|
|
571
574
|
|
|
572
575
|
Args:
|
|
573
576
|
fn (Union[Cell, function]): Function to do TaylorOperation.
|
|
574
577
|
primals (Union[Tensor, tuple[Tensor]]): The inputs to `fn`.
|
|
575
|
-
order (int):
|
|
576
|
-
figured out.
|
|
578
|
+
order (int): The order of differentiation.
|
|
577
579
|
|
|
578
580
|
Returns:
|
|
579
|
-
Tuple,
|
|
581
|
+
Tuple(out_primals, out_series)
|
|
580
582
|
|
|
581
583
|
- **out_primals** (Union[Tensor, list[Tensor]]) - The output of `fn(primals)`.
|
|
582
584
|
- **out_series** (Union[Tensor, list[Tensor]]) - The `order`-th order of derivative of output with respect
|
|
583
585
|
to the inputs.
|
|
584
586
|
|
|
585
|
-
Raises:
|
|
586
|
-
TypeError: If `primals` is not a tensor or tuple of tensors.
|
|
587
|
-
TypeError: If `order` is not int.
|
|
588
|
-
ValueError: If `order` is less than 1.
|
|
589
|
-
|
|
590
587
|
Supported Platforms:
|
|
591
588
|
``Ascend`` ``GPU`` ``CPU``
|
|
592
589
|
|
|
593
590
|
Examples:
|
|
594
|
-
>>> import
|
|
595
|
-
>>>
|
|
596
|
-
>>>
|
|
597
|
-
>>> from mindspore import ops
|
|
598
|
-
>>> from mindspore import Tensor
|
|
599
|
-
>>> ms.set_context(mode=ms.GRAPH_MODE)
|
|
591
|
+
>>> import mindspore
|
|
592
|
+
>>> from mindspore import nn
|
|
593
|
+
>>> mindspore.set_context(mode=mindspore.GRAPH_MODE)
|
|
600
594
|
>>> class Net(nn.Cell):
|
|
601
595
|
... def __init__(self):
|
|
602
596
|
... super().__init__()
|
|
603
|
-
... self.sin = ops.Sin()
|
|
604
|
-
... self.exp = ops.Exp()
|
|
597
|
+
... self.sin = mindspore.ops.Sin()
|
|
598
|
+
... self.exp = mindspore.ops.Exp()
|
|
605
599
|
... def construct(self, x):
|
|
606
600
|
... out1 = self.sin(x)
|
|
607
601
|
... out2 = self.exp(out1)
|
|
608
602
|
... return out2
|
|
609
|
-
>>>
|
|
603
|
+
>>>
|
|
604
|
+
>>> primals = mindspore.tensor([[1, 2], [3, 4]], mindspore.float32)
|
|
610
605
|
>>> order = 3
|
|
611
606
|
>>> net = Net()
|
|
612
|
-
>>> out_primals, out_series = ops.derivative(net, primals, order)
|
|
607
|
+
>>> out_primals, out_series = mindspore.ops.derivative(net, primals, order)
|
|
613
608
|
>>> print(out_primals, out_series)
|
|
614
609
|
[[2.319777 2.4825778]
|
|
615
610
|
[1.1515628 0.4691642]] [[-4.0515366 3.6724353 ]
|
|
@@ -677,7 +672,7 @@ def jvp(fn, inputs, v, has_aux=False):
|
|
|
677
672
|
- **net_output** (Union[Tensor, tuple[Tensor]]) - The output of `fn(inputs)` . Specially, when `has_aux` is set
|
|
678
673
|
``True`` , `netout` is the first output of `fn(inputs)` .
|
|
679
674
|
- **jvp** (Union[Tensor, tuple[Tensor]]) - The result of jacobian-vector-product.
|
|
680
|
-
- **aux_value** (Union[Tensor, tuple[Tensor]], optional) -
|
|
675
|
+
- **aux_value** (Union[Tensor, tuple[Tensor]], optional) - Only when `has_aux` is ``True`` , `aux_value` will be
|
|
681
676
|
returned. It means the second to last outputs of `fn(inputs)` . Specially, `aux_value` does not contribute to
|
|
682
677
|
gradient.
|
|
683
678
|
|
|
@@ -841,7 +836,7 @@ def linearize(fn, inputs):
|
|
|
841
836
|
"""
|
|
842
837
|
linearize_inner = _LinearizeInner()
|
|
843
838
|
|
|
844
|
-
@jit
|
|
839
|
+
@jit
|
|
845
840
|
def _wrap_container(*arg):
|
|
846
841
|
args = arg[1:-1]
|
|
847
842
|
vectors = arg[-1]
|
|
@@ -882,10 +877,12 @@ def vjp(fn, *inputs, weights=None, has_aux=False):
|
|
|
882
877
|
fn (Union[Function, Cell]): The function or net that takes Tensor inputs and returns single Tensor or tuple of
|
|
883
878
|
Tensors.
|
|
884
879
|
inputs (Union[Tensor, tuple[Tensor], list[Tensor]]): The inputs to `fn` .
|
|
885
|
-
weights (Union[ParameterTuple, Parameter, list[Parameter]]):
|
|
880
|
+
weights (Union[ParameterTuple, Parameter, list[Parameter]], optional):
|
|
881
|
+
The parameters of the training network that need to
|
|
886
882
|
calculate the gradient. `weights` can be got through `weights = net.trainable_params()` .
|
|
887
883
|
Default: ``None`` .
|
|
888
|
-
has_aux (bool): If True, only the first output of `fn` contributes the gradient of `fn`,
|
|
884
|
+
has_aux (bool, optional): If True, only the first output of `fn` contributes the gradient of `fn`,
|
|
885
|
+
while the other outputs
|
|
889
886
|
will be returned straightly. It means the `fn` must return more than one outputs in this case.
|
|
890
887
|
Default: ``False``.
|
|
891
888
|
|
|
@@ -1388,6 +1385,41 @@ def stop_gradient(value):
|
|
|
1388
1385
|
Supported Platforms:
|
|
1389
1386
|
``Ascend`` ``GPU`` ``CPU``
|
|
1390
1387
|
|
|
1388
|
+
Examples:
|
|
1389
|
+
>>> import mindspore
|
|
1390
|
+
>>> def f1(x):
|
|
1391
|
+
... return x ** 2
|
|
1392
|
+
>>> x = 3.0
|
|
1393
|
+
>>> f1(x)
|
|
1394
|
+
9.0
|
|
1395
|
+
>>> mindspore.ops.grad(f1)(mindspore.tensor(x))
|
|
1396
|
+
Tensor(shape=[], dtype=Float32, value= 6)
|
|
1397
|
+
>>>
|
|
1398
|
+
>>> # The same function with stop_gradient, return a zero gradient because x is effectively treated as a constant.
|
|
1399
|
+
>>> def f2(x):
|
|
1400
|
+
... return mindspore.ops.stop_gradient(x) ** 2
|
|
1401
|
+
>>> f2(x)
|
|
1402
|
+
9.0
|
|
1403
|
+
>>> mindspore.ops.grad(f2)(mindspore.tensor(x))
|
|
1404
|
+
Tensor(shape=[], dtype=Float32, value= 0)
|
|
1405
|
+
"""
|
|
1406
|
+
return stop_gradient_op(value)
|
|
1407
|
+
|
|
1408
|
+
|
|
1409
|
+
def stop_gradient_(input):
|
|
1410
|
+
"""
|
|
1411
|
+
StopGradient inplace
|
|
1412
|
+
|
|
1413
|
+
Args:
|
|
1414
|
+
input (Tensor): input tensor
|
|
1415
|
+
|
|
1416
|
+
Raises:
|
|
1417
|
+
TypeError: If `input` is not a Tensor.
|
|
1418
|
+
RuntimeError: If `input` is a view tensor.
|
|
1419
|
+
|
|
1420
|
+
Supported Platforms:
|
|
1421
|
+
``Ascend``
|
|
1422
|
+
|
|
1391
1423
|
Examples:
|
|
1392
1424
|
>>> from mindspore import ops
|
|
1393
1425
|
>>> from mindspore import Tensor
|
|
@@ -1395,7 +1427,7 @@ def stop_gradient(value):
|
|
|
1395
1427
|
>>> def net(x, y):
|
|
1396
1428
|
... out1 = ops.MatMul()(x, y)
|
|
1397
1429
|
... out2 = ops.MatMul()(x, y)
|
|
1398
|
-
...
|
|
1430
|
+
... ops.stop_gradient_(out2)
|
|
1399
1431
|
... return out1, out2
|
|
1400
1432
|
...
|
|
1401
1433
|
>>> x = Tensor([[0.5, 0.6, 0.4], [1.2, 1.3, 1.1]], dtype=mstype.float32)
|
|
@@ -1406,7 +1438,7 @@ def stop_gradient(value):
|
|
|
1406
1438
|
[[1.4100001 1.6 6.5999994]
|
|
1407
1439
|
[1.4100001 1.6 6.5999994]]
|
|
1408
1440
|
"""
|
|
1409
|
-
|
|
1441
|
+
inplace_stop_gradient_op(input)
|
|
1410
1442
|
|
|
1411
1443
|
|
|
1412
1444
|
__all__ = [
|
|
@@ -1420,6 +1452,7 @@ __all__ = [
|
|
|
1420
1452
|
'vjp',
|
|
1421
1453
|
'linearize',
|
|
1422
1454
|
'stop_gradient',
|
|
1455
|
+
'stop_gradient_',
|
|
1423
1456
|
'get_grad'
|
|
1424
1457
|
]
|
|
1425
1458
|
__all__.sort()
|