mindspore 2.1.0__cp38-cp38-win_amd64.whl → 2.2.11__cp38-cp38-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 +4 -1
- mindspore/_c_dataengine.cp38-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp38-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp38-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -1
- mindspore/_checkparam.py +23 -29
- mindspore/_extends/graph_kernel/__init__.py +0 -1
- mindspore/_extends/graph_kernel/model/graph_split.py +84 -76
- mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
- mindspore/_extends/graph_kernel/splitter.py +4 -11
- mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
- mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +84 -67
- mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
- mindspore/_extends/parallel_compile/akg_compiler/util.py +10 -7
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +6 -5
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
- mindspore/_extends/parse/__init__.py +13 -15
- mindspore/_extends/parse/namespace.py +7 -33
- mindspore/_extends/parse/parser.py +67 -72
- mindspore/_extends/parse/resources.py +1 -1
- mindspore/_extends/parse/standard_method.py +86 -106
- mindspore/_extends/parse/trope.py +1 -1
- mindspore/_extends/remote/kernel_build_server.py +25 -7
- mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
- mindspore/_install_custom.py +43 -0
- mindspore/amp.py +47 -11
- mindspore/atlprov.dll +0 -0
- mindspore/boost/boost.py +1 -8
- mindspore/boost/boost_cell_wrapper.py +3 -2
- mindspore/boost/grad_accumulation.py +1 -1
- mindspore/boost/group_loss_scale_manager.py +8 -7
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +5 -3
- mindspore/common/_jit_fallback_utils.py +6 -0
- mindspore/common/_register_for_adapter.py +2 -0
- mindspore/common/_register_for_tensor.py +2 -2
- mindspore/common/_stub_tensor.py +13 -0
- mindspore/common/_utils.py +29 -0
- mindspore/common/api.py +174 -259
- mindspore/common/auto_dynamic_shape.py +494 -0
- mindspore/common/dtype.py +18 -11
- mindspore/common/dump.py +6 -4
- mindspore/common/initializer.py +14 -14
- mindspore/common/jit_config.py +33 -15
- mindspore/common/lazy_inline.py +126 -7
- mindspore/common/mindir_util.py +101 -0
- mindspore/common/parameter.py +51 -41
- mindspore/common/seed.py +4 -4
- mindspore/common/sparse_tensor.py +13 -14
- mindspore/common/tensor.py +243 -165
- mindspore/communication/__init__.py +7 -4
- mindspore/communication/_comm_helper.py +83 -4
- mindspore/communication/management.py +152 -84
- mindspore/config/op_info.config +14 -3
- mindspore/context.py +152 -61
- mindspore/dataset/__init__.py +5 -5
- mindspore/dataset/audio/__init__.py +2 -2
- mindspore/dataset/audio/transforms.py +52 -52
- mindspore/dataset/callback/ds_callback.py +16 -2
- mindspore/dataset/core/config.py +68 -51
- mindspore/dataset/engine/cache_client.py +33 -7
- mindspore/dataset/engine/datasets.py +250 -112
- mindspore/dataset/engine/datasets_audio.py +43 -211
- mindspore/dataset/engine/datasets_standard_format.py +16 -35
- mindspore/dataset/engine/datasets_text.py +43 -67
- mindspore/dataset/engine/datasets_user_defined.py +86 -100
- mindspore/dataset/engine/datasets_vision.py +219 -1029
- mindspore/dataset/engine/iterators.py +11 -4
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
- mindspore/dataset/engine/obs/util.py +3 -0
- mindspore/dataset/engine/samplers.py +1 -1
- mindspore/dataset/engine/validators.py +19 -5
- mindspore/dataset/text/__init__.py +3 -3
- mindspore/dataset/text/transforms.py +101 -127
- mindspore/dataset/text/utils.py +205 -138
- mindspore/dataset/transforms/__init__.py +1 -1
- mindspore/dataset/transforms/py_transforms_util.py +40 -12
- mindspore/dataset/transforms/transforms.py +95 -40
- mindspore/dataset/utils/browse_dataset.py +8 -2
- mindspore/dataset/utils/line_reader.py +17 -19
- mindspore/dataset/vision/__init__.py +3 -3
- mindspore/dataset/vision/c_transforms.py +6 -3
- mindspore/dataset/vision/transforms.py +409 -287
- mindspore/dataset/vision/utils.py +13 -14
- mindspore/dataset/vision/validators.py +11 -1
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/map_parameter.py +14 -0
- mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
- mindspore/{nn/optim_ex → experimental/optim}/adam.py +60 -67
- mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
- mindspore/experimental/optim/lr_scheduler.py +1427 -0
- mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
- mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
- mindspore/gen_ops.py +273 -0
- mindspore/include/OWNERS +0 -1
- mindspore/include/api/data_type.h +2 -1
- mindspore/include/api/graph.h +0 -15
- mindspore/include/api/kernel.h +2 -0
- mindspore/include/api/kernel_api.h +37 -12
- mindspore/include/api/model.h +17 -14
- mindspore/include/api/status.h +8 -3
- mindspore/include/api/types.h +37 -4
- mindspore/include/c_api/ms/abstract.h +67 -0
- mindspore/include/c_api/ms/attribute.h +197 -0
- mindspore/include/c_api/ms/base/handle_types.h +43 -0
- mindspore/include/c_api/ms/base/macros.h +32 -0
- mindspore/include/c_api/ms/base/status.h +33 -0
- mindspore/include/c_api/ms/base/types.h +282 -0
- mindspore/include/c_api/ms/context.h +102 -0
- mindspore/include/c_api/ms/graph.h +160 -0
- mindspore/include/c_api/ms/node.h +606 -0
- mindspore/include/c_api/ms/tensor.h +161 -0
- mindspore/include/c_api/ms/value.h +84 -0
- mindspore/include/dataset/constants.h +6 -5
- mindspore/include/dataset/execute.h +23 -13
- mindspore/include/dataset/text.h +26 -26
- mindspore/include/dataset/transforms.h +13 -13
- mindspore/include/dataset/vision.h +60 -60
- mindspore/include/dataset/vision_ascend.h +5 -6
- mindspore/include/dataset/vision_lite.h +17 -17
- mindspore/jpeg62.dll +0 -0
- mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
- mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
- 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_shared_lib.dll +0 -0
- mindspore/msobj140.dll +0 -0
- mindspore/mspdb140.dll +0 -0
- mindspore/mspdbcore.dll +0 -0
- mindspore/mspdbst.dll +0 -0
- mindspore/mspft140.dll +0 -0
- mindspore/msvcdis140.dll +0 -0
- mindspore/msvcp140_1.dll +0 -0
- mindspore/msvcp140_2.dll +0 -0
- mindspore/msvcp140_atomic_wait.dll +0 -0
- mindspore/msvcp140_codecvt_ids.dll +0 -0
- mindspore/nn/__init__.py +0 -2
- mindspore/nn/cell.py +313 -74
- mindspore/nn/dynamic_lr.py +21 -21
- mindspore/nn/layer/activation.py +22 -30
- mindspore/nn/layer/basic.py +15 -13
- mindspore/nn/layer/channel_shuffle.py +1 -1
- mindspore/nn/layer/container.py +271 -9
- mindspore/nn/layer/conv.py +323 -204
- mindspore/nn/layer/dense.py +8 -5
- mindspore/nn/layer/embedding.py +33 -27
- mindspore/nn/layer/flash_attention.py +61 -95
- mindspore/nn/layer/image.py +8 -6
- mindspore/nn/layer/math.py +16 -25
- mindspore/nn/layer/normalization.py +107 -66
- mindspore/nn/layer/padding.py +1 -1
- mindspore/nn/layer/pooling.py +131 -109
- mindspore/nn/layer/rnn_cells.py +27 -22
- mindspore/nn/layer/rnns.py +13 -16
- mindspore/nn/layer/thor_layer.py +1 -1
- mindspore/nn/layer/transformer.py +221 -154
- mindspore/nn/learning_rate_schedule.py +9 -1
- mindspore/nn/loss/loss.py +235 -174
- mindspore/nn/optim/ada_grad.py +2 -1
- mindspore/nn/optim/adadelta.py +1 -0
- mindspore/nn/optim/adafactor.py +2 -1
- mindspore/nn/optim/adam.py +7 -4
- mindspore/nn/optim/adamax.py +3 -2
- mindspore/nn/optim/adasum.py +2 -2
- mindspore/nn/optim/asgd.py +2 -3
- mindspore/nn/optim/ftrl.py +6 -5
- mindspore/nn/optim/lamb.py +7 -4
- mindspore/nn/optim/lars.py +1 -1
- mindspore/nn/optim/lazyadam.py +5 -3
- mindspore/nn/optim/momentum.py +2 -1
- mindspore/nn/optim/optimizer.py +53 -4
- mindspore/nn/optim/proximal_ada_grad.py +3 -4
- mindspore/nn/optim/rmsprop.py +4 -3
- mindspore/nn/optim/rprop.py +23 -12
- mindspore/nn/optim/sgd.py +26 -11
- mindspore/nn/optim/thor.py +9 -7
- mindspore/nn/probability/bijector/bijector.py +5 -5
- mindspore/nn/probability/bijector/power_transform.py +27 -27
- mindspore/nn/probability/bijector/softplus.py +3 -3
- mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
- mindspore/nn/probability/distribution/bernoulli.py +5 -5
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +7 -7
- mindspore/nn/probability/distribution/cauchy.py +0 -1
- mindspore/nn/probability/distribution/distribution.py +3 -3
- mindspore/nn/probability/distribution/gamma.py +3 -3
- mindspore/nn/probability/distribution/geometric.py +4 -4
- mindspore/nn/probability/distribution/gumbel.py +4 -4
- mindspore/nn/probability/distribution/log_normal.py +2 -2
- mindspore/nn/probability/distribution/logistic.py +2 -2
- mindspore/nn/probability/distribution/poisson.py +4 -4
- mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
- mindspore/nn/probability/distribution/uniform.py +6 -6
- mindspore/nn/wrap/__init__.py +4 -2
- mindspore/nn/wrap/cell_wrapper.py +87 -34
- mindspore/nn/wrap/grad_reducer.py +8 -5
- mindspore/nn/wrap/loss_scale.py +105 -42
- mindspore/numpy/array_creations.py +1 -2
- mindspore/numpy/array_ops.py +3 -2
- mindspore/numpy/utils_const.py +5 -5
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/_grad_experimental/__init__.py +0 -5
- mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
- mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
- mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
- mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
- mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
- mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
- mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
- mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
- mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
- mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
- mindspore/ops/_op_impl/aicpu/add.py +3 -3
- mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
- mindspore/ops/_op_impl/{_custom_op/flash_attention/constants.py → aicpu/eps.py} +18 -27
- mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
- mindspore/ops/_op_impl/aicpu/linear_sum_assignment.py +21 -2
- mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
- mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
- mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
- mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
- mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
- mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
- mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
- mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
- mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
- mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
- mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
- mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
- mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
- mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
- mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
- mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
- mindspore/ops/_op_impl/tbe/__init__.py +4 -4
- mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
- mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
- mindspore/ops/_primitive_cache.py +1 -1
- mindspore/ops/_tracefunc.py +45 -13
- mindspore/ops/_utils/utils.py +6 -1
- mindspore/ops/_vmap/vmap_array_ops.py +3 -3
- mindspore/ops/_vmap/vmap_base.py +3 -3
- mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
- mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
- mindspore/ops/_vmap/vmap_math_ops.py +5 -2
- mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
- mindspore/ops/arg_dtype_cast.py +54 -0
- mindspore/ops/composite/base.py +37 -10
- mindspore/ops/composite/math_ops.py +5 -4
- mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
- mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
- mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
- mindspore/ops/deprecated.py +304 -0
- mindspore/ops/function/__init__.py +4 -1
- mindspore/ops/function/array_func.py +174 -193
- mindspore/ops/function/clip_func.py +81 -13
- mindspore/ops/function/debug_func.py +1 -1
- mindspore/ops/function/grad/grad_func.py +18 -9
- mindspore/ops/function/image_func.py +10 -4
- mindspore/ops/function/linalg_func.py +5 -5
- mindspore/ops/function/math_func.py +575 -386
- mindspore/ops/function/nn_func.py +568 -260
- mindspore/ops/function/random_func.py +88 -57
- mindspore/ops/function/sparse_func.py +1 -1
- mindspore/ops/function/sparse_unary_func.py +14 -12
- mindspore/ops/function/vmap_func.py +6 -5
- mindspore/ops/functional.py +15 -10
- mindspore/ops/op_info_register.py +244 -25
- mindspore/ops/operations/__init__.py +31 -19
- mindspore/ops/operations/_grad_ops.py +71 -7
- mindspore/ops/operations/_inner_ops.py +350 -17
- mindspore/ops/operations/_quant_ops.py +4 -8
- mindspore/ops/operations/_sequence_ops.py +42 -0
- mindspore/ops/operations/array_ops.py +68 -282
- mindspore/ops/operations/comm_ops.py +107 -59
- mindspore/ops/operations/custom_ops.py +94 -70
- mindspore/ops/operations/debug_ops.py +8 -4
- mindspore/ops/operations/image_ops.py +18 -12
- mindspore/ops/operations/inner_ops.py +26 -3
- mindspore/ops/operations/math_ops.py +192 -144
- mindspore/ops/operations/nn_ops.py +857 -489
- mindspore/ops/operations/other_ops.py +0 -22
- mindspore/ops/operations/random_ops.py +53 -111
- mindspore/ops/operations/sparse_ops.py +3 -1
- mindspore/ops/primitive.py +24 -18
- mindspore/parallel/_auto_parallel_context.py +68 -8
- mindspore/parallel/_cost_model_context.py +2 -2
- mindspore/parallel/_offload_context.py +17 -3
- mindspore/parallel/_parallel_serialization.py +12 -5
- mindspore/parallel/_ps_context.py +12 -0
- mindspore/parallel/_tensor.py +18 -13
- mindspore/parallel/_transformer/layers.py +5 -3
- mindspore/parallel/_transformer/loss.py +1 -0
- mindspore/parallel/_transformer/moe.py +2 -2
- mindspore/parallel/_transformer/op_parallel_config.py +12 -1
- mindspore/parallel/_transformer/transformer.py +23 -3
- mindspore/parallel/_utils.py +11 -7
- mindspore/parallel/algo_parameter_config.py +85 -5
- mindspore/parallel/checkpoint_transform.py +19 -12
- mindspore/parallel/shard.py +21 -14
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/common/struct_type.py +3 -3
- mindspore/profiler/common/util.py +4 -2
- mindspore/profiler/envprofiling.py +1 -1
- mindspore/profiler/parser/aicpu_data_parser.py +5 -3
- mindspore/profiler/parser/ascend_flops_generator.py +2 -2
- mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
- mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
- mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
- mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
- mindspore/profiler/parser/ascend_op_generator.py +6 -6
- mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
- mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
- mindspore/profiler/parser/base_timeline_generator.py +10 -8
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
- mindspore/profiler/parser/flops_parser.py +15 -11
- mindspore/profiler/parser/framework_parser.py +38 -22
- mindspore/profiler/parser/hccl_parser.py +16 -12
- mindspore/profiler/parser/integrator.py +22 -11
- mindspore/profiler/parser/memory_usage_parser.py +2 -2
- mindspore/profiler/parser/minddata_analyzer.py +12 -14
- mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
- mindspore/profiler/parser/msadvisor_parser.py +8 -4
- mindspore/profiler/parser/op_intermediate_parser.py +5 -2
- mindspore/profiler/parser/optime_parser.py +1 -1
- mindspore/profiler/parser/profiler_info.py +21 -2
- mindspore/profiler/parser/step_trace_parser.py +11 -14
- mindspore/profiler/profiling.py +179 -89
- mindspore/rewrite/api/node.py +102 -19
- mindspore/rewrite/api/node_type.py +5 -1
- mindspore/rewrite/api/pattern_engine.py +1 -1
- mindspore/rewrite/api/scoped_value.py +9 -17
- mindspore/rewrite/api/symbol_tree.py +131 -47
- mindspore/rewrite/ast_helpers/__init__.py +2 -1
- mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
- mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
- mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
- mindspore/rewrite/common/rewrite_elog.py +5 -1
- mindspore/rewrite/namer.py +33 -24
- mindspore/rewrite/namespace.py +14 -5
- mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
- mindspore/rewrite/node/call_function.py +79 -0
- mindspore/rewrite/node/cell_container.py +135 -0
- mindspore/rewrite/node/control_flow.py +88 -0
- mindspore/rewrite/{node.py → node/node.py} +273 -234
- mindspore/rewrite/node/node_manager.py +254 -0
- mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
- mindspore/rewrite/parsers/arguments_parser.py +22 -21
- mindspore/rewrite/parsers/assign_parser.py +216 -221
- mindspore/rewrite/parsers/attribute_parser.py +9 -7
- mindspore/rewrite/parsers/class_def_parser.py +174 -113
- mindspore/rewrite/parsers/constant_parser.py +9 -6
- mindspore/rewrite/parsers/container_parser.py +9 -7
- mindspore/rewrite/parsers/for_parser.py +42 -21
- mindspore/rewrite/parsers/function_def_parser.py +24 -16
- mindspore/rewrite/parsers/if_parser.py +28 -24
- mindspore/rewrite/parsers/module_parser.py +196 -25
- mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
- mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
- mindspore/rewrite/parsers/return_parser.py +6 -6
- mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
- mindspore/rewrite/sparsify/utils.py +1 -1
- mindspore/rewrite/symbol_tree.py +523 -578
- mindspore/rewrite/symbol_tree_builder.py +9 -193
- mindspore/rewrite/symbol_tree_dumper.py +2 -2
- mindspore/run_check/_check_version.py +6 -4
- mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
- mindspore/safeguard/rewrite_obfuscation.py +541 -0
- mindspore/tbbmalloc.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/_utils.py +7 -3
- mindspore/train/amp.py +323 -123
- mindspore/train/anf_ir_pb2.py +14 -2
- mindspore/train/callback/_backup_and_restore.py +2 -12
- mindspore/train/callback/_callback.py +29 -4
- mindspore/train/callback/_checkpoint.py +23 -8
- mindspore/train/callback/_early_stop.py +2 -2
- mindspore/train/callback/_landscape.py +4 -4
- mindspore/train/callback/_loss_monitor.py +2 -2
- mindspore/train/callback/_on_request_exit.py +2 -2
- mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
- mindspore/train/callback/_summary_collector.py +15 -8
- mindspore/train/callback/_time_monitor.py +58 -5
- mindspore/train/data_sink.py +5 -11
- mindspore/train/dataset_helper.py +84 -57
- mindspore/train/loss_scale_manager.py +2 -2
- mindspore/train/metrics/__init__.py +3 -3
- mindspore/train/metrics/cosine_similarity.py +1 -1
- mindspore/train/metrics/hausdorff_distance.py +3 -2
- mindspore/train/metrics/mean_surface_distance.py +3 -2
- mindspore/train/metrics/metric.py +39 -19
- mindspore/train/metrics/roc.py +2 -2
- mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
- mindspore/train/mind_ir_pb2.py +85 -36
- mindspore/train/model.py +187 -47
- mindspore/train/serialization.py +487 -161
- mindspore/train/summary/_summary_adapter.py +1 -1
- mindspore/train/summary/_writer_pool.py +3 -2
- mindspore/train/summary/summary_record.py +37 -17
- mindspore/train/train_thor/convert_utils.py +3 -3
- mindspore/train/train_thor/dataset_helper.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/vcmeta.dll +0 -0
- mindspore/vcruntime140.dll +0 -0
- mindspore/vcruntime140_1.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/METADATA +7 -4
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/RECORD +429 -486
- mindspore/_extends/graph_kernel/expander.py +0 -80
- mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
- mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
- mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
- mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
- mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
- mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
- mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
- mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
- mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
- mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
- mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
- mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
- mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
- mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
- mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
- mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
- mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
- mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
- mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
- mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
- mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
- mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
- mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
- mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
- mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
- mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
- mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
- mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
- mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
- mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
- mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
- mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
- mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
- mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
- mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
- mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
- mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
- mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
- mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
- mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
- mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
- mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
- mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
- mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
- mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
- mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
- mindspore/dataset/datapreprocess/__init__.py +0 -20
- mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
- mindspore/include/api/net.h +0 -142
- mindspore/nn/lr_scheduler.py +0 -262
- mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
- mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
- mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
- mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
- mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
- mindspore/ops/_op_impl/_custom_op/flash_attention/__init__.py +0 -0
- mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +0 -350
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +0 -409
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +0 -578
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +0 -199
- mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +0 -446
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/__init__.py +0 -0
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/sparse_tiling.py +0 -45
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/strategy.py +0 -67
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +0 -62
- mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
- mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
- mindspore/rewrite/node_visitor.py +0 -44
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/WHEEL +0 -0
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/entry_points.txt +0 -0
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/top_level.txt +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2022 Huawei Technologies Co., Ltd
|
|
1
|
+
# Copyright 2022-2023 Huawei Technologies Co., Ltd
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
# you may not use this file except in compliance with the License.
|
|
@@ -19,6 +19,9 @@ import shutil
|
|
|
19
19
|
from mindspore import log as logger
|
|
20
20
|
from mindspore._extends.parallel_compile.akg_compiler.tbe_topi import get_op_reg_info
|
|
21
21
|
|
|
22
|
+
O_SUFFIX = ".o"
|
|
23
|
+
JSON_SUFFIX = ".json"
|
|
24
|
+
|
|
22
25
|
|
|
23
26
|
def update_attr(attr, new_attr):
|
|
24
27
|
"""Update new_attr to attr."""
|
|
@@ -111,8 +114,8 @@ def select_best(src_dirs, dst_dir, op_name):
|
|
|
111
114
|
max_block_dim = 1
|
|
112
115
|
max_block_dim_idx = -1
|
|
113
116
|
for i, src_dir in enumerate(src_dirs):
|
|
114
|
-
o_path = os.path.join(src_dir, op_name +
|
|
115
|
-
json_path = os.path.join(src_dir, op_name +
|
|
117
|
+
o_path = os.path.join(src_dir, op_name + O_SUFFIX)
|
|
118
|
+
json_path = os.path.join(src_dir, op_name + JSON_SUFFIX)
|
|
116
119
|
if os.path.isfile(o_path) and os.path.isfile(json_path):
|
|
117
120
|
with open(json_path, 'r') as f:
|
|
118
121
|
json_str = f.read()
|
|
@@ -121,10 +124,10 @@ def select_best(src_dirs, dst_dir, op_name):
|
|
|
121
124
|
max_block_dim_idx = i
|
|
122
125
|
max_block_dim = json_dict["blockDim"]
|
|
123
126
|
if max_block_dim_idx >= 0:
|
|
124
|
-
o_path = os.path.join(src_dirs[max_block_dim_idx], op_name +
|
|
125
|
-
json_path = os.path.join(src_dirs[max_block_dim_idx], op_name +
|
|
126
|
-
_copy_file(o_path, os.path.join(dst_dir, op_name +
|
|
127
|
-
_copy_file(json_path, os.path.join(dst_dir, op_name +
|
|
127
|
+
o_path = os.path.join(src_dirs[max_block_dim_idx], op_name + O_SUFFIX)
|
|
128
|
+
json_path = os.path.join(src_dirs[max_block_dim_idx], op_name + JSON_SUFFIX)
|
|
129
|
+
_copy_file(o_path, os.path.join(dst_dir, op_name + O_SUFFIX))
|
|
130
|
+
_copy_file(json_path, os.path.join(dst_dir, op_name + JSON_SUFFIX))
|
|
128
131
|
logger.info("{}, best compile result dir: {}".format(op_name, src_dirs[max_block_dim_idx]))
|
|
129
132
|
return True
|
|
130
133
|
logger.info("{}, best compile result dir not found".format(op_name))
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2023 Huawei Technologies Co., Ltd
|
|
1
|
+
# Copyright 2021-2023 Huawei Technologies Co., Ltd
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
# you may not use this file except in compliance with the License.
|
|
@@ -116,7 +116,7 @@ def __directory_creation(path, concat_path):
|
|
|
116
116
|
"""
|
|
117
117
|
path = os.path.join(path, concat_path)
|
|
118
118
|
if not os.path.isdir(path):
|
|
119
|
-
os.makedirs(path,
|
|
119
|
+
os.makedirs(path, 0o700)
|
|
120
120
|
return path
|
|
121
121
|
|
|
122
122
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2021 Huawei Technologies Co., Ltd
|
|
1
|
+
# Copyright 2021-2023 Huawei Technologies Co., Ltd
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
# you may not use this file except in compliance with the License.
|
|
@@ -32,7 +32,7 @@ def create_dir(dir_path):
|
|
|
32
32
|
is_exists = os.path.exists(dir_path)
|
|
33
33
|
if not is_exists:
|
|
34
34
|
try:
|
|
35
|
-
os.makedirs(dir_path,
|
|
35
|
+
os.makedirs(dir_path, 0o700, exist_ok=True)
|
|
36
36
|
except (OSError, TypeError) as excep:
|
|
37
37
|
raise excep
|
|
38
38
|
finally:
|
|
@@ -53,7 +53,7 @@ def write_to_file(file_path, content=""):
|
|
|
53
53
|
return False
|
|
54
54
|
|
|
55
55
|
with os.fdopen(os.open(file_path, os.O_WRONLY | os.O_CREAT, \
|
|
56
|
-
stat.S_IWUSR | stat.S_IRUSR
|
|
56
|
+
stat.S_IWUSR | stat.S_IRUSR), 'w') as file_handler:
|
|
57
57
|
file_handler.write(content)
|
|
58
58
|
return True
|
|
59
59
|
|
|
@@ -65,8 +65,9 @@ class LocalLock:
|
|
|
65
65
|
|
|
66
66
|
def __init__(self, lock_file):
|
|
67
67
|
if not os.path.exists(lock_file):
|
|
68
|
-
write_to_file(lock_file)
|
|
69
|
-
|
|
68
|
+
if not write_to_file(lock_file):
|
|
69
|
+
raise IOError("write_to_file failed.")
|
|
70
|
+
self.lock_fd = os.open(lock_file, os.O_WRONLY | os.O_CREAT, stat.S_IWUSR | stat.S_IRUSR)
|
|
70
71
|
|
|
71
72
|
def __del__(self):
|
|
72
73
|
try:
|
|
@@ -23,13 +23,13 @@ from .parser import (Parser, create_instance, is_supported_create_instance_type,
|
|
|
23
23
|
get_ast_type, get_node_type, get_args, get_args_default_values, get_ast_namespace_symbol,
|
|
24
24
|
get_operation_symbol, get_operation_namespace_symbol, get_parse_method_of_class, get_scope_name,
|
|
25
25
|
eval_script, get_script_id_attrs, expand_expr_statement, is_class_member_of_self, parse_cb,
|
|
26
|
-
convert_to_ms_tensor, get_object_description,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
convert_to_ms_tensor, get_object_description, get_ms_class_name, is_class_type, check_obj_bool,
|
|
27
|
+
python_isinstance, ms_isinstance, convert_to_ms_csrtensor, convert_to_ms_cootensor,
|
|
28
|
+
convert_class_to_function, convert_cell_list_to_sequence, is_cell_list, get_obj_from_sequence,
|
|
29
|
+
get_type, is_class_member_recursive, get_global_params, get_adapter_tensor_attr,
|
|
30
|
+
get_obj_defined_from_obj_type, is_from_third_party_library, get_const_abs, get_const_round,
|
|
31
|
+
get_const_len, is_adapter_tensor_class, is_adapter_parameter_class, convert_to_namedtuple,
|
|
32
|
+
is_module_list)
|
|
33
33
|
|
|
34
34
|
__all__ = ['Parser', 'create_instance', 'is_supported_create_instance_type', 'generate_scope', 'get_attr_from_object',
|
|
35
35
|
'get_bprop_method_of_class', 'get_class_instance_type', 'get_class_member_namespace_symbol',
|
|
@@ -37,11 +37,9 @@ __all__ = ['Parser', 'create_instance', 'is_supported_create_instance_type', 'ge
|
|
|
37
37
|
'get_ast_type', 'get_node_type', 'get_args', 'get_args_default_values', 'get_ast_namespace_symbol',
|
|
38
38
|
'get_operation_symbol', 'get_operation_namespace_symbol', 'get_parse_method_of_class', 'get_scope_name',
|
|
39
39
|
'eval_script', 'get_script_id_attrs', 'expand_expr_statement', 'is_class_member_of_self', 'parse_cb',
|
|
40
|
-
'resolve_symbol', 'convert_to_ms_tensor', 'get_object_description', '
|
|
41
|
-
'
|
|
42
|
-
'
|
|
43
|
-
'
|
|
44
|
-
'
|
|
45
|
-
'
|
|
46
|
-
'get_const_abs', 'get_const_round', 'get_const_len', 'is_adapter_tensor_class',
|
|
47
|
-
'is_adapter_parameter_class',]
|
|
40
|
+
'resolve_symbol', 'convert_to_ms_tensor', 'get_object_description', 'get_ms_class_name', 'is_class_type',
|
|
41
|
+
'check_obj_bool', 'python_isinstance', 'ms_isinstance', 'convert_to_ms_csrtensor', 'convert_to_ms_cootensor',
|
|
42
|
+
'convert_class_to_function', 'convert_cell_list_to_sequence', 'is_cell_list', 'get_obj_from_sequence',
|
|
43
|
+
'get_type', 'is_class_member_recursive', 'get_adapter_tensor_attr', 'get_obj_defined_from_obj_type',
|
|
44
|
+
'is_from_third_party_library', 'get_const_abs', 'get_const_round', 'get_const_len',
|
|
45
|
+
'is_adapter_tensor_class', 'is_adapter_parameter_class', 'convert_to_namedtuple', 'is_module_list']
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This is the Python adaptation and derivative work of Myia (https://github.com/mila-iqia/myia/).
|
|
2
2
|
#
|
|
3
|
-
# Copyright 2020-
|
|
3
|
+
# Copyright 2020-2023 Huawei Technologies Co., Ltd
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
6
|
# you may not use this file except in compliance with the License.
|
|
@@ -30,6 +30,7 @@ class Namespace:
|
|
|
30
30
|
name (str): The namespace's name.
|
|
31
31
|
dicts (dict): A list of dict containing the namespace's variable.
|
|
32
32
|
"""
|
|
33
|
+
|
|
33
34
|
def __init__(self, name, *dicts):
|
|
34
35
|
self.name = name
|
|
35
36
|
self.dicts = dicts
|
|
@@ -57,6 +58,7 @@ class CellNamespace(Namespace):
|
|
|
57
58
|
Args:
|
|
58
59
|
name (str): Valid module name, it can be imported.
|
|
59
60
|
"""
|
|
61
|
+
|
|
60
62
|
def __init__(self, name):
|
|
61
63
|
mod_dict = vars(__import__(name, fromlist=['_']))
|
|
62
64
|
builtins_dict = vars(builtins)
|
|
@@ -79,6 +81,7 @@ class ClosureNamespace(Namespace):
|
|
|
79
81
|
Args:
|
|
80
82
|
fn (Function): A python function.
|
|
81
83
|
"""
|
|
84
|
+
|
|
82
85
|
def __init__(self, fn):
|
|
83
86
|
name = f'{fn.__module__}..<{fn.__name__}>'
|
|
84
87
|
names = fn.__code__.co_freevars
|
|
@@ -101,6 +104,7 @@ class ClassMemberNamespace(Namespace):
|
|
|
101
104
|
Args:
|
|
102
105
|
obj (Object): A python class object.
|
|
103
106
|
"""
|
|
107
|
+
|
|
104
108
|
def __init__(self, obj):
|
|
105
109
|
self.__class_member_namespace__ = True
|
|
106
110
|
label = f'{obj.__module__}..<{obj.__class__.__name__}::{id(obj)}>'
|
|
@@ -108,8 +112,6 @@ class ClassMemberNamespace(Namespace):
|
|
|
108
112
|
|
|
109
113
|
def __getitem__(self, name):
|
|
110
114
|
d, = self.dicts
|
|
111
|
-
if name == "self":
|
|
112
|
-
return d
|
|
113
115
|
if name == "namespace":
|
|
114
116
|
return self
|
|
115
117
|
try:
|
|
@@ -127,36 +129,8 @@ class ClassMemberNamespace(Namespace):
|
|
|
127
129
|
logger.warning(f"The private attribute or method '{name}' is used in '{cls.__name__}'. " + \
|
|
128
130
|
f"In graph mode, '{name}' will be adjusted to '{private_member}' for parsing.")
|
|
129
131
|
return getattr(d, private_member)
|
|
130
|
-
logger.info(f"'{cls.__name__
|
|
132
|
+
logger.info(f"'{cls.__name__}' object has no attribute or method: '{name}', so will return None.")
|
|
131
133
|
raise AttributeError(name)
|
|
132
134
|
|
|
133
|
-
|
|
134
|
-
class ClassAttrNamespace(Namespace):
|
|
135
|
-
"""
|
|
136
|
-
Namespace of a class.
|
|
137
|
-
|
|
138
|
-
Args:
|
|
139
|
-
obj (Object): A python class object.
|
|
140
|
-
"""
|
|
141
|
-
def __init__(self, obj):
|
|
142
|
-
name = f'{obj.__module__}..<{obj.__class__.__name__}::{id(obj)}>'
|
|
143
|
-
super().__init__(name, obj)
|
|
144
|
-
|
|
145
135
|
def __getattr__(self, name):
|
|
146
|
-
|
|
147
|
-
try:
|
|
148
|
-
if hasattr(d, name):
|
|
149
|
-
return getattr(d, name)
|
|
150
|
-
return d.__dict__[name]
|
|
151
|
-
except ValueError:
|
|
152
|
-
raise UnboundLocalError(name)
|
|
153
|
-
except KeyError:
|
|
154
|
-
# Class private attribute.
|
|
155
|
-
cls = d.__class__
|
|
156
|
-
if name.startswith("__"):
|
|
157
|
-
private_attr = "_" + cls.__name__ + name
|
|
158
|
-
if hasattr(d, private_attr):
|
|
159
|
-
logger.warning(f"The private attribute or method '{name}' is used in '{cls.__name__}'. " + \
|
|
160
|
-
f"In graph mode, '{name}' will be adjusted to '{private_attr}' for parsing.")
|
|
161
|
-
return getattr(d, private_attr)
|
|
162
|
-
raise AttributeError(f"'{cls.__name__ }' object has no attribute or method: '{name}'.")
|
|
136
|
+
return self.__getitem__(name)
|
|
@@ -24,6 +24,8 @@ import re
|
|
|
24
24
|
import hashlib
|
|
25
25
|
import inspect
|
|
26
26
|
import types
|
|
27
|
+
from collections import namedtuple
|
|
28
|
+
from typing import NamedTuple
|
|
27
29
|
from textwrap import dedent
|
|
28
30
|
import numpy
|
|
29
31
|
|
|
@@ -42,7 +44,7 @@ from mindspore.common import mutable
|
|
|
42
44
|
from mindspore.common._register_for_adapter import ms_adapter_registry
|
|
43
45
|
from mindspore._checkparam import is_stub_tensor
|
|
44
46
|
from mindspore.ops._tracefunc import _PackSourceBuilder
|
|
45
|
-
from .namespace import Namespace, CellNamespace, ClosureNamespace, ClassMemberNamespace
|
|
47
|
+
from .namespace import Namespace, CellNamespace, ClosureNamespace, ClassMemberNamespace
|
|
46
48
|
from .resources import parse_object_map, ops_symbol_map, convert_object_map, convert_class_to_function_map, trope_ns
|
|
47
49
|
from .resources import SYMBOL_UNDEFINE
|
|
48
50
|
from ...common.api import _convert_python_data
|
|
@@ -121,43 +123,15 @@ _hybrid_type = (
|
|
|
121
123
|
|
|
122
124
|
# Unsupported python builtin type in JIT Fallback.
|
|
123
125
|
_fallback_unsupported_python_builtin_type = (
|
|
124
|
-
compile, eval, exec
|
|
125
|
-
memoryview, property,
|
|
126
|
+
compile, eval, exec
|
|
126
127
|
)
|
|
127
128
|
|
|
128
129
|
_modules_from_mindspore = (
|
|
129
|
-
"mindspore",
|
|
130
|
-
"
|
|
131
|
-
"
|
|
132
|
-
"
|
|
133
|
-
"
|
|
134
|
-
"mindcv", # https://github.com/mindspore-lab/mindcv
|
|
135
|
-
"mindspore_rec", # https://github.com/mindspore-lab/mindrec
|
|
136
|
-
"mindaudio", # https://github.com/mindspore-lab/mindaudio
|
|
137
|
-
"mindone", # https://github.com/mindspore-lab/mindone
|
|
138
|
-
"mindspore_rl", # https://github.com/mindspore-lab/mindrl
|
|
139
|
-
"mindformers", # https://github.com/mindspore-lab/mindformers
|
|
140
|
-
"mindpet", # https://github.com/mindspore-lab/mindpet
|
|
141
|
-
"mindpose", # https://github.com/mindspore-lab/mindpose
|
|
142
|
-
"mindface", # https://github.com/mindspore-lab/mindface
|
|
143
|
-
"mindsearch", # https://github.com/mindspore-lab/mindsearch
|
|
144
|
-
"mindinsight", # https://gitee.com/mindspore/mindinsight
|
|
145
|
-
"mindelec", # https://gitee.com/mindspore/mindscience
|
|
146
|
-
"mindflow", # https://gitee.com/mindspore/mindscience
|
|
147
|
-
"mindsponge", # https://gitee.com/mindspore/mindscience
|
|
148
|
-
"mindearth", # https://gitee.com/mindspore/mindscience
|
|
149
|
-
"sciai", # https://gitee.com/mindspore/mindscience
|
|
150
|
-
"mindquantum", # https://gitee.com/mindspore/mindquantum
|
|
151
|
-
"mindarmour", # https://gitee.com/mindspore/mindarmour
|
|
152
|
-
"mindpandas", # https://gitee.com/mindspore/mindpandas
|
|
153
|
-
"mindvision", # https://gitee.com/mindspore/vision
|
|
154
|
-
"mindspore_gl", # https://gitee.com/mindspore/graphlearning
|
|
155
|
-
"mindspore_federated", # https://gitee.com/mindspore/federated
|
|
156
|
-
"mindspore_gs", # https://gitee.com/mindspore/golden-stick
|
|
157
|
-
"mindspore_serving", # https://gitee.com/mindspore/serving
|
|
158
|
-
"mindspore_xai", # https://gitee.com/mindspore/xai
|
|
159
|
-
"mindspore_hub", # https://gitee.com/mindspore/hub
|
|
160
|
-
"ringmo_framework", # https://gitee.com/mindspore/ringmo-framework
|
|
130
|
+
"mindspore", "msadapter", "mindocr", "mindyolo", "mindnlp", "mindcv", "mindspore_rec", "mindaudio", "mindone",
|
|
131
|
+
"mindspore_rl", "mindformers", "mindpet", "mindpose", "mindface", "mindsearch", "mindinsight", "mindelec",
|
|
132
|
+
"mindflow", "mindsponge", "mindearth", "sciai", "mindquantum", "mindarmour", "mindpandas", "mindvision",
|
|
133
|
+
"mindspore_gl", "mindspore_federated", "mindspore_gs", "mindspore_serving", "mindspore_xai", "mindspore_hub",
|
|
134
|
+
"ringmo_framework", "troubleshooter", "mindtorch",
|
|
161
135
|
)
|
|
162
136
|
|
|
163
137
|
_global_params = {}
|
|
@@ -190,6 +164,7 @@ def get_attr_from_object(obj, attr_name=None):
|
|
|
190
164
|
Returns:
|
|
191
165
|
Object, obj's attr.
|
|
192
166
|
"""
|
|
167
|
+
|
|
193
168
|
if obj is not None and attr_name is not None and hasattr(obj, attr_name):
|
|
194
169
|
return getattr(obj, attr_name)
|
|
195
170
|
return None
|
|
@@ -206,6 +181,7 @@ def get_parse_method_of_class(obj, parse_method=None):
|
|
|
206
181
|
Returns:
|
|
207
182
|
Function, obj's method.
|
|
208
183
|
"""
|
|
184
|
+
|
|
209
185
|
method_name = None
|
|
210
186
|
if parse_method is not None:
|
|
211
187
|
method_name = parse_method
|
|
@@ -229,6 +205,7 @@ def get_bprop_method_of_class(obj, parse_method=None):
|
|
|
229
205
|
Returns:
|
|
230
206
|
Function, obj's method.
|
|
231
207
|
"""
|
|
208
|
+
|
|
232
209
|
if isinstance(obj, nn.Cell):
|
|
233
210
|
method_name = "bprop"
|
|
234
211
|
return get_attr_from_object(obj, method_name)
|
|
@@ -475,11 +452,11 @@ def create_instance(cls_type, params=None):
|
|
|
475
452
|
def convert_class_to_function(cls_str, cls_obj):
|
|
476
453
|
"""Convert class to function."""
|
|
477
454
|
if issubclass(cls_obj, (Parameter, ops.MultitypeFuncGraph)):
|
|
478
|
-
raise ValueError(f"Failed to compile in GRAPH_MODE because creating {cls_str} instances is not "
|
|
479
|
-
f"supported in 'construct' or @jit decorated function. Try to create {cls_str} "
|
|
480
|
-
f"instances external such as initialized in the method '__init__' before assigning. "
|
|
481
|
-
f"For more details, please refer to "
|
|
482
|
-
f"https://www.mindspore.cn/docs/zh-CN/r2.
|
|
455
|
+
raise ValueError(f"Failed to compile in GRAPH_MODE because creating {cls_str} instances is not "
|
|
456
|
+
f"supported in 'construct' or @jit decorated function. Try to create {cls_str} "
|
|
457
|
+
f"instances external such as initialized in the method '__init__' before assigning. "
|
|
458
|
+
f"For more details, please refer to "
|
|
459
|
+
f"https://www.mindspore.cn/docs/zh-CN/r2.2/design/dynamic_graph_and_static_graph.html \n")
|
|
483
460
|
return convert_class_to_function_map.get(cls_str)
|
|
484
461
|
|
|
485
462
|
|
|
@@ -516,9 +493,14 @@ def is_cell_list(obj):
|
|
|
516
493
|
return isinstance(obj, nn.CellList)
|
|
517
494
|
|
|
518
495
|
|
|
496
|
+
def is_module_list(obj):
|
|
497
|
+
"""Check if obj is nn.ModuleList"""
|
|
498
|
+
return hasattr(obj, "__cell_as_list__") and not isinstance(obj, nn.CellList)
|
|
499
|
+
|
|
500
|
+
|
|
519
501
|
def convert_cell_list_to_sequence(obj):
|
|
520
502
|
"""Convert nn.CellList to sequence."""
|
|
521
|
-
if not
|
|
503
|
+
if not hasattr(obj, "__cell_as_list__"):
|
|
522
504
|
raise TypeError(f"Obj should be nn.CellList, but got {obj}")
|
|
523
505
|
if not hasattr(obj, "_cells"):
|
|
524
506
|
raise AttributeError(f"nn.CellList is missing _cells property.")
|
|
@@ -545,14 +527,6 @@ def get_module_namespace(obj):
|
|
|
545
527
|
return mod_namespace
|
|
546
528
|
|
|
547
529
|
|
|
548
|
-
def get_class_attr_namespace_symbol(obj):
|
|
549
|
-
"""Get class namespace."""
|
|
550
|
-
logger.debug("get class namespace, object: %r", obj)
|
|
551
|
-
class_namespace = ClassAttrNamespace(obj)
|
|
552
|
-
logger.debug("class namespace: %r", class_namespace)
|
|
553
|
-
return class_namespace
|
|
554
|
-
|
|
555
|
-
|
|
556
530
|
def get_class_member_namespace_symbol(obj):
|
|
557
531
|
"""Get obj class member type."""
|
|
558
532
|
logger.debug("get class instance namespace, object: %r", obj)
|
|
@@ -583,6 +557,7 @@ def get_obj_defined_from_obj_type(obj_type):
|
|
|
583
557
|
"List": list,
|
|
584
558
|
"Tuple": tuple,
|
|
585
559
|
"Dictionary": dict,
|
|
560
|
+
"NamedTuple": NamedTuple,
|
|
586
561
|
}
|
|
587
562
|
|
|
588
563
|
return obj_type_defined_map.get(obj_type)
|
|
@@ -637,6 +612,12 @@ def convert_to_ms_cootensor(data):
|
|
|
637
612
|
return COOTensor(coo_tensor=data)
|
|
638
613
|
|
|
639
614
|
|
|
615
|
+
def convert_to_namedtuple(type_name, key_sequeue, value_sequeue):
|
|
616
|
+
"""Convert C++ namedtuple to python object namedtuple."""
|
|
617
|
+
logger.debug(f"type_name: {type_name}, key_sequeue: {key_sequeue}, value_sequeue: {value_sequeue}")
|
|
618
|
+
return namedtuple(type_name, [*key_sequeue])(*value_sequeue)
|
|
619
|
+
|
|
620
|
+
|
|
640
621
|
def get_object_description(obj, fname, fline):
|
|
641
622
|
"""Return method or funcition description for error report, include location, class name, etc."""
|
|
642
623
|
if isinstance(obj, types.MethodType):
|
|
@@ -793,14 +774,24 @@ def _convert_stub_tensor(data):
|
|
|
793
774
|
if is_stub_tensor(data):
|
|
794
775
|
return data.stub_sync()
|
|
795
776
|
if isinstance(data, tuple):
|
|
777
|
+
# Handle namedtuple since its type is tuple.
|
|
778
|
+
if hasattr(data, "_fields"):
|
|
779
|
+
type_name = data.__class__.__name__
|
|
780
|
+
data_dict = data._asdict()
|
|
781
|
+
fields = data_dict.keys()
|
|
782
|
+
return namedtuple(type_name, fields)(**_convert_stub_tensor(data_dict))
|
|
796
783
|
return tuple(_convert_stub_tensor(x) for x in data)
|
|
797
784
|
if isinstance(data, list):
|
|
798
785
|
# Keep the list object not change.
|
|
799
|
-
for
|
|
800
|
-
|
|
786
|
+
for i in range(len(data)):
|
|
787
|
+
data[i] = _convert_stub_tensor(data[i])
|
|
801
788
|
return data
|
|
802
789
|
if isinstance(data, dict):
|
|
803
|
-
|
|
790
|
+
# Keep the dict object not change.
|
|
791
|
+
keys = tuple(data.keys())
|
|
792
|
+
for key in keys:
|
|
793
|
+
data[_convert_stub_tensor(key)] = _convert_stub_tensor(data.pop(key))
|
|
794
|
+
return data
|
|
804
795
|
return data
|
|
805
796
|
|
|
806
797
|
|
|
@@ -844,15 +835,9 @@ def get_script_id_attrs(script):
|
|
|
844
835
|
return res
|
|
845
836
|
|
|
846
837
|
|
|
847
|
-
def merge_global_params(global_dict):
|
|
848
|
-
"""Merge the global parameter."""
|
|
849
|
-
logger.debug(f'merge global_dict: {global_dict}')
|
|
850
|
-
_global_params.update(global_dict)
|
|
851
|
-
|
|
852
|
-
|
|
853
838
|
def get_global_params():
|
|
854
839
|
"""Get the global parameter."""
|
|
855
|
-
logger.debug(f
|
|
840
|
+
logger.debug(f"get global_dict: {_global_params}")
|
|
856
841
|
return _global_params
|
|
857
842
|
|
|
858
843
|
|
|
@@ -877,8 +862,6 @@ class ThirdPartyLibraryChecker:
|
|
|
877
862
|
4. Third-party libraries have 'site-packages' in their installation path.
|
|
878
863
|
"""
|
|
879
864
|
def __init__(self):
|
|
880
|
-
self.jit_modules = self.get_jit_modules()
|
|
881
|
-
self.jit_ignore_modules = self.get_jit_ignore_modules()
|
|
882
865
|
self.user_workspace_dir = self.get_top_level_module_path(os.getcwd())
|
|
883
866
|
self.python_builtin_dir = os.path.abspath(os.path.dirname(os.__file__))
|
|
884
867
|
|
|
@@ -927,11 +910,13 @@ class ThirdPartyLibraryChecker:
|
|
|
927
910
|
"""Check if module is a third-party library."""
|
|
928
911
|
module_leftmost_name = module.__name__.split('.')[0]
|
|
929
912
|
# Modules in jit_ignore_modules are treated as third-party libraries, such as sys.builtin_module_names.
|
|
930
|
-
|
|
913
|
+
jit_ignore_modules = self.get_jit_ignore_modules()
|
|
914
|
+
if module_leftmost_name in jit_ignore_modules:
|
|
931
915
|
logger.debug(f"Found third-party module '{module_leftmost_name}' in jit_ignore_modules.")
|
|
932
916
|
return True
|
|
933
917
|
# Modules in jit_modules require jit and they are considered to be in user workspace.
|
|
934
|
-
|
|
918
|
+
jit_modules = self.get_jit_modules()
|
|
919
|
+
if module_leftmost_name in jit_modules:
|
|
935
920
|
logger.debug(f"Found user-defined module '{module_leftmost_name}' in jit_modules.")
|
|
936
921
|
return False
|
|
937
922
|
# A modules without __file__ attribute is considered to be in user workspace.
|
|
@@ -965,10 +950,13 @@ class ThirdPartyLibraryChecker:
|
|
|
965
950
|
"""Check if value is from a third-party library."""
|
|
966
951
|
if inspect.ismodule(value):
|
|
967
952
|
module = value
|
|
968
|
-
elif
|
|
953
|
+
elif (isinstance(value, types.FunctionType) and not hasattr(value, "__jit_function__")) or \
|
|
954
|
+
(isinstance(value, types.MethodType) and not hasattr(value.__func__, "__jit_function__")):
|
|
969
955
|
if value in _convert_map():
|
|
970
956
|
return False
|
|
971
957
|
module = inspect.getmodule(value)
|
|
958
|
+
if module is None:
|
|
959
|
+
return False
|
|
972
960
|
else:
|
|
973
961
|
return False
|
|
974
962
|
return self.get_module_source_location(module) == MODULE_FROM_THIRDPARTY
|
|
@@ -983,12 +971,12 @@ def is_from_third_party_library(value):
|
|
|
983
971
|
|
|
984
972
|
|
|
985
973
|
def get_const_abs(obj):
|
|
986
|
-
"""
|
|
974
|
+
"""Get absolute value of const object."""
|
|
987
975
|
return abs(obj)
|
|
988
976
|
|
|
989
977
|
|
|
990
978
|
def get_const_round(obj):
|
|
991
|
-
"""
|
|
979
|
+
"""Get round value of const object."""
|
|
992
980
|
if isinstance(obj, tuple):
|
|
993
981
|
val = obj[0]
|
|
994
982
|
point_num = obj[1]
|
|
@@ -997,7 +985,7 @@ def get_const_round(obj):
|
|
|
997
985
|
|
|
998
986
|
|
|
999
987
|
def get_const_len(obj):
|
|
1000
|
-
"""
|
|
988
|
+
"""Get the length of const object."""
|
|
1001
989
|
return len(obj)
|
|
1002
990
|
|
|
1003
991
|
|
|
@@ -1051,6 +1039,8 @@ class Parser:
|
|
|
1051
1039
|
if value == item:
|
|
1052
1040
|
logger.debug(f"Found unsupported internal type: '{value}'.")
|
|
1053
1041
|
return True
|
|
1042
|
+
if ms_adapter_registry.is_registered and value == ms_adapter_registry.tensor:
|
|
1043
|
+
return True
|
|
1054
1044
|
return False
|
|
1055
1045
|
|
|
1056
1046
|
@staticmethod
|
|
@@ -1161,7 +1151,11 @@ class Parser:
|
|
|
1161
1151
|
"""Get mindspore builtin namespace and symbol."""
|
|
1162
1152
|
if var in self.closure_namespace:
|
|
1163
1153
|
logger.debug(f"Found '{var}' in closure_namespace {self.closure_namespace.__str__()}.")
|
|
1164
|
-
|
|
1154
|
+
try:
|
|
1155
|
+
value = self.closure_namespace[var]
|
|
1156
|
+
return self.closure_namespace, var, value
|
|
1157
|
+
except UnboundLocalError:
|
|
1158
|
+
return self.closure_namespace, var, None
|
|
1165
1159
|
if var in self.global_namespace:
|
|
1166
1160
|
logger.debug(f"Found '{var}' in global_namespace {self.global_namespace.__str__()}.")
|
|
1167
1161
|
value = self.global_namespace[var]
|
|
@@ -1174,7 +1168,7 @@ class Parser:
|
|
|
1174
1168
|
return support_info
|
|
1175
1169
|
|
|
1176
1170
|
logger.debug(f"The name '{var}' is an undefined symbol.")
|
|
1177
|
-
return None, None
|
|
1171
|
+
return None, None, None
|
|
1178
1172
|
|
|
1179
1173
|
def check_third_party_library_side_effect(self, var, attr):
|
|
1180
1174
|
"""Check if value is from a third-party library."""
|
|
@@ -1192,11 +1186,12 @@ class Parser:
|
|
|
1192
1186
|
"json": {"load", "loads", "dump", "dumps"},
|
|
1193
1187
|
"pickle": {"load", "loads", "dump", "dumps"},
|
|
1194
1188
|
"h5py": {"File", "Group", "Dataset"},
|
|
1195
|
-
"os": {"listdir", "isfile", "exists", "isdir", "mkdir", "remove", "rmdir", "symlink"},
|
|
1189
|
+
"os": {"listdir", "isfile", "exists", "isdir", "mkdir", "remove", "rmdir", "symlink", "rename"},
|
|
1196
1190
|
"shutil": {"copy", "copy2", "copytree", "move", "rmtree"},
|
|
1197
1191
|
"pathlib": {"Path", "mkdir", "rmdir", "unlink", "rename", "symlink_to"},
|
|
1198
1192
|
"glob": {"glob", "iglob"},
|
|
1199
|
-
"zipfile": {"zipfile", "ZipFile", "write", "extractall"}
|
|
1193
|
+
"zipfile": {"zipfile", "ZipFile", "write", "extractall"},
|
|
1194
|
+
"troubleshooter": {"save", "load"}}
|
|
1200
1195
|
if var in self.global_namespace:
|
|
1201
1196
|
logger.debug(f"Found '{var}' in global_namespace {self.global_namespace.__str__()}.")
|
|
1202
1197
|
value = self.global_namespace[var]
|
|
@@ -1268,7 +1263,6 @@ class Parser:
|
|
|
1268
1263
|
start_lineno += 1
|
|
1269
1264
|
return comments
|
|
1270
1265
|
|
|
1271
|
-
|
|
1272
1266
|
def get_source_code(self, start_lineno, start_colno, end_lineno, end_colno):
|
|
1273
1267
|
"""
|
|
1274
1268
|
Get the script source at the location.
|
|
@@ -1282,6 +1276,7 @@ class Parser:
|
|
|
1282
1276
|
Returns:
|
|
1283
1277
|
str, the source string.
|
|
1284
1278
|
"""
|
|
1279
|
+
|
|
1285
1280
|
if start_lineno == 0:
|
|
1286
1281
|
logger.critical('start_lineno should not be 0')
|
|
1287
1282
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This is the Python adaptation and derivative work of Myia (https://github.com/mila-iqia/myia/).
|
|
2
2
|
#
|
|
3
|
-
# Copyright 2020-
|
|
3
|
+
# Copyright 2020-2023 Huawei Technologies Co., Ltd
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
6
|
# you may not use this file except in compliance with the License.
|