mindspore 1.10.0__cp38-cp38-win_amd64.whl → 2.0.0rc1__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/ConcurrencyCheck.dll +0 -0
- mindspore/CppBuildInsights.dll +0 -0
- mindspore/CppCoreCheck.dll +0 -0
- mindspore/EnumIndex.dll +0 -0
- mindspore/EspXEngine.dll +0 -0
- mindspore/HResultCheck.dll +0 -0
- mindspore/KernelTraceControl.dll +0 -0
- mindspore/LocalESPC.dll +0 -0
- mindspore/Microsoft.Diagnostics.Tracing.EventSource.dll +0 -0
- mindspore/Microsoft.VisualStudio.RemoteControl.dll +0 -0
- mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
- mindspore/Microsoft.VisualStudio.Utilities.Internal.dll +0 -0
- mindspore/Newtonsoft.Json.dll +0 -0
- mindspore/System.Runtime.CompilerServices.Unsafe.dll +0 -0
- mindspore/VariantClear.dll +0 -0
- mindspore/__init__.py +9 -4
- 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 +102 -0
- mindspore/_checkparam.py +1066 -1001
- mindspore/_extends/builtin_operations.py +32 -4
- mindspore/_extends/graph_kernel/model/graph_split.py +66 -222
- mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +12 -9
- mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +119 -26
- mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +50 -50
- mindspore/_extends/parallel_compile/akg_compiler/util.py +9 -6
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +4 -25
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +9 -4
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -27
- mindspore/_extends/parse/__init__.py +5 -3
- mindspore/_extends/parse/namespace.py +17 -2
- mindspore/_extends/parse/parser.py +193 -34
- mindspore/_extends/parse/resources.py +7 -8
- mindspore/_extends/parse/standard_method.py +1780 -435
- mindspore/_extends/parse/trope.py +3 -1
- mindspore/amp.py +53 -58
- mindspore/atlprov.dll +0 -0
- mindspore/boost/adasum.py +3 -2
- mindspore/boost/boost.py +2 -2
- mindspore/boost/boost_cell_wrapper.py +46 -26
- mindspore/boost/dim_reduce.py +6 -5
- mindspore/boost/grad_accumulation.py +2 -1
- mindspore/boost/group_loss_scale_manager.py +1 -1
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/cfgpersist.dll +0 -0
- mindspore/clang_rt.asan_dbg_dynamic-x86_64.dll +0 -0
- mindspore/clang_rt.asan_dynamic-x86_64.dll +0 -0
- mindspore/common/__init__.py +11 -10
- mindspore/common/_decorator.py +2 -0
- mindspore/common/_register_for_adapter.py +55 -0
- mindspore/common/_stub_tensor.py +201 -0
- mindspore/common/_utils.py +57 -0
- mindspore/common/api.py +582 -297
- mindspore/common/dtype.py +66 -18
- mindspore/common/dump.py +2 -2
- mindspore/common/initializer.py +38 -1
- mindspore/common/jit_config.py +25 -13
- mindspore/common/mutable.py +53 -24
- mindspore/common/parameter.py +60 -37
- mindspore/common/seed.py +8 -24
- mindspore/common/sparse_tensor.py +927 -0
- mindspore/common/tensor.py +1627 -3900
- mindspore/communication/__init__.py +10 -5
- mindspore/communication/_comm_helper.py +78 -214
- mindspore/communication/_hccl_management.py +2 -1
- mindspore/communication/management.py +136 -47
- mindspore/config/op_info.config +501 -1008
- mindspore/context.py +291 -56
- mindspore/d3dcompiler_47.dll +0 -0
- mindspore/dataset/__init__.py +12 -8
- mindspore/dataset/audio/__init__.py +9 -9
- mindspore/dataset/audio/transforms.py +1090 -228
- mindspore/dataset/audio/utils.py +87 -39
- mindspore/dataset/audio/validators.py +223 -1
- mindspore/dataset/callback/ds_callback.py +17 -15
- mindspore/dataset/core/config.py +246 -17
- mindspore/dataset/core/py_util_helpers.py +4 -3
- mindspore/dataset/core/validator_helpers.py +10 -10
- mindspore/{parallel/nn/layers.py → dataset/debug/__init__.py} +7 -8
- mindspore/dataset/debug/debug_hook.py +65 -0
- mindspore/dataset/debug/pre_defined_hook.py +67 -0
- mindspore/dataset/engine/__init__.py +7 -3
- mindspore/dataset/engine/cache_client.py +9 -9
- mindspore/dataset/engine/datasets.py +648 -477
- mindspore/dataset/engine/datasets_audio.py +165 -167
- mindspore/dataset/engine/datasets_standard_format.py +93 -67
- mindspore/dataset/engine/datasets_text.py +492 -342
- mindspore/dataset/engine/datasets_user_defined.py +85 -50
- mindspore/dataset/engine/datasets_vision.py +1224 -699
- mindspore/dataset/engine/graphdata.py +134 -69
- mindspore/dataset/engine/iterators.py +50 -9
- mindspore/dataset/engine/offload.py +52 -31
- mindspore/dataset/engine/samplers.py +27 -24
- mindspore/dataset/engine/serializer_deserializer.py +14 -15
- mindspore/dataset/engine/validators.py +213 -52
- mindspore/dataset/text/__init__.py +10 -8
- mindspore/dataset/text/transforms.py +152 -57
- mindspore/dataset/text/utils.py +98 -49
- mindspore/dataset/text/validators.py +25 -0
- mindspore/dataset/transforms/__init__.py +4 -2
- mindspore/dataset/transforms/c_transforms.py +11 -13
- mindspore/dataset/transforms/py_transforms.py +2 -2
- mindspore/dataset/transforms/py_transforms_util.py +10 -0
- mindspore/dataset/transforms/transforms.py +13 -15
- mindspore/dataset/transforms/validators.py +7 -7
- mindspore/dataset/utils/__init__.py +2 -1
- mindspore/dataset/utils/browse_dataset.py +13 -13
- mindspore/dataset/utils/line_reader.py +121 -0
- mindspore/dataset/vision/__init__.py +8 -7
- mindspore/dataset/vision/c_transforms.py +125 -126
- mindspore/dataset/vision/py_transforms.py +37 -37
- mindspore/dataset/vision/py_transforms_util.py +23 -20
- mindspore/dataset/vision/transforms.py +316 -315
- mindspore/dataset/vision/utils.py +313 -17
- mindspore/dataset/vision/validators.py +6 -6
- mindspore/default_config.py +0 -1
- mindspore/dpcmi.dll +0 -0
- mindspore/{compression → experimental}/__init__.py +6 -5
- mindspore/experimental/map_parameter.py +275 -0
- mindspore/include/OWNERS +0 -1
- mindspore/include/api/callback/callback.h +9 -13
- mindspore/include/api/callback/ckpt_saver.h +2 -2
- mindspore/include/api/callback/loss_monitor.h +2 -2
- mindspore/include/api/callback/lr_scheduler.h +5 -5
- mindspore/include/api/callback/time_monitor.h +2 -2
- mindspore/include/api/callback/train_accuracy.h +4 -6
- mindspore/include/api/cfg.h +19 -6
- mindspore/include/api/context.h +70 -9
- mindspore/include/api/delegate.h +8 -1
- mindspore/include/api/dual_abi_helper.h +8 -24
- mindspore/include/api/metrics/accuracy.h +2 -2
- mindspore/include/api/metrics/metrics.h +4 -3
- mindspore/include/api/model.h +9 -4
- mindspore/include/api/model_group.h +68 -0
- mindspore/include/api/model_parallel_runner.h +17 -17
- mindspore/include/api/net.h +12 -11
- mindspore/include/api/serialization.h +20 -4
- mindspore/include/api/status.h +7 -1
- mindspore/include/api/types.h +25 -21
- mindspore/include/api/visible.h +4 -0
- mindspore/include/c_api/model_c.h +5 -0
- mindspore/include/c_api/status_c.h +1 -1
- mindspore/include/dataset/config.h +1 -1
- mindspore/include/dataset/constants.h +14 -0
- mindspore/include/dataset/text.h +59 -0
- mindspore/include/dataset/vision.h +56 -117
- mindspore/include/dataset/vision_lite.h +102 -0
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +28 -28
- mindspore/mindrecord/common/exceptions.py +2 -4
- mindspore/mindrecord/filereader.py +19 -1
- mindspore/mindrecord/filewriter.py +250 -88
- mindspore/mindrecord/mindpage.py +13 -13
- mindspore/mindrecord/shardheader.py +15 -15
- mindspore/mindrecord/shardreader.py +9 -0
- mindspore/mindrecord/shardwriter.py +29 -29
- mindspore/mindrecord/tools/cifar100_to_mr.py +9 -9
- mindspore/mindrecord/tools/cifar10_to_mr.py +9 -9
- mindspore/mindrecord/tools/csv_to_mr.py +4 -4
- mindspore/mindrecord/tools/imagenet_to_mr.py +70 -65
- mindspore/mindrecord/tools/mnist_to_mr.py +41 -41
- mindspore/mindrecord/tools/tfrecord_to_mr.py +6 -6
- mindspore/{libmindspore_backend.dll → 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 +1 -5
- mindspore/nn/cell.py +297 -234
- mindspore/nn/dynamic_lr.py +1 -1
- mindspore/nn/grad/cell_grad.py +17 -42
- mindspore/nn/layer/__init__.py +7 -4
- mindspore/nn/layer/activation.py +131 -88
- mindspore/nn/layer/basic.py +313 -613
- mindspore/nn/layer/channel_shuffle.py +103 -0
- mindspore/nn/layer/combined.py +1 -1
- mindspore/nn/layer/container.py +52 -6
- mindspore/nn/layer/conv.py +112 -43
- mindspore/nn/layer/dense.py +10 -9
- mindspore/nn/layer/embedding.py +36 -34
- mindspore/nn/layer/image.py +123 -27
- mindspore/nn/layer/math.py +108 -107
- mindspore/nn/layer/normalization.py +212 -366
- mindspore/nn/layer/padding.py +370 -42
- mindspore/nn/layer/pooling.py +1443 -219
- mindspore/nn/layer/rnn_cells.py +11 -16
- mindspore/nn/layer/rnns.py +38 -39
- mindspore/nn/layer/thor_layer.py +24 -25
- mindspore/nn/layer/timedistributed.py +5 -5
- mindspore/nn/layer/transformer.py +701 -0
- mindspore/nn/learning_rate_schedule.py +8 -8
- mindspore/nn/loss/__init__.py +9 -6
- mindspore/nn/loss/loss.py +678 -142
- mindspore/nn/metrics.py +53 -0
- mindspore/nn/optim/_dist_optimizer_registry.py +2 -2
- mindspore/nn/optim/ada_grad.py +8 -8
- mindspore/nn/optim/adadelta.py +2 -3
- mindspore/nn/optim/adafactor.py +18 -14
- mindspore/nn/optim/adam.py +429 -87
- mindspore/nn/optim/adamax.py +5 -6
- mindspore/nn/optim/adasum.py +10 -8
- mindspore/nn/optim/asgd.py +7 -7
- mindspore/nn/optim/ftrl.py +81 -11
- mindspore/nn/optim/lamb.py +7 -8
- mindspore/nn/optim/lars.py +4 -4
- mindspore/nn/optim/lazyadam.py +82 -7
- mindspore/nn/optim/momentum.py +8 -7
- mindspore/nn/optim/optimizer.py +19 -10
- mindspore/nn/optim/proximal_ada_grad.py +6 -5
- mindspore/nn/optim/rmsprop.py +3 -3
- mindspore/nn/optim/rprop.py +20 -16
- mindspore/nn/optim/sgd.py +21 -15
- mindspore/nn/optim/thor.py +23 -21
- mindspore/nn/probability/__init__.py +0 -2
- mindspore/nn/probability/bijector/bijector.py +7 -6
- mindspore/nn/probability/bijector/invert.py +4 -2
- mindspore/nn/probability/bijector/softplus.py +2 -2
- mindspore/nn/probability/bnn_layers/dense_variational.py +1 -1
- mindspore/nn/probability/bnn_layers/layer_distribution.py +2 -2
- mindspore/nn/probability/distribution/__init__.py +6 -0
- mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -2
- mindspore/nn/probability/distribution/_utils/utils.py +11 -17
- mindspore/nn/probability/distribution/bernoulli.py +6 -6
- mindspore/nn/probability/distribution/beta.py +1 -1
- mindspore/nn/probability/distribution/categorical.py +9 -9
- mindspore/nn/probability/distribution/cauchy.py +8 -8
- mindspore/nn/probability/distribution/distribution.py +12 -6
- mindspore/nn/probability/distribution/exponential.py +5 -5
- mindspore/nn/probability/distribution/gamma.py +3 -3
- mindspore/nn/probability/distribution/geometric.py +6 -5
- mindspore/nn/probability/distribution/gumbel.py +5 -5
- mindspore/nn/probability/distribution/half_normal.py +133 -0
- mindspore/nn/probability/distribution/laplace.py +128 -0
- mindspore/nn/probability/distribution/log_normal.py +0 -1
- mindspore/nn/probability/distribution/logistic.py +4 -5
- mindspore/nn/probability/distribution/normal.py +11 -15
- mindspore/nn/probability/distribution/poisson.py +6 -2
- mindspore/nn/probability/distribution/student_t.py +150 -0
- mindspore/nn/probability/distribution/transformed_distribution.py +4 -4
- mindspore/nn/probability/distribution/uniform.py +5 -5
- mindspore/nn/reinforcement/_tensors_queue.py +3 -3
- mindspore/nn/reinforcement/tensor_array.py +2 -2
- mindspore/nn/sparse/sparse.py +8 -1
- mindspore/nn/wrap/cell_wrapper.py +55 -27
- mindspore/nn/wrap/grad_reducer.py +20 -11
- mindspore/nn/wrap/loss_scale.py +47 -30
- mindspore/numpy/array_creations.py +33 -22
- mindspore/numpy/array_ops.py +46 -42
- mindspore/numpy/logic_ops.py +6 -27
- mindspore/numpy/math_ops.py +26 -19
- mindspore/numpy/utils.py +1 -8
- mindspore/numpy/utils_const.py +112 -62
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +6 -3
- mindspore/ops/_constants.py +0 -6
- mindspore/ops/_grad/__init__.py +2 -1
- mindspore/ops/_grad/grad_array_ops.py +209 -152
- mindspore/ops/_grad/grad_base.py +55 -17
- mindspore/ops/_grad/grad_clip_ops.py +11 -3
- mindspore/ops/_grad/grad_comm_ops.py +58 -47
- mindspore/ops/_grad/grad_implementations.py +21 -61
- mindspore/ops/_grad/grad_inner_ops.py +48 -6
- mindspore/ops/_grad/grad_math_ops.py +306 -161
- mindspore/ops/_grad/grad_nn_ops.py +192 -181
- mindspore/ops/_grad/grad_other_ops.py +1 -1
- mindspore/ops/_grad/grad_quant_ops.py +5 -5
- mindspore/ops/_grad/grad_sequence_ops.py +296 -0
- mindspore/ops/_grad/grad_sparse.py +15 -9
- mindspore/ops/_grad_experimental/__init__.py +1 -0
- mindspore/ops/_grad_experimental/grad_array_ops.py +441 -55
- mindspore/ops/_grad_experimental/grad_image_ops.py +25 -7
- mindspore/ops/_grad_experimental/grad_inner_ops.py +3 -44
- mindspore/ops/_grad_experimental/grad_linalg_ops.py +16 -21
- mindspore/ops/_grad_experimental/grad_math_ops.py +979 -49
- mindspore/ops/_grad_experimental/grad_nn_ops.py +78 -8
- mindspore/ops/_grad_experimental/grad_scalar_ops.py +112 -0
- mindspore/ops/_grad_experimental/grad_sparse_ops.py +197 -13
- mindspore/ops/_op_impl/__init__.py +3 -3
- mindspore/ops/_op_impl/_custom_op/__init__.py +0 -1
- mindspore/ops/_op_impl/_custom_op/_basic.py +0 -1
- mindspore/ops/_op_impl/_custom_op/batch_matmul_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold.py +4 -2
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold2.py +2 -2
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad_reduce.py +5 -5
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold_grad.py +3 -3
- mindspore/ops/_op_impl/_custom_op/cholesky_trsm_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/correction_mul.py +3 -3
- mindspore/ops/_op_impl/_custom_op/correction_mul_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +4 -8
- mindspore/ops/_op_impl/_custom_op/dsd_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad_reduce.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad_reduce.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fused_abs_max1_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/img2col_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +2 -2
- mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_right_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_left_cast_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_right_mul_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_impl.py +2 -2
- mindspore/ops/_op_impl/_custom_op/matmul_dds_grad_impl.py +0 -1
- mindspore/ops/_op_impl/_custom_op/matmul_dds_impl.py +0 -1
- mindspore/ops/_op_impl/_custom_op/matrix_combine_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/minmax_update_perchannel.py +2 -2
- mindspore/ops/_op_impl/_custom_op/minmax_update_perlayer.py +2 -2
- mindspore/ops/_op_impl/_custom_op/transpose02314_impl.py +1 -1
- mindspore/ops/_op_impl/aicpu/__init__.py +238 -3
- mindspore/ops/_op_impl/aicpu/abs.py +36 -0
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d.py +34 -0
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d_grad.py +34 -0
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d.py +39 -0
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d_grad.py +39 -0
- mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d_grad.py +37 -0
- mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d.py +42 -0
- mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d_grad.py +152 -0
- mindspore/ops/_op_impl/aicpu/add.py +43 -0
- mindspore/ops/_op_impl/aicpu/addcdiv.py +0 -32
- mindspore/ops/_op_impl/aicpu/addcmul.py +0 -84
- mindspore/ops/_op_impl/aicpu/affine_grid_grad.py +35 -0
- mindspore/ops/_op_impl/aicpu/arg_max.py +75 -0
- mindspore/ops/_op_impl/aicpu/arg_min.py +75 -0
- mindspore/ops/_op_impl/aicpu/argmin_with_value.py +43 -0
- mindspore/ops/_op_impl/aicpu/batch_matmul.py +43 -0
- mindspore/ops/_op_impl/aicpu/batch_norm_grad_grad.py +49 -0
- mindspore/ops/_op_impl/aicpu/bernoulli.py +48 -0
- mindspore/ops/_op_impl/aicpu/bessel_i0.py +31 -0
- mindspore/ops/_op_impl/aicpu/bias_add.py +44 -0
- mindspore/ops/_op_impl/aicpu/bias_add_grad.py +43 -0
- mindspore/ops/_op_impl/aicpu/bincount.py +33 -0
- mindspore/{nn/probability/infer/variational/__init__.py → ops/_op_impl/aicpu/cauchy.py} +17 -10
- mindspore/ops/_op_impl/aicpu/channel_shuffle.py +40 -0
- mindspore/ops/_op_impl/aicpu/cholesky.py +1 -1
- mindspore/ops/_op_impl/{cpu/bias_add.py → aicpu/choleskygrad.py} +9 -7
- mindspore/ops/_op_impl/aicpu/combined_non_max_suppression.py +42 -0
- mindspore/ops/_op_impl/aicpu/concat_offset.py +42 -0
- mindspore/ops/_op_impl/aicpu/concat_offset_v1.py +31 -0
- mindspore/ops/_op_impl/aicpu/conj.py +11 -0
- mindspore/ops/_op_impl/aicpu/crop_and_resize_grad_image.py +38 -0
- mindspore/ops/_op_impl/aicpu/cumulative_logsumexp.py +36 -0
- mindspore/ops/_op_impl/aicpu/deformable_offsets.py +38 -0
- mindspore/ops/_op_impl/aicpu/deformable_offsets_grad.py +2 -2
- mindspore/ops/_op_impl/aicpu/dense_to_sparse_set_operation.py +48 -0
- mindspore/ops/_op_impl/aicpu/diag.py +36 -0
- mindspore/ops/_op_impl/aicpu/diag_part.py +36 -0
- mindspore/ops/_op_impl/aicpu/diagonal.py +35 -0
- mindspore/ops/_op_impl/{cpu/bias_add_grad.py → aicpu/digamma.py} +9 -7
- mindspore/ops/_op_impl/aicpu/eig.py +35 -0
- mindspore/ops/_op_impl/aicpu/fft_with_size.py +41 -0
- mindspore/ops/_op_impl/aicpu/flatten.py +1 -0
- mindspore/ops/_op_impl/aicpu/fmax.py +36 -0
- mindspore/ops/_op_impl/aicpu/fmin.py +37 -0
- mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_with_fixed_ksize.py +1 -1
- mindspore/ops/_op_impl/aicpu/fse_decode.py +43 -0
- mindspore/ops/_op_impl/aicpu/glu.py +33 -0
- mindspore/ops/_op_impl/aicpu/glu_grad.py +34 -0
- mindspore/ops/_op_impl/aicpu/greater.py +41 -0
- mindspore/ops/_op_impl/aicpu/greater_equal.py +41 -0
- mindspore/ops/_op_impl/aicpu/index_put.py +50 -0
- mindspore/ops/_op_impl/{tbe/scatter_add_ds.py → aicpu/inplace_index_add.py} +17 -21
- mindspore/ops/_op_impl/aicpu/instance_norm_v2.py +41 -0
- mindspore/ops/_op_impl/aicpu/instance_norm_v2_grad.py +44 -0
- mindspore/ops/_op_impl/aicpu/layer_norm_grad_grad.py +47 -0
- mindspore/ops/_op_impl/aicpu/less.py +41 -0
- mindspore/ops/_op_impl/aicpu/less_equal.py +41 -0
- mindspore/ops/_op_impl/aicpu/lgamma.py +32 -0
- mindspore/ops/_op_impl/aicpu/log_normal_reverse.py +33 -0
- mindspore/ops/_op_impl/aicpu/logit.py +33 -0
- mindspore/ops/_op_impl/aicpu/logit_grad.py +34 -0
- mindspore/ops/_op_impl/aicpu/masked_fill.py +42 -0
- mindspore/ops/_op_impl/aicpu/masked_scatter.py +39 -0
- mindspore/ops/_op_impl/aicpu/matmul.py +39 -0
- mindspore/ops/_op_impl/aicpu/matrix_logarithm.py +31 -0
- mindspore/ops/_op_impl/aicpu/matrix_power.py +32 -0
- mindspore/ops/_op_impl/aicpu/matrix_solve_ls.py +36 -0
- mindspore/ops/_op_impl/aicpu/matrix_triangular_solve.py +36 -0
- mindspore/ops/_op_impl/aicpu/mirror_pad.py +2 -0
- mindspore/ops/_op_impl/aicpu/mirror_pad_grad.py +0 -4
- mindspore/ops/_op_impl/aicpu/mul.py +3 -1
- mindspore/ops/_op_impl/aicpu/multinomial.py +14 -6
- mindspore/ops/_op_impl/aicpu/multinomial_with_replacement.py +35 -0
- mindspore/ops/_op_impl/aicpu/nan_to_num.py +34 -0
- mindspore/ops/_op_impl/aicpu/nllloss.py +38 -0
- mindspore/ops/_op_impl/aicpu/nllloss_grad.py +39 -0
- mindspore/ops/_op_impl/aicpu/ones_like.py +0 -2
- mindspore/ops/_op_impl/aicpu/polar.py +32 -0
- mindspore/ops/_op_impl/aicpu/polygamma.py +34 -0
- mindspore/ops/_op_impl/aicpu/qr.py +36 -0
- mindspore/ops/_op_impl/aicpu/quant_dtype_cast.py +40 -0
- mindspore/ops/_op_impl/aicpu/quantile.py +35 -0
- mindspore/ops/_op_impl/aicpu/ragged_tensor_to_sparse.py +73 -0
- mindspore/ops/_op_impl/aicpu/ragged_tensor_to_tensor.py +74 -0
- mindspore/ops/_op_impl/aicpu/random_shuffle.py +3 -0
- mindspore/ops/_op_impl/aicpu/randperm_v2.py +41 -0
- mindspore/ops/_op_impl/aicpu/range.py +36 -0
- mindspore/ops/_op_impl/aicpu/reciprocal.py +34 -0
- mindspore/ops/_op_impl/aicpu/reciprocal_grad.py +35 -0
- mindspore/ops/_op_impl/aicpu/reduce_sum.py +57 -0
- mindspore/ops/_op_impl/aicpu/resize_bicubic.py +2 -8
- mindspore/ops/_op_impl/aicpu/resize_bicubic_grad.py +1 -1
- mindspore/ops/_op_impl/aicpu/resize_v2.py +68 -0
- mindspore/ops/_op_impl/aicpu/resize_v2_grad.py +68 -0
- mindspore/ops/_op_impl/aicpu/scatter_elements.py +4 -0
- mindspore/ops/_op_impl/aicpu/scatter_nd_update.py +2 -0
- mindspore/ops/_op_impl/aicpu/search_sorted.py +12 -6
- mindspore/ops/_op_impl/aicpu/self_adjoint_eig.py +34 -0
- mindspore/ops/_op_impl/aicpu/sequence_add.py +34 -0
- mindspore/ops/_op_impl/aicpu/sequence_add_offset.py +34 -0
- mindspore/ops/_op_impl/aicpu/sequence_addn.py +38 -0
- mindspore/ops/_op_impl/aicpu/slice_grad.py +76 -0
- mindspore/ops/_op_impl/aicpu/smooth_l1_loss.py +35 -0
- mindspore/ops/_op_impl/aicpu/smooth_l1_loss_grad.py +37 -0
- mindspore/ops/_op_impl/aicpu/sort.py +39 -0
- mindspore/ops/_op_impl/aicpu/sparse_apply_adagrad_da.py +0 -24
- mindspore/ops/_op_impl/aicpu/sparse_cross.py +42 -0
- mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows.py +63 -0
- mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows_grad.py +45 -0
- mindspore/ops/_op_impl/aicpu/sparse_matrix_mat_mul.py +56 -0
- mindspore/ops/_op_impl/{tbe/slice_ds.py → aicpu/sparse_segment_sum.py} +16 -24
- mindspore/ops/_op_impl/aicpu/sparse_segment_sum_with_num_segments.py +68 -0
- mindspore/ops/_op_impl/aicpu/sparse_slice.py +63 -0
- mindspore/ops/_op_impl/aicpu/sparse_slice_grad.py +61 -0
- mindspore/ops/_op_impl/aicpu/squared_difference.py +2 -0
- mindspore/ops/_op_impl/aicpu/strided_slice_v2.py +93 -0
- mindspore/ops/_op_impl/aicpu/strided_slice_v2_grad.py +66 -0
- mindspore/ops/_op_impl/aicpu/tensor_scatter_update.py +59 -0
- mindspore/ops/_op_impl/{tbe/gather_v2.py → aicpu/tile.py} +24 -24
- mindspore/ops/_op_impl/aicpu/tridiagonal_solve.py +35 -0
- mindspore/ops/_op_impl/aicpu/tril_indices.py +34 -0
- mindspore/ops/_op_impl/aicpu/triu_indices.py +34 -0
- mindspore/ops/_op_impl/aicpu/uniform.py +34 -0
- mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +1 -0
- mindspore/ops/_op_impl/aicpu/unique_consecutive.py +10 -2
- mindspore/ops/_op_impl/cpu/__init__.py +1 -2
- mindspore/ops/_op_impl/cpu/dynamic_shape.py +5 -1
- mindspore/ops/_op_impl/cpu/maximum_grad.py +2 -0
- mindspore/{compression/common/__init__.py → ops/_op_impl/cpu/pyexecute.py} +13 -8
- mindspore/ops/_op_impl/cpu/reduce_sum.py +8 -0
- mindspore/ops/_op_impl/cpu/sparse_slice.py +62 -0
- mindspore/ops/_op_impl/cpu/sparse_slice_grad.py +60 -0
- mindspore/ops/_op_impl/cpu/tensor_shape.py +5 -1
- mindspore/ops/_op_impl/tbe/__init__.py +27 -608
- mindspore/ops/_op_impl/tbe/addcdiv_ds.py +42 -0
- mindspore/ops/_op_impl/tbe/addcmul_ds.py +44 -0
- mindspore/ops/_op_impl/tbe/assign_add_ds.py +1 -0
- mindspore/ops/_op_impl/tbe/atomic_addr_clean.py +1 -1
- mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +1 -1
- mindspore/ops/_op_impl/tbe/basic_lstm_cell_c_state_grad_v2.py +0 -1
- mindspore/ops/_op_impl/tbe/batch_to_space.py +1 -1
- mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +1 -1
- mindspore/ops/_op_impl/tbe/batch_to_space_nd_v2.py +41 -0
- mindspore/ops/_op_impl/tbe/bce_with_logits_loss.py +1 -0
- mindspore/ops/_op_impl/tbe/bias_add_grad.py +2 -0
- mindspore/ops/_op_impl/tbe/bn_infer_grad.py +4 -2
- mindspore/ops/_op_impl/tbe/bn_infer_grad_ds.py +40 -0
- mindspore/ops/_op_impl/tbe/bn_training_update.py +0 -1
- mindspore/ops/_op_impl/tbe/bn_training_update_ds.py +0 -1
- mindspore/ops/_op_impl/tbe/broadcast_to_ds.py +6 -4
- mindspore/ops/_op_impl/tbe/cast.py +0 -2
- mindspore/ops/_op_impl/tbe/cast_ds.py +3 -3
- mindspore/ops/_op_impl/tbe/ctc_loss_v2.py +0 -2
- mindspore/ops/_op_impl/tbe/ctc_loss_v2_grad.py +0 -2
- mindspore/ops/_op_impl/tbe/data_format_dim_map_ds.py +1 -0
- mindspore/ops/_op_impl/tbe/deformable_offsets.py +1 -0
- mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +1 -1
- mindspore/ops/_op_impl/tbe/dynamic_atomic_addr_clean.py +1 -1
- mindspore/ops/_op_impl/tbe/gather_nd.py +1 -0
- mindspore/ops/_op_impl/tbe/greater.py +2 -0
- mindspore/ops/_op_impl/tbe/{index_add.py → inplace_index_add.py} +3 -6
- mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_v2.py +0 -1
- mindspore/ops/_op_impl/tbe/npu_clear_float_status_v2.py +35 -0
- mindspore/ops/_op_impl/tbe/npu_get_float_status_v2.py +35 -0
- mindspore/ops/_op_impl/tbe/one_hot_ds.py +0 -6
- mindspore/ops/_op_impl/tbe/{greater_ds.py → reduce_all_ds.py} +13 -16
- mindspore/ops/_op_impl/tbe/reduce_any_ds.py +39 -0
- mindspore/ops/_op_impl/tbe/roi_align_ds.py +44 -0
- mindspore/ops/_op_impl/tbe/roi_align_grad_ds.py +44 -0
- mindspore/ops/_op_impl/tbe/scatter_add.py +2 -0
- mindspore/ops/_op_impl/tbe/scatter_nd_add.py +2 -2
- mindspore/ops/_op_impl/tbe/slice.py +26 -15
- mindspore/ops/_op_impl/tbe/space_to_batch.py +1 -1
- mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +1 -1
- mindspore/ops/_op_impl/tbe/strided_slice_grad_d.py +1 -0
- mindspore/ops/_op_impl/tbe/trans_data_ds.py +15 -5
- mindspore/ops/_op_impl/tbe/unsorted_segment_sum.py +1 -1
- mindspore/ops/_op_impl/tbe/unsorted_segment_sum_ds.py +2 -0
- mindspore/ops/_primitive_cache.py +3 -2
- mindspore/ops/_register_for_op.py +11 -0
- mindspore/ops/_utils/__init__.py +1 -1
- mindspore/ops/_utils/utils.py +20 -41
- mindspore/ops/_vmap/__init__.py +2 -2
- mindspore/ops/_vmap/vmap_array_ops.py +170 -78
- mindspore/ops/_vmap/vmap_base.py +24 -10
- mindspore/ops/_vmap/vmap_convolution_ops.py +7 -10
- mindspore/ops/_vmap/vmap_grad_math_ops.py +4 -4
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +41 -9
- mindspore/ops/_vmap/vmap_image_ops.py +52 -0
- mindspore/ops/_vmap/vmap_math_ops.py +77 -6
- mindspore/ops/_vmap/vmap_nn_ops.py +78 -29
- mindspore/ops/_vmap/vmap_other_ops.py +3 -1
- mindspore/ops/_vmap/vmap_random_ops.py +55 -3
- mindspore/ops/_vmap/vmap_sparse_ops.py +1 -0
- mindspore/ops/bprop_mindir/AdaptiveAvgPool2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/AdaptiveMaxPool2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ApproximateEqual_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/Argmax_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/Argmin_bprop.mindir +14 -13
- mindspore/ops/bprop_mindir/AssignSub_bprop.mindir +17 -18
- mindspore/ops/bprop_mindir/Assign_bprop.mindir +16 -16
- mindspore/ops/bprop_mindir/AvgPool3D_bprop.mindir +150 -0
- mindspore/ops/bprop_mindir/AvgPool_bprop.mindir +66 -0
- mindspore/ops/bprop_mindir/BCEWithLogitsLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/BatchNormGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BatchToSpaceND_bprop.mindir +28 -0
- mindspore/ops/bprop_mindir/BiasAddGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BinaryCrossEntropy_bprop.mindir +33 -0
- mindspore/ops/bprop_mindir/BroadcastTo_bprop.mindir +306 -0
- mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +12 -8
- mindspore/ops/bprop_mindir/CTCLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Concat_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Conv2DBackpropFilter_bprop.mindir +240 -0
- mindspore/ops/bprop_mindir/Conv2DBackpropInput_bprop.mindir +247 -0
- mindspore/ops/bprop_mindir/Conv2DTranspose_bprop.mindir +247 -0
- mindspore/ops/bprop_mindir/Conv3DTranspose_bprop.mindir +315 -0
- mindspore/ops/bprop_mindir/Conv3D_bprop.mindir +278 -0
- mindspore/ops/bprop_mindir/DType_bprop.mindir +12 -12
- mindspore/ops/bprop_mindir/DeformableOffsets_bprop.mindir +58 -0
- mindspore/ops/bprop_mindir/Depend_bprop.mindir +12 -13
- mindspore/ops/bprop_mindir/DepthToSpace_bprop.mindir +23 -0
- mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +138 -0
- mindspore/ops/bprop_mindir/DiagPart_bprop.mindir +15 -0
- mindspore/ops/bprop_mindir/Dropout2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Dropout3D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DropoutDoMask_bprop.mindir +22 -24
- mindspore/ops/bprop_mindir/DropoutGenMask_bprop.mindir +16 -14
- mindspore/ops/bprop_mindir/DropoutGrad_bprop.mindir +27 -0
- mindspore/ops/bprop_mindir/Dropout_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DynamicGRUV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DynamicRNN_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DynamicShape_bprop.mindir +12 -12
- mindspore/ops/bprop_mindir/Elu_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Equal_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/ExpandDims_bprop.mindir +58 -0
- mindspore/ops/bprop_mindir/FastGeLU_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Flatten_bprop.mindir +54 -0
- mindspore/ops/bprop_mindir/FloorDiv_bprop.mindir +18 -15
- mindspore/ops/bprop_mindir/GatherD_bprop.mindir +26 -0
- mindspore/ops/bprop_mindir/GatherNd_bprop.mindir +57 -0
- mindspore/ops/bprop_mindir/Gather_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/GreaterEqual_bprop.mindir +17 -18
- mindspore/ops/bprop_mindir/Greater_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/HSigmoid_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/HSwish_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/IOU_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/InstanceNorm_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/IsFinite_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/IsInf_bprop.mindir +13 -10
- mindspore/ops/bprop_mindir/IsNan_bprop.mindir +14 -11
- mindspore/ops/bprop_mindir/KLDivLoss_bprop.mindir +126 -0
- mindspore/ops/bprop_mindir/L2Loss_bprop.mindir +15 -0
- mindspore/ops/bprop_mindir/L2Normalize_bprop.mindir +30 -0
- mindspore/ops/bprop_mindir/LRN_bprop.mindir +43 -0
- mindspore/ops/bprop_mindir/LayerNormGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/LessEqual_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/Less_bprop.mindir +17 -18
- mindspore/ops/bprop_mindir/LinSpace_bprop.mindir +22 -19
- mindspore/ops/bprop_mindir/Load_bprop.mindir +12 -13
- mindspore/ops/bprop_mindir/LogSoftmax_bprop.mindir +23 -0
- mindspore/ops/bprop_mindir/LogicalAnd_bprop.mindir +17 -18
- mindspore/ops/bprop_mindir/LogicalNot_bprop.mindir +14 -13
- mindspore/ops/bprop_mindir/MaskedSelect_bprop.mindir +21 -0
- mindspore/ops/bprop_mindir/MaxPool3DGradGrad_bprop.mindir +74 -0
- mindspore/ops/bprop_mindir/MaxPool3DGrad_bprop.mindir +74 -0
- mindspore/ops/bprop_mindir/MaxPool3D_bprop.mindir +75 -0
- mindspore/ops/bprop_mindir/MaxPoolGradGrad_bprop.mindir +65 -0
- mindspore/ops/bprop_mindir/MaxPoolWithArgmax_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Maximum_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Minimum_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/MirrorPad_bprop.mindir +27 -0
- mindspore/ops/bprop_mindir/Mish_bprop.mindir +35 -0
- mindspore/ops/bprop_mindir/MulNoNan_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/NLLLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/NonZero_bprop.mindir +14 -0
- mindspore/ops/bprop_mindir/NotEqual_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/OneHot_bprop.mindir +25 -23
- mindspore/ops/bprop_mindir/OnesLike_bprop.mindir +13 -13
- mindspore/ops/bprop_mindir/PReLU_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Pad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Padding_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/RNNTLoss_bprop.mindir +29 -0
- mindspore/ops/bprop_mindir/ROIAlign_bprop.mindir +82 -0
- mindspore/ops/bprop_mindir/Range_bprop.mindir +21 -19
- mindspore/ops/bprop_mindir/Rank_bprop.mindir +11 -11
- mindspore/ops/bprop_mindir/ReLU6_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/ReLUV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ReduceAll_bprop.mindir +18 -17
- mindspore/ops/bprop_mindir/ReduceAny_bprop.mindir +18 -17
- mindspore/ops/bprop_mindir/ReluGrad_bprop.mindir +19 -23
- mindspore/ops/bprop_mindir/Reshape_bprop.mindir +60 -0
- mindspore/ops/bprop_mindir/ResizeBilinear_bprop.mindir +29 -0
- mindspore/ops/bprop_mindir/ResizeNearestNeighbor_bprop.mindir +89 -0
- mindspore/ops/bprop_mindir/ReverseSequence_bprop.mindir +52 -0
- mindspore/ops/bprop_mindir/ReverseV2_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/Round_bprop.mindir +14 -13
- mindspore/ops/bprop_mindir/ScatterMax_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterMin_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterNdUpdate_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/ScatterNd_bprop.mindir +24 -0
- mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/ScatterUpdate_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SeLU_bprop.mindir +21 -0
- mindspore/ops/bprop_mindir/Select_bprop.mindir +30 -34
- mindspore/ops/bprop_mindir/Shape_bprop.mindir +12 -12
- mindspore/ops/bprop_mindir/SigmoidCrossEntropyWithLogits_bprop.mindir +21 -0
- mindspore/ops/bprop_mindir/SigmoidGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Sigmoid_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Sign_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/Slice_bprop.mindir +26 -0
- mindspore/ops/bprop_mindir/SmoothL1Loss_bprop.mindir +36 -0
- mindspore/ops/bprop_mindir/SoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Softplus_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Softsign_bprop.mindir +33 -0
- mindspore/ops/bprop_mindir/Sort_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SpaceToBatchND_bprop.mindir +28 -0
- mindspore/ops/bprop_mindir/SpaceToDepth_bprop.mindir +23 -0
- mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Split_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/Squeeze_bprop.mindir +54 -0
- mindspore/ops/bprop_mindir/StridedSliceGrad_bprop.mindir +95 -0
- mindspore/ops/bprop_mindir/StridedSlice_bprop.mindir +98 -0
- mindspore/ops/bprop_mindir/Switch_bprop.mindir +28 -32
- mindspore/ops/bprop_mindir/TanhGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Tanh_bprop.mindir +66 -0
- mindspore/ops/bprop_mindir/TensorScatterAdd_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/TensorScatterUpdate_bprop.mindir +29 -0
- mindspore/ops/bprop_mindir/TensorShape_bprop.mindir +14 -0
- mindspore/ops/bprop_mindir/Tile_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TopK_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TransShape_bprop.mindir +23 -0
- mindspore/ops/bprop_mindir/TruncateDiv_bprop.mindir +18 -15
- mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +11 -13
- mindspore/ops/bprop_mindir/Unique_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Unstack_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/UpsampleNearest3D_bprop.mindir +32 -0
- mindspore/ops/bprop_mindir/UpsampleTrilinear3D_bprop.mindir +38 -0
- mindspore/ops/bprop_mindir/ZerosLike_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/__init__.py +1 -4
- mindspore/ops/bprop_mindir/generate_mindir.py +32 -20
- mindspore/ops/composite/__init__.py +12 -13
- mindspore/ops/composite/base.py +261 -254
- mindspore/ops/composite/env_ops.py +41 -0
- mindspore/ops/composite/math_ops.py +197 -156
- mindspore/ops/composite/multitype_ops/_compile_utils.py +428 -176
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +188 -87
- mindspore/ops/composite/multitype_ops/add_impl.py +23 -1
- mindspore/ops/composite/multitype_ops/div_impl.py +3 -3
- mindspore/ops/composite/multitype_ops/equal_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +1 -1
- mindspore/ops/composite/multitype_ops/getitem_impl.py +52 -5
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +31 -0
- mindspore/ops/composite/multitype_ops/greater_impl.py +31 -0
- mindspore/ops/composite/multitype_ops/in_impl.py +15 -3
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +33 -2
- mindspore/ops/composite/multitype_ops/less_impl.py +33 -0
- mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -2
- mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mod_impl.py +1 -1
- mindspore/ops/composite/multitype_ops/mul_impl.py +21 -7
- mindspore/ops/composite/multitype_ops/not_in_impl.py +15 -3
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +2 -4
- mindspore/ops/composite/multitype_ops/pow_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +62 -70
- mindspore/ops/composite/multitype_ops/sub_impl.py +3 -3
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +41 -4
- mindspore/ops/function/__init__.py +323 -8
- mindspore/ops/function/array_func.py +3511 -780
- mindspore/ops/function/clip_func.py +329 -0
- mindspore/ops/function/debug_func.py +6 -6
- mindspore/ops/function/grad/__init__.py +5 -1
- mindspore/ops/function/grad/grad_func.py +736 -65
- mindspore/ops/function/image_func.py +270 -0
- mindspore/ops/function/linalg_func.py +268 -8
- mindspore/ops/function/math_func.py +8032 -3164
- mindspore/ops/function/nn_func.py +5619 -1855
- mindspore/ops/function/other_func.py +115 -0
- mindspore/ops/function/parameter_func.py +11 -10
- mindspore/ops/function/random_func.py +939 -77
- mindspore/ops/function/sparse_func.py +249 -84
- mindspore/ops/function/sparse_unary_func.py +2303 -0
- mindspore/ops/function/spectral_func.py +146 -0
- mindspore/ops/function/vmap_func.py +114 -0
- mindspore/ops/functional.py +182 -254
- mindspore/ops/op_info_register.py +79 -34
- mindspore/ops/operations/__init__.py +210 -118
- mindspore/ops/operations/_csr_ops.py +7 -7
- mindspore/ops/operations/_embedding_cache_ops.py +25 -15
- mindspore/ops/operations/_grad_ops.py +447 -322
- mindspore/ops/operations/_inner_ops.py +547 -176
- mindspore/ops/operations/_map_tensor_ops.py +112 -0
- mindspore/ops/operations/_ms_kernel.py +29 -27
- mindspore/ops/operations/_ocr_ops.py +11 -11
- mindspore/ops/operations/_opaque_predicate_registry.py +41 -0
- mindspore/ops/operations/_quant_ops.py +186 -101
- mindspore/ops/operations/_rl_inner_ops.py +122 -61
- mindspore/ops/operations/_scalar_ops.py +466 -0
- mindspore/ops/operations/_sequence_ops.py +1047 -0
- mindspore/ops/operations/_tensor_array.py +10 -11
- mindspore/ops/operations/_thor_ops.py +4 -4
- mindspore/ops/operations/array_ops.py +1428 -1226
- mindspore/ops/operations/comm_ops.py +180 -117
- mindspore/ops/operations/control_ops.py +4 -2
- mindspore/ops/operations/custom_ops.py +185 -98
- mindspore/ops/operations/debug_ops.py +92 -54
- mindspore/ops/operations/image_ops.py +406 -211
- mindspore/ops/operations/inner_ops.py +42 -53
- mindspore/ops/operations/linalg_ops.py +32 -29
- mindspore/ops/operations/math_ops.py +2076 -897
- mindspore/ops/operations/nn_ops.py +1282 -1252
- mindspore/ops/operations/other_ops.py +124 -278
- mindspore/ops/operations/random_ops.py +345 -178
- mindspore/ops/operations/rl_ops.py +8 -9
- mindspore/ops/operations/sparse_ops.py +502 -157
- mindspore/ops/operations/spectral_ops.py +107 -0
- mindspore/ops/primitive.py +192 -15
- mindspore/ops/vm_impl_registry.py +23 -2
- mindspore/parallel/__init__.py +6 -1
- mindspore/parallel/_auto_parallel_context.py +199 -92
- mindspore/parallel/_cell_wrapper.py +4 -2
- mindspore/parallel/_cost_model_context.py +3 -0
- mindspore/parallel/_dp_allreduce_fusion.py +2 -1
- mindspore/parallel/_offload_context.py +185 -0
- mindspore/parallel/_parallel_serialization.py +167 -28
- mindspore/parallel/_ps_context.py +9 -5
- mindspore/parallel/_recovery_context.py +1 -1
- mindspore/parallel/_tensor.py +9 -1
- mindspore/{nn/transformer → parallel/_transformer}/__init__.py +6 -6
- mindspore/{nn/transformer → parallel/_transformer}/layers.py +59 -37
- mindspore/{nn/transformer → parallel/_transformer}/loss.py +4 -7
- mindspore/{nn/transformer → parallel/_transformer}/moe.py +160 -35
- mindspore/{nn/transformer → parallel/_transformer}/op_parallel_config.py +3 -3
- mindspore/{nn/transformer → parallel/_transformer}/transformer.py +235 -196
- mindspore/parallel/_utils.py +47 -7
- mindspore/parallel/algo_parameter_config.py +5 -1
- mindspore/parallel/checkpoint_transform.py +329 -0
- mindspore/parallel/shard.py +229 -0
- mindspore/perf_msvcbuildinsights.dll +0 -0
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +2 -1
- mindspore/profiler/common/util.py +4 -3
- mindspore/profiler/common/validator/validate_path.py +2 -2
- mindspore/profiler/envprofiling.py +249 -0
- mindspore/profiler/parser/aicpu_data_parser.py +38 -39
- mindspore/profiler/parser/ascend_timeline_generator.py +497 -0
- mindspore/profiler/parser/base_timeline_generator.py +471 -0
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +684 -0
- mindspore/profiler/parser/framework_parser.py +42 -16
- mindspore/profiler/parser/hccl_parser.py +158 -158
- mindspore/profiler/parser/hwts_log_parser.py +7 -6
- mindspore/profiler/parser/integrator.py +18 -1579
- mindspore/profiler/parser/minddata_analyzer.py +8 -8
- mindspore/profiler/parser/msadvisor_analyzer.py +14 -27
- mindspore/profiler/parser/msadvisor_parser.py +2 -4
- mindspore/profiler/parser/optime_parser.py +17 -18
- mindspore/profiler/parser/profiler_info.py +108 -0
- mindspore/profiler/parser/step_trace_parser.py +1 -1
- mindspore/profiler/profiling.py +396 -194
- mindspore/rewrite/__init__.py +6 -2
- mindspore/rewrite/api/node.py +51 -110
- mindspore/rewrite/api/node_type.py +10 -6
- mindspore/rewrite/api/pattern_engine.py +51 -7
- mindspore/rewrite/api/scoped_value.py +64 -53
- mindspore/rewrite/api/symbol_tree.py +108 -61
- mindspore/rewrite/api/tree_node_helper.py +2 -3
- mindspore/{compression/quant/__init__.py → rewrite/ast_creator_register.py} +20 -11
- mindspore/rewrite/ast_helpers/__init__.py +6 -3
- mindspore/rewrite/ast_helpers/ast_creator.py +115 -0
- mindspore/rewrite/ast_helpers/ast_finder.py +99 -1
- mindspore/rewrite/ast_helpers/ast_modifier.py +17 -4
- mindspore/rewrite/ast_helpers/ast_replacer.py +1 -1
- mindspore/rewrite/ast_transformers/__init__.py +0 -1
- mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +46 -5
- mindspore/rewrite/ast_transformers/remove_return_out_of_if.py +6 -3
- mindspore/rewrite/common/__init__.py +2 -0
- mindspore/rewrite/common/event.py +1 -1
- mindspore/rewrite/common/observable.py +1 -1
- mindspore/rewrite/common/observer.py +1 -1
- mindspore/rewrite/common/rewrite_elog.py +35 -0
- mindspore/rewrite/namer.py +2 -2
- mindspore/rewrite/namespace.py +14 -4
- mindspore/rewrite/node.py +161 -13
- mindspore/rewrite/parser.py +0 -1
- mindspore/rewrite/parser_register.py +0 -1
- mindspore/rewrite/parsers/arguments_parser.py +3 -2
- mindspore/rewrite/parsers/assign_parser.py +267 -67
- mindspore/rewrite/parsers/attribute_parser.py +56 -0
- mindspore/rewrite/parsers/class_def_parser.py +191 -108
- mindspore/rewrite/parsers/constant_parser.py +101 -0
- mindspore/rewrite/parsers/container_parser.py +88 -0
- mindspore/rewrite/parsers/for_parser.py +28 -15
- mindspore/rewrite/parsers/function_def_parser.py +21 -5
- mindspore/rewrite/parsers/if_parser.py +11 -28
- mindspore/rewrite/parsers/module_parser.py +9 -6
- mindspore/rewrite/parsers/return_parser.py +3 -2
- mindspore/rewrite/sparsify/__init__.py +0 -0
- mindspore/rewrite/sparsify/sparse_transformer.py +448 -0
- mindspore/rewrite/sparsify/sparsify.py +109 -0
- mindspore/rewrite/sparsify/utils.py +173 -0
- mindspore/rewrite/symbol_tree.py +322 -109
- mindspore/rewrite/symbol_tree_builder.py +45 -8
- mindspore/rewrite/symbol_tree_dumper.py +0 -1
- mindspore/rewrite/topological_manager.py +1 -2
- mindspore/run_check/_check_version.py +209 -112
- mindspore/run_check/run_check.py +2 -1
- mindspore/tbbmalloc.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/__init__.py +6 -4
- mindspore/train/_utils.py +28 -5
- mindspore/train/amp.py +321 -50
- mindspore/train/callback/__init__.py +3 -1
- mindspore/train/callback/_backup_and_restore.py +120 -0
- mindspore/train/callback/_callback.py +8 -8
- mindspore/train/callback/_checkpoint.py +12 -9
- mindspore/train/callback/_early_stop.py +13 -7
- mindspore/train/callback/_history.py +8 -8
- mindspore/train/callback/_lambda_callback.py +6 -6
- mindspore/train/callback/_landscape.py +36 -38
- mindspore/train/callback/_loss_monitor.py +12 -6
- mindspore/train/callback/_lr_scheduler_callback.py +2 -4
- mindspore/train/callback/_on_request_exit.py +212 -0
- mindspore/train/callback/_reduce_lr_on_plateau.py +13 -7
- mindspore/train/callback/_summary_collector.py +27 -19
- mindspore/train/callback/_time_monitor.py +13 -7
- mindspore/train/checkpoint_pb2.py +68 -8
- mindspore/train/data_sink.py +122 -33
- mindspore/train/dataset_helper.py +28 -87
- mindspore/train/loss_scale_manager.py +4 -7
- mindspore/{nn → train}/metrics/__init__.py +20 -20
- mindspore/{nn → train}/metrics/accuracy.py +12 -10
- mindspore/{nn → train}/metrics/auc.py +4 -4
- mindspore/{nn → train}/metrics/bleu_score.py +4 -4
- mindspore/{nn → train}/metrics/confusion_matrix.py +10 -8
- mindspore/{nn → train}/metrics/cosine_similarity.py +4 -4
- mindspore/{nn → train}/metrics/dice.py +6 -5
- mindspore/{nn → train}/metrics/error.py +7 -5
- mindspore/{nn → train}/metrics/fbeta.py +9 -7
- mindspore/{nn → train}/metrics/hausdorff_distance.py +8 -6
- mindspore/{nn → train}/metrics/loss.py +4 -3
- mindspore/{nn → train}/metrics/mean_surface_distance.py +6 -5
- mindspore/{nn → train}/metrics/metric.py +6 -5
- mindspore/{nn → train}/metrics/occlusion_sensitivity.py +4 -3
- mindspore/{nn → train}/metrics/perplexity.py +5 -4
- mindspore/{nn → train}/metrics/precision.py +5 -4
- mindspore/{nn → train}/metrics/recall.py +5 -4
- mindspore/{nn → train}/metrics/roc.py +7 -6
- mindspore/{nn → train}/metrics/root_mean_square_surface_distance.py +6 -5
- mindspore/{nn → train}/metrics/topk.py +7 -5
- mindspore/train/mind_ir_pb2.py +339 -32
- mindspore/train/model.py +113 -84
- mindspore/train/serialization.py +547 -167
- mindspore/train/summary/_summary_adapter.py +1 -1
- mindspore/train/summary/summary_record.py +43 -12
- mindspore/train/train_thor/convert_utils.py +7 -1
- mindspore/train/train_thor/dataset_helper.py +3 -3
- mindspore/train/train_thor/model_thor.py +0 -4
- 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-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/METADATA +4 -3
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/RECORD +901 -660
- mindspore/compression/common/constant.py +0 -124
- mindspore/compression/export/__init__.py +0 -19
- mindspore/compression/export/quant_export.py +0 -514
- mindspore/compression/quant/qat.py +0 -636
- mindspore/compression/quant/quant_utils.py +0 -462
- mindspore/compression/quant/quantizer.py +0 -68
- mindspore/libatomic-1.dll +0 -0
- mindspore/libgcc_s_seh-1.dll +0 -0
- mindspore/libgfortran-4.dll +0 -0
- mindspore/libgomp-1.dll +0 -0
- mindspore/libjpeg-62.dll +0 -0
- mindspore/libmindspore.dll +0 -0
- mindspore/libmindspore_common.dll +0 -0
- mindspore/libmindspore_core.dll +0 -0
- mindspore/libmindspore_glog.dll +0 -0
- mindspore/libnnacl.dll +0 -0
- mindspore/libopencv_core452.dll +0 -0
- mindspore/libopencv_imgcodecs452.dll +0 -0
- mindspore/libopencv_imgproc452.dll +0 -0
- mindspore/libquadmath-0.dll +0 -0
- mindspore/libsqlite3.dll +0 -0
- mindspore/libssp-0.dll +0 -0
- mindspore/libstdc++-6.dll +0 -0
- mindspore/libtinyxml2.dll +0 -0
- mindspore/libturbojpeg.dll +0 -0
- mindspore/libwinpthread-1.dll +0 -0
- mindspore/nn/layer/quant.py +0 -1868
- mindspore/nn/layer/rnn_utils.py +0 -90
- mindspore/nn/probability/dpn/__init__.py +0 -22
- mindspore/nn/probability/dpn/vae/__init__.py +0 -25
- mindspore/nn/probability/dpn/vae/cvae.py +0 -138
- mindspore/nn/probability/dpn/vae/vae.py +0 -122
- mindspore/nn/probability/infer/__init__.py +0 -22
- mindspore/nn/probability/infer/variational/elbo.py +0 -70
- mindspore/nn/probability/infer/variational/svi.py +0 -84
- mindspore/nn/probability/toolbox/__init__.py +0 -22
- mindspore/nn/probability/toolbox/anomaly_detection.py +0 -99
- mindspore/nn/probability/toolbox/uncertainty_evaluation.py +0 -363
- mindspore/nn/probability/transforms/__init__.py +0 -22
- mindspore/nn/probability/transforms/transform_bnn.py +0 -262
- mindspore/nn/probability/zhusuan/__init__.py +0 -18
- mindspore/nn/probability/zhusuan/framework/__init__.py +0 -18
- mindspore/nn/probability/zhusuan/framework/bn.py +0 -95
- mindspore/nn/probability/zhusuan/variational/__init__.py +0 -18
- mindspore/nn/probability/zhusuan/variational/elbo.py +0 -46
- mindspore/ops/_op_impl/tbe/bias_add_grad_ds.py +0 -52
- mindspore/ops/_op_impl/tbe/scatter_nd_add_ds.py +0 -43
- mindspore/ops/bprop_mindir/AssignAdd_bprop.mindir +0 -20
- mindspore/ops/bprop_mindir/Identity_bprop.mindir +0 -9
- mindspore/ops/bprop_mindir/LogicalOr_bprop.mindir +0 -20
- mindspore/ops/bprop_mindir/ReLU_bprop.mindir +0 -16
- mindspore/ops/bprop_mindir/UpdateState_bprop.mindir +0 -17
- mindspore/ops/bprop_mindir/stop_gradient_bprop.mindir +0 -12
- mindspore/ops/composite/array_ops.py +0 -210
- mindspore/ops/composite/clip_ops.py +0 -238
- mindspore/ops/composite/random_ops.py +0 -426
- mindspore/ops/composite/vmap_ops.py +0 -38
- mindspore/ops/operations/sponge_ops.py +0 -3531
- mindspore/ops/operations/sponge_update_ops.py +0 -2546
- mindspore/parallel/nn/__init__.py +0 -42
- mindspore/parallel/nn/loss.py +0 -22
- mindspore/parallel/nn/moe.py +0 -21
- mindspore/parallel/nn/op_parallel_config.py +0 -22
- mindspore/parallel/nn/transformer.py +0 -31
- mindspore/run_check/_check_deps_version.py +0 -84
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/WHEEL +0 -0
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/entry_points.txt +0 -0
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/top_level.txt +0 -0
mindspore/rewrite/__init__.py
CHANGED
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
MindSpore Rewrite package.
|
|
17
17
|
This is an experimental python package that is subject to change or deletion.
|
|
18
18
|
"""
|
|
19
|
-
from
|
|
19
|
+
from mindspore.rewrite.parsers.attribute_parser import g_attribute_parser
|
|
20
|
+
from mindspore.rewrite.parsers.constant_parser import g_name_parser, g_num_parser, g_str_parser
|
|
21
|
+
from mindspore.rewrite.parsers.container_parser import g_list_parser, g_tuple_parser
|
|
20
22
|
from .parsers.module_parser import g_module_parser
|
|
21
23
|
from .parsers.class_def_parser import g_classdef_parser
|
|
22
24
|
from .parsers.function_def_parser import g_functiondef_parser
|
|
@@ -31,6 +33,8 @@ from .api.node import Node
|
|
|
31
33
|
from .api.node_type import NodeType
|
|
32
34
|
from .api.pattern_engine import PatternEngine, PatternNode, VarNode, Replacement
|
|
33
35
|
from .api.tree_node_helper import TreeNodeHelper
|
|
36
|
+
from .sparsify.sparsify import sparsify
|
|
37
|
+
from .sparsify.utils import ArgType, SparseFunc
|
|
34
38
|
|
|
35
39
|
__all__ = ["SymbolTree", "Node", "NodeType", "ScopedValue", "ValueType", "PatternEngine", "PatternNode", "VarNode",
|
|
36
|
-
"Replacement", "TreeNodeHelper"]
|
|
40
|
+
"Replacement", "TreeNodeHelper", "sparsify", "ArgType", "SparseFunc"]
|
mindspore/rewrite/api/node.py
CHANGED
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""Rewrite module api: Node."""
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
from typing import Union, Optional
|
|
18
18
|
|
|
19
19
|
from mindspore.nn import Cell
|
|
20
20
|
from mindspore.ops.primitive import Primitive
|
|
21
|
-
from
|
|
21
|
+
from mindspore import _checkparam as Validator
|
|
22
22
|
from ..node import Node as NodeImpl
|
|
23
23
|
from ..symbol_tree import SymbolTree as SymbolTreeImpl
|
|
24
24
|
from .node_type import NodeType
|
|
@@ -32,13 +32,11 @@ class Node:
|
|
|
32
32
|
For the most part, Node represents an operator invoking in forward which could be an instance of `Cell`, an instance
|
|
33
33
|
of `Primitive` or a callable method.
|
|
34
34
|
|
|
35
|
-
`NodeImpl` mentioned below is implementation of `Node` which is not an interface of Rewrite. Rewrite recommend
|
|
36
|
-
invoking specific create method of `Node` to instantiate an instance of Node such as `create_call_cell` rather than
|
|
37
|
-
invoking constructor of `Node` directly, so don't care about what is `NodeImpl` and use its instance just as a
|
|
38
|
-
handler.
|
|
39
|
-
|
|
40
35
|
Args:
|
|
41
|
-
node (NodeImpl): A handler of `NodeImpl`.
|
|
36
|
+
node (NodeImpl): A handler of `NodeImpl`. `NodeImpl` mentioned below is implementation of `Node` which is not
|
|
37
|
+
an interface of Rewrite. Rewrite recommend invoking specific create method of `Node`
|
|
38
|
+
to instantiate an instance of Node such as `create_call_cell` rather than invoking constructor of `Node`
|
|
39
|
+
directly, so don't care about what is `NodeImpl` and use its instance just as a handler.
|
|
42
40
|
"""
|
|
43
41
|
|
|
44
42
|
def __init__(self, node: NodeImpl):
|
|
@@ -46,7 +44,8 @@ class Node:
|
|
|
46
44
|
|
|
47
45
|
|
|
48
46
|
def __eq__(self, other: 'Node'):
|
|
49
|
-
|
|
47
|
+
if not isinstance(other, Node):
|
|
48
|
+
return False
|
|
50
49
|
return self._node == other._node
|
|
51
50
|
|
|
52
51
|
@staticmethod
|
|
@@ -100,32 +99,8 @@ class Node:
|
|
|
100
99
|
args, kwargs, name, is_sub_net))
|
|
101
100
|
|
|
102
101
|
def get_handler(self) -> NodeImpl:
|
|
103
|
-
"""
|
|
104
|
-
Get handler of node implementation.
|
|
105
|
-
|
|
106
|
-
Returns:
|
|
107
|
-
An instance of `NodeImpl`.
|
|
108
|
-
"""
|
|
109
102
|
return self._node
|
|
110
103
|
|
|
111
|
-
def get_prev(self) -> 'Node':
|
|
112
|
-
"""
|
|
113
|
-
Get previous node of current node in source code order.
|
|
114
|
-
|
|
115
|
-
Returns:
|
|
116
|
-
An instance of `Node` as previous node.
|
|
117
|
-
"""
|
|
118
|
-
return Node(self._node.get_prev())
|
|
119
|
-
|
|
120
|
-
def get_next(self) -> 'Node':
|
|
121
|
-
"""
|
|
122
|
-
Get next node of current node in source code order.
|
|
123
|
-
|
|
124
|
-
Returns:
|
|
125
|
-
An instance of `Node` as next node.
|
|
126
|
-
"""
|
|
127
|
-
return Node(self._node.get_next())
|
|
128
|
-
|
|
129
104
|
def get_inputs(self) -> ['Node']:
|
|
130
105
|
"""
|
|
131
106
|
Get input nodes of current node in topological order.
|
|
@@ -141,6 +116,14 @@ class Node:
|
|
|
141
116
|
|
|
142
117
|
Returns:
|
|
143
118
|
A list of nodes represents users.
|
|
119
|
+
|
|
120
|
+
Examples:
|
|
121
|
+
>>> from mindspore.rewrite import SymbolTree
|
|
122
|
+
>>> from lenet import Lenet
|
|
123
|
+
>>> net = Lenet()
|
|
124
|
+
>>> stree = SymbolTree.create(net)
|
|
125
|
+
>>> node = stree.get_node("conv1")
|
|
126
|
+
>>> users = node.get_users()
|
|
144
127
|
"""
|
|
145
128
|
belong_symbol_tree: SymbolTreeImpl = self._node.get_belong_symbol_tree()
|
|
146
129
|
if belong_symbol_tree is None:
|
|
@@ -163,6 +146,14 @@ class Node:
|
|
|
163
146
|
Raises:
|
|
164
147
|
TypeError: If `index` is not a `int` number.
|
|
165
148
|
TypeError: If the type of `arg` is not in [`ScopedValue`, `str`].
|
|
149
|
+
|
|
150
|
+
Examples:
|
|
151
|
+
>>> from mindspore.rewrite import SymbolTree
|
|
152
|
+
>>> from lenet import Lenet
|
|
153
|
+
>>> net = Lenet()
|
|
154
|
+
>>> stree = SymbolTree.create(net)
|
|
155
|
+
>>> node = stree.get_node("conv1")
|
|
156
|
+
>>> node.set_arg(0, "x")
|
|
166
157
|
"""
|
|
167
158
|
Validator.check_value_type("index", index, [int], "Node")
|
|
168
159
|
Validator.check_value_type("arg", arg, [ScopedValue, str], "Node")
|
|
@@ -174,7 +165,7 @@ class Node:
|
|
|
174
165
|
|
|
175
166
|
def set_arg_by_node(self, arg_idx: int, src_node: 'Node', out_idx: Optional[int] = None):
|
|
176
167
|
"""
|
|
177
|
-
Set argument of current node by another
|
|
168
|
+
Set argument of current node by another Node.
|
|
178
169
|
|
|
179
170
|
Args:
|
|
180
171
|
arg_idx (int): Indicate which input being modified.
|
|
@@ -184,13 +175,21 @@ class Node:
|
|
|
184
175
|
|
|
185
176
|
Raises:
|
|
186
177
|
RuntimeError: If `src_node` is not belong to current `SymbolTree`.
|
|
187
|
-
RuntimeError: If current node and `src_node` is not belong to same `SymbolTree`.
|
|
188
178
|
TypeError: If `arg_idx` is not a `int` number.
|
|
189
179
|
ValueError: If `arg_idx` is out of range.
|
|
190
180
|
TypeError: If `src_node` is not a `Node` instance.
|
|
191
181
|
TypeError: If `out_idx` is not a `int` number.
|
|
192
182
|
ValueError: If `out_idx` is out of range.
|
|
193
183
|
ValueError: If `src_node` has multi-outputs while `out_idx` is None or `out_idx` is not offered.
|
|
184
|
+
|
|
185
|
+
Examples:
|
|
186
|
+
>>> from mindspore.rewrite import SymbolTree
|
|
187
|
+
>>> from lenet import Lenet
|
|
188
|
+
>>> net = Lenet()
|
|
189
|
+
>>> stree = SymbolTree.create(net)
|
|
190
|
+
>>> src_node = stree.get_node("conv1")
|
|
191
|
+
>>> dst_node = stree.get_node("conv2")
|
|
192
|
+
>>> dst_node.set_arg_by_node(0, src_node)
|
|
194
193
|
"""
|
|
195
194
|
Validator.check_value_type("arg_idx", arg_idx, [int], "Node")
|
|
196
195
|
Validator.check_value_type("src_node", src_node, [Node], "Node")
|
|
@@ -200,22 +199,9 @@ class Node:
|
|
|
200
199
|
if belong_symbol_tree is None:
|
|
201
200
|
self._node.set_arg_by_node(arg_idx, src_node._node, out_idx)
|
|
202
201
|
else:
|
|
203
|
-
belong_symbol_tree.set_node_arg_by_node(self._node, arg_idx, src_node.
|
|
202
|
+
belong_symbol_tree.set_node_arg_by_node(self._node, arg_idx, src_node.get_handler(), out_idx)
|
|
204
203
|
|
|
205
204
|
def get_targets(self) -> [ScopedValue]:
|
|
206
|
-
"""
|
|
207
|
-
Get targets of current node.
|
|
208
|
-
|
|
209
|
-
- When node_type of current node is `CallCell`, `CallPrimitive`, `CallMethod` or `Tree`, `targets` are strings
|
|
210
|
-
represents invoke result of the cell-op or primitive-op or function-call which are corresponding to targets of
|
|
211
|
-
ast.Assign.
|
|
212
|
-
- When node_type of current node is Input, `targets` should have only one element which is a string represents
|
|
213
|
-
parameter of function.
|
|
214
|
-
- When node_type of current node is `Python` or `Output`, `targets` are don't-care.
|
|
215
|
-
|
|
216
|
-
Returns:
|
|
217
|
-
A list of instances of ScopedValue as targets of node.
|
|
218
|
-
"""
|
|
219
205
|
return self._node.get_targets()
|
|
220
206
|
|
|
221
207
|
def get_name(self) -> str:
|
|
@@ -226,6 +212,14 @@ class Node:
|
|
|
226
212
|
|
|
227
213
|
Returns:
|
|
228
214
|
A string as name of node.
|
|
215
|
+
|
|
216
|
+
Examples:
|
|
217
|
+
>>> from mindspore.rewrite import SymbolTree
|
|
218
|
+
>>> from lenet import Lenet
|
|
219
|
+
>>> net = Lenet()
|
|
220
|
+
>>> stree = SymbolTree.create(net)
|
|
221
|
+
>>> node = stree.get_node("conv1")
|
|
222
|
+
>>> name = node.get_name()
|
|
229
223
|
"""
|
|
230
224
|
return self._node.get_name()
|
|
231
225
|
|
|
@@ -235,6 +229,14 @@ class Node:
|
|
|
235
229
|
|
|
236
230
|
Returns:
|
|
237
231
|
A NodeType as node_type of node.
|
|
232
|
+
|
|
233
|
+
Examples:
|
|
234
|
+
>>> from mindspore.rewrite import SymbolTree
|
|
235
|
+
>>> from lenet import Lenet
|
|
236
|
+
>>> net = Lenet()
|
|
237
|
+
>>> stree = SymbolTree.create(net)
|
|
238
|
+
>>> node = stree.get_node("conv1")
|
|
239
|
+
>>> node_type = node.get_node_type()
|
|
238
240
|
"""
|
|
239
241
|
return self._node.get_node_type()
|
|
240
242
|
|
|
@@ -254,82 +256,21 @@ class Node:
|
|
|
254
256
|
return self._node.get_instance_type()
|
|
255
257
|
|
|
256
258
|
def get_instance(self):
|
|
257
|
-
"""
|
|
258
|
-
Get the instance of current node.
|
|
259
|
-
|
|
260
|
-
- When node_type of current node is `CallCell`, instance is an instance of Cell.
|
|
261
|
-
- When node_type of current node is `CallPrimitive`, instance is an instance of primitive.
|
|
262
|
-
- When node_type of current node is `Tree`, instance is an instance of network-cell.
|
|
263
|
-
- When node_type of current node is `Python`, `Input`, `Output` or `CallMethod`, instance should be None.
|
|
264
|
-
|
|
265
|
-
Returns:
|
|
266
|
-
A object represents corresponding instance of current node.
|
|
267
|
-
"""
|
|
268
259
|
return self._node.get_instance()
|
|
269
260
|
|
|
270
261
|
def get_args(self) -> [ScopedValue]:
|
|
271
|
-
"""
|
|
272
|
-
Get the arguments of current node.
|
|
273
|
-
|
|
274
|
-
- When node_type of current node is `CallCell`, `CallPrimitive` or `Tree`, arguments are corresponding to args
|
|
275
|
-
of ast.Call which represents arguments to invoke forward method of cell-op or primitive-op.
|
|
276
|
-
- When node_type of current node is `Input`, arguments represents default-value of argument of function.
|
|
277
|
-
- When node_type of current node is `Output`, arguments represents return values.
|
|
278
|
-
- When node_type of current node is `Python`, arguments are don't-care.
|
|
279
|
-
|
|
280
|
-
Returns:
|
|
281
|
-
A list of instances of `ScopedValue`.
|
|
282
|
-
"""
|
|
283
262
|
return self._node.get_args()
|
|
284
263
|
|
|
285
264
|
def get_kwargs(self) -> {str: ScopedValue}:
|
|
286
|
-
"""
|
|
287
|
-
Get the keyword arguments of current node.
|
|
288
|
-
|
|
289
|
-
- When node_type of current node is `CallCell`, `CallPrimitive` or `Tree`, keyword arguments are corresponding
|
|
290
|
-
to kwargs of ast.Call which represents arguments to invoke forward method of cell-op or primitive-op.
|
|
291
|
-
- When node_type of current node is `Python`, `Input` or `Output`, keyword arguments are don't-care.
|
|
292
|
-
|
|
293
|
-
Returns:
|
|
294
|
-
A dict of str to instance of `ScopedValue`.
|
|
295
|
-
"""
|
|
296
265
|
return self._node.get_kwargs()
|
|
297
266
|
|
|
298
267
|
def set_attribute(self, key: str, value):
|
|
299
|
-
"""
|
|
300
|
-
Set attribute of current node.
|
|
301
|
-
|
|
302
|
-
Args:
|
|
303
|
-
key (str): Key of attribute.
|
|
304
|
-
value (object): Value of attribute.
|
|
305
|
-
|
|
306
|
-
Raises:
|
|
307
|
-
TypeError: If `key` is not a `str`.
|
|
308
|
-
"""
|
|
309
268
|
Validator.check_value_type("key", key, [str], "Node attribute")
|
|
310
269
|
self._node.set_attribute(key, value)
|
|
311
270
|
|
|
312
271
|
def get_attributes(self) -> {str: object}:
|
|
313
|
-
"""
|
|
314
|
-
Get all attributes of current node.
|
|
315
|
-
|
|
316
|
-
Returns:
|
|
317
|
-
A dict of str to instance of object as attributes.
|
|
318
|
-
"""
|
|
319
272
|
return self._node.get_attributes()
|
|
320
273
|
|
|
321
274
|
def get_attribute(self, key: str):
|
|
322
|
-
"""
|
|
323
|
-
Get attribute of current node by key.
|
|
324
|
-
|
|
325
|
-
Args:
|
|
326
|
-
key (str): Key of attribute.
|
|
327
|
-
|
|
328
|
-
Returns:
|
|
329
|
-
A object as attribute.
|
|
330
|
-
|
|
331
|
-
Raises:
|
|
332
|
-
TypeError: If `key` is not a `str`.
|
|
333
|
-
"""
|
|
334
275
|
Validator.check_value_type("key", key, [str], "Node attribute")
|
|
335
276
|
return self._node.get_attribute(key)
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""Rewrite module api: NodeType."""
|
|
16
|
-
from __future__ import absolute_import
|
|
17
16
|
from enum import Enum
|
|
18
17
|
|
|
19
18
|
|
|
@@ -30,15 +29,20 @@ class NodeType(Enum):
|
|
|
30
29
|
- Input: `Input` node represents input of `SymbolTree` corresponding to arguments of forward method.
|
|
31
30
|
- Output: `Output` node represents output of SymbolTree corresponding to return statement of forward method.
|
|
32
31
|
- Tree: `Tree` node represents sub-network invoking in forward method.
|
|
32
|
+
- MathOps: `MathOps` node represents a mathematical operation, such as adding or comparing in forward method.
|
|
33
33
|
|
|
34
34
|
"""
|
|
35
35
|
Unknown = 0
|
|
36
36
|
# Compute node type
|
|
37
37
|
CallCell = 1
|
|
38
38
|
CallPrimitive = 2
|
|
39
|
-
|
|
39
|
+
CallModule = 3
|
|
40
|
+
CallFunction = 4
|
|
41
|
+
CallMethod = 5
|
|
40
42
|
# Other node type
|
|
41
|
-
Python =
|
|
42
|
-
Input =
|
|
43
|
-
Output =
|
|
44
|
-
Tree =
|
|
43
|
+
Python = 6
|
|
44
|
+
Input = 7
|
|
45
|
+
Output = 8
|
|
46
|
+
Tree = 9
|
|
47
|
+
CellContainer = 10
|
|
48
|
+
MathOps = 11
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""PatternEngine for modifying SymbolTree by pattern."""
|
|
16
|
-
from __future__ import absolute_import
|
|
17
16
|
from collections import OrderedDict
|
|
18
17
|
from typing import Tuple, Union, List, Type
|
|
19
18
|
import abc
|
|
@@ -21,7 +20,7 @@ import abc
|
|
|
21
20
|
from mindspore.nn import Cell
|
|
22
21
|
from mindspore.ops.primitive import Primitive
|
|
23
22
|
from mindspore import log as logger
|
|
24
|
-
from
|
|
23
|
+
from mindspore import _checkparam as Validator
|
|
25
24
|
from .node_type import NodeType
|
|
26
25
|
from .node import Node
|
|
27
26
|
from .symbol_tree import SymbolTree
|
|
@@ -34,8 +33,8 @@ class PatternNode:
|
|
|
34
33
|
|
|
35
34
|
Args:
|
|
36
35
|
pattern_node_name (str): Name of current node.
|
|
37
|
-
match_type (Type): A type represents what type would be matched of current node.
|
|
38
|
-
inputs (list[PatternNode]): Input nodes of current node.
|
|
36
|
+
match_type (Type): A type represents what type would be matched of current node. Default: None.
|
|
37
|
+
inputs (list[PatternNode]): Input nodes of current node. Default: None.
|
|
39
38
|
"""
|
|
40
39
|
|
|
41
40
|
def __init__(self, pattern_node_name: str, match_type: Type = Type[None], inputs: ['PatternNode'] = None):
|
|
@@ -158,19 +157,22 @@ class PatternNode:
|
|
|
158
157
|
def get_inputs(self):
|
|
159
158
|
"""
|
|
160
159
|
Getter of inputs.
|
|
160
|
+
|
|
161
|
+
Returns:
|
|
162
|
+
A list of `PatternNode`, the inputs of current node.
|
|
161
163
|
"""
|
|
162
164
|
|
|
163
165
|
return self._inputs
|
|
164
166
|
|
|
165
167
|
def name(self) -> str:
|
|
166
168
|
"""
|
|
167
|
-
Getter of name.
|
|
169
|
+
Getter of PatternNode name.
|
|
168
170
|
"""
|
|
169
171
|
return self._name
|
|
170
172
|
|
|
171
173
|
def type(self):
|
|
172
174
|
"""
|
|
173
|
-
Getter of type.
|
|
175
|
+
Getter of PatternNode type.
|
|
174
176
|
"""
|
|
175
177
|
return self._type
|
|
176
178
|
|
|
@@ -190,8 +192,17 @@ class VarNode(PatternNode):
|
|
|
190
192
|
class Replacement(abc.ABC):
|
|
191
193
|
"""
|
|
192
194
|
Interface of replacement function.
|
|
193
|
-
"""
|
|
194
195
|
|
|
196
|
+
Examples:
|
|
197
|
+
>>> from mindspore.rewrite import Replacement, Node
|
|
198
|
+
>>> from mindspore.nn import nn
|
|
199
|
+
>>> class BnReplacement(Replacement):
|
|
200
|
+
... def build(self, pattern, is_chain_pattern: bool, matched):
|
|
201
|
+
... bn_node: Node = matched.get(pattern.name())
|
|
202
|
+
... conv = nn.Conv2d(16, 16, 3)
|
|
203
|
+
... conv_node = Node.create_call_cell(conv, ['x1'], bn_node.get_args(), bn_node.get_kwargs())
|
|
204
|
+
... return [conv_node]
|
|
205
|
+
"""
|
|
195
206
|
@abc.abstractmethod
|
|
196
207
|
def build(self, pattern: PatternNode, is_chain_pattern: bool, matched: OrderedDict) -> [Node]:
|
|
197
208
|
"""
|
|
@@ -250,6 +261,9 @@ class PatternEngine:
|
|
|
250
261
|
def pattern(self) -> PatternNode:
|
|
251
262
|
"""
|
|
252
263
|
Getter of pattern.
|
|
264
|
+
|
|
265
|
+
Returns:
|
|
266
|
+
A instance of `PatternNode`, used to indicate the type that the current pattern needs to match.
|
|
253
267
|
"""
|
|
254
268
|
|
|
255
269
|
return self._pattern
|
|
@@ -294,6 +308,16 @@ class PatternEngine:
|
|
|
294
308
|
queue.extend(inputs_dict.get(cur_node.get_name()))
|
|
295
309
|
return new_root
|
|
296
310
|
|
|
311
|
+
@staticmethod
|
|
312
|
+
def _multi_replace_cellcontainer(stree, cellcontainer, node, matched_dict, new_nodes):
|
|
313
|
+
"""Replace node in CellContainer."""
|
|
314
|
+
to_erase_list = list(matched_dict.values())
|
|
315
|
+
stree.replace(Node(node), new_nodes)
|
|
316
|
+
for n in reversed(to_erase_list):
|
|
317
|
+
if n.get_handler() is node:
|
|
318
|
+
continue
|
|
319
|
+
stree.erase_node(n)
|
|
320
|
+
|
|
297
321
|
def apply(self, stree: SymbolTree) -> bool:
|
|
298
322
|
"""
|
|
299
323
|
Apply current pattern to a `SymbolTree`.
|
|
@@ -345,6 +369,9 @@ class PatternEngine:
|
|
|
345
369
|
visited.append(cur_node)
|
|
346
370
|
queue.extend(cur_node.get_users())
|
|
347
371
|
continue
|
|
372
|
+
if cur_node.get_node_type() == NodeType.CellContainer:
|
|
373
|
+
self._process_cellcontainer(stree, cur_node.get_handler())
|
|
374
|
+
continue
|
|
348
375
|
visited.append(cur_node)
|
|
349
376
|
matched, matched_dict = self._match(self._pattern, cur_node)
|
|
350
377
|
# not matched
|
|
@@ -446,3 +473,20 @@ class PatternEngine:
|
|
|
446
473
|
logger.debug("Check match failed, pattern leaked")
|
|
447
474
|
return False
|
|
448
475
|
return True
|
|
476
|
+
|
|
477
|
+
def _process_cellcontainer(self, stree, cellcontainer):
|
|
478
|
+
"""Process CellContainer node."""
|
|
479
|
+
for node in cellcontainer.nodes():
|
|
480
|
+
if node.get_node_type() == NodeType.Tree:
|
|
481
|
+
subtree = node.symbol_tree
|
|
482
|
+
self.apply(SymbolTree(subtree))
|
|
483
|
+
continue
|
|
484
|
+
matched, matched_dict = self._match(self._pattern, Node(node))
|
|
485
|
+
if not matched:
|
|
486
|
+
continue
|
|
487
|
+
new_nodes = []
|
|
488
|
+
if self._replacement is not None:
|
|
489
|
+
new_nodes = self._replacement(self._pattern, self._is_chain, matched_dict)
|
|
490
|
+
if not new_nodes: # if replacement is empty, do nothing
|
|
491
|
+
continue
|
|
492
|
+
PatternEngine._multi_replace_cellcontainer(stree, cellcontainer, node, matched_dict, new_nodes)
|
|
@@ -13,10 +13,9 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""Rewrite module api: ValueType and ScopedValue."""
|
|
16
|
-
from __future__ import absolute_import
|
|
17
16
|
from enum import Enum
|
|
18
17
|
from typing import Optional, Union
|
|
19
|
-
from
|
|
18
|
+
from mindspore import _checkparam as Validator
|
|
20
19
|
|
|
21
20
|
|
|
22
21
|
class ValueType(Enum):
|
|
@@ -62,57 +61,6 @@ class ScopedValue:
|
|
|
62
61
|
self.scope = scope
|
|
63
62
|
self.value = value
|
|
64
63
|
|
|
65
|
-
def __str__(self):
|
|
66
|
-
if self.type in (ValueType.IntValue, ValueType.FloatValue, ValueType.StringValue):
|
|
67
|
-
return str(self.value)
|
|
68
|
-
if self.type == ValueType.NamingValue:
|
|
69
|
-
return f"{self.scope}.{self.value}" if self.scope else str(self.value)
|
|
70
|
-
if self.type == ValueType.CustomObjValue:
|
|
71
|
-
return f"CustomObj: {str(self.value)}"
|
|
72
|
-
return f"Illegal ValueType: {str(self.type)}"
|
|
73
|
-
|
|
74
|
-
def __eq__(self, other):
|
|
75
|
-
if id(self) == id(other):
|
|
76
|
-
return True
|
|
77
|
-
return self.type == other.type and self.scope == other.scope and self.value == other.value
|
|
78
|
-
|
|
79
|
-
def __repr__(self):
|
|
80
|
-
return str(self)
|
|
81
|
-
|
|
82
|
-
def __hash__(self):
|
|
83
|
-
return hash((self.type, self.scope, self.value))
|
|
84
|
-
|
|
85
|
-
@staticmethod
|
|
86
|
-
def create_name_values(names: Union[list, tuple], scopes: Union[list, tuple] = None) -> ['ScopedValue']:
|
|
87
|
-
"""
|
|
88
|
-
Create a list of naming `ScopedValue`.
|
|
89
|
-
|
|
90
|
-
Args:
|
|
91
|
-
names: (list[str] or tuple[str]): List or tuple of `str` represents names of referenced variables.
|
|
92
|
-
scopes: (list[str] or tuple[str]): List or tuple of `str` represents scopes of referenced variables.
|
|
93
|
-
|
|
94
|
-
Returns:
|
|
95
|
-
An list of instance of `ScopedValue`.
|
|
96
|
-
|
|
97
|
-
Raises:
|
|
98
|
-
RuntimeError: If the length of names is not equal to the length of scopes when scopes are not None.
|
|
99
|
-
TypeError: If `names` is not `list` or `tuple` and name in `names` is not `str`.
|
|
100
|
-
TypeError: If `scopes` is not `list` or `tuple` and scope in `scopes` is not `str`.
|
|
101
|
-
"""
|
|
102
|
-
Validator.check_element_type_of_iterable("names", names, [str], "ScopedValue")
|
|
103
|
-
if scopes is not None:
|
|
104
|
-
Validator.check_element_type_of_iterable("scopes", scopes, [str], "ScopedValue")
|
|
105
|
-
if len(names) != len(scopes):
|
|
106
|
-
raise RuntimeError("Length of names should be equal to length of scopes")
|
|
107
|
-
result = []
|
|
108
|
-
for index, name in enumerate(names):
|
|
109
|
-
if scopes is not None:
|
|
110
|
-
scope = scopes[index]
|
|
111
|
-
else:
|
|
112
|
-
scope = ""
|
|
113
|
-
result.append(ScopedValue.create_naming_value(name, scope))
|
|
114
|
-
return result
|
|
115
|
-
|
|
116
64
|
@classmethod
|
|
117
65
|
def create_variable_value(cls, value) -> Optional['ScopedValue']:
|
|
118
66
|
"""
|
|
@@ -125,6 +73,10 @@ class ScopedValue:
|
|
|
125
73
|
|
|
126
74
|
Returns:
|
|
127
75
|
An instance of `ScopedValue`.
|
|
76
|
+
|
|
77
|
+
Examples:
|
|
78
|
+
>>> from mindspore.rewrite import ScopedValue
|
|
79
|
+
>>> variable = ScopedValue.create_variable_value(2)
|
|
128
80
|
"""
|
|
129
81
|
if isinstance(value, int):
|
|
130
82
|
return cls(ValueType.IntValue, "", value)
|
|
@@ -160,7 +112,66 @@ class ScopedValue:
|
|
|
160
112
|
Raises:
|
|
161
113
|
TypeError: If `name` is not `str`.
|
|
162
114
|
TypeError: If `scope` is not `str`.
|
|
115
|
+
|
|
116
|
+
Examples:
|
|
117
|
+
>>> from mindspore.rewrite import ScopedValue
|
|
118
|
+
>>> variable = ScopedValue.create_naming_value("conv", "self")
|
|
163
119
|
"""
|
|
164
120
|
Validator.check_value_type("name", name, [str], "ScopedValue")
|
|
165
121
|
Validator.check_value_type("scope", scope, [str], "ScopedValue")
|
|
166
122
|
return cls(ValueType.NamingValue, scope, name)
|
|
123
|
+
|
|
124
|
+
@staticmethod
|
|
125
|
+
def create_name_values(names: Union[list, tuple], scopes: Union[list, tuple] = None) -> ['ScopedValue']:
|
|
126
|
+
"""
|
|
127
|
+
Create a list of naming `ScopedValue`.
|
|
128
|
+
|
|
129
|
+
Args:
|
|
130
|
+
names (list[str] or tuple[str]): List or tuple of `str` represents names of referenced variables.
|
|
131
|
+
scopes (list[str] or tuple[str]): List or tuple of `str` represents scopes of referenced variables.
|
|
132
|
+
|
|
133
|
+
Returns:
|
|
134
|
+
An list of instance of `ScopedValue`.
|
|
135
|
+
|
|
136
|
+
Raises:
|
|
137
|
+
RuntimeError: If the length of names is not equal to the length of scopes when scopes are not None.
|
|
138
|
+
TypeError: If `names` is not `list` or `tuple` and name in `names` is not `str`.
|
|
139
|
+
TypeError: If `scopes` is not `list` or `tuple` and scope in `scopes` is not `str`.
|
|
140
|
+
|
|
141
|
+
Examples:
|
|
142
|
+
>>> from mindspore.rewrite import ScopedValue
|
|
143
|
+
>>> variables = ScopedValue.create_name_values(["z", "z_1"], name="subnet")
|
|
144
|
+
"""
|
|
145
|
+
Validator.check_element_type_of_iterable("names", names, [str], "ScopedValue")
|
|
146
|
+
if scopes is not None:
|
|
147
|
+
Validator.check_element_type_of_iterable("scopes", scopes, [str], "ScopedValue")
|
|
148
|
+
if len(names) != len(scopes):
|
|
149
|
+
raise RuntimeError("Length of names should be equal to length of scopes")
|
|
150
|
+
result = []
|
|
151
|
+
for index, name in enumerate(names):
|
|
152
|
+
if scopes is not None:
|
|
153
|
+
scope = scopes[index]
|
|
154
|
+
else:
|
|
155
|
+
scope = ""
|
|
156
|
+
result.append(ScopedValue.create_naming_value(name, scope))
|
|
157
|
+
return result
|
|
158
|
+
|
|
159
|
+
def __str__(self):
|
|
160
|
+
if self.type in (ValueType.IntValue, ValueType.FloatValue, ValueType.StringValue):
|
|
161
|
+
return str(self.value)
|
|
162
|
+
if self.type == ValueType.NamingValue:
|
|
163
|
+
return f"{self.scope}.{self.value}" if self.scope else str(self.value)
|
|
164
|
+
if self.type == ValueType.CustomObjValue:
|
|
165
|
+
return f"CustomObj: {str(self.value)}"
|
|
166
|
+
return f"Illegal ValueType: {str(self.type)}"
|
|
167
|
+
|
|
168
|
+
def __eq__(self, other):
|
|
169
|
+
if id(self) == id(other):
|
|
170
|
+
return True
|
|
171
|
+
return self.type == other.type and self.scope == other.scope and self.value == other.value
|
|
172
|
+
|
|
173
|
+
def __repr__(self):
|
|
174
|
+
return str(self)
|
|
175
|
+
|
|
176
|
+
def __hash__(self):
|
|
177
|
+
return hash((self.type, self.scope, self.value))
|