mindspore 2.4.10__cp311-cp311-win_amd64.whl → 2.6.0rc1__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
- mindspore/Newtonsoft.Json.dll +0 -0
- mindspore/__init__.py +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 +46 -197
- mindspore/_extends/parse/resources.py +1 -5
- mindspore/_extends/parse/standard_method.py +217 -98
- 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 +435 -371
- 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 +2 -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 +951 -1992
- 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 +314 -566
- 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 +182 -116
- 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 +211 -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 +157 -117
- 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 +796 -759
- 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 +921 -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 +1370 -189
- 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 +22 -17
- 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 +17 -13
- mindspore/nn/optim/adamax.py +8 -7
- mindspore/nn/optim/adasum.py +5 -5
- mindspore/nn/optim/asgd.py +1 -1
- mindspore/nn/optim/ftrl.py +11 -9
- mindspore/nn/optim/lamb.py +1 -1
- mindspore/nn/optim/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 +365 -363
- 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 +27 -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 +236 -46
- mindspore/ops/auto_generate/gen_extend_func.py +764 -124
- mindspore/ops/auto_generate/gen_ops_def.py +4018 -2264
- mindspore/ops/auto_generate/gen_ops_prim.py +15463 -5037
- 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 +4501 -3802
- mindspore/ops/function/nn_func.py +1726 -620
- mindspore/ops/function/other_func.py +159 -1
- mindspore/ops/function/parameter_func.py +18 -84
- mindspore/ops/function/random_func.py +440 -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 +24 -17
- mindspore/ops/functional.py +22 -7
- mindspore/ops/functional_overload.py +1440 -0
- mindspore/ops/op_info_register.py +32 -244
- mindspore/ops/operations/__init__.py +13 -7
- mindspore/ops/operations/_custom_ops_utils.py +247 -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 +232 -78
- mindspore/ops/operations/debug_ops.py +153 -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 +210 -498
- 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 +1888 -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 +299 -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 +152 -34
- mindspore/parallel/_cell_wrapper.py +130 -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 +698 -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 +259 -0
- mindspore/parallel/nn/__init__.py +25 -0
- mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
- mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
- mindspore/parallel/parameter_broadcast.py +25 -14
- mindspore/parallel/shard.py +137 -58
- mindspore/parallel/transform_safetensors.py +363 -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 +106 -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 +409 -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 +88 -25
- 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} +204 -107
- 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 +184 -113
- 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 +550 -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.0rc1.dist-info}/METADATA +3 -3
- {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/RECORD +587 -418
- {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.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.0rc1.dist-info}/WHEEL +0 -0
- {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/top_level.txt +0 -0
|
@@ -15,19 +15,24 @@
|
|
|
15
15
|
"""Built-in iterators"""
|
|
16
16
|
from abc import abstractmethod
|
|
17
17
|
from copy import deepcopy
|
|
18
|
+
import atexit
|
|
18
19
|
import json
|
|
19
20
|
import os
|
|
21
|
+
import queue
|
|
20
22
|
import signal
|
|
23
|
+
import threading
|
|
21
24
|
import weakref
|
|
22
25
|
from functools import wraps
|
|
23
26
|
import numpy as np
|
|
24
27
|
|
|
25
28
|
import mindspore._c_dataengine as cde
|
|
26
29
|
from mindspore.common.tensor import Tensor, np_types
|
|
30
|
+
import mindspore.dataset as ds
|
|
27
31
|
import mindspore.dataset.engine.offload as offload
|
|
28
32
|
from mindspore.dataset.core.config import get_debug_mode
|
|
29
33
|
|
|
30
34
|
from mindspore import log as logger
|
|
35
|
+
from ..core.py_util_helpers import ExceptionHandler
|
|
31
36
|
|
|
32
37
|
_ITERATOR_CLEANUP = False
|
|
33
38
|
|
|
@@ -87,6 +92,126 @@ def _cleanup_the_iterators_if_created(method):
|
|
|
87
92
|
return wrapper
|
|
88
93
|
|
|
89
94
|
|
|
95
|
+
def __convert_python(obj, to_numpy, _do_copy):
|
|
96
|
+
"""
|
|
97
|
+
Attempts to recursively convert a python object to Numpy array(s) or tensor(s).
|
|
98
|
+
|
|
99
|
+
Args:
|
|
100
|
+
obj (any): the python object to be converted
|
|
101
|
+
to_numpy (bool): If True, convert primitive types to NumPy array. If False, convert to Tensor.
|
|
102
|
+
(return the obj if type isn't supported)
|
|
103
|
+
"""
|
|
104
|
+
if isinstance(obj, (int, float, bool, str, np.ndarray, np.str_, np.bytes_, *np_types)):
|
|
105
|
+
# error out if array is of unsupported type
|
|
106
|
+
if isinstance(obj, np.ndarray) and obj.dtype not in np_types and obj.dtype.kind not in ('U', 'S'):
|
|
107
|
+
new_line = '\n'
|
|
108
|
+
raise TypeError("A NumPy array of unsupported type detected: {}."
|
|
109
|
+
"\nSupported types are: {}.".format(
|
|
110
|
+
obj.dtype, new_line.join(map(str, (*np_types, np.str_, np.bytes_)))))
|
|
111
|
+
if to_numpy:
|
|
112
|
+
return np.array(obj, copy=_do_copy)
|
|
113
|
+
if _do_copy:
|
|
114
|
+
return Tensor(np.asarray(obj))
|
|
115
|
+
return Tensor.from_numpy(np.asarray(obj))
|
|
116
|
+
if isinstance(obj, dict):
|
|
117
|
+
return {key: __convert_python(val, to_numpy, _do_copy) for key, val in obj.items()}
|
|
118
|
+
if isinstance(obj, tuple):
|
|
119
|
+
return tuple([__convert_python(item, to_numpy, _do_copy) for item in obj])
|
|
120
|
+
if isinstance(obj, list):
|
|
121
|
+
return [__convert_python(item, to_numpy, _do_copy) for item in obj]
|
|
122
|
+
# if we can't convert it to Tensor, return the object as is
|
|
123
|
+
if _do_copy:
|
|
124
|
+
return deepcopy(obj)
|
|
125
|
+
return obj
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def _transform_md_to_output(t, _output_numpy, _do_copy):
|
|
129
|
+
if _output_numpy:
|
|
130
|
+
if t.type().is_python():
|
|
131
|
+
return __convert_python(t.as_python(), True, _do_copy)
|
|
132
|
+
return t.as_array()
|
|
133
|
+
return _transform_md_to_tensor(t, _do_copy)
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def _transform_md_to_tensor(t, _do_copy):
|
|
137
|
+
if t.type().is_python():
|
|
138
|
+
return __convert_python(t.as_python(), False, _do_copy)
|
|
139
|
+
array = t.as_array()
|
|
140
|
+
if _do_copy:
|
|
141
|
+
return Tensor(array)
|
|
142
|
+
return Tensor.from_numpy(array)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def _transform_tensor_to_output(t, _output_numpy):
|
|
146
|
+
if _output_numpy:
|
|
147
|
+
return t.asnumpy()
|
|
148
|
+
return t
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
def _convert_tuple_data(queue_in, queue_out, offload_model, _output_numpy, _do_copy, thread_event):
|
|
152
|
+
"""
|
|
153
|
+
Convert data on tuple iterator.
|
|
154
|
+
"""
|
|
155
|
+
while True:
|
|
156
|
+
try:
|
|
157
|
+
if thread_event.is_set():
|
|
158
|
+
return
|
|
159
|
+
item = queue_in.get(timeout=1)
|
|
160
|
+
if offload_model is None:
|
|
161
|
+
queue_out.put([_transform_md_to_output(t, _output_numpy, _do_copy) for t in item])
|
|
162
|
+
if not item:
|
|
163
|
+
break
|
|
164
|
+
continue
|
|
165
|
+
|
|
166
|
+
data = [_transform_md_to_tensor(t, _do_copy) for t in item]
|
|
167
|
+
if data:
|
|
168
|
+
data = offload.apply_offload_iterators(data, offload_model)
|
|
169
|
+
queue_out.put([_transform_tensor_to_output(t, _output_numpy) for t in data])
|
|
170
|
+
if not item:
|
|
171
|
+
break
|
|
172
|
+
except queue.Empty:
|
|
173
|
+
continue
|
|
174
|
+
except Exception: # pylint: disable=broad-except
|
|
175
|
+
result = ExceptionHandler()
|
|
176
|
+
queue_out.put(result)
|
|
177
|
+
break
|
|
178
|
+
thread_event.set()
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def _convert_dict_data(queue_in, queue_out, offload_model, _output_numpy, _do_copy, thread_event, col_names):
|
|
182
|
+
"""
|
|
183
|
+
Convert data on dict iterator.
|
|
184
|
+
"""
|
|
185
|
+
while True:
|
|
186
|
+
try:
|
|
187
|
+
if thread_event.is_set():
|
|
188
|
+
return
|
|
189
|
+
item = queue_in.get(timeout=1)
|
|
190
|
+
if offload_model is None:
|
|
191
|
+
queue_out.put({k: _transform_md_to_output(t, _output_numpy, _do_copy) for k, t in item})
|
|
192
|
+
if not item:
|
|
193
|
+
break
|
|
194
|
+
continue
|
|
195
|
+
data = [_transform_md_to_tensor(t, _do_copy) for t in item]
|
|
196
|
+
if data:
|
|
197
|
+
data = offload.apply_offload_iterators(data, offload_model)
|
|
198
|
+
# Create output dictionary after offload
|
|
199
|
+
out_data = {}
|
|
200
|
+
for i, col in enumerate(col_names):
|
|
201
|
+
out_data[col] = _transform_tensor_to_output(data[i], _output_numpy)
|
|
202
|
+
data = out_data
|
|
203
|
+
if not item:
|
|
204
|
+
break
|
|
205
|
+
queue_out.put(data)
|
|
206
|
+
except queue.Empty:
|
|
207
|
+
continue
|
|
208
|
+
except Exception: # pylint: disable=broad-except
|
|
209
|
+
result = ExceptionHandler()
|
|
210
|
+
queue_out.put(result)
|
|
211
|
+
break
|
|
212
|
+
thread_event.set()
|
|
213
|
+
|
|
214
|
+
|
|
90
215
|
class Iterator:
|
|
91
216
|
"""
|
|
92
217
|
General Iterator over a dataset.
|
|
@@ -112,6 +237,8 @@ class Iterator:
|
|
|
112
237
|
init_step = dataset.get_init_step()
|
|
113
238
|
dataset_size = dataset.get_dataset_size()
|
|
114
239
|
if get_debug_mode():
|
|
240
|
+
if dataset.get_init_step() != 0:
|
|
241
|
+
logger.warning("Dataset init step will be ignored in debug mode.")
|
|
115
242
|
consumer = cde.PythonPullBasedIteratorConsumer(num_epochs)
|
|
116
243
|
consumer.Init(self.ir_tree)
|
|
117
244
|
else:
|
|
@@ -134,10 +261,35 @@ class Iterator:
|
|
|
134
261
|
|
|
135
262
|
ITERATORS_LIST.append(weakref.ref(self))
|
|
136
263
|
_unset_iterator_cleanup()
|
|
264
|
+
self.parallel_convert = ds.config.get_iterator_mode()["parallel_convert"]
|
|
265
|
+
if self.parallel_convert:
|
|
266
|
+
# The variable "tick" ensures that the thread is only started on the first iteration
|
|
267
|
+
self.tick = True
|
|
268
|
+
self.thread_convert = None
|
|
269
|
+
self.queue_in = queue.Queue(3)
|
|
270
|
+
self.queue_out = queue.Queue(3)
|
|
271
|
+
self.thread_event = None
|
|
272
|
+
self.enable_get_next_data = True
|
|
273
|
+
atexit.register(self.__class__.terminate, weakref.ref(self))
|
|
137
274
|
|
|
138
275
|
def __iter__(self):
|
|
139
276
|
return self
|
|
140
277
|
|
|
278
|
+
@staticmethod
|
|
279
|
+
def terminate(ref):
|
|
280
|
+
"""
|
|
281
|
+
Interrupt the convert subthread
|
|
282
|
+
"""
|
|
283
|
+
self = ref()
|
|
284
|
+
if self is None:
|
|
285
|
+
return
|
|
286
|
+
if hasattr(self, "parallel_convert"):
|
|
287
|
+
if self.parallel_convert:
|
|
288
|
+
if self.thread_event is not None and self.thread_convert is not None and \
|
|
289
|
+
not self.thread_event.is_set():
|
|
290
|
+
self.thread_event.set()
|
|
291
|
+
self.thread_convert.join()
|
|
292
|
+
|
|
141
293
|
def stop(self):
|
|
142
294
|
"""
|
|
143
295
|
Manually terminate Python iterator instead of relying on out of scope destruction.
|
|
@@ -165,18 +317,26 @@ class Iterator:
|
|
|
165
317
|
self.stop()
|
|
166
318
|
|
|
167
319
|
def __del__(self):
|
|
320
|
+
if hasattr(self, "parallel_convert"):
|
|
321
|
+
if self.parallel_convert:
|
|
322
|
+
if self.thread_event is not None and self.thread_convert is not None and \
|
|
323
|
+
not self.thread_event.is_set():
|
|
324
|
+
self.thread_event.set()
|
|
325
|
+
self.thread_convert.join()
|
|
168
326
|
self.release()
|
|
169
327
|
|
|
170
328
|
@abstractmethod
|
|
171
329
|
def _get_next(self):
|
|
172
330
|
raise RuntimeError("Calling base class Iterator's get_next is invalid.")
|
|
173
331
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
"It might because Iterator stop() had been called, or C++ pipeline crashed silently.")
|
|
178
|
-
raise RuntimeError("Iterator does not have a running C++ pipeline.")
|
|
332
|
+
@abstractmethod
|
|
333
|
+
def _parallel_transformation_iteration(self):
|
|
334
|
+
raise RuntimeError("Calling base class Iterator's parallel_transformation_iteration is invalid.")
|
|
179
335
|
|
|
336
|
+
def serial_conversion_iteration(self):
|
|
337
|
+
"""
|
|
338
|
+
Fetch data to serial conversion
|
|
339
|
+
"""
|
|
180
340
|
# Note offload is applied inside _get_next() if applicable since get_next converts to output format
|
|
181
341
|
data = self._get_next()
|
|
182
342
|
if not data:
|
|
@@ -189,6 +349,18 @@ class Iterator:
|
|
|
189
349
|
|
|
190
350
|
return data
|
|
191
351
|
|
|
352
|
+
def __next__(self):
|
|
353
|
+
if not self._runtime_context:
|
|
354
|
+
logger.warning("Iterator does not have a running C++ pipeline." +
|
|
355
|
+
"It might because Iterator stop() had been called, or C++ pipeline crashed silently.")
|
|
356
|
+
raise RuntimeError("Iterator does not have a running C++ pipeline.")
|
|
357
|
+
|
|
358
|
+
from mindspore.profiler import mstx
|
|
359
|
+
range_id = mstx.range_start('dataloader', None)
|
|
360
|
+
out = self._parallel_transformation_iteration() if self.parallel_convert else self.serial_conversion_iteration()
|
|
361
|
+
mstx.range_end(range_id)
|
|
362
|
+
return out
|
|
363
|
+
|
|
192
364
|
def __deepcopy__(self, memo):
|
|
193
365
|
return self
|
|
194
366
|
|
|
@@ -218,58 +390,20 @@ class Iterator:
|
|
|
218
390
|
dataset_size (int): The number of steps that one epoch has.
|
|
219
391
|
"""
|
|
220
392
|
self._iterator.Reset(step, dataset_size)
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
raise TypeError("A NumPy array of unsupported type detected: {}."
|
|
236
|
-
"\nSupported types are: {}.".format(
|
|
237
|
-
obj.dtype, new_line.join(map(str, (*np_types, np.str_, np.bytes_)))))
|
|
238
|
-
if to_numpy:
|
|
239
|
-
return np.array(obj, copy=self._do_copy)
|
|
240
|
-
if self._do_copy:
|
|
241
|
-
return Tensor(np.asarray(obj))
|
|
242
|
-
return Tensor.from_numpy(np.asarray(obj))
|
|
243
|
-
if isinstance(obj, dict):
|
|
244
|
-
return {key: self.__convert_python(val, to_numpy) for key, val in obj.items()}
|
|
245
|
-
if isinstance(obj, tuple):
|
|
246
|
-
return tuple([self.__convert_python(item, to_numpy) for item in obj])
|
|
247
|
-
if isinstance(obj, list):
|
|
248
|
-
return [self.__convert_python(item, to_numpy) for item in obj]
|
|
249
|
-
# if we can't convert it to Tensor, return the object as is
|
|
250
|
-
if self._do_copy:
|
|
251
|
-
return deepcopy(obj)
|
|
252
|
-
return obj
|
|
253
|
-
|
|
254
|
-
def _transform_md_to_output(self, t):
|
|
255
|
-
if self._output_numpy:
|
|
256
|
-
if t.type().is_python():
|
|
257
|
-
return self.__convert_python(t.as_python(), True)
|
|
258
|
-
return t.as_array()
|
|
259
|
-
return self._transform_md_to_tensor(t)
|
|
260
|
-
|
|
261
|
-
def _transform_md_to_tensor(self, t):
|
|
262
|
-
if t.type().is_python():
|
|
263
|
-
return self.__convert_python(t.as_python(), False)
|
|
264
|
-
array = t.as_array()
|
|
265
|
-
if self._do_copy:
|
|
266
|
-
return Tensor(array)
|
|
267
|
-
return Tensor.from_numpy(array)
|
|
268
|
-
|
|
269
|
-
def _transform_tensor_to_output(self, t):
|
|
270
|
-
if self._output_numpy:
|
|
271
|
-
return t.asnumpy()
|
|
272
|
-
return t
|
|
393
|
+
if self.parallel_convert:
|
|
394
|
+
while not self.queue_in.empty():
|
|
395
|
+
self.queue_in.get()
|
|
396
|
+
while not self.queue_out.empty():
|
|
397
|
+
self.queue_out.get()
|
|
398
|
+
if self.thread_event is not None:
|
|
399
|
+
if self.thread_event.is_set():
|
|
400
|
+
self.thread_event.clear()
|
|
401
|
+
self.tick = True
|
|
402
|
+
else:
|
|
403
|
+
self.thread_event.set()
|
|
404
|
+
self.thread_convert.join()
|
|
405
|
+
self.tick = True
|
|
406
|
+
self.enable_get_next_data = True
|
|
273
407
|
|
|
274
408
|
|
|
275
409
|
class DictIterator(Iterator):
|
|
@@ -286,14 +420,15 @@ class DictIterator(Iterator):
|
|
|
286
420
|
"""
|
|
287
421
|
try:
|
|
288
422
|
if self.offload_model is None:
|
|
289
|
-
return {k:
|
|
290
|
-
|
|
423
|
+
return {k: _transform_md_to_output(t, self._output_numpy, self._do_copy) for k, t in
|
|
424
|
+
self._iterator.GetNextAsMap().items()}
|
|
425
|
+
data = [_transform_md_to_tensor(t, self._do_copy) for t in self._iterator.GetNextAsList()]
|
|
291
426
|
if data:
|
|
292
427
|
data = offload.apply_offload_iterators(data, self.offload_model)
|
|
293
428
|
# Create output dictionary after offload
|
|
294
429
|
out_data = {}
|
|
295
430
|
for i, col in enumerate(self.get_col_names()):
|
|
296
|
-
out_data[col] =
|
|
431
|
+
out_data[col] = _transform_tensor_to_output(data[i], self._output_numpy)
|
|
297
432
|
data = out_data
|
|
298
433
|
return data
|
|
299
434
|
|
|
@@ -305,6 +440,53 @@ class DictIterator(Iterator):
|
|
|
305
440
|
os.kill(os.getpid(), signal.SIGKILL)
|
|
306
441
|
raise err
|
|
307
442
|
|
|
443
|
+
def _parallel_transformation_iteration(self):
|
|
444
|
+
"""
|
|
445
|
+
Launch child thread to convert tensor.
|
|
446
|
+
"""
|
|
447
|
+
if self.tick:
|
|
448
|
+
self.thread_event = threading.Event()
|
|
449
|
+
self.thread_convert = threading.Thread(target=_convert_dict_data,
|
|
450
|
+
name="Convert_dict_data",
|
|
451
|
+
args=(self.queue_in, self.queue_out, self.offload_model,
|
|
452
|
+
self._output_numpy, self._do_copy, self.thread_event,
|
|
453
|
+
self.get_col_names()),
|
|
454
|
+
daemon=True)
|
|
455
|
+
self.thread_convert.start()
|
|
456
|
+
self.tick = False
|
|
457
|
+
while True:
|
|
458
|
+
if self.thread_event.is_set() and self.queue_out.qsize() == 0:
|
|
459
|
+
self.tick = True
|
|
460
|
+
self.enable_get_next_data = True
|
|
461
|
+
raise StopIteration
|
|
462
|
+
try:
|
|
463
|
+
if not self.queue_in.full() and self.enable_get_next_data:
|
|
464
|
+
if self.offload_model is None:
|
|
465
|
+
item = self._iterator.GetNextAsMap().items()
|
|
466
|
+
if not item:
|
|
467
|
+
self.enable_get_next_data = False
|
|
468
|
+
self.queue_in.put(item)
|
|
469
|
+
else:
|
|
470
|
+
item = self._iterator.GetNextAsList()
|
|
471
|
+
if not item:
|
|
472
|
+
self.enable_get_next_data = False
|
|
473
|
+
self.queue_in.put(item)
|
|
474
|
+
data = self.queue_out.get(timeout=0.00001)
|
|
475
|
+
if not data:
|
|
476
|
+
continue
|
|
477
|
+
if isinstance(data, ExceptionHandler):
|
|
478
|
+
if data.except_msg.find("Out of memory") >= 0 or data.except_msg.find("MemoryError") >= 0:
|
|
479
|
+
logger.critical("Memory error occurred, process will exit.")
|
|
480
|
+
os.kill(os.getpid(), signal.SIGKILL)
|
|
481
|
+
data.reraise()
|
|
482
|
+
return data
|
|
483
|
+
except queue.Empty:
|
|
484
|
+
continue
|
|
485
|
+
except Exception as err_info:
|
|
486
|
+
self.thread_event.set()
|
|
487
|
+
self.thread_convert.join()
|
|
488
|
+
raise err_info
|
|
489
|
+
|
|
308
490
|
|
|
309
491
|
class TupleIterator(Iterator):
|
|
310
492
|
"""
|
|
@@ -327,11 +509,49 @@ class TupleIterator(Iterator):
|
|
|
327
509
|
"""
|
|
328
510
|
|
|
329
511
|
if self.offload_model is None:
|
|
330
|
-
return [
|
|
331
|
-
|
|
512
|
+
return [_transform_md_to_output(t, self._output_numpy, self._do_copy) for t in
|
|
513
|
+
self._iterator.GetNextAsList()]
|
|
514
|
+
data = [_transform_md_to_tensor(t, self._do_copy) for t in self._iterator.GetNextAsList()]
|
|
332
515
|
if data:
|
|
333
516
|
data = offload.apply_offload_iterators(data, self.offload_model)
|
|
334
|
-
return [
|
|
517
|
+
return [_transform_tensor_to_output(t, self._output_numpy) for t in data]
|
|
518
|
+
|
|
519
|
+
def _parallel_transformation_iteration(self):
|
|
520
|
+
"""
|
|
521
|
+
Launch child thread to convert tensor.
|
|
522
|
+
"""
|
|
523
|
+
if self.tick:
|
|
524
|
+
self.thread_event = threading.Event()
|
|
525
|
+
self.thread_convert = threading.Thread(target=_convert_tuple_data,
|
|
526
|
+
name="Convert_tuple_data",
|
|
527
|
+
args=(self.queue_in, self.queue_out, self.offload_model,
|
|
528
|
+
self._output_numpy, self._do_copy, self.thread_event),
|
|
529
|
+
daemon=True)
|
|
530
|
+
self.thread_convert.start()
|
|
531
|
+
self.tick = False
|
|
532
|
+
while True:
|
|
533
|
+
if self.thread_event.is_set() and self.queue_out.qsize() == 0:
|
|
534
|
+
self.tick = True
|
|
535
|
+
self.enable_get_next_data = True
|
|
536
|
+
raise StopIteration
|
|
537
|
+
try:
|
|
538
|
+
if not self.queue_in.full() and self.enable_get_next_data:
|
|
539
|
+
item = self._iterator.GetNextAsList()
|
|
540
|
+
if not item:
|
|
541
|
+
self.enable_get_next_data = False
|
|
542
|
+
self.queue_in.put(item)
|
|
543
|
+
data = self.queue_out.get(timeout=0.00001)
|
|
544
|
+
if not data:
|
|
545
|
+
continue
|
|
546
|
+
if isinstance(data, ExceptionHandler):
|
|
547
|
+
data.reraise()
|
|
548
|
+
return data
|
|
549
|
+
except queue.Empty:
|
|
550
|
+
continue
|
|
551
|
+
except Exception as err_info:
|
|
552
|
+
self.thread_event.set()
|
|
553
|
+
self.thread_convert.join()
|
|
554
|
+
raise err_info
|
|
335
555
|
|
|
336
556
|
|
|
337
557
|
class DummyIterator:
|
|
@@ -42,6 +42,14 @@ obsClient = ObsClient(
|
|
|
42
42
|
def get_used_disk_per():
|
|
43
43
|
""" Get the disk usage of working directory."""
|
|
44
44
|
|
|
45
|
+
if os.path.exists(config.WORKING_PATH) and not os.access(config.WORKING_PATH, os.R_OK | os.W_OK | os.X_OK):
|
|
46
|
+
err_msg =\
|
|
47
|
+
"Permission denied:'{}'. Suggestion: " \
|
|
48
|
+
"1) It is recommended to manually create the {} directory and add read/write permissions to it. " \
|
|
49
|
+
"2) If you can't create, we suggest you download MindRecord manually and "\
|
|
50
|
+
"read it using the MindDataset interface.".format(config.WORKING_PATH, config.WORKING_PATH)
|
|
51
|
+
raise RuntimeError(err_msg)
|
|
52
|
+
|
|
45
53
|
if not os.path.exists(config.WORKING_PATH):
|
|
46
54
|
try:
|
|
47
55
|
os.makedirs(config.WORKING_PATH)
|
|
@@ -24,6 +24,7 @@ import platform
|
|
|
24
24
|
import queue
|
|
25
25
|
import types
|
|
26
26
|
|
|
27
|
+
import dill
|
|
27
28
|
import numpy as np
|
|
28
29
|
|
|
29
30
|
from mindspore import log as logger
|
|
@@ -71,6 +72,9 @@ class _SharedQueue(multiprocessing.queues.Queue):
|
|
|
71
72
|
# reading a buffer and also have a full queue of buffers in the meta-data queue
|
|
72
73
|
self.num_seg = size + 2
|
|
73
74
|
|
|
75
|
+
self.dynamic_shm = True
|
|
76
|
+
self.fd_list = []
|
|
77
|
+
self.seg_size = 0
|
|
74
78
|
if platform.system().lower() != 'windows' and max_rowsize == -1:
|
|
75
79
|
self.dynamic_shm = True
|
|
76
80
|
self.fd_list = []
|
|
@@ -89,6 +93,42 @@ class _SharedQueue(multiprocessing.queues.Queue):
|
|
|
89
93
|
else:
|
|
90
94
|
self.shm_list.append(shared_array)
|
|
91
95
|
|
|
96
|
+
def __getstate__(self):
|
|
97
|
+
copy_out = dill.dumps(self.copy_out)
|
|
98
|
+
min_shared_mem = dill.dumps(self.min_shared_mem)
|
|
99
|
+
data_immediate = dill.dumps(self.data_immediate)
|
|
100
|
+
data_shared = dill.dumps(self.data_shared)
|
|
101
|
+
# cannot dill 'mmap.mmap' object : self.count
|
|
102
|
+
print_error = dill.dumps(self.print_error)
|
|
103
|
+
shm_list = dill.dumps(self.shm_list)
|
|
104
|
+
seg_pos = dill.dumps(self.seg_pos)
|
|
105
|
+
num_seg = dill.dumps(self.num_seg)
|
|
106
|
+
dynamic_shm = dill.dumps(self.dynamic_shm)
|
|
107
|
+
fd_list = dill.dumps(self.fd_list)
|
|
108
|
+
seg_size = dill.dumps(self.seg_size)
|
|
109
|
+
# multiprocessing attribute
|
|
110
|
+
_closed = dill.dumps(self._closed)
|
|
111
|
+
super_variable = super().__getstate__()
|
|
112
|
+
return (copy_out, min_shared_mem, data_immediate, data_shared, print_error, shm_list,
|
|
113
|
+
seg_pos, num_seg, dynamic_shm, fd_list, seg_size, _closed, super_variable)
|
|
114
|
+
|
|
115
|
+
def __setstate__(self, state):
|
|
116
|
+
copy_out, min_shared_mem, data_immediate, data_shared, print_error, shm_list, \
|
|
117
|
+
seg_pos, num_seg, dynamic_shm, fd_list, seg_size, _closed, super_variable = state
|
|
118
|
+
self.copy_out = dill.loads(copy_out)
|
|
119
|
+
self.min_shared_mem = dill.loads(min_shared_mem)
|
|
120
|
+
self.data_immediate = dill.loads(data_immediate)
|
|
121
|
+
self.data_shared = dill.loads(data_shared)
|
|
122
|
+
self.print_error = dill.loads(print_error)
|
|
123
|
+
self.shm_list = dill.loads(shm_list)
|
|
124
|
+
self.seg_pos = dill.loads(seg_pos)
|
|
125
|
+
self.num_seg = dill.loads(num_seg)
|
|
126
|
+
self.dynamic_shm = dill.loads(dynamic_shm)
|
|
127
|
+
self.fd_list = dill.loads(fd_list)
|
|
128
|
+
self.seg_size = dill.loads(seg_size)
|
|
129
|
+
self._closed = dill.loads(_closed)
|
|
130
|
+
super().__setstate__(super_variable)
|
|
131
|
+
|
|
92
132
|
def put_until(self, data, timeout=None, exit_signal=None):
|
|
93
133
|
"""Put data into the queue. Block until timeout is reached or exit_signal is set."""
|
|
94
134
|
while True:
|