mindspore 2.4.10__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 +13 -6
- 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 -38
- mindspore/_deprecated/__init__.py +17 -0
- mindspore/_deprecated/jit.py +198 -0
- mindspore/_extends/builtin_operations.py +1 -1
- mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
- mindspore/_extends/parse/__init__.py +6 -7
- mindspore/_extends/parse/compile_config.py +83 -0
- mindspore/_extends/parse/deprecated/__init__.py +0 -0
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +394 -0
- 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 +47 -198
- mindspore/_extends/parse/resources.py +1 -5
- mindspore/_extends/parse/standard_method.py +229 -99
- mindspore/_extends/pijit/__init__.py +2 -2
- mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
- mindspore/_extends/pijit/tensor_func_list.py +27 -0
- mindspore/_extends/utils.py +1 -1
- mindspore/amp.py +11 -5
- 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 +138 -43
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +6 -3
- mindspore/common/_grad_function.py +56 -0
- mindspore/common/_pijit_context.py +14 -5
- mindspore/common/_register_for_tensor.py +1 -2
- mindspore/common/_stub_tensor.py +30 -14
- mindspore/common/_tensor_cpp_method.py +17 -0
- mindspore/common/_tensor_docs.py +4760 -0
- mindspore/common/api.py +480 -372
- mindspore/common/auto_dynamic_shape.py +41 -44
- mindspore/common/dtype.py +39 -36
- mindspore/common/dump.py +9 -6
- mindspore/common/file_system.py +9 -1
- mindspore/common/generator.py +5 -0
- mindspore/common/hook_handle.py +6 -2
- mindspore/common/initializer.py +13 -10
- 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 +9 -3
- mindspore/common/mindir_util.py +10 -2
- mindspore/common/mutable.py +5 -4
- mindspore/common/parameter.py +135 -52
- mindspore/common/seed.py +2 -2
- mindspore/common/sparse_tensor.py +23 -17
- mindspore/common/tensor.py +975 -1981
- mindspore/communication/__init__.py +7 -5
- mindspore/communication/_comm_helper.py +52 -2
- mindspore/communication/comm_func.py +240 -181
- mindspore/communication/management.py +95 -26
- mindspore/context.py +324 -573
- mindspore/dataset/__init__.py +65 -37
- mindspore/dataset/audio/__init__.py +2 -8
- mindspore/dataset/audio/transforms.py +3 -17
- mindspore/dataset/callback/ds_callback.py +2 -1
- mindspore/dataset/core/config.py +87 -6
- mindspore/dataset/engine/cache_admin.py +3 -3
- mindspore/dataset/engine/cache_client.py +6 -5
- mindspore/dataset/engine/datasets.py +292 -267
- mindspore/dataset/engine/datasets_audio.py +22 -8
- mindspore/dataset/engine/datasets_standard_format.py +46 -27
- mindspore/dataset/engine/datasets_text.py +78 -48
- mindspore/dataset/engine/datasets_user_defined.py +183 -117
- mindspore/dataset/engine/datasets_vision.py +120 -44
- mindspore/dataset/engine/iterators.py +283 -63
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
- mindspore/dataset/engine/obs/util.py +8 -0
- mindspore/dataset/engine/queue.py +40 -0
- mindspore/dataset/engine/samplers.py +289 -43
- mindspore/dataset/engine/serializer_deserializer.py +3 -2
- mindspore/dataset/engine/validators.py +53 -11
- 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/py_transforms_util.py +17 -0
- mindspore/dataset/transforms/transforms.py +31 -14
- 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/dataset/vision/validators.py +1 -2
- mindspore/device_context/__init__.py +21 -0
- mindspore/device_context/ascend/__init__.py +25 -0
- mindspore/device_context/ascend/device.py +72 -0
- mindspore/device_context/ascend/op_debug.py +153 -0
- mindspore/device_context/ascend/op_precision.py +193 -0
- mindspore/device_context/ascend/op_tuning.py +123 -0
- mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
- mindspore/device_context/cpu/device.py +62 -0
- mindspore/device_context/cpu/op_tuning.py +43 -0
- mindspore/device_context/gpu/__init__.py +21 -0
- mindspore/device_context/gpu/device.py +70 -0
- mindspore/device_context/gpu/op_precision.py +67 -0
- mindspore/device_context/gpu/op_tuning.py +175 -0
- mindspore/device_manager.py +170 -0
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/es/embedding_service.py +35 -27
- mindspore/experimental/llm_boost/__init__.py +1 -0
- mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
- mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +209 -0
- mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
- mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
- mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
- mindspore/experimental/llm_boost/register.py +1 -0
- mindspore/experimental/map_parameter.py +4 -4
- mindspore/experimental/optim/adadelta.py +6 -6
- mindspore/experimental/optim/adagrad.py +4 -4
- mindspore/experimental/optim/adam.py +7 -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 +73 -46
- mindspore/experimental/optim/radam.py +34 -31
- 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 -53
- mindspore/hal/event.py +52 -52
- mindspore/hal/memory.py +179 -120
- mindspore/hal/stream.py +150 -109
- mindspore/include/api/context.h +0 -1
- mindspore/include/dataset/constants.h +7 -4
- mindspore/include/dataset/execute.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +50 -0
- mindspore/mindrecord/__init__.py +21 -8
- mindspore/mindrecord/config.py +17 -316
- mindspore/mindrecord/filereader.py +1 -9
- mindspore/mindrecord/filewriter.py +5 -15
- mindspore/mindrecord/mindpage.py +1 -9
- 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 +798 -761
- mindspore/mint/distributed/__init__.py +70 -4
- mindspore/mint/distributed/distributed.py +2679 -44
- mindspore/mint/linalg/__init__.py +8 -0
- mindspore/mint/nn/__init__.py +743 -22
- mindspore/mint/nn/functional.py +716 -23
- mindspore/mint/nn/layer/__init__.py +21 -4
- mindspore/mint/nn/layer/_functions.py +334 -0
- mindspore/mint/nn/layer/activation.py +276 -1
- mindspore/mint/nn/layer/basic.py +123 -0
- mindspore/mint/nn/layer/conv.py +933 -0
- mindspore/mint/nn/layer/normalization.py +223 -28
- mindspore/mint/nn/layer/padding.py +797 -0
- mindspore/mint/nn/layer/pooling.py +235 -0
- mindspore/mint/optim/__init__.py +3 -1
- mindspore/mint/optim/adam.py +223 -0
- mindspore/mint/optim/adamw.py +26 -19
- mindspore/mint/optim/sgd.py +171 -0
- mindspore/mint/special/__init__.py +2 -1
- mindspore/msobj140.dll +0 -0
- mindspore/mspdb140.dll +0 -0
- mindspore/mspdbcore.dll +0 -0
- mindspore/mspdbst.dll +0 -0
- mindspore/mspft140.dll +0 -0
- mindspore/msvcdis140.dll +0 -0
- mindspore/msvcp140_1.dll +0 -0
- mindspore/msvcp140_2.dll +0 -0
- mindspore/msvcp140_atomic_wait.dll +0 -0
- mindspore/msvcp140_codecvt_ids.dll +0 -0
- mindspore/multiprocessing/__init__.py +5 -0
- mindspore/nn/__init__.py +4 -1
- mindspore/nn/cell.py +1373 -192
- mindspore/nn/dynamic_lr.py +2 -1
- mindspore/nn/layer/activation.py +29 -27
- mindspore/nn/layer/basic.py +51 -35
- mindspore/nn/layer/channel_shuffle.py +3 -3
- mindspore/nn/layer/container.py +1 -1
- mindspore/nn/layer/conv.py +53 -42
- mindspore/nn/layer/embedding.py +12 -11
- mindspore/nn/layer/normalization.py +56 -49
- mindspore/nn/layer/padding.py +4 -3
- mindspore/nn/layer/pooling.py +120 -42
- mindspore/nn/layer/rnn_cells.py +1 -1
- mindspore/nn/layer/rnns.py +2 -1
- mindspore/nn/layer/timedistributed.py +5 -5
- mindspore/nn/layer/transformer.py +59 -36
- mindspore/nn/learning_rate_schedule.py +8 -4
- mindspore/nn/loss/loss.py +58 -55
- mindspore/nn/optim/ada_grad.py +7 -5
- mindspore/nn/optim/adadelta.py +11 -9
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +19 -15
- 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/lars.py +1 -4
- mindspore/nn/optim/lazyadam.py +12 -10
- mindspore/nn/optim/momentum.py +7 -6
- mindspore/nn/optim/optimizer.py +3 -3
- mindspore/nn/optim/proximal_ada_grad.py +12 -10
- mindspore/nn/optim/rmsprop.py +13 -12
- mindspore/nn/optim/rprop.py +11 -9
- mindspore/nn/optim/sgd.py +9 -6
- mindspore/nn/optim/tft_wrapper.py +5 -2
- mindspore/nn/optim/thor.py +2 -1
- 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/utils/init.py +13 -11
- mindspore/nn/wrap/__init__.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +181 -122
- mindspore/nn/wrap/grad_reducer.py +45 -36
- mindspore/nn/wrap/loss_scale.py +6 -7
- mindspore/numpy/array_creations.py +63 -65
- mindspore/numpy/array_ops.py +149 -144
- mindspore/numpy/logic_ops.py +41 -42
- mindspore/numpy/math_ops.py +361 -359
- mindspore/numpy/utils.py +17 -18
- mindspore/numpy/utils_const.py +5 -6
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +5 -3
- mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
- mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
- mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
- mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
- mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
- mindspore/ops/_op_impl/cpu/__init__.py +1 -0
- mindspore/ops/_op_impl/cpu/raise_op.py +28 -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 -65
- mindspore/ops/_vmap/vmap_array_ops.py +52 -25
- mindspore/ops/_vmap/vmap_base.py +0 -2
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
- mindspore/ops/_vmap/vmap_math_ops.py +15 -16
- mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
- mindspore/ops/auto_generate/__init__.py +4 -3
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +258 -46
- mindspore/ops/auto_generate/gen_extend_func.py +757 -185
- mindspore/ops/auto_generate/gen_ops_def.py +4197 -2243
- mindspore/ops/auto_generate/gen_ops_prim.py +16976 -6055
- mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
- mindspore/ops/composite/__init__.py +2 -1
- mindspore/ops/composite/base.py +20 -25
- 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 +228 -30
- 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 -30
- 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 +40 -2
- mindspore/ops/function/_add_attr_func.py +58 -0
- mindspore/ops/function/array_func.py +2089 -2403
- mindspore/ops/function/clip_func.py +80 -23
- mindspore/ops/function/debug_func.py +57 -57
- mindspore/ops/function/grad/__init__.py +1 -0
- mindspore/ops/function/grad/grad_func.py +104 -71
- mindspore/ops/function/image_func.py +2 -2
- mindspore/ops/function/linalg_func.py +47 -78
- mindspore/ops/function/math_func.py +4351 -3813
- mindspore/ops/function/nn_func.py +1712 -637
- mindspore/ops/function/other_func.py +159 -1
- mindspore/ops/function/parameter_func.py +18 -84
- mindspore/ops/function/random_func.py +452 -387
- mindspore/ops/function/reshard_func.py +4 -70
- mindspore/ops/function/sparse_func.py +3 -3
- mindspore/ops/function/sparse_unary_func.py +6 -6
- mindspore/ops/function/spectral_func.py +25 -58
- mindspore/ops/function/vmap_func.py +26 -18
- mindspore/ops/functional.py +23 -7
- mindspore/ops/functional_overload.py +1548 -0
- mindspore/ops/op_info_register.py +32 -244
- mindspore/ops/operations/__init__.py +23 -15
- mindspore/ops/operations/_custom_ops_utils.py +235 -0
- mindspore/ops/operations/_embedding_cache_ops.py +4 -4
- mindspore/ops/operations/_grad_ops.py +2 -43
- mindspore/ops/operations/_infer_ops.py +2 -1
- mindspore/ops/operations/_inner_ops.py +43 -84
- 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 +81 -324
- mindspore/ops/operations/comm_ops.py +154 -108
- mindspore/ops/operations/custom_ops.py +298 -87
- mindspore/ops/operations/debug_ops.py +157 -59
- mindspore/ops/operations/inner_ops.py +7 -5
- mindspore/ops/operations/linalg_ops.py +1 -57
- mindspore/ops/operations/manually_defined/_inner.py +1 -1
- mindspore/ops/operations/manually_defined/ops_def.py +928 -180
- mindspore/ops/operations/math_ops.py +32 -234
- mindspore/ops/operations/nn_ops.py +212 -531
- 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 +66 -53
- mindspore/ops/tensor_method.py +1895 -0
- mindspore/ops_generate/__init__.py +0 -5
- mindspore/ops_generate/aclnn/__init__.py +0 -0
- mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
- mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
- mindspore/ops_generate/api/__init__.py +0 -0
- mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
- mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
- mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
- mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
- mindspore/ops_generate/api/functions_cc_generator.py +237 -0
- mindspore/ops_generate/api/gen_api.py +103 -0
- mindspore/ops_generate/api/op_api_proto.py +235 -0
- mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
- mindspore/ops_generate/common/__init__.py +0 -0
- mindspore/ops_generate/common/base_generator.py +11 -0
- mindspore/ops_generate/common/gen_constants.py +91 -0
- mindspore/ops_generate/common/gen_utils.py +348 -0
- mindspore/ops_generate/common/op_proto.py +473 -0
- mindspore/ops_generate/common/template.py +523 -0
- mindspore/ops_generate/gen_ops.py +22 -1069
- mindspore/ops_generate/op_def/__init__.py +0 -0
- mindspore/ops_generate/op_def/gen_op_def.py +90 -0
- mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
- mindspore/ops_generate/op_def/ops_def_cc_generator.py +296 -0
- mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
- mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
- 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/op_def_py_generator.py +132 -0
- mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
- mindspore/ops_generate/pyboost/__init__.py +0 -0
- mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
- mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
- mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
- mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
- mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
- mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
- mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
- mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
- mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
- mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
- mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
- mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
- mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
- 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 +7 -3
- mindspore/parallel/_auto_parallel_context.py +159 -40
- mindspore/parallel/_cell_wrapper.py +132 -15
- mindspore/parallel/_parallel_serialization.py +107 -5
- mindspore/parallel/_ps_context.py +1 -1
- mindspore/parallel/_recovery_context.py +7 -2
- mindspore/parallel/_tensor.py +142 -18
- mindspore/parallel/_utils.py +199 -23
- mindspore/parallel/algo_parameter_config.py +4 -4
- mindspore/parallel/auto_parallel.py +732 -0
- mindspore/parallel/checkpoint_convert.py +159 -0
- mindspore/parallel/checkpoint_transform.py +700 -35
- mindspore/parallel/cluster/process_entity/_api.py +276 -50
- mindspore/parallel/cluster/process_entity/_utils.py +41 -6
- mindspore/parallel/cluster/run.py +21 -4
- 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 +25 -14
- mindspore/parallel/shard.py +137 -59
- mindspore/parallel/transform_safetensors.py +364 -305
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +22 -5
- mindspore/profiler/analysis/__init__.py +0 -0
- mindspore/profiler/analysis/parser/__init__.py +0 -0
- mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
- mindspore/profiler/analysis/parser/base_parser.py +158 -0
- mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
- mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
- mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +109 -0
- mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
- mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
- mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
- mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
- mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
- mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
- mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
- mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
- mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
- mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
- mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
- mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
- mindspore/profiler/analysis/task_manager.py +131 -0
- mindspore/profiler/analysis/time_converter.py +84 -0
- mindspore/profiler/analysis/viewer/__init__.py +0 -0
- mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
- mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
- mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
- mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
- mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
- mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
- mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
- mindspore/profiler/analysis/work_flow.py +73 -0
- mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
- mindspore/profiler/common/command_executor.py +90 -0
- mindspore/profiler/common/constant.py +186 -3
- mindspore/profiler/common/file_manager.py +208 -0
- mindspore/profiler/common/log.py +130 -0
- mindspore/profiler/common/msprof_cmd_tool.py +221 -0
- mindspore/profiler/common/path_manager.py +395 -0
- mindspore/profiler/common/process_bar.py +168 -0
- mindspore/profiler/common/process_pool.py +9 -3
- mindspore/profiler/common/profiler_context.py +500 -0
- mindspore/profiler/common/profiler_info.py +304 -0
- mindspore/profiler/common/profiler_meta_data.py +74 -0
- mindspore/profiler/common/profiler_output_path.py +284 -0
- mindspore/profiler/common/profiler_parameters.py +251 -0
- mindspore/profiler/common/profiler_path_manager.py +179 -0
- mindspore/profiler/common/record_function.py +76 -0
- mindspore/profiler/common/tlv_decoder.py +76 -0
- mindspore/profiler/common/util.py +75 -2
- mindspore/profiler/dynamic_profiler.py +341 -75
- mindspore/profiler/envprofiler.py +163 -0
- mindspore/profiler/experimental_config.py +197 -0
- mindspore/profiler/mstx.py +242 -0
- mindspore/profiler/platform/__init__.py +21 -0
- mindspore/profiler/platform/base_profiler.py +40 -0
- mindspore/profiler/platform/cpu_profiler.py +124 -0
- mindspore/profiler/platform/gpu_profiler.py +74 -0
- mindspore/profiler/platform/npu_profiler.py +335 -0
- mindspore/profiler/profiler.py +1073 -90
- mindspore/profiler/profiler_action_controller.py +187 -0
- mindspore/profiler/profiler_interface.py +118 -0
- mindspore/profiler/schedule.py +243 -0
- mindspore/rewrite/api/node.py +15 -13
- mindspore/rewrite/api/symbol_tree.py +2 -3
- mindspore/run_check/_check_version.py +27 -20
- mindspore/run_check/run_check.py +1 -1
- mindspore/runtime/__init__.py +37 -0
- mindspore/runtime/device.py +27 -0
- mindspore/runtime/event.py +209 -0
- mindspore/runtime/executor.py +177 -0
- mindspore/runtime/memory.py +416 -0
- mindspore/runtime/stream.py +460 -0
- mindspore/runtime/thread_bind_core.py +401 -0
- 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 +96 -27
- mindspore/train/amp.py +9 -5
- mindspore/train/callback/__init__.py +2 -2
- mindspore/train/callback/_callback.py +2 -16
- mindspore/train/callback/_checkpoint.py +53 -55
- mindspore/train/callback/_cluster_monitor.py +14 -18
- mindspore/train/callback/_early_stop.py +1 -1
- mindspore/train/callback/_flops_collector.py +103 -68
- mindspore/train/callback/_history.py +8 -5
- 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 +52 -19
- mindspore/train/callback/_time_monitor.py +2 -1
- mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +228 -108
- mindspore/train/data_sink.py +25 -2
- mindspore/train/dataset_helper.py +15 -16
- 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 +11 -10
- mindspore/train/metrics/recall.py +9 -9
- mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
- mindspore/train/mind_ir_pb2.py +174 -46
- mindspore/train/model.py +269 -136
- mindspore/train/serialization.py +622 -978
- mindspore/train/summary/_summary_adapter.py +2 -2
- mindspore/train/summary/summary_record.py +2 -3
- mindspore/train/train_thor/model_thor.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +6 -3
- mindspore/utils/dryrun.py +140 -0
- mindspore/utils/hooks.py +81 -0
- mindspore/utils/runtime_execution_order_check.py +552 -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.4.10.dist-info → mindspore-2.6.0.dist-info}/METADATA +3 -3
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/RECORD +587 -418
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +1 -1
- mindspore/_install_custom.py +0 -43
- mindspore/common/_register_for_adapter.py +0 -74
- mindspore/common/_tensor_overload.py +0 -139
- mindspore/mindspore_np_dtype.dll +0 -0
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
- mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
- mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
- mindspore/ops_generate/gen_aclnn_implement.py +0 -263
- mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
- mindspore/ops_generate/gen_pyboost_func.py +0 -1052
- mindspore/ops_generate/gen_utils.py +0 -209
- mindspore/ops_generate/op_proto.py +0 -145
- mindspore/ops_generate/template.py +0 -261
- mindspore/profiler/envprofiling.py +0 -254
- mindspore/profiler/profiling.py +0 -1926
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
|
@@ -198,7 +198,7 @@ class EarlyStopping(Callback):
|
|
|
198
198
|
"""
|
|
199
199
|
Get the monitor value at the end of epoch during training.
|
|
200
200
|
|
|
201
|
-
If
|
|
201
|
+
If :class:`mindspore.train.callback.ReduceLROnPlateau` used with `model.train`, no evaluation process
|
|
202
202
|
during training, only monitor="loss" is valid; if it used with `model.fit`, evaluation process will be
|
|
203
203
|
performed at the end of epoch, valid monitor is "loss", "eval_loss" and metrics passed to `Model`.
|
|
204
204
|
|
|
@@ -61,10 +61,13 @@ class FlopsUtilizationCollector(Callback):
|
|
|
61
61
|
computility (int): The peak flops of each compute card. Default: ``1`` .
|
|
62
62
|
full_flops(bool): Whether to count the full model flops. If set full_flops to False,
|
|
63
63
|
FlopsUtilizationCollector would count the shard model flops in each device. Default: ``True`` .
|
|
64
|
+
enable_ma_collector(bool): Whether to write flops into the log and provide them to tasks
|
|
65
|
+
on the cloud for retrieval. Default: ``False`` .
|
|
64
66
|
|
|
65
67
|
Raises:
|
|
66
68
|
TypeError: If data_size is not positive int.
|
|
67
69
|
TypeError: If full_flops is not bool.
|
|
70
|
+
TypeError: If enable_ma_collector is not bool.
|
|
68
71
|
AssertionError: If the training mode is not a static graph or not a static shape.
|
|
69
72
|
|
|
70
73
|
Examples:
|
|
@@ -86,7 +89,7 @@ class FlopsUtilizationCollector(Callback):
|
|
|
86
89
|
Train per step time: 135.572 ms, mfu:0.47% hfu:0.47%
|
|
87
90
|
Train per step time: 1.317 ms, mfu:48.59% hfu:48.59%
|
|
88
91
|
"""
|
|
89
|
-
def __init__(self, data_size, computility=1, full_flops=True):
|
|
92
|
+
def __init__(self, data_size, computility=1, full_flops=True, enable_ma_collector=False):
|
|
90
93
|
super(FlopsUtilizationCollector, self).__init__()
|
|
91
94
|
self.step_time = time.time()
|
|
92
95
|
self.computility = computility
|
|
@@ -101,9 +104,12 @@ class FlopsUtilizationCollector(Callback):
|
|
|
101
104
|
self.mfu_calculated = False
|
|
102
105
|
self.data_size = data_size
|
|
103
106
|
self.time_step_path = ''
|
|
104
|
-
self.
|
|
105
|
-
self.
|
|
106
|
-
|
|
107
|
+
self.full_flops = full_flops
|
|
108
|
+
self.verbose = not(computility == 1 and enable_ma_collector)
|
|
109
|
+
self.ma = enable_ma_collector
|
|
110
|
+
self.batch_step_size = None
|
|
111
|
+
Validator.check_bool(full_flops, "full_flops")
|
|
112
|
+
Validator.check_bool(enable_ma_collector, "enable_ma_collector")
|
|
107
113
|
Validator.check_positive_int(data_size, "data_size")
|
|
108
114
|
|
|
109
115
|
def step_begin(self, run_context):
|
|
@@ -115,6 +121,14 @@ class FlopsUtilizationCollector(Callback):
|
|
|
115
121
|
run_context (RunContext): Context of the process running. For more details,
|
|
116
122
|
please refer to :class:`mindspore.train.RunContext`.
|
|
117
123
|
"""
|
|
124
|
+
if self.batch_step_size is None:
|
|
125
|
+
self.batch_step_size = self.data_size
|
|
126
|
+
cb_params = run_context.original_args()
|
|
127
|
+
if hasattr(cb_params, "batch_num"):
|
|
128
|
+
batch_num = cb_params.batch_num
|
|
129
|
+
if isinstance(batch_num, int) and batch_num > 0:
|
|
130
|
+
self.batch_step_size = cb_params.batch_num
|
|
131
|
+
Validator.check_positive_int(self.batch_step_size)
|
|
118
132
|
self.step_time = time.time()
|
|
119
133
|
|
|
120
134
|
def _get_pipeline_group(self):
|
|
@@ -134,6 +148,40 @@ class FlopsUtilizationCollector(Callback):
|
|
|
134
148
|
rank_list_str = "-".join(rank_str_list)
|
|
135
149
|
return rank_list, rank_list_str
|
|
136
150
|
|
|
151
|
+
def _check_run_mode_valid(self, run_context):
|
|
152
|
+
"""
|
|
153
|
+
Check whether FlopsUtilizationCollector is working in the current environment
|
|
154
|
+
"""
|
|
155
|
+
if context.get_context("mode") != context.GRAPH_MODE:
|
|
156
|
+
if self.verbose:
|
|
157
|
+
raise ValueError("FlopsUtilizationCollector now only support graph mode.")
|
|
158
|
+
logger.info("FlopsUtilizationCollector now only support graph mode.")
|
|
159
|
+
return False
|
|
160
|
+
cb_params = run_context.original_args()
|
|
161
|
+
if cb_params.mode == 'train':
|
|
162
|
+
network = cb_params.train_network
|
|
163
|
+
elif cb_params.mode == 'eval':
|
|
164
|
+
network = cb_params.eval_network
|
|
165
|
+
else:
|
|
166
|
+
if self.verbose:
|
|
167
|
+
raise ValueError('FlopsUtilizationCollector only support train and eval mode!')
|
|
168
|
+
logger.info('FlopsUtilizationCollector only support train and eval mode!')
|
|
169
|
+
return False
|
|
170
|
+
try:
|
|
171
|
+
self.full_model_flops, self.full_hardware_flops, self.shard_model_flops, \
|
|
172
|
+
self.shard_hardware_flops, is_dynamic_shape = flops_collection(network.current_phase)
|
|
173
|
+
except Exception as e:
|
|
174
|
+
if self.verbose:
|
|
175
|
+
raise ValueError("FlopsUtilizationCollector is not supported because {}.".format(e))
|
|
176
|
+
logger.info("FlopsUtilizationCollector is not supported because {}.".format(e))
|
|
177
|
+
return False
|
|
178
|
+
if is_dynamic_shape:
|
|
179
|
+
if self.verbose:
|
|
180
|
+
raise ValueError("FlopsUtilizationCollector now do not support dynamic shape.")
|
|
181
|
+
logger.info("FlopsUtilizationCollector now do not support dynamic shape.")
|
|
182
|
+
return False
|
|
183
|
+
return True
|
|
184
|
+
|
|
137
185
|
def step_end(self, run_context):
|
|
138
186
|
"""
|
|
139
187
|
Print mfu and hfu time at the end of step.
|
|
@@ -142,84 +190,67 @@ class FlopsUtilizationCollector(Callback):
|
|
|
142
190
|
run_context (RunContext): Context of the process running. For more details,
|
|
143
191
|
please refer to :class:`mindspore.train.RunContext`.
|
|
144
192
|
"""
|
|
145
|
-
if context.get_context("mode") != context.GRAPH_MODE:
|
|
146
|
-
logger.warning("FlopsUtilizationCollector now only support graph mode.")
|
|
147
|
-
return
|
|
148
|
-
|
|
149
193
|
step_seconds = (time.time() - self.step_time) * 1000
|
|
150
194
|
if not self.mfu_calculated:
|
|
151
|
-
|
|
152
|
-
if cb_params.mode == 'train':
|
|
153
|
-
network = cb_params.train_network
|
|
154
|
-
elif cb_params.mode == 'eval':
|
|
155
|
-
network = cb_params.eval_network
|
|
156
|
-
else:
|
|
157
|
-
logger.warning('FlopsUtilizationCollector only support train and eval mode!')
|
|
195
|
+
if not self._check_run_mode_valid(run_context):
|
|
158
196
|
return
|
|
159
|
-
full_model_flops
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
return
|
|
164
|
-
self.full_mfu = full_model_flops / self.computility
|
|
165
|
-
self.full_hfu = full_hardware_flops / self.computility
|
|
166
|
-
|
|
167
|
-
self.shard_mfu = shard_model_flops / self.computility
|
|
168
|
-
self.shard_hfu = shard_hardware_flops / self.computility
|
|
169
|
-
self.full_model_flops = full_model_flops
|
|
170
|
-
self.full_hardware_flops = full_hardware_flops
|
|
171
|
-
self.shard_model_flops = shard_model_flops
|
|
172
|
-
self.shard_hardware_flops = shard_hardware_flops
|
|
197
|
+
self.full_mfu = self.full_model_flops / self.computility
|
|
198
|
+
self.full_hfu = self.full_hardware_flops / self.computility
|
|
199
|
+
self.shard_mfu = self.shard_model_flops / self.computility
|
|
200
|
+
self.shard_hfu = self.shard_hardware_flops / self.computility
|
|
173
201
|
self.mfu_calculated = True
|
|
174
202
|
shard_mf_dir = os.path.realpath(os.getenv('MA_LOG_DIR', './'))
|
|
175
203
|
if self.ma:
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
self.time_step_path = os.path.join(
|
|
182
|
-
shard_mf_dir, "time_step_rank_" + str(get_rank())) + ".txt"
|
|
204
|
+
rank_id = get_rank() if auto_parallel_context().get_parallel_mode() != "stand_alone" else 0
|
|
205
|
+
flops_path = os.path.join(
|
|
206
|
+
shard_mf_dir, "flops_rank_" + str(rank_id)) + ".txt"
|
|
207
|
+
self.time_step_path = os.path.join(
|
|
208
|
+
shard_mf_dir, "time_step_rank_" + str(rank_id)) + ".txt"
|
|
183
209
|
time_stamp = time.time()
|
|
184
|
-
model_flops_log = "flops{{type=\"model_flops\"}} {} {}\n".\
|
|
185
|
-
format(shard_model_flops, int(round(time_stamp * 1000)))
|
|
186
|
-
hardware_flops_log = "flops{{type=\"hardware_flops\"}} {} {}\n".\
|
|
187
|
-
format(shard_hardware_flops, int(round(time_stamp * 1000)))
|
|
210
|
+
model_flops_log = "flops{{type=\"model_flops\", rank_id=\"{}\"}} {} {}\n".\
|
|
211
|
+
format(str(rank_id), self.shard_model_flops, int(round(time_stamp * 1000)))
|
|
212
|
+
hardware_flops_log = "flops{{type=\"hardware_flops\", rank_id=\"{}\"}} {} {}\n".\
|
|
213
|
+
format(str(rank_id), self.shard_hardware_flops, int(round(time_stamp * 1000)))
|
|
188
214
|
flags = os.O_WRONLY | os.O_CREAT
|
|
189
215
|
modes = stat.S_IWUSR | stat.S_IRUSR
|
|
190
216
|
with os.fdopen(os.open(flops_path, flags, modes), 'w') as f:
|
|
191
217
|
f.write(model_flops_log)
|
|
192
218
|
f.write(hardware_flops_log)
|
|
193
219
|
if self.verbose:
|
|
194
|
-
|
|
195
|
-
|
|
220
|
+
if self.full_flops:
|
|
221
|
+
pipeline_num = auto_parallel_context().get_pipeline_stages()
|
|
222
|
+
if pipeline_num > 1:
|
|
223
|
+
pipeline_group_list, pipeline_group_name = self._get_pipeline_group()
|
|
224
|
+
auto_parallel_context().set_pipeline_stages(1)
|
|
225
|
+
hashed = hashlib.md5(
|
|
226
|
+
pipeline_group_name.encode()).hexdigest()[:48]
|
|
227
|
+
pipeline_group_name = str(hashed)
|
|
228
|
+
create_group(pipeline_group_name, pipeline_group_list)
|
|
229
|
+
self.full_mfu = AllReduceNet(pipeline_group_name)(
|
|
230
|
+
Tensor([self.full_mfu])).asnumpy()[0]
|
|
231
|
+
self.full_hfu = AllReduceNet(pipeline_group_name)(
|
|
232
|
+
Tensor([self.full_hfu])).asnumpy()[0]
|
|
233
|
+
auto_parallel_context().set_pipeline_stages(pipeline_num)
|
|
234
|
+
full_model_flops = self.full_mfu * self.computility
|
|
235
|
+
full_hardware_flops = self.full_hfu * self.computility
|
|
236
|
+
if auto_parallel_context().get_parallel_mode() != "stand_alone":
|
|
237
|
+
self.full_mfu = self.full_mfu / get_group_size()
|
|
238
|
+
self.full_hfu = self.full_hfu / get_group_size()
|
|
239
|
+
flops_log = f"Full model flops is {full_model_flops}, " \
|
|
240
|
+
f"Full hardware flops is {full_hardware_flops}, " \
|
|
241
|
+
f"Shard model flops is {self.shard_model_flops}, " \
|
|
242
|
+
f"Shard hardware flops is {self.shard_hardware_flops}."
|
|
243
|
+
else:
|
|
244
|
+
flops_log = f"Shard model flops is {self.shard_model_flops}, " \
|
|
245
|
+
f"Shard hardware flops is {self.shard_hardware_flops}."
|
|
196
246
|
print(flops_log, flush=True)
|
|
197
|
-
if auto_parallel_context().get_pipeline_stages() > 1:
|
|
198
|
-
pipeline_group_list, pipeline_group_name = self._get_pipeline_group()
|
|
199
|
-
auto_parallel_context().set_pipeline_stages(1)
|
|
200
|
-
hashed = hashlib.md5(
|
|
201
|
-
pipeline_group_name.encode()).hexdigest()[:48]
|
|
202
|
-
pipeline_group_name = str(hashed)
|
|
203
|
-
create_group(pipeline_group_name, pipeline_group_list)
|
|
204
|
-
self.full_mfu = AllReduceNet(pipeline_group_name)(
|
|
205
|
-
Tensor([self.full_mfu])).asnumpy()[0]
|
|
206
|
-
self.full_hfu = AllReduceNet(pipeline_group_name)(
|
|
207
|
-
Tensor([self.full_hfu])).asnumpy()[0]
|
|
208
|
-
if auto_parallel_context().get_parallel_mode() != "stand_alone":
|
|
209
|
-
self.full_mfu = self.full_mfu / get_group_size()
|
|
210
|
-
self.full_hfu = self.full_hfu / get_group_size()
|
|
211
|
-
|
|
212
|
-
step_size = self.data_size
|
|
213
247
|
cb_params = run_context.original_args()
|
|
214
|
-
if hasattr(cb_params, "batch_num"):
|
|
215
|
-
batch_num = cb_params.batch_num
|
|
216
|
-
if isinstance(batch_num, int) and batch_num > 0:
|
|
217
|
-
step_size = cb_params.batch_num
|
|
218
|
-
Validator.check_positive_int(step_size)
|
|
219
248
|
if cb_params.dataset_sink_mode:
|
|
220
|
-
step_seconds = step_seconds /
|
|
249
|
+
step_seconds = step_seconds / self.batch_step_size
|
|
221
250
|
time_stamp = time.time()
|
|
222
|
-
|
|
251
|
+
rank_id = get_rank() if auto_parallel_context().get_parallel_mode() != "stand_alone" else 0
|
|
252
|
+
train_log = "time_monitor{{type=\"per_step_time\", rank_id=\"{}\"}} {} {}".format(
|
|
253
|
+
str(rank_id), step_seconds, int(round(time_stamp * 1000)))
|
|
223
254
|
if self.ma:
|
|
224
255
|
flags = os.O_WRONLY | os.O_CREAT
|
|
225
256
|
modes = stat.S_IWUSR | stat.S_IRUSR
|
|
@@ -227,9 +258,13 @@ class FlopsUtilizationCollector(Callback):
|
|
|
227
258
|
f.write(train_log + '\n')
|
|
228
259
|
train_log = "{} per step time: {:5.3f} ms".format(
|
|
229
260
|
cb_params.mode.title(), step_seconds)
|
|
230
|
-
if self.verbose:
|
|
231
|
-
|
|
232
|
-
|
|
261
|
+
if self.verbose and cb_params.cur_step_num % self.data_size:
|
|
262
|
+
if self.full_flops:
|
|
263
|
+
mfu = 1000 * self.full_mfu / step_seconds
|
|
264
|
+
hfu = 1000 * self.full_hfu / step_seconds
|
|
265
|
+
else:
|
|
266
|
+
mfu = 1000 * self.shard_mfu / step_seconds
|
|
267
|
+
hfu = 1000 * self.shard_hfu / step_seconds
|
|
233
268
|
|
|
234
269
|
def floored_percentage(index, val, digits):
|
|
235
270
|
val *= 10 ** (digits + 2)
|
|
@@ -25,13 +25,16 @@ class History(Callback):
|
|
|
25
25
|
"""
|
|
26
26
|
Records the network outputs and metrics information into a `History` object.
|
|
27
27
|
|
|
28
|
-
The network outputs information will be the loss value if not custimizing the train network or eval network;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
- The network outputs information will be the loss value if not custimizing the train network or eval network;
|
|
29
|
+
- If the train network or eval network is custimized:
|
|
30
|
+
|
|
31
|
+
- if the custimized network returns a `Tensor` or `numpy.ndarray`, the mean value of network output
|
|
32
|
+
will be recorded.
|
|
33
|
+
- if the custimized network returns a `tuple` or `list`, the first element of network
|
|
34
|
+
outputs will be recorded.
|
|
32
35
|
|
|
33
36
|
Note:
|
|
34
|
-
Normally used in
|
|
37
|
+
Normally used in :func:`mindspore.train.Model.train` or :func:`mindspore.train.Model.fit`.
|
|
35
38
|
|
|
36
39
|
Examples:
|
|
37
40
|
>>> import numpy as np
|
|
@@ -36,8 +36,8 @@ class LambdaCallback(Callback):
|
|
|
36
36
|
on_train_step_end (Function): called at each train step end. Default: ``None`` .
|
|
37
37
|
on_train_begin (Function): called at the beginning of model train. Default: ``None`` .
|
|
38
38
|
on_train_end (Function): called at the end of model train. Default: ``None`` .
|
|
39
|
-
on_eval_epoch_begin (Function): called at eval epoch begin. Default: ``None`` .
|
|
40
|
-
on_eval_epoch_end (Function): called at eval epoch end. Default: ``None`` .
|
|
39
|
+
on_eval_epoch_begin (Function): called at each eval epoch begin. Default: ``None`` .
|
|
40
|
+
on_eval_epoch_end (Function): called at each eval epoch end. Default: ``None`` .
|
|
41
41
|
on_eval_step_begin (Function): called at each eval step begin. Default: ``None`` .
|
|
42
42
|
on_eval_step_end (Function): called at each eval step end. Default: ``None`` .
|
|
43
43
|
on_eval_begin (Function): called at the beginning of model eval. Default: ``None`` .
|
|
@@ -256,9 +256,6 @@ class SummaryLandscape:
|
|
|
256
256
|
"""
|
|
257
257
|
Clean the checkpoint.
|
|
258
258
|
|
|
259
|
-
Tutorial Examples:
|
|
260
|
-
- `Training Optimization Process Visualization
|
|
261
|
-
<https://www.mindspore.cn/mindinsight/docs/en/master/landscape.html>`_
|
|
262
259
|
"""
|
|
263
260
|
shutil.rmtree(self._ckpt_dir, ignore_errors=True)
|
|
264
261
|
|
|
@@ -93,7 +93,8 @@ class LossMonitor(Callback):
|
|
|
93
93
|
|
|
94
94
|
def on_train_epoch_end(self, run_context):
|
|
95
95
|
"""
|
|
96
|
-
When LossMonitor used in
|
|
96
|
+
When LossMonitor used in :func:`mindspore.train.Model.fit`, print eval metrics
|
|
97
|
+
at the end of epoch if current epoch
|
|
97
98
|
should do evaluation.
|
|
98
99
|
|
|
99
100
|
Args:
|
|
@@ -26,6 +26,7 @@ from mindspore.common.tensor import Tensor
|
|
|
26
26
|
from mindspore.train._utils import _make_directory
|
|
27
27
|
from mindspore import _checkparam as Validator
|
|
28
28
|
from mindspore.train.serialization import load_checkpoint, save_checkpoint, export
|
|
29
|
+
from mindspore.communication.management import get_group_size
|
|
29
30
|
from mindspore.train.callback._callback import Callback
|
|
30
31
|
from mindspore.parallel._utils import _get_parallel_mode
|
|
31
32
|
from mindspore.context import ParallelMode
|
|
@@ -37,7 +38,7 @@ class OnRequestExit(Callback):
|
|
|
37
38
|
|
|
38
39
|
Register OnRequestExit Callback before training, when the user want to exit the training process
|
|
39
40
|
and save the training data, could send the registered exit signal 'sig' to the training process or modify the
|
|
40
|
-
'GracefulExit' that a key in the
|
|
41
|
+
'GracefulExit' that a key in the JSON file specified by the 'config_file' to '1'.
|
|
41
42
|
After the training process executes the current step, saves the current training status,
|
|
42
43
|
including checkpoint and mindir, and then exit the training process.
|
|
43
44
|
|
|
@@ -58,7 +59,7 @@ class OnRequestExit(Callback):
|
|
|
58
59
|
ValueError: If the 'save_mindir' is not a bool.
|
|
59
60
|
ValueError: If the 'file_name' is not a str.
|
|
60
61
|
ValueError: If the 'directory' is not a str.
|
|
61
|
-
ValueError: If the 'sig' is not an int or the 'sig' is signal.
|
|
62
|
+
ValueError: If the 'sig' is not an int or the 'sig' is ``signal.SIGTERM``.
|
|
62
63
|
|
|
63
64
|
Examples:
|
|
64
65
|
>>> from mindspore import nn
|
|
@@ -92,10 +93,8 @@ class OnRequestExit(Callback):
|
|
|
92
93
|
self.key = "GracefulExit"
|
|
93
94
|
self.remote_config_file = config_file # used config file to save checkpoint and exit training process
|
|
94
95
|
self.use_graceful = os.environ.get("MS_ENABLE_GRACEFUL_EXIT") == "1"
|
|
95
|
-
self.is_distributed =
|
|
96
|
+
self.is_distributed = get_group_size() > 1
|
|
96
97
|
self.integrated_save = True
|
|
97
|
-
if self.is_distributed:
|
|
98
|
-
self.integrated_save = _get_parallel_mode() == ParallelMode.AUTO_PARALLEL
|
|
99
98
|
self.stop_train = False
|
|
100
99
|
self.need_do_step_end = False
|
|
101
100
|
if self.save_ckpt or self.save_mindir:
|
|
@@ -250,6 +249,8 @@ class OnRequestExit(Callback):
|
|
|
250
249
|
else:
|
|
251
250
|
global_step = int(call_params.network.optimizer.global_step.data)
|
|
252
251
|
append_dict["global_step"] = global_step
|
|
252
|
+
if self.is_distributed:
|
|
253
|
+
self.integrated_save = _get_parallel_mode() == ParallelMode.AUTO_PARALLEL
|
|
253
254
|
save_checkpoint(net, self.train_name, integrated_save=self.integrated_save,
|
|
254
255
|
append_dict=append_dict)
|
|
255
256
|
if self.save_mindir:
|
|
@@ -63,12 +63,17 @@ class ReduceLROnPlateau(Callback):
|
|
|
63
63
|
will be reduced. Default: ``10`` .
|
|
64
64
|
verbose (bool): If False: quiet, if True: print related information.
|
|
65
65
|
Default: ``False`` .
|
|
66
|
-
mode (str): one of `{'auto', 'min', 'max'}`.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
mode (str): one of `{'auto', 'min', 'max'}`. Default: ``'auto'`` .
|
|
67
|
+
|
|
68
|
+
- In ``'min'`` mode,
|
|
69
|
+
the learning rate will be reduced when the
|
|
70
|
+
quantity monitored has stopped decreasing.
|
|
71
|
+
- In ``'max'`` mode it will be
|
|
72
|
+
reduced when the quantity monitored has stopped increasing.
|
|
73
|
+
- In ``'auto'``
|
|
74
|
+
mode, the direction is automatically inferred from the name of the
|
|
75
|
+
monitored quantity.
|
|
76
|
+
|
|
72
77
|
min_delta (float): threshold for measuring the new optimum, to only focus on
|
|
73
78
|
significant changes. Default: ``1e-4`` .
|
|
74
79
|
cooldown (int): number of epochs to wait before resuming normal operation after
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
from __future__ import absolute_import
|
|
17
17
|
|
|
18
18
|
import os
|
|
19
|
+
import platform
|
|
19
20
|
import stat
|
|
20
21
|
import re
|
|
21
22
|
import json
|
|
@@ -43,6 +44,9 @@ from mindspore.train._utils import check_value_type, _make_directory
|
|
|
43
44
|
from mindspore._c_expression import security
|
|
44
45
|
from mindspore._c_expression import collect_host_info, get_clock_syscnt
|
|
45
46
|
|
|
47
|
+
if platform.system() == "Linux":
|
|
48
|
+
import fcntl
|
|
49
|
+
|
|
46
50
|
HYPER_CONFIG_ENV_NAME = "MINDINSIGHT_HYPER_CONFIG"
|
|
47
51
|
HYPER_CONFIG_LEN_LIMIT = 100000
|
|
48
52
|
|
|
@@ -103,22 +107,18 @@ class SummaryCollector(Callback):
|
|
|
103
107
|
The first output will be treated as the loss and it will be averaged. Default: ``True`` .
|
|
104
108
|
- collect_graph (bool): Whether to collect the computational graph. Currently, only
|
|
105
109
|
training computational graph is collected. Default: ``True`` .
|
|
106
|
-
- collect_train_lineage (bool): Whether to collect lineage data for the training phase
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
- collect_eval_lineage (bool): Whether to collect lineage data for the evaluation phase,
|
|
111
|
-
this field will be displayed on the `lineage page
|
|
112
|
-
<https://www.mindspore.cn/mindinsight/docs/en/master/lineage_and_scalars_comparison.html>`_
|
|
113
|
-
of MindInsight. Default: ``True`` .
|
|
110
|
+
- collect_train_lineage (bool): Whether to collect lineage data for the training phase.
|
|
111
|
+
Default: ``True`` .
|
|
112
|
+
- collect_eval_lineage (bool): Whether to collect lineage data for the evaluation phase.
|
|
113
|
+
Default: ``True`` .
|
|
114
114
|
- collect_input_data (bool): Whether to collect dataset for each training.
|
|
115
115
|
Currently only image data is supported.
|
|
116
116
|
If there are multiple columns of data in the dataset, the first column should be image data.
|
|
117
117
|
Default: ``True`` .
|
|
118
118
|
- collect_dataset_graph (bool): Whether to collect dataset graph for the training phase.
|
|
119
119
|
Default: ``True`` .
|
|
120
|
-
- histogram_regular (Union[str, None]): Collect weight and bias for parameter distribution page
|
|
121
|
-
|
|
120
|
+
- histogram_regular (Union[str, None]): Collect weight and bias for parameter distribution page.
|
|
121
|
+
This field allows regular strings to control which parameters to collect.
|
|
122
122
|
It is not recommended to collect too many parameters at once, as it can affect performance.
|
|
123
123
|
Note that if you collect too many parameters and run out of memory, the training will fail.
|
|
124
124
|
Default: ``None`` , it means only the first five parameters are collected.
|
|
@@ -149,8 +149,7 @@ class SummaryCollector(Callback):
|
|
|
149
149
|
True: it means that after specified data is set, non-specified data is collected as the default behavior.
|
|
150
150
|
False: it means that after specified data is set, only the specified data is collected,
|
|
151
151
|
and the others are not collected. Default: ``True`` .
|
|
152
|
-
custom_lineage_data (Union[dict, None]): Allows you to customize the data
|
|
153
|
-
`lineage page <https://www.mindspore.cn/mindinsight/docs/en/master/lineage_and_scalars_comparison.html>`_ .
|
|
152
|
+
custom_lineage_data (Union[dict, None]): Allows you to customize the data.
|
|
154
153
|
In the custom data, the type of the key supports str, and the type of value supports str, int
|
|
155
154
|
and float. Default: ``None`` , it means there is no custom data.
|
|
156
155
|
collect_tensor_freq (Optional[int]): The same semantics as the `collect_freq`, but controls TensorSummary only.
|
|
@@ -164,7 +163,7 @@ class SummaryCollector(Callback):
|
|
|
164
163
|
affect the number of steps TensorSummary will be collected.
|
|
165
164
|
Default: ``None`` , which means to follow the behavior as described above.
|
|
166
165
|
max_file_size (Optional[int]): The maximum size in bytes of each file that can be written to the disk.
|
|
167
|
-
For example, to write not larger than 4GB, specify `max_file_size=4*1024
|
|
166
|
+
For example, to write not larger than 4GB, specify `max_file_size=4*1024*3`.
|
|
168
167
|
Default: ``None`` , which means no limit.
|
|
169
168
|
export_options (Union[None, dict]): Perform custom operations on the export data.
|
|
170
169
|
Note that the size of export files is not limited by the max_file_size.
|
|
@@ -606,13 +605,32 @@ class SummaryCollector(Callback):
|
|
|
606
605
|
"landscape_size": landscape_size,
|
|
607
606
|
"create_landscape": create_landscape
|
|
608
607
|
}
|
|
608
|
+
|
|
609
609
|
meta_path = os.path.join(self._ckpt_dir, 'train_metadata.json')
|
|
610
|
+
if platform.system() != "Linux":
|
|
611
|
+
try:
|
|
612
|
+
with open(meta_path, 'w') as file:
|
|
613
|
+
json.dump(data, file)
|
|
614
|
+
os.chmod(meta_path, stat.S_IRUSR)
|
|
615
|
+
except OSError as e:
|
|
616
|
+
logger.error("Write meta data %s failed, detail: %s" % (meta_path, str(e)))
|
|
617
|
+
return
|
|
618
|
+
|
|
619
|
+
lock_file = f"{meta_path}.lock"
|
|
610
620
|
try:
|
|
611
|
-
with open(
|
|
612
|
-
|
|
613
|
-
|
|
621
|
+
with os.fdopen(os.open(lock_file, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IWUSR), 'w') as f:
|
|
622
|
+
fcntl.flock(f.fileno(), fcntl.LOCK_EX)
|
|
623
|
+
if not os.path.isfile(meta_path):
|
|
624
|
+
with open(meta_path, 'w') as file:
|
|
625
|
+
json.dump(data, file)
|
|
626
|
+
os.chmod(meta_path, stat.S_IRUSR)
|
|
614
627
|
except OSError as e:
|
|
615
628
|
logger.error("Write meta data %s failed, detail: %s" % (meta_path, str(e)))
|
|
629
|
+
try:
|
|
630
|
+
if os.path.isfile(lock_file):
|
|
631
|
+
os.remove(lock_file)
|
|
632
|
+
except OSError:
|
|
633
|
+
logger.warning("The lock file %s has been removed.", lock_file)
|
|
616
634
|
|
|
617
635
|
def _save_model_params(self, cur_num, unit, backbone):
|
|
618
636
|
"""Save model params."""
|
|
@@ -629,12 +647,27 @@ class SummaryCollector(Callback):
|
|
|
629
647
|
|
|
630
648
|
ckpt_file_name = f"{type(backbone).__name__}_{cur_num}_{unit}.ckpt"
|
|
631
649
|
file_path = os.path.join(self._ckpt_dir, ckpt_file_name)
|
|
650
|
+
self._model_params_file_map[str(cur_num)] = file_path
|
|
651
|
+
if platform.system() != "Linux":
|
|
652
|
+
try:
|
|
653
|
+
save_checkpoint(param_list, file_path)
|
|
654
|
+
except OSError as e:
|
|
655
|
+
logger.error(str(e))
|
|
656
|
+
return
|
|
657
|
+
|
|
658
|
+
lock_file = f"{file_path}.lock"
|
|
632
659
|
try:
|
|
633
|
-
|
|
660
|
+
with os.fdopen(os.open(lock_file, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IWUSR), 'w') as f:
|
|
661
|
+
fcntl.flock(f.fileno(), fcntl.LOCK_EX)
|
|
662
|
+
if not os.path.isfile(file_path):
|
|
663
|
+
save_checkpoint(param_list, file_path)
|
|
634
664
|
except OSError as e:
|
|
635
665
|
logger.error(str(e))
|
|
636
|
-
|
|
637
|
-
|
|
666
|
+
try:
|
|
667
|
+
if os.path.isfile(lock_file):
|
|
668
|
+
os.remove(lock_file)
|
|
669
|
+
except OSError:
|
|
670
|
+
logger.warning("The lock file %s has been removed.", lock_file)
|
|
638
671
|
|
|
639
672
|
def _save_model_params_for_landscape(self, cb_params):
|
|
640
673
|
"""Save model params for landscape."""
|
|
@@ -28,7 +28,8 @@ class TimeMonitor(Callback):
|
|
|
28
28
|
Args:
|
|
29
29
|
data_size (int): How many steps are the intervals between print information each time.
|
|
30
30
|
if the program get `batch_num` during training, `data_size` will be set to `batch_num`,
|
|
31
|
-
otherwise `data_size` will be used.
|
|
31
|
+
otherwise `data_size` will be used. If the program does not get `batch_num` during training,
|
|
32
|
+
meanwhile `data_size` does not set, the program will report an error. Default: ``None`` .
|
|
32
33
|
|
|
33
34
|
data_time (bool): Whether to show the average time of fetching data in Host.
|
|
34
35
|
Note that data fetch and network compute are processed sequentially in non dataset sink mode, while
|