mindspore 1.10.0__cp39-cp39-win_amd64.whl → 2.0.0rc1__cp39-cp39-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/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.cp39-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
- mindspore/_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
|
@@ -13,26 +13,26 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""Rewrite module api: SymbolTree."""
|
|
16
|
-
from __future__ import absolute_import
|
|
17
16
|
from typing import Optional
|
|
17
|
+
from types import FunctionType
|
|
18
|
+
import mindspore as ms
|
|
18
19
|
|
|
19
20
|
from mindspore.nn import Cell
|
|
20
|
-
from
|
|
21
|
+
from mindspore import _checkparam as Validator
|
|
21
22
|
from .node import Node
|
|
22
23
|
from ..symbol_tree_builder import SymbolTreeBuilder
|
|
23
24
|
from ..symbol_tree import Position, SymbolTree as SymbolTreeImpl
|
|
24
25
|
|
|
26
|
+
ParamTypes = (int, str, float, bool, Node)
|
|
27
|
+
MsDtypes = (ms.float16, ms.float32, ms.float64)
|
|
28
|
+
|
|
25
29
|
|
|
26
30
|
class SymbolTree:
|
|
27
31
|
"""
|
|
28
32
|
A `SymbolTree` usually corresponding to forward method of a network.
|
|
29
33
|
|
|
30
34
|
Args:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
Raises:
|
|
34
|
-
RuntimeError: If `network` is not a Cell.
|
|
35
|
-
RuntimeError: If there is any unsupported ast node type while parsing or optimizing.
|
|
35
|
+
handler (SymbolTreeImpl): SymbolTree internal implementation instance.
|
|
36
36
|
"""
|
|
37
37
|
|
|
38
38
|
def __init__(self, handler: SymbolTreeImpl):
|
|
@@ -56,13 +56,35 @@ class SymbolTree:
|
|
|
56
56
|
Validator.check_value_type("network", network, [Cell], "SymbolTree")
|
|
57
57
|
return cls(SymbolTreeBuilder(network).build())
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
@staticmethod
|
|
60
|
+
def _check_args_type(args):
|
|
61
|
+
for arg in args:
|
|
62
|
+
if arg not in MsDtypes and not isinstance(arg, ParamTypes):
|
|
63
|
+
raise TypeError(f"For call-function Node, got unsupported arg: {arg}, type: {type(arg)}")
|
|
64
|
+
|
|
65
|
+
@staticmethod
|
|
66
|
+
def _check_kwargs_type(kwargs):
|
|
67
|
+
for k, v in kwargs.items():
|
|
68
|
+
if not isinstance(k, str):
|
|
69
|
+
raise TypeError(f"For call-function Node, key in kwarg must be a str, but got: {type(v)}",)
|
|
70
|
+
if v not in MsDtypes and not isinstance(v, ParamTypes):
|
|
71
|
+
raise TypeError(f"For call-function Node, got unsupported kwarg value: {v}, type: {type(v)}")
|
|
72
|
+
|
|
73
|
+
def create_call_function(self, func, targets, *args, **kwargs): # pylint: disable=C0111
|
|
74
|
+
Validator.check_value_type("func", func, [FunctionType], "SymbolTree node")
|
|
75
|
+
Validator.check_element_type_of_iterable("targets", targets, [str], "SymbolTree node")
|
|
76
|
+
args_ = list(args)
|
|
77
|
+
SymbolTree._check_args_type(args_)
|
|
78
|
+
for i, arg in enumerate(args_):
|
|
79
|
+
if isinstance(arg, Node):
|
|
80
|
+
args_[i] = arg.get_handler()
|
|
81
|
+
SymbolTree._check_kwargs_type(kwargs)
|
|
82
|
+
for key, value in kwargs.items():
|
|
83
|
+
if isinstance(value, Node):
|
|
84
|
+
kwargs[key] = value.get_handler()
|
|
85
|
+
return Node(self._symbol_tree._create_call_function(func, targets, args_, kwargs)) # pylint: disable=W0212
|
|
62
86
|
|
|
63
|
-
|
|
64
|
-
An instance of `SymbolTree`.
|
|
65
|
-
"""
|
|
87
|
+
def get_handler(self) -> SymbolTreeImpl:
|
|
66
88
|
return self._symbol_tree
|
|
67
89
|
|
|
68
90
|
def nodes(self):
|
|
@@ -71,23 +93,19 @@ class SymbolTree:
|
|
|
71
93
|
|
|
72
94
|
Returns:
|
|
73
95
|
A generator for node of current `SymbolTree`.
|
|
96
|
+
|
|
97
|
+
Examples:
|
|
98
|
+
>>> from mindspore.rewrite import SymbolTree
|
|
99
|
+
>>> from lenet import Lenet
|
|
100
|
+
>>> net = Lenet()
|
|
101
|
+
>>> stree = SymbolTree.create(net)
|
|
102
|
+
>>> for node in stree.nodes():
|
|
103
|
+
... node.set_attribute("channel", 3)
|
|
74
104
|
"""
|
|
75
105
|
for node in self._symbol_tree.nodes():
|
|
76
106
|
yield Node(node)
|
|
77
107
|
|
|
78
108
|
def get_node(self, node_name: str) -> Optional[Node]:
|
|
79
|
-
"""
|
|
80
|
-
Get node by `node_name`.
|
|
81
|
-
|
|
82
|
-
Args:
|
|
83
|
-
node_name (str): A string represents name of node.
|
|
84
|
-
|
|
85
|
-
Returns:
|
|
86
|
-
An instance of node if find else None.
|
|
87
|
-
|
|
88
|
-
Raises:
|
|
89
|
-
TypeError: If `node_name` is not `str`.
|
|
90
|
-
"""
|
|
91
109
|
Validator.check_value_type("node_name", node_name, [str], "SymbolTree")
|
|
92
110
|
node_impl = self._symbol_tree.get_node(node_name)
|
|
93
111
|
if node_impl is None:
|
|
@@ -95,12 +113,6 @@ class SymbolTree:
|
|
|
95
113
|
return Node(node_impl)
|
|
96
114
|
|
|
97
115
|
def get_inputs(self) -> [Node]:
|
|
98
|
-
"""
|
|
99
|
-
Get input nodes of current `SymbolTree`.
|
|
100
|
-
|
|
101
|
-
Returns:
|
|
102
|
-
[Node], the node list of the current `Symboltree`.
|
|
103
|
-
"""
|
|
104
116
|
return [Node(node_impl) for node_impl in self._symbol_tree.get_inputs()]
|
|
105
117
|
|
|
106
118
|
def before(self, node: Node):
|
|
@@ -119,6 +131,15 @@ class SymbolTree:
|
|
|
119
131
|
|
|
120
132
|
Raises:
|
|
121
133
|
TypeError: if `node` is not a `Node`.
|
|
134
|
+
|
|
135
|
+
Examples:
|
|
136
|
+
>>> from mindspore.rewrite import SymbolTree
|
|
137
|
+
>>> from lenet import Lenet
|
|
138
|
+
>>> net = Lenet()
|
|
139
|
+
>>> stree = SymbolTree.create(net)
|
|
140
|
+
>>> for node in stree.nodes():
|
|
141
|
+
... if node.get_name() == "conv1":
|
|
142
|
+
... position = stree.before(node)
|
|
122
143
|
"""
|
|
123
144
|
Validator.check_value_type("node", node, [Node], "SymbolTree")
|
|
124
145
|
return self._symbol_tree.before(node.get_handler())
|
|
@@ -139,6 +160,15 @@ class SymbolTree:
|
|
|
139
160
|
|
|
140
161
|
Raises:
|
|
141
162
|
TypeError: If `node` is not a `Node`.
|
|
163
|
+
|
|
164
|
+
Examples:
|
|
165
|
+
>>> from mindspore.rewrite import SymbolTree
|
|
166
|
+
>>> from lenet import Lenet
|
|
167
|
+
>>> net = Lenet()
|
|
168
|
+
>>> stree = SymbolTree.create(net)
|
|
169
|
+
>>> for node in stree.nodes():
|
|
170
|
+
... if node.get_name() == "conv1":
|
|
171
|
+
... position = stree.after(node)
|
|
142
172
|
"""
|
|
143
173
|
Validator.check_value_type("node", node, [Node], "SymbolTree")
|
|
144
174
|
return self._symbol_tree.after(node.get_handler())
|
|
@@ -161,6 +191,16 @@ class SymbolTree:
|
|
|
161
191
|
RuntimeError: If `position` is not belong to current `SymbolTree`.
|
|
162
192
|
TypeError: If `position` is not a `Position`.
|
|
163
193
|
TypeError: If `node` is not a `Node`.
|
|
194
|
+
|
|
195
|
+
Examples:
|
|
196
|
+
>>> from mindspore.rewrite import SymbolTree
|
|
197
|
+
>>> from lenet import Lenet
|
|
198
|
+
>>> net = Lenet()
|
|
199
|
+
>>> stree = SymbolTree.create(net)
|
|
200
|
+
>>> node = stree.get_node("conv1")
|
|
201
|
+
>>> position = stree.after(node)
|
|
202
|
+
>>> new_node = stree.create_call_function(F.abs, ["x"], node)
|
|
203
|
+
>>> stree.insert(position, new_node)
|
|
164
204
|
"""
|
|
165
205
|
Validator.check_value_type("position", position, [Position], "SymbolTree")
|
|
166
206
|
Validator.check_value_type("node", node, [Node], "SymbolTree")
|
|
@@ -178,6 +218,18 @@ class SymbolTree:
|
|
|
178
218
|
|
|
179
219
|
Raises:
|
|
180
220
|
TypeError: If `node` is not a `Node`.
|
|
221
|
+
|
|
222
|
+
Examples:
|
|
223
|
+
>>> from mindspore.rewrite import SymbolTree
|
|
224
|
+
>>> from lenet import Lenet
|
|
225
|
+
>>> net = Lenet()
|
|
226
|
+
>>> stree = SymbolTree.create(net)
|
|
227
|
+
>>> node = stree.get_node("conv1")
|
|
228
|
+
>>> input_node = node.get_inputs()[0]
|
|
229
|
+
>>> output_nodes = node.get_users()
|
|
230
|
+
>>> for n in output_nodes:
|
|
231
|
+
... n.set_arg(0, "x")
|
|
232
|
+
>>> stree.erase_node(node)
|
|
181
233
|
"""
|
|
182
234
|
Validator.check_value_type("node", node, [Node], "SymbolTree")
|
|
183
235
|
return Node(self._symbol_tree.erase_node(node.get_handler()))
|
|
@@ -207,9 +259,18 @@ class SymbolTree:
|
|
|
207
259
|
An instance of Node represents root of node_tree been replaced in.
|
|
208
260
|
|
|
209
261
|
Raises:
|
|
210
|
-
RuntimeError: Old node is isolated.
|
|
262
|
+
RuntimeError: Old node is not isolated.
|
|
211
263
|
TypeError: If `old_node` is not a `Node`.
|
|
212
264
|
TypeError: If `new_nodes` is not a `list` or node in `new_nodes` is not a `Node`.
|
|
265
|
+
|
|
266
|
+
Examples:
|
|
267
|
+
>>> from mindspore.rewrite import SymbolTree
|
|
268
|
+
>>> from lenet import Lenet
|
|
269
|
+
>>> net = Lenet()
|
|
270
|
+
>>> stree = SymbolTree.create(net)
|
|
271
|
+
>>> node = stree.get_node("conv1")
|
|
272
|
+
>>> new_node = stree.create_call_function(F.abs, ["x"], node)
|
|
273
|
+
>>> stree.replace(node, [new_node])
|
|
213
274
|
"""
|
|
214
275
|
Validator.check_value_type("old_node", old_node, [Node], "SymbolTree")
|
|
215
276
|
Validator.check_element_type_of_iterable("new_nodes", new_nodes, [Node], "SymbolTree")
|
|
@@ -217,35 +278,17 @@ class SymbolTree:
|
|
|
217
278
|
return Node(self._symbol_tree.replace(old_node.get_handler(), nodes_impl))
|
|
218
279
|
|
|
219
280
|
def set_output(self, index: int, return_value: str) -> Node:
|
|
220
|
-
"""
|
|
221
|
-
Set return value of network.
|
|
222
|
-
|
|
223
|
-
Args:
|
|
224
|
-
index (int): Indicate which output being modified.
|
|
225
|
-
return_value (str): New return value to been set.
|
|
226
|
-
|
|
227
|
-
Returns:
|
|
228
|
-
Return node of current rewrite.
|
|
229
|
-
|
|
230
|
-
Raises:
|
|
231
|
-
RuntimeError: If `index` is out of range.
|
|
232
|
-
TypeError: If `index` is not a `int` number.
|
|
233
|
-
TypeError: If `return_value` is not a `str`.
|
|
234
|
-
"""
|
|
235
281
|
Validator.check_value_type("index", index, [int], "SymbolTree")
|
|
236
282
|
Validator.check_value_type("return_value", return_value, [str], "SymbolTree")
|
|
237
283
|
return Node(self._symbol_tree.set_output(return_value, index))
|
|
238
284
|
|
|
239
285
|
def dump(self):
|
|
240
286
|
"""
|
|
241
|
-
|
|
287
|
+
Print the ir map information corresponding to the network in 'SymbolTree' to the screen.
|
|
242
288
|
"""
|
|
243
289
|
self._symbol_tree.dump()
|
|
244
290
|
|
|
245
291
|
def print_node_tabulate(self):
|
|
246
|
-
"""
|
|
247
|
-
Print node information of graph.
|
|
248
|
-
"""
|
|
249
292
|
self._symbol_tree.print_node_tabulate()
|
|
250
293
|
|
|
251
294
|
def get_code(self) -> str:
|
|
@@ -254,6 +297,13 @@ class SymbolTree:
|
|
|
254
297
|
|
|
255
298
|
Returns:
|
|
256
299
|
A str represents source code of modified network.
|
|
300
|
+
|
|
301
|
+
Examples:
|
|
302
|
+
>>> from mindspore.rewrite import SymbolTree
|
|
303
|
+
>>> from lenet import Lenet
|
|
304
|
+
>>> net = Lenet()
|
|
305
|
+
>>> stree = SymbolTree.create(net)
|
|
306
|
+
>>> stree.get_code()
|
|
257
307
|
"""
|
|
258
308
|
return self._symbol_tree.get_code()
|
|
259
309
|
|
|
@@ -264,25 +314,22 @@ class SymbolTree:
|
|
|
264
314
|
|
|
265
315
|
Returns:
|
|
266
316
|
A network object.
|
|
317
|
+
|
|
318
|
+
Examples:
|
|
319
|
+
>>> from mindspore.rewrite import SymbolTree
|
|
320
|
+
>>> from lenet import Lenet
|
|
321
|
+
>>> net = Lenet()
|
|
322
|
+
>>> stree = SymbolTree.create(net)
|
|
323
|
+
>>> stree.get_network()
|
|
267
324
|
"""
|
|
268
325
|
return self._symbol_tree.get_network()
|
|
269
326
|
|
|
270
327
|
def set_saved_file_name(self, file_name: str):
|
|
271
|
-
"""
|
|
272
|
-
Set the name of the file used to save the network.
|
|
273
|
-
|
|
274
|
-
Args:
|
|
275
|
-
file_name (str): filename to be set.
|
|
276
|
-
"""
|
|
277
328
|
Validator.check_value_type("file_name", file_name, [str], "Saving network")
|
|
278
329
|
self._symbol_tree.set_saved_file_name(file_name)
|
|
279
330
|
|
|
280
331
|
def get_saved_file_name(self):
|
|
281
|
-
"""Gets the filename used to save the network."""
|
|
282
332
|
return self._symbol_tree.get_saved_file_name()
|
|
283
333
|
|
|
284
334
|
def save_network_to_file(self):
|
|
285
|
-
"""
|
|
286
|
-
Save the modified network to a file. Default file name is `network_define.py`.
|
|
287
|
-
"""
|
|
288
335
|
self._symbol_tree.save_network_to_file()
|
|
@@ -13,11 +13,10 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""Rewrite module api: TreeNodeHelper."""
|
|
16
|
-
from __future__ import absolute_import
|
|
17
16
|
from typing import Optional
|
|
18
17
|
|
|
19
18
|
from mindspore import log as logger
|
|
20
|
-
from
|
|
19
|
+
from mindspore import _checkparam as Validator
|
|
21
20
|
from .symbol_tree import SymbolTree
|
|
22
21
|
from .node import Node
|
|
23
22
|
from .node_type import NodeType
|
|
@@ -37,7 +36,7 @@ class TreeNodeHelper:
|
|
|
37
36
|
Getting symbol_tree from a `Tree` type `Node`.
|
|
38
37
|
|
|
39
38
|
Args:
|
|
40
|
-
node (Node): A `Node`
|
|
39
|
+
node (Node): A `Node` which may hold a sub-symbol_tree.
|
|
41
40
|
|
|
42
41
|
Returns:
|
|
43
42
|
An instance of SymbolTree represents sub-symbol_tree. Note that `node`'s symbol_tree maybe None, in this
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2022 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.
|
|
@@ -12,17 +12,26 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
|
-
"""
|
|
16
|
-
Quantization module, including base class of the quantizer, the quantization aware training algorithm,
|
|
17
|
-
and quantization utils.
|
|
18
15
|
|
|
19
|
-
|
|
20
|
-
"""
|
|
16
|
+
"""Registry the relation."""
|
|
21
17
|
|
|
22
18
|
from __future__ import absolute_import
|
|
23
|
-
from
|
|
24
|
-
from .qat import QuantizationAwareTraining, create_quant_config
|
|
25
|
-
from .quant_utils import load_nonquant_param_into_quant_net, query_quant_layers
|
|
19
|
+
from collections import UserDict
|
|
26
20
|
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
|
|
22
|
+
class Registry(UserDict):
|
|
23
|
+
"""Registry class for registry functions for creating ast node."""
|
|
24
|
+
|
|
25
|
+
def register(self, obj_str, obj):
|
|
26
|
+
"""Register object by str."""
|
|
27
|
+
if isinstance(obj_str, str):
|
|
28
|
+
self[obj_str] = obj
|
|
29
|
+
|
|
30
|
+
def get(self, obj_str):
|
|
31
|
+
"""Get the value by str."""
|
|
32
|
+
if not isinstance(obj_str, str):
|
|
33
|
+
raise TypeError("key for ast creator registry must be string.")
|
|
34
|
+
return self[obj_str]
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
ast_creator_registry = Registry()
|
|
@@ -16,9 +16,12 @@
|
|
|
16
16
|
`ast_helpers` package of MindSpore Rewrite package.
|
|
17
17
|
Define some ast helpers for manipulating python ast.
|
|
18
18
|
"""
|
|
19
|
-
|
|
20
|
-
from .ast_finder import AstFinder, StrChecker
|
|
19
|
+
|
|
20
|
+
from .ast_finder import AstFinder, StrChecker, CheckPropertyIsUsed, GetPropertyOfObj
|
|
21
21
|
from .ast_replacer import AstReplacer
|
|
22
22
|
from .ast_modifier import AstModifier
|
|
23
|
+
from .ast_creator import ast_args_creator, ast_assign_creator, ast_attributer_creator, ast_call_creator, \
|
|
24
|
+
ast_create_arg_value, ast_index_creator, ast_keyword_creator, ast_kwargs_creator, ast_name_creator, \
|
|
25
|
+
ast_num_creator, ast_str_creator, ast_subscript_creator
|
|
23
26
|
|
|
24
|
-
__all__ = ["AstFinder", "AstReplacer", "AstModifier", "StrChecker"]
|
|
27
|
+
__all__ = ["AstFinder", "AstReplacer", "AstModifier", "StrChecker", "CheckPropertyIsUsed", "GetPropertyOfObj"]
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Copyright 2022 Huawei Technologies Co., Ltd
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
# ============================================================================
|
|
15
|
+
"""Create ast node in specific scope."""
|
|
16
|
+
import ast
|
|
17
|
+
from mindspore.rewrite.ast_creator_register import ast_creator_registry
|
|
18
|
+
import mindspore as ms
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def ast_args_creator(args: list):
|
|
22
|
+
"""Create an arg list."""
|
|
23
|
+
ast_args = list()
|
|
24
|
+
for arg in args:
|
|
25
|
+
ast_arg = ast_create_arg_value(arg)
|
|
26
|
+
ast_args.append(ast_arg)
|
|
27
|
+
return ast_args
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def ast_assign_creator(targets: ast.AST, value: ast.AST):
|
|
31
|
+
"""Create an ast.Assign node."""
|
|
32
|
+
return ast.Assign(targets=targets, value=value, lineno=0, col_offset=0)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def ast_attributer_creator(attribute: str):
|
|
36
|
+
"""Create an ast.Attribute node"""
|
|
37
|
+
value, attr = attribute.rsplit(".", 1)
|
|
38
|
+
if "." in value:
|
|
39
|
+
ast_value = ast_attributer_creator(value)
|
|
40
|
+
else:
|
|
41
|
+
ast_value = ast_name_creator(value)
|
|
42
|
+
return ast.Attribute(value=ast_value, attr=attr, lineno=0, col_offset=0, ctx="Load()")
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def ast_call_creator(func: ast.AST, args: list, keywords: list):
|
|
46
|
+
"""Create an ast.Call node"""
|
|
47
|
+
return ast.Call(func=func, args=args, keywords=keywords, lineno=0, col_offset=0)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def ast_create_arg_value(value):
|
|
51
|
+
"""Create arg node by type."""
|
|
52
|
+
if isinstance(value, (int, float)):
|
|
53
|
+
ast_value = ast_num_creator(value)
|
|
54
|
+
elif isinstance(value, str):
|
|
55
|
+
ast_value = ast_str_creator(value)
|
|
56
|
+
elif value in (ms.float16, ms.float32, ms.float64):
|
|
57
|
+
ast_value = ast_attributer_creator(".".join(["mindspore", str(value).lower()]))
|
|
58
|
+
elif isinstance(value, ms.rewrite.node.Node):
|
|
59
|
+
ast_value = ast_str_creator(value.get_targets()[0])
|
|
60
|
+
else:
|
|
61
|
+
raise TypeError("Unsupported arg type: ", type(value))
|
|
62
|
+
return ast_value
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def ast_index_creator(index: ast.Num):
|
|
66
|
+
"""Create ast.Index node."""
|
|
67
|
+
index = ast_num_creator(index)
|
|
68
|
+
return ast.Index(value=index, lineno=0, col_offset=0)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def ast_keyword_creator(arg: str, value):
|
|
72
|
+
"""Create ast.keyword node."""
|
|
73
|
+
ast_value = ast_create_arg_value(value)
|
|
74
|
+
return ast.keyword(arg=arg, value=ast_value)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def ast_kwargs_creator(kwargs: dict):
|
|
78
|
+
"""Create ast.keyword node list."""
|
|
79
|
+
keywords = list()
|
|
80
|
+
for k, v in kwargs.items():
|
|
81
|
+
kw = ast_keyword_creator(k, v)
|
|
82
|
+
keywords.append(kw)
|
|
83
|
+
return keywords
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def ast_name_creator(id_: str):
|
|
87
|
+
"""Create an ast.Name node."""
|
|
88
|
+
return ast.Name(id=id_, ctx=ast.Store, lineno=0, col_offset=0)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def ast_num_creator(num: int):
|
|
92
|
+
"""Create an ast.Num node."""
|
|
93
|
+
return ast.Num(n=num, lineno=0, col_offset=0)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def ast_str_creator(s: str):
|
|
97
|
+
"""Create an ast.str node."""
|
|
98
|
+
return ast.Str(s=s, lineno=0, col_offset=0)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def ast_subscript_creator(value: ast.AST, index: int):
|
|
102
|
+
"""Create an ast.Subscript node."""
|
|
103
|
+
s = ast_index_creator(index)
|
|
104
|
+
return ast.Subscript(value=value, slice=s, lineno=0, col_offset=0, ctx=ast.Load)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
ast_creator_registry.register("Args", ast_args_creator)
|
|
108
|
+
ast_creator_registry.register("Assign", ast_assign_creator)
|
|
109
|
+
ast_creator_registry.register("Attribute", ast_attributer_creator)
|
|
110
|
+
ast_creator_registry.register("Call", ast_call_creator)
|
|
111
|
+
ast_creator_registry.register("Index", ast_index_creator)
|
|
112
|
+
ast_creator_registry.register("KwArgs", ast_kwargs_creator)
|
|
113
|
+
ast_creator_registry.register("Name", ast_name_creator)
|
|
114
|
+
ast_creator_registry.register("Num", ast_num_creator)
|
|
115
|
+
ast_creator_registry.register("Subscript", ast_subscript_creator)
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""Find specific type ast node in specific scope."""
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
from typing import Type, Any
|
|
18
18
|
import ast
|
|
19
19
|
|
|
@@ -127,3 +127,101 @@ class StrChecker(ast.NodeVisitor):
|
|
|
127
127
|
self._hit = False
|
|
128
128
|
self.generic_visit(self._context)
|
|
129
129
|
return self._hit
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
class FindConstValueInInit(ast.NodeVisitor):
|
|
133
|
+
"""
|
|
134
|
+
Check if specific String exists in specific scope.
|
|
135
|
+
|
|
136
|
+
Args:
|
|
137
|
+
node (ast.AST): An instance of ast node as check scope.
|
|
138
|
+
"""
|
|
139
|
+
def __init__(self, node: ast.AST):
|
|
140
|
+
self._context = node
|
|
141
|
+
self._pattern = ""
|
|
142
|
+
self._hit = False
|
|
143
|
+
|
|
144
|
+
def visit_Constant(self, node: ast.Constant):
|
|
145
|
+
if node.value == self._pattern:
|
|
146
|
+
self._hit = True
|
|
147
|
+
return node
|
|
148
|
+
|
|
149
|
+
def check(self, pattern: str) -> bool:
|
|
150
|
+
"""
|
|
151
|
+
Check if `pattern` exists in `_context`.
|
|
152
|
+
|
|
153
|
+
Args:
|
|
154
|
+
pattern (str): A string indicates target pattern.
|
|
155
|
+
|
|
156
|
+
Returns:
|
|
157
|
+
A bool indicates if `pattern` exists in `_context`.
|
|
158
|
+
"""
|
|
159
|
+
self._pattern = pattern
|
|
160
|
+
self._hit = False
|
|
161
|
+
self.generic_visit(self._context)
|
|
162
|
+
return self._hit
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
class CheckPropertyIsUsed(ast.NodeVisitor):
|
|
166
|
+
"""
|
|
167
|
+
Check whether a property is used.
|
|
168
|
+
|
|
169
|
+
Args:
|
|
170
|
+
node (ast.AST): An instance of ast node.
|
|
171
|
+
"""
|
|
172
|
+
def __init__(self, node: ast.AST):
|
|
173
|
+
self._context = node
|
|
174
|
+
self._value = ""
|
|
175
|
+
self._attr = ""
|
|
176
|
+
self._hit = False
|
|
177
|
+
|
|
178
|
+
def visit_Attribute(self, node: ast.Attribute) -> Any: # pylint: disable=invalid-name
|
|
179
|
+
"""Visit a node of type ast.Attribute."""
|
|
180
|
+
if isinstance(node.value, ast.Name) and node.value.id == self._value and node.attr == self._attr:
|
|
181
|
+
self._hit = True
|
|
182
|
+
return super(CheckPropertyIsUsed, self).generic_visit(node)
|
|
183
|
+
|
|
184
|
+
def generic_visit(self, node: ast.AST) -> Any:
|
|
185
|
+
"""
|
|
186
|
+
An override method, iterating over all nodes and save target ast nodes.
|
|
187
|
+
"""
|
|
188
|
+
if self._hit:
|
|
189
|
+
return
|
|
190
|
+
super(CheckPropertyIsUsed, self).generic_visit(node)
|
|
191
|
+
|
|
192
|
+
def check(self, value, attr) -> bool:
|
|
193
|
+
"""
|
|
194
|
+
Check whether `value` and `attr` exists.
|
|
195
|
+
"""
|
|
196
|
+
self._value = value
|
|
197
|
+
self._attr = attr
|
|
198
|
+
self._hit = False
|
|
199
|
+
self.generic_visit(self._context)
|
|
200
|
+
return self._hit
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
class GetPropertyOfObj(ast.NodeVisitor):
|
|
204
|
+
"""
|
|
205
|
+
Check whether a property is used.
|
|
206
|
+
|
|
207
|
+
Args:
|
|
208
|
+
node (ast.AST): An instance of ast node.
|
|
209
|
+
"""
|
|
210
|
+
def __init__(self, node: ast.AST):
|
|
211
|
+
self._context = node
|
|
212
|
+
self._property = set()
|
|
213
|
+
|
|
214
|
+
def visit_Assign(self, node: ast.Assign) -> Any: # pylint: disable=invalid-name
|
|
215
|
+
"""Visit a node of type ast.Attribute."""
|
|
216
|
+
target = node.targets[0]
|
|
217
|
+
if isinstance(target, ast.Attribute) and isinstance(target.value, ast.Name) and target.value.id == "self":
|
|
218
|
+
self._property.add(target.attr)
|
|
219
|
+
return super(GetPropertyOfObj, self).generic_visit(node)
|
|
220
|
+
|
|
221
|
+
def get(self):
|
|
222
|
+
"""
|
|
223
|
+
Check whether `value` and `attr` exists.
|
|
224
|
+
"""
|
|
225
|
+
self._property = set()
|
|
226
|
+
self.generic_visit(self._context)
|
|
227
|
+
return self._property
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""Ast utils for create or update ast node."""
|
|
16
|
-
from __future__ import absolute_import
|
|
17
16
|
from typing import Optional
|
|
18
17
|
import ast
|
|
19
18
|
|
|
@@ -242,8 +241,10 @@ class AstModifier(ast.NodeTransformer):
|
|
|
242
241
|
An instance of ast.Assign which has been appended to 'init_func'.
|
|
243
242
|
"""
|
|
244
243
|
return AstModifier.insert_assign_to_function(init_func, targets=targets,
|
|
245
|
-
|
|
246
|
-
|
|
244
|
+
expr=ScopedValue(ValueType.NamingValue, "", "setattr"),
|
|
245
|
+
args=[ScopedValue(ValueType.NamingValue, "obj"),
|
|
246
|
+
ScopedValue.create_variable_value(field)])
|
|
247
|
+
|
|
247
248
|
|
|
248
249
|
@staticmethod
|
|
249
250
|
def create_call_assign(targets: [ScopedValue], expr: ScopedValue, args: [ScopedValue],
|
|
@@ -460,7 +461,7 @@ class AstModifier(ast.NodeTransformer):
|
|
|
460
461
|
|
|
461
462
|
Args:
|
|
462
463
|
src_argument (ScopedValue): An instance of ScopedValue represents new argument.
|
|
463
|
-
dst_ast (ast.AST):
|
|
464
|
+
dst_ast (ast.AST): Ast node to be updated by ScopedValue.
|
|
464
465
|
|
|
465
466
|
Raises:
|
|
466
467
|
TypeError: Input src_argument is not a ScopedValue
|
|
@@ -485,6 +486,18 @@ class AstModifier(ast.NodeTransformer):
|
|
|
485
486
|
str(src_argument.type))
|
|
486
487
|
dst_ast.value = src_argument.value
|
|
487
488
|
return
|
|
489
|
+
if isinstance(dst_ast, ast.Num):
|
|
490
|
+
if src_argument.type not in [ValueType.IntValue, ValueType.FloatValue]:
|
|
491
|
+
raise RuntimeError("src_argument should be a IntValue or FloatValue, but got:",
|
|
492
|
+
str(src_argument.type))
|
|
493
|
+
dst_ast.n = src_argument.value
|
|
494
|
+
return
|
|
495
|
+
if isinstance(dst_ast, ast.Str):
|
|
496
|
+
if src_argument.type not in [ValueType.StringValue]:
|
|
497
|
+
raise RuntimeError("src_argument should be a StringValue, but got:",
|
|
498
|
+
str(src_argument.type))
|
|
499
|
+
dst_ast.s = src_argument.value
|
|
500
|
+
return
|
|
488
501
|
if isinstance(dst_ast, ast.Name):
|
|
489
502
|
if src_argument.type not in [ValueType.NamingValue, ValueType.StringValue]:
|
|
490
503
|
raise RuntimeError("src_argument.type should be ValueType.NamingValue or ValueType.StringValue.")
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""Replacing specific symbol name with another symbol name in specific scope."""
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
from typing import Any
|
|
18
18
|
import ast
|
|
19
19
|
|
|
@@ -13,6 +13,5 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""Transformers for optimizing ast."""
|
|
16
|
-
from __future__ import absolute_import
|
|
17
16
|
from .flatten_recursive_stmt import FlattenRecursiveStmt
|
|
18
17
|
from .remove_return_out_of_if import RemoveReturnOutOfIf
|