mindspore 2.4.1__cp39-cp39-win_amd64.whl → 2.5.0__cp39-cp39-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 +8 -3
- mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
- mindspore/_checkparam.py +0 -5
- mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
- mindspore/_extends/parse/compile_config.py +64 -0
- mindspore/_extends/parse/deprecated/__init__.py +0 -0
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +375 -0
- mindspore/_extends/parse/parser.py +23 -5
- mindspore/_extends/parse/standard_method.py +123 -27
- mindspore/_extends/pijit/pijit_func_white_list.py +1 -1
- mindspore/amp.py +7 -1
- 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/boost_cell_wrapper.py +136 -41
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +3 -1
- mindspore/common/_register_for_tensor.py +0 -1
- mindspore/common/_stub_tensor.py +25 -4
- mindspore/common/_tensor_cpp_method.py +17 -0
- mindspore/common/_tensor_docs.py +6132 -0
- mindspore/common/api.py +99 -25
- mindspore/common/dtype.py +34 -34
- mindspore/common/dump.py +2 -1
- mindspore/common/file_system.py +8 -1
- mindspore/common/generator.py +2 -0
- mindspore/common/hook_handle.py +3 -1
- mindspore/common/initializer.py +3 -4
- mindspore/common/lazy_inline.py +8 -2
- mindspore/common/mindir_util.py +10 -2
- mindspore/common/parameter.py +30 -27
- mindspore/common/tensor.py +713 -1337
- mindspore/communication/__init__.py +1 -1
- mindspore/communication/_comm_helper.py +10 -0
- mindspore/communication/comm_func.py +215 -173
- mindspore/communication/management.py +23 -20
- mindspore/context.py +292 -193
- mindspore/dataset/__init__.py +23 -19
- mindspore/dataset/callback/ds_callback.py +2 -1
- mindspore/dataset/core/config.py +84 -3
- mindspore/dataset/engine/cache_admin.py +3 -3
- mindspore/dataset/engine/cache_client.py +5 -4
- mindspore/dataset/engine/datasets.py +192 -149
- mindspore/dataset/engine/datasets_audio.py +14 -0
- mindspore/dataset/engine/datasets_standard_format.py +28 -11
- mindspore/dataset/engine/datasets_text.py +38 -1
- mindspore/dataset/engine/datasets_user_defined.py +125 -65
- mindspore/dataset/engine/datasets_vision.py +81 -8
- mindspore/dataset/engine/iterators.py +281 -63
- mindspore/dataset/engine/obs/util.py +8 -0
- mindspore/dataset/engine/queue.py +40 -0
- mindspore/dataset/engine/samplers.py +26 -2
- mindspore/dataset/engine/serializer_deserializer.py +1 -1
- mindspore/dataset/engine/validators.py +43 -11
- mindspore/dataset/transforms/py_transforms_util.py +17 -0
- mindspore/dataset/transforms/transforms.py +29 -12
- 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 +94 -0
- mindspore/device_context/ascend/op_precision.py +193 -0
- mindspore/device_context/ascend/op_tuning.py +127 -0
- mindspore/device_context/cpu/__init__.py +25 -0
- 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 +134 -0
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/llm_boost/__init__.py +3 -2
- 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 +239 -64
- mindspore/experimental/llm_boost/atb/llama_boost.py +52 -30
- mindspore/experimental/llm_boost/atb/qwen_boost.py +47 -24
- mindspore/experimental/llm_boost/register.py +1 -0
- mindspore/experimental/optim/adadelta.py +26 -22
- mindspore/experimental/optim/adam.py +3 -0
- mindspore/experimental/optim/lr_scheduler.py +33 -24
- mindspore/experimental/optim/radam.py +33 -30
- mindspore/hal/device.py +28 -0
- mindspore/hal/event.py +17 -0
- mindspore/hal/memory.py +94 -3
- mindspore/hal/stream.py +91 -6
- mindspore/include/api/context.h +1 -2
- mindspore/include/dataset/constants.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +12 -0
- mindspore/mindrecord/__init__.py +1 -1
- 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.dll +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_glog.dll +0 -0
- mindspore/mindspore_ops.dll +0 -0
- mindspore/mint/__init__.py +824 -218
- mindspore/mint/distributed/__init__.py +66 -4
- mindspore/mint/distributed/distributed.py +2594 -44
- mindspore/mint/linalg/__init__.py +6 -0
- mindspore/mint/nn/__init__.py +473 -14
- mindspore/mint/nn/functional.py +486 -11
- mindspore/mint/nn/layer/__init__.py +17 -4
- mindspore/mint/nn/layer/_functions.py +330 -0
- mindspore/mint/nn/layer/activation.py +169 -1
- mindspore/mint/nn/layer/basic.py +123 -0
- mindspore/mint/nn/layer/conv.py +727 -0
- mindspore/mint/nn/layer/normalization.py +215 -19
- mindspore/mint/nn/layer/padding.py +797 -0
- mindspore/mint/nn/layer/pooling.py +170 -0
- mindspore/mint/optim/__init__.py +2 -1
- mindspore/mint/optim/adam.py +223 -0
- mindspore/mint/optim/adamw.py +26 -19
- 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 +2 -0
- mindspore/nn/cell.py +142 -21
- mindspore/nn/dynamic_lr.py +2 -1
- mindspore/nn/layer/activation.py +6 -6
- mindspore/nn/layer/basic.py +35 -25
- mindspore/nn/layer/channel_shuffle.py +3 -3
- mindspore/nn/layer/conv.py +3 -0
- mindspore/nn/layer/embedding.py +3 -3
- mindspore/nn/layer/normalization.py +8 -7
- mindspore/nn/layer/padding.py +4 -3
- mindspore/nn/layer/pooling.py +55 -23
- 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 +48 -26
- mindspore/nn/learning_rate_schedule.py +5 -3
- mindspore/nn/loss/loss.py +31 -36
- mindspore/nn/optim/ada_grad.py +1 -0
- mindspore/nn/optim/adadelta.py +2 -2
- mindspore/nn/optim/adam.py +1 -1
- mindspore/nn/optim/lars.py +1 -4
- mindspore/nn/optim/optimizer.py +1 -1
- mindspore/nn/optim/rprop.py +2 -2
- mindspore/nn/optim/thor.py +2 -1
- mindspore/nn/utils/__init__.py +22 -0
- mindspore/nn/utils/init.py +73 -0
- mindspore/nn/wrap/cell_wrapper.py +4 -6
- mindspore/nn/wrap/loss_scale.py +3 -4
- mindspore/numpy/array_creations.py +60 -62
- mindspore/numpy/array_ops.py +148 -143
- mindspore/numpy/logic_ops.py +41 -42
- mindspore/numpy/math_ops.py +361 -359
- mindspore/numpy/utils.py +16 -16
- mindspore/numpy/utils_const.py +4 -4
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +2 -1
- mindspore/ops/_grad_experimental/grad_comm_ops.py +107 -8
- mindspore/ops/_grad_experimental/grad_debug_ops.py +6 -1
- mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
- mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
- mindspore/ops/_op_impl/cpu/__init__.py +1 -0
- mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
- mindspore/ops/_vmap/vmap_array_ops.py +20 -19
- mindspore/ops/_vmap/vmap_base.py +0 -2
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +19 -13
- mindspore/ops/_vmap/vmap_math_ops.py +11 -9
- mindspore/ops/_vmap/vmap_nn_ops.py +20 -34
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +149 -12
- mindspore/ops/auto_generate/gen_arg_handler.py +0 -61
- mindspore/ops/auto_generate/gen_extend_func.py +554 -60
- mindspore/ops/auto_generate/gen_ops_def.py +1621 -115
- mindspore/ops/auto_generate/gen_ops_prim.py +8027 -3411
- mindspore/ops/auto_generate/pyboost_inner_prim.py +183 -79
- mindspore/ops/composite/base.py +1 -1
- mindspore/ops/composite/multitype_ops/_compile_utils.py +229 -30
- mindspore/ops/composite/multitype_ops/pow_impl.py +0 -29
- mindspore/ops/function/__init__.py +12 -0
- mindspore/ops/function/array_func.py +561 -159
- mindspore/ops/function/clip_func.py +64 -0
- mindspore/ops/function/debug_func.py +28 -20
- mindspore/ops/function/image_func.py +1 -1
- mindspore/ops/function/linalg_func.py +5 -4
- mindspore/ops/function/math_func.py +1664 -294
- mindspore/ops/function/nn_func.py +988 -317
- mindspore/ops/function/parameter_func.py +3 -56
- mindspore/ops/function/random_func.py +243 -33
- mindspore/ops/function/sparse_unary_func.py +1 -1
- mindspore/ops/functional.py +18 -5
- mindspore/ops/functional_overload.py +897 -0
- mindspore/ops/operations/__init__.py +3 -2
- mindspore/ops/operations/_embedding_cache_ops.py +4 -4
- mindspore/ops/operations/_grad_ops.py +2 -34
- mindspore/ops/operations/_infer_ops.py +2 -1
- mindspore/ops/operations/_inner_ops.py +38 -8
- mindspore/ops/operations/array_ops.py +45 -303
- mindspore/ops/operations/comm_ops.py +23 -17
- mindspore/ops/operations/custom_ops.py +7 -49
- mindspore/ops/operations/debug_ops.py +42 -47
- mindspore/ops/operations/inner_ops.py +6 -4
- mindspore/ops/operations/linalg_ops.py +3 -2
- mindspore/ops/operations/manually_defined/ops_def.py +185 -104
- mindspore/ops/operations/math_ops.py +11 -216
- mindspore/ops/operations/nn_ops.py +153 -310
- mindspore/ops/primitive.py +23 -21
- mindspore/ops/tensor_method.py +1669 -0
- mindspore/ops_generate/aclnn_kernel_register_auto_cc_generator.py +110 -0
- mindspore/ops_generate/add_tensor_docs_generator.py +54 -0
- mindspore/ops_generate/arg_handler.py +0 -61
- mindspore/ops_generate/auto_grad_impl_cc_generator.py +135 -0
- mindspore/ops_generate/auto_grad_reg_cc_generator.py +93 -0
- mindspore/ops_generate/base_generator.py +11 -0
- mindspore/ops_generate/cpp_create_prim_instance_helper_generator.py +108 -0
- mindspore/ops_generate/functional_map_cpp_generator.py +491 -0
- mindspore/ops_generate/functional_overload_py_generator.py +110 -0
- mindspore/ops_generate/functions_cc_generator.py +233 -0
- mindspore/ops_generate/gen_aclnn_implement.py +110 -114
- mindspore/ops_generate/gen_constants.py +157 -3
- mindspore/ops_generate/gen_ops.py +245 -990
- mindspore/ops_generate/gen_pyboost_func.py +97 -998
- mindspore/ops_generate/gen_utils.py +119 -33
- mindspore/ops_generate/lite_ops_cpp_generator.py +155 -0
- mindspore/ops_generate/op_api_proto.py +206 -0
- mindspore/ops_generate/op_def_py_generator.py +131 -0
- mindspore/ops_generate/op_prim_py_generator.py +480 -0
- mindspore/ops_generate/op_proto.py +373 -108
- mindspore/ops_generate/op_template_parser.py +436 -0
- mindspore/ops_generate/ops_def_cc_generator.py +288 -0
- mindspore/ops_generate/ops_def_h_generator.py +74 -0
- mindspore/ops_generate/ops_name_h_generator.py +68 -0
- mindspore/ops_generate/ops_primitive_h_generator.py +81 -0
- mindspore/ops_generate/pyboost_functions_cpp_generator.py +370 -0
- mindspore/ops_generate/pyboost_functions_h_generator.py +68 -0
- mindspore/ops_generate/pyboost_functions_py_generator.py +148 -0
- mindspore/ops_generate/pyboost_grad_function_cpp_generator.py +154 -0
- mindspore/ops_generate/pyboost_inner_prim_generator.py +131 -0
- mindspore/ops_generate/pyboost_native_grad_functions_generator.py +268 -0
- mindspore/ops_generate/pyboost_op_cpp_code_generator.py +851 -0
- mindspore/ops_generate/pyboost_overload_functions_cpp_generator.py +344 -0
- mindspore/ops_generate/pyboost_utils.py +92 -33
- mindspore/ops_generate/template.py +294 -44
- mindspore/ops_generate/tensor_func_reg_cpp_generator.py +422 -0
- mindspore/parallel/__init__.py +3 -3
- mindspore/parallel/_auto_parallel_context.py +44 -34
- mindspore/parallel/_cell_wrapper.py +22 -3
- mindspore/parallel/_parallel_serialization.py +13 -2
- mindspore/parallel/_utils.py +4 -2
- mindspore/parallel/algo_parameter_config.py +1 -1
- mindspore/parallel/checkpoint_transform.py +44 -0
- mindspore/parallel/cluster/process_entity/_api.py +131 -37
- mindspore/parallel/cluster/process_entity/_utils.py +41 -6
- mindspore/parallel/cluster/run.py +20 -3
- mindspore/parallel/parameter_broadcast.py +1 -1
- mindspore/parallel/shard.py +3 -0
- mindspore/parallel/transform_safetensors.py +119 -253
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +17 -4
- mindspore/profiler/analysis/__init__.py +0 -0
- mindspore/profiler/analysis/parser/__init__.py +0 -0
- mindspore/profiler/analysis/parser/ascend_cann_parser.py +166 -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 +261 -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 +84 -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 +260 -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 +333 -0
- mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +252 -0
- mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +313 -0
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +322 -0
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +265 -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 +97 -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 +138 -0
- mindspore/profiler/common/command_executor.py +90 -0
- mindspore/profiler/common/constant.py +174 -3
- mindspore/profiler/common/file_manager.py +208 -0
- mindspore/profiler/common/log.py +130 -0
- mindspore/profiler/common/msprof_cmd_tool.py +202 -0
- mindspore/profiler/common/path_manager.py +371 -0
- mindspore/profiler/common/process_bar.py +168 -0
- mindspore/profiler/common/process_pool.py +9 -3
- mindspore/profiler/common/profiler_context.py +476 -0
- mindspore/profiler/common/profiler_info.py +304 -0
- mindspore/profiler/common/profiler_output_path.py +284 -0
- mindspore/profiler/common/profiler_parameters.py +210 -0
- mindspore/profiler/common/profiler_path_manager.py +120 -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 +270 -37
- mindspore/profiler/envprofiler.py +138 -0
- mindspore/profiler/mstx.py +199 -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 +309 -0
- mindspore/profiler/profiler.py +580 -93
- mindspore/profiler/profiler_action_controller.py +187 -0
- mindspore/profiler/profiler_interface.py +114 -0
- mindspore/profiler/schedule.py +208 -0
- mindspore/rewrite/api/symbol_tree.py +1 -2
- mindspore/run_check/_check_version.py +18 -13
- mindspore/runtime/__init__.py +37 -0
- mindspore/runtime/device.py +27 -0
- mindspore/runtime/event.py +209 -0
- mindspore/runtime/executor.py +148 -0
- mindspore/runtime/memory.py +392 -0
- mindspore/runtime/stream.py +460 -0
- mindspore/runtime/thread_bind_core.py +401 -0
- 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 +2 -2
- mindspore/train/_utils.py +53 -18
- mindspore/train/amp.py +8 -4
- mindspore/train/callback/_checkpoint.py +32 -18
- mindspore/train/callback/_early_stop.py +1 -1
- mindspore/train/callback/_flops_collector.py +105 -69
- mindspore/train/callback/_history.py +1 -1
- mindspore/train/callback/_summary_collector.py +44 -6
- mindspore/train/callback/_tft_register.py +37 -15
- mindspore/train/dataset_helper.py +11 -11
- mindspore/train/metrics/precision.py +4 -5
- mindspore/train/mind_ir_pb2.py +167 -46
- mindspore/train/model.py +13 -14
- mindspore/train/serialization.py +461 -72
- mindspore/train/summary/summary_record.py +1 -2
- mindspore/train/train_thor/model_thor.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +4 -2
- mindspore/utils/dryrun.py +138 -0
- mindspore/utils/runtime_execution_order_check.py +550 -0
- mindspore/vcmeta.dll +0 -0
- mindspore/vcruntime140.dll +0 -0
- mindspore/vcruntime140_1.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/METADATA +3 -4
- {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/RECORD +391 -265
- {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/entry_points.txt +1 -1
- mindspore/common/_tensor_overload.py +0 -139
- mindspore/mindspore_np_dtype.dll +0 -0
- mindspore/profiler/envprofiling.py +0 -254
- mindspore/profiler/profiling.py +0 -1926
- {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/WHEEL +0 -0
- {mindspore-2.4.1.dist-info → mindspore-2.5.0.dist-info}/top_level.txt +0 -0
|
@@ -19,6 +19,7 @@ After declaring the dataset object, you can further apply dataset operations
|
|
|
19
19
|
(e.g. filter, skip, concat, map, batch) on it.
|
|
20
20
|
"""
|
|
21
21
|
import builtins
|
|
22
|
+
import copy
|
|
22
23
|
import errno
|
|
23
24
|
import itertools
|
|
24
25
|
import math
|
|
@@ -27,12 +28,10 @@ import signal
|
|
|
27
28
|
import time
|
|
28
29
|
from types import GeneratorType
|
|
29
30
|
import multiprocessing
|
|
30
|
-
from multiprocessing.util import Finalize
|
|
31
31
|
import queue
|
|
32
32
|
from functools import partial
|
|
33
33
|
import subprocess
|
|
34
34
|
import threading
|
|
35
|
-
import weakref
|
|
36
35
|
import platform
|
|
37
36
|
import psutil
|
|
38
37
|
import numpy as np
|
|
@@ -45,11 +44,12 @@ from mindspore import log as logger
|
|
|
45
44
|
from .datasets import UnionBaseDataset, MappableDataset, Schema, to_list, _PythonMultiprocessing, _check_shm_usage
|
|
46
45
|
from . import samplers
|
|
47
46
|
from .queue import _SharedQueue
|
|
48
|
-
from .validators import
|
|
47
|
+
from .validators import check_generator_dataset, check_numpy_slices_dataset, check_padded_dataset
|
|
49
48
|
from ..core.config import get_enable_shared_mem, get_prefetch_size, get_multiprocessing_timeout_interval, \
|
|
50
49
|
get_enable_watchdog, get_debug_mode, get_seed, set_seed
|
|
51
50
|
from ..core.datatypes import mstypelist_to_detypelist
|
|
52
51
|
from ..core.py_util_helpers import ExceptionHandler
|
|
52
|
+
from ..core.validator_helpers import type_check
|
|
53
53
|
from ..transforms import transforms
|
|
54
54
|
|
|
55
55
|
|
|
@@ -219,7 +219,6 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
|
|
|
219
219
|
self.ppid = os.getpid()
|
|
220
220
|
self.pids = []
|
|
221
221
|
self.check_interval = get_multiprocessing_timeout_interval() # the interval of check queue's size
|
|
222
|
-
self._final_join = True
|
|
223
222
|
|
|
224
223
|
# Event for end of epoch
|
|
225
224
|
if self.multi_process is True:
|
|
@@ -270,8 +269,14 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
|
|
|
270
269
|
worker.daemon = True
|
|
271
270
|
self.need_join = True
|
|
272
271
|
self.workers.append(worker)
|
|
273
|
-
|
|
274
|
-
|
|
272
|
+
|
|
273
|
+
if self.multi_process:
|
|
274
|
+
logger.info("Launch generator worker process(es): {}".format([worker.pid for worker in self.workers]))
|
|
275
|
+
if platform.system().lower() != 'windows':
|
|
276
|
+
self._launch_monitor()
|
|
277
|
+
|
|
278
|
+
def terminate(self):
|
|
279
|
+
self._stop_subprocess()
|
|
275
280
|
|
|
276
281
|
def _interval_log(self, i, start_time, wait_count):
|
|
277
282
|
cost_time = int(time.time()) - start_time
|
|
@@ -392,9 +397,11 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
|
|
|
392
397
|
"the `mindspore.dataset.config.set_multiprocessing_timeout_interval` interface."
|
|
393
398
|
logger.warning(warning_message)
|
|
394
399
|
|
|
395
|
-
def
|
|
400
|
+
def _launch_monitor(self):
|
|
396
401
|
"""
|
|
397
|
-
|
|
402
|
+
Launch a clean process and register subprocess to be monitored by the watch dog.
|
|
403
|
+
The clean process will clean up subprocesses when main process exited.
|
|
404
|
+
The watch dog will clean up subprocesses and main process when any subprocess exited.
|
|
398
405
|
"""
|
|
399
406
|
_clean_worker_func = _PythonMultiprocessing._clean_process # pylint: disable=W0212
|
|
400
407
|
self.cleaning_process = multiprocessing.Process(target=_clean_worker_func,
|
|
@@ -402,21 +409,13 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
|
|
|
402
409
|
args=(self.ppid, self.workers, self.eof))
|
|
403
410
|
self.cleaning_process.daemon = True
|
|
404
411
|
self.cleaning_process.start()
|
|
412
|
+
logger.info("Launch clean process {} to monitor worker "
|
|
413
|
+
"process(es): {}".format(self.cleaning_process.pid, [worker.pid for worker in self.workers]))
|
|
405
414
|
|
|
406
415
|
if get_enable_watchdog():
|
|
407
|
-
|
|
408
|
-
self.
|
|
409
|
-
|
|
410
|
-
args=(self.eot, self.workers + [self.cleaning_process]))
|
|
411
|
-
self.watch_dog.daemon = True
|
|
412
|
-
self.watch_dog.start()
|
|
413
|
-
|
|
414
|
-
if self._final_join is True:
|
|
415
|
-
self._jointhread = Finalize(
|
|
416
|
-
self.watch_dog, self._finalize_join,
|
|
417
|
-
args=(weakref.ref(self.watch_dog), self.eot),
|
|
418
|
-
exitpriority=-5
|
|
419
|
-
)
|
|
416
|
+
worker_ids = [worker.pid for worker in self.workers]
|
|
417
|
+
worker_ids.append(self.cleaning_process.pid)
|
|
418
|
+
cde.register_worker_pids(id(self), set(worker_ids))
|
|
420
419
|
|
|
421
420
|
def _release_fd(self):
|
|
422
421
|
"""Release the file descriptor by subprocess"""
|
|
@@ -427,6 +426,10 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
|
|
|
427
426
|
subprocess_file_descriptor = w.sentinel
|
|
428
427
|
st = time.time()
|
|
429
428
|
while _PythonMultiprocessing.is_process_alive(w.pid):
|
|
429
|
+
process = psutil.Process(w.pid)
|
|
430
|
+
if process.status() == psutil.STATUS_ZOMBIE:
|
|
431
|
+
process.kill()
|
|
432
|
+
break
|
|
430
433
|
time.sleep(0.01) # sleep 10ms, waiting for the subprocess exit
|
|
431
434
|
if time.time() - st > check_interval:
|
|
432
435
|
logger.warning("Waiting for the subprocess worker [{}] to exit.".format(w.pid))
|
|
@@ -448,15 +451,8 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
|
|
|
448
451
|
def _stop_subprocess(self):
|
|
449
452
|
"""Only the main process can call join. All the sub-process / sub-thread will be stopped."""
|
|
450
453
|
if self.need_join is True and self.ppid == os.getpid():
|
|
451
|
-
# the
|
|
452
|
-
|
|
453
|
-
try:
|
|
454
|
-
self.eof.set()
|
|
455
|
-
except AttributeError: # maybe occur "'NoneType' object has no attribute 'maxsize'"
|
|
456
|
-
pass
|
|
457
|
-
|
|
458
|
-
# close the watch dog first
|
|
459
|
-
self._abort_watchdog()
|
|
454
|
+
# abort the monitor first
|
|
455
|
+
self._abort_monitor()
|
|
460
456
|
self.need_join = False
|
|
461
457
|
|
|
462
458
|
# waiting for the sub-process stop
|
|
@@ -469,7 +465,7 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
|
|
|
469
465
|
|
|
470
466
|
# let the quit event notify the worker process to exit
|
|
471
467
|
w.join(timeout=5)
|
|
472
|
-
if w.
|
|
468
|
+
if _PythonMultiprocessing.is_process_alive(w.pid):
|
|
473
469
|
# if the worker process did not exit, it may hang, try to terminate it
|
|
474
470
|
w.terminate()
|
|
475
471
|
w.close()
|
|
@@ -483,10 +479,12 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
|
|
|
483
479
|
self.workers.clear()
|
|
484
480
|
self.workers = None
|
|
485
481
|
|
|
486
|
-
def
|
|
487
|
-
"""
|
|
488
|
-
if
|
|
489
|
-
|
|
482
|
+
def _abort_monitor(self):
|
|
483
|
+
"""Deregister workers monitored by the watch dog and join clean process."""
|
|
484
|
+
if get_enable_watchdog():
|
|
485
|
+
cde.deregister_worker_pids(id(self))
|
|
486
|
+
if hasattr(self, 'eof') and self.eof is not None:
|
|
487
|
+
self.eof.set()
|
|
490
488
|
if hasattr(self, 'cleaning_process') and self.cleaning_process is not None:
|
|
491
489
|
# let the quit event notify the cleaning process to exit
|
|
492
490
|
self.cleaning_process.join(timeout=5)
|
|
@@ -497,14 +495,6 @@ class SamplerFn(cde.PythonMultiprocessingRuntime):
|
|
|
497
495
|
if hasattr(self, 'count'):
|
|
498
496
|
del self.count
|
|
499
497
|
|
|
500
|
-
@classmethod
|
|
501
|
-
def _finalize_join(cls, twr, eot):
|
|
502
|
-
thread = twr()
|
|
503
|
-
if thread is not None:
|
|
504
|
-
if eot is not None and not eot.is_set():
|
|
505
|
-
eot.set()
|
|
506
|
-
thread.join()
|
|
507
|
-
|
|
508
498
|
def __del__(self):
|
|
509
499
|
try:
|
|
510
500
|
self._stop_subprocess()
|
|
@@ -548,7 +538,7 @@ def _generator_worker_loop(dataset, idx_queue, result_queue, eof, is_multiproces
|
|
|
548
538
|
cde.register_worker_handlers()
|
|
549
539
|
|
|
550
540
|
if is_multiprocessing:
|
|
551
|
-
result_queue.cancel_join_thread() # Ensure that the process does not
|
|
541
|
+
result_queue.cancel_join_thread() # Ensure that the process does not hang when exiting
|
|
552
542
|
signal.signal(signal.SIGTERM, partial(_subprocess_handle, eof))
|
|
553
543
|
|
|
554
544
|
# init the random seed and np.random seed for the subprocess
|
|
@@ -688,6 +678,7 @@ class _GeneratorWorkerMp(multiprocessing.Process):
|
|
|
688
678
|
|
|
689
679
|
class _GeneratorWrapper:
|
|
690
680
|
"""Wrapper the generator so that it can be iterated multiple times in GeneratorDataset."""
|
|
681
|
+
|
|
691
682
|
def __init__(self, generator):
|
|
692
683
|
self.generator = generator
|
|
693
684
|
self.generator_new, self.generator = itertools.tee(self.generator)
|
|
@@ -707,13 +698,22 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
|
|
|
707
698
|
The column names and column types of generated dataset depend on Python data defined by users.
|
|
708
699
|
|
|
709
700
|
Args:
|
|
710
|
-
source (Union[
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
701
|
+
source (Union[Random Accessible, Iterable]): A custom dataset from which to load the data.
|
|
702
|
+
MindSpore supports the following types of datasets:
|
|
703
|
+
|
|
704
|
+
- Random-accessible (map-style) datasets: A dataset object that implements the `__getitem__()`
|
|
705
|
+
and `__len__()` methods, represents a mapping from indexes/keys to data samples.
|
|
706
|
+
For example, such a dataset `source`, when accessed with `source[idx]`, can read the idx-th sample
|
|
707
|
+
from disk, see `Random-accessible dataset example <https://www.mindspore.cn/tutorials/en/master/
|
|
708
|
+
beginner/dataset.html#random-accessible-dataset>`_ for details.
|
|
709
|
+
|
|
710
|
+
- Iterable-style dataset: An iterable dataset object that implements `__iter__()` and `__next__()` methods,
|
|
711
|
+
represents an iterable over data samples. This type of dataset is suitable for situations where
|
|
712
|
+
random reads are costly or even impossible, and where batch sizes depend on the data being acquired.
|
|
713
|
+
For example, such a dataset `source`, when accessed `iter(source)`, can return a stream of data reading
|
|
714
|
+
from a database or remote server, see `Iterable-style dataset example
|
|
715
|
+
<https://www.mindspore.cn/tutorials/en/master/beginner/dataset.html#iterable-dataset>`_ for details.
|
|
716
|
+
|
|
717
717
|
column_names (Union[str, list[str]], optional): List of column names of the dataset. Default: ``None`` .
|
|
718
718
|
Users are required to provide either column_names or schema.
|
|
719
719
|
column_types (list[mindspore.dtype], optional): List of column data types of the dataset. Default: ``None`` .
|
|
@@ -731,7 +731,8 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
|
|
|
731
731
|
input is required. Default: ``None`` , expected order behavior shown in the table below.
|
|
732
732
|
num_shards (int, optional): Number of shards that the dataset will be divided into. Default: ``None`` .
|
|
733
733
|
Random accessible input is required. When this argument is specified, `num_samples` reflects the maximum
|
|
734
|
-
sample number of per shard.
|
|
734
|
+
sample number of per shard. Used in `data parallel training <https://www.mindspore.cn/docs/en/master/
|
|
735
|
+
model_train/parallel/data_parallel.html#data-parallel-mode-loads-datasets>`_ .
|
|
735
736
|
shard_id (int, optional): The shard ID within `num_shards` . Default: ``None`` .
|
|
736
737
|
This argument must be specified only when `num_shards` is also specified.
|
|
737
738
|
Random accessible input is required.
|
|
@@ -742,6 +743,11 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
|
|
|
742
743
|
``num_parallel_workers`` and :func:`mindspore.dataset.config.set_prefetch_size` increase. If set to -1,
|
|
743
744
|
shared memory will be dynamically allocated with the actual size of data. This is only used if
|
|
744
745
|
``python_multiprocessing`` is set to True. Default: ``None`` , allocate shared memory dynamically.
|
|
746
|
+
batch_sampler (Iterable, optional): Similar to `sampler` , but returns a batch of indices at a time, the
|
|
747
|
+
corresponding data will be combined into a batch. Mutually exclusive with `num_samples` , `shuffle` ,
|
|
748
|
+
`num_shards` , `shard_id` and `sampler` . Default: ``None`` , do not use batch sampler.
|
|
749
|
+
collate_fn (Callable[List[numpy.ndarray]], optional): Define how to merge a list of data into a batch.
|
|
750
|
+
Only valid if `batch_sampler` is used. Default: ``None`` , do not use collation function.
|
|
745
751
|
|
|
746
752
|
Raises:
|
|
747
753
|
RuntimeError: If source raises an exception during execution.
|
|
@@ -752,6 +758,11 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
|
|
|
752
758
|
ValueError: If `num_shards` is specified but shard_id is None.
|
|
753
759
|
ValueError: If shard_id is specified but `num_shards` is None.
|
|
754
760
|
ValueError: If `shard_id` is not in range of [0, `num_shards` ).
|
|
761
|
+
TypeError: If `batch_sampler` is not iterable.
|
|
762
|
+
ValueError: If `batch_sampler` is specified together with `num_samples` ,
|
|
763
|
+
`shuffle` , `num_shards` , `shard_id` and `sampler`.
|
|
764
|
+
TypeError: If `collate_fn` is not callable.
|
|
765
|
+
ValueError: If `collate_fn` is specified while `batch_sampler` is None.
|
|
755
766
|
|
|
756
767
|
Tutorial Examples:
|
|
757
768
|
- `Load & Process Data With Dataset Pipeline
|
|
@@ -845,10 +856,10 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
|
|
|
845
856
|
>>> dataset = ds.GeneratorDataset(source=[(np.array(0),), (np.array(1),), (np.array(2),)], column_names=["col"])
|
|
846
857
|
"""
|
|
847
858
|
|
|
848
|
-
@
|
|
859
|
+
@check_generator_dataset
|
|
849
860
|
def __init__(self, source, column_names=None, column_types=None, schema=None, num_samples=None,
|
|
850
861
|
num_parallel_workers=1, shuffle=None, sampler=None, num_shards=None, shard_id=None,
|
|
851
|
-
python_multiprocessing=True, max_rowsize=None):
|
|
862
|
+
python_multiprocessing=True, max_rowsize=None, batch_sampler=None, collate_fn=None):
|
|
852
863
|
super().__init__(num_parallel_workers=num_parallel_workers, sampler=sampler, num_samples=num_samples,
|
|
853
864
|
shuffle=shuffle, num_shards=num_shards, shard_id=shard_id)
|
|
854
865
|
if isinstance(source, builtins.zip):
|
|
@@ -889,24 +900,69 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
|
|
|
889
900
|
self.schema = schema
|
|
890
901
|
if not isinstance(schema, Schema):
|
|
891
902
|
self.schema = Schema(schema)
|
|
903
|
+
|
|
904
|
+
self.has_batch_sampler = False
|
|
905
|
+
if batch_sampler is not None:
|
|
906
|
+
self.has_batch_sampler = True
|
|
907
|
+
if not isinstance(batch_sampler, samplers.BuiltinSampler):
|
|
908
|
+
self.sampler = samplers.IterSampler(batch_sampler)
|
|
909
|
+
else:
|
|
910
|
+
self.sampler = batch_sampler
|
|
911
|
+
|
|
892
912
|
# Move get dataset_size by len from parse to here, because self.source will
|
|
893
913
|
# lose attribution of '__len__' after deepcopy.
|
|
914
|
+
self._calculate_source_length()
|
|
915
|
+
|
|
916
|
+
self.max_rowsize = max_rowsize if max_rowsize is not None else -1
|
|
917
|
+
self.sample_fn = None
|
|
918
|
+
# Ignore batch_info in the input parameter.
|
|
919
|
+
self.collate_fn = (lambda *args: collate_fn(*args[:-1])) if collate_fn is not None else None
|
|
920
|
+
|
|
921
|
+
def _calculate_source_length(self):
|
|
922
|
+
"""Calculate the source length according to the source and sampler."""
|
|
894
923
|
self.source_len = -1 # unknown
|
|
895
924
|
if hasattr(self.source, "__len__"):
|
|
896
925
|
self.source_len = len(self.source)
|
|
897
926
|
|
|
898
927
|
# if user defined sampler, update the self.source_len
|
|
899
928
|
if isinstance(self.sampler, samplers.Sampler) or hasattr(self.sampler, "__iter__"):
|
|
900
|
-
self.
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
929
|
+
if self.sampler.child_sampler is not None:
|
|
930
|
+
raise RuntimeError("GeneratorDataset does not support user defined sampler with child sampler yet.")
|
|
931
|
+
if self.sampler.num_samples is not None:
|
|
932
|
+
self.source_len = self.sampler.num_samples
|
|
933
|
+
elif hasattr(self.sampler, "__len__"):
|
|
934
|
+
self.source_len = len(self.sampler)
|
|
935
|
+
else:
|
|
936
|
+
# counting on a copied sampler to prevent changing the random state of the original one
|
|
937
|
+
self.source_len = len(list(copy.deepcopy(self.sampler)))
|
|
904
938
|
|
|
905
939
|
def __deepcopy__(self, memodict):
|
|
906
940
|
if id(self) in memodict:
|
|
907
941
|
return memodict[id(self)]
|
|
908
942
|
return self.__safe_deepcopy__(memodict, exclude=("source", "__transfer_dataset__"))
|
|
909
943
|
|
|
944
|
+
def __getitem__(self, index):
|
|
945
|
+
type_check(index, (int, np.number), "index")
|
|
946
|
+
if not hasattr(self.source, "__getitem__"):
|
|
947
|
+
raise RuntimeError("Dataset don't support randomized access.")
|
|
948
|
+
if self.has_batch_sampler:
|
|
949
|
+
raise RuntimeError("GeneratorDataset with batch_sampler does not support random access.")
|
|
950
|
+
if not hasattr(self, "generator_op"):
|
|
951
|
+
dataset = copy.deepcopy(self)
|
|
952
|
+
self.prepared_source = _generator_fn_wrapper(_cpp_sampler_fn, self.source)
|
|
953
|
+
if self.schema is None:
|
|
954
|
+
dataset.generator_node = cde.GeneratorNode(self.prepared_source, self.column_names, self.column_types,
|
|
955
|
+
self.source_len, self.sampler, 1, None, False)
|
|
956
|
+
else:
|
|
957
|
+
schema = self.schema
|
|
958
|
+
if isinstance(schema, Schema):
|
|
959
|
+
schema = self.schema.cpp_schema
|
|
960
|
+
dataset.generator_node = cde.GeneratorNode(self.prepared_source, schema, self.source_len,
|
|
961
|
+
self.sampler, 1, None, False)
|
|
962
|
+
self.generator_op = dataset.generator_node.Build()
|
|
963
|
+
sample_id = self.generator_op.GetMappedIndex(index)
|
|
964
|
+
return self.source[sample_id]
|
|
965
|
+
|
|
910
966
|
def is_shuffled(self):
|
|
911
967
|
if self.sampler:
|
|
912
968
|
return self.sampler.is_shuffled()
|
|
@@ -919,9 +975,11 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
|
|
|
919
975
|
|
|
920
976
|
def split(self, sizes, randomize=True):
|
|
921
977
|
if hasattr(self.source, "__getitem__"):
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
978
|
+
if not self.has_batch_sampler:
|
|
979
|
+
# If the source has __getitem__ attribute, call the split method of MappableDataset.
|
|
980
|
+
# Otherwise, call the split method of Dataset.
|
|
981
|
+
return super().split(sizes, randomize)
|
|
982
|
+
logger.warning("The performance of split will be degraded since batch_sampler is detected.")
|
|
925
983
|
return super(MappableDataset, self).split(sizes, randomize)
|
|
926
984
|
|
|
927
985
|
def prepare_multiprocessing(self):
|
|
@@ -958,12 +1016,12 @@ class GeneratorDataset(MappableDataset, UnionBaseDataset):
|
|
|
958
1016
|
self.prepare_multiprocessing()
|
|
959
1017
|
if self.schema is None:
|
|
960
1018
|
return cde.GeneratorNode(self.prepared_source, self.column_names, self.column_types, self.source_len,
|
|
961
|
-
self.sampler, self.num_parallel_workers, self.sample_fn)
|
|
1019
|
+
self.sampler, self.num_parallel_workers, self.sample_fn, self.has_batch_sampler)
|
|
962
1020
|
schema = self.schema
|
|
963
1021
|
if isinstance(schema, Schema):
|
|
964
1022
|
schema = self.schema.cpp_schema
|
|
965
1023
|
return cde.GeneratorNode(self.prepared_source, schema, self.source_len, self.sampler,
|
|
966
|
-
self.num_parallel_workers, self.sample_fn)
|
|
1024
|
+
self.num_parallel_workers, self.sample_fn, self.has_batch_sampler)
|
|
967
1025
|
|
|
968
1026
|
def __validate_memory_usage(self):
|
|
969
1027
|
"""
|
|
@@ -1081,6 +1139,8 @@ class NumpySlicesDataset(GeneratorDataset):
|
|
|
1081
1139
|
Default: ``None`` , expected order behavior shown in the table below.
|
|
1082
1140
|
num_shards (int, optional): Number of shards that the dataset will be divided into. Default: ``None`` .
|
|
1083
1141
|
When this argument is specified, `num_samples` reflects the max sample number of per shard.
|
|
1142
|
+
Used in `data parallel training <https://www.mindspore.cn/docs/en/master/model_train/
|
|
1143
|
+
parallel/data_parallel.html#data-parallel-mode-loads-datasets>`_ .
|
|
1084
1144
|
shard_id (int, optional): The shard ID within `num_shards` . Default: ``None`` . This argument must be
|
|
1085
1145
|
specified only when `num_shards` is also specified.
|
|
1086
1146
|
|
|
@@ -1123,7 +1183,7 @@ class NumpySlicesDataset(GeneratorDataset):
|
|
|
1123
1183
|
>>> dataset = ds.NumpySlicesDataset(data=dict(df), shuffle=False)
|
|
1124
1184
|
"""
|
|
1125
1185
|
|
|
1126
|
-
@
|
|
1186
|
+
@check_numpy_slices_dataset
|
|
1127
1187
|
def __init__(self, data, column_names=None, num_samples=None, num_parallel_workers=1, shuffle=None, sampler=None,
|
|
1128
1188
|
num_shards=None, shard_id=None):
|
|
1129
1189
|
dataset = _NumpySlicesDataset(data, column_names)
|
|
@@ -1176,7 +1236,7 @@ class PaddedDataset(GeneratorDataset):
|
|
|
1176
1236
|
>>> dataset = ds.PaddedDataset(padded_samples=data)
|
|
1177
1237
|
"""
|
|
1178
1238
|
|
|
1179
|
-
@
|
|
1239
|
+
@check_padded_dataset
|
|
1180
1240
|
def __init__(self, padded_samples):
|
|
1181
1241
|
dataset = _PaddedDataset(padded_samples)
|
|
1182
1242
|
super().__init__(dataset, column_names=dataset.column_names, num_shards=None, shard_id=None, shuffle=False)
|