mindspore 2.0.0a0__cp37-cp37m-win_amd64.whl → 2.0.0rc1__cp37-cp37m-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/__init__.py +4 -2
- mindspore/_c_dataengine.cp37-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp37-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp37-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +102 -0
- mindspore/_checkparam.py +1066 -1001
- mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +4 -3
- mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +50 -48
- mindspore/_extends/parallel_compile/akg_compiler/util.py +9 -4
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +4 -4
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +9 -4
- mindspore/_extends/parse/__init__.py +5 -3
- mindspore/_extends/parse/namespace.py +16 -1
- mindspore/_extends/parse/parser.py +107 -22
- mindspore/_extends/parse/resources.py +0 -7
- mindspore/_extends/parse/standard_method.py +885 -413
- mindspore/amp.py +52 -57
- mindspore/boost/boost.py +2 -2
- mindspore/boost/boost_cell_wrapper.py +38 -20
- mindspore/boost/dim_reduce.py +3 -3
- mindspore/boost/group_loss_scale_manager.py +1 -1
- mindspore/common/__init__.py +4 -6
- 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 +41 -7
- mindspore/common/api.py +215 -141
- mindspore/common/dtype.py +8 -1
- mindspore/common/dump.py +2 -2
- mindspore/common/initializer.py +4 -2
- mindspore/common/jit_config.py +17 -13
- mindspore/common/mutable.py +33 -13
- mindspore/common/parameter.py +23 -21
- mindspore/common/seed.py +8 -24
- mindspore/common/sparse_tensor.py +62 -41
- mindspore/common/tensor.py +852 -1154
- mindspore/communication/__init__.py +2 -2
- mindspore/communication/_comm_helper.py +11 -4
- mindspore/communication/management.py +22 -21
- mindspore/config/op_info.config +501 -1008
- mindspore/context.py +201 -23
- mindspore/dataset/__init__.py +6 -6
- mindspore/dataset/audio/__init__.py +7 -7
- mindspore/dataset/audio/transforms.py +670 -30
- mindspore/dataset/audio/utils.py +47 -4
- mindspore/dataset/audio/validators.py +223 -1
- mindspore/dataset/callback/ds_callback.py +2 -2
- mindspore/dataset/core/config.py +210 -14
- mindspore/dataset/core/validator_helpers.py +2 -2
- 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 +1 -1
- mindspore/dataset/engine/datasets.py +322 -66
- mindspore/dataset/engine/datasets_audio.py +80 -76
- mindspore/dataset/engine/datasets_standard_format.py +51 -38
- mindspore/dataset/engine/datasets_text.py +232 -118
- mindspore/dataset/engine/datasets_user_defined.py +41 -17
- mindspore/dataset/engine/datasets_vision.py +746 -225
- mindspore/dataset/engine/graphdata.py +75 -10
- mindspore/dataset/engine/iterators.py +45 -5
- mindspore/dataset/engine/offload.py +48 -28
- mindspore/dataset/engine/validators.py +117 -8
- mindspore/dataset/text/__init__.py +6 -5
- mindspore/dataset/text/transforms.py +86 -3
- mindspore/dataset/text/utils.py +6 -4
- mindspore/dataset/text/validators.py +25 -0
- mindspore/dataset/transforms/__init__.py +3 -2
- mindspore/dataset/transforms/c_transforms.py +1 -1
- mindspore/dataset/transforms/transforms.py +2 -2
- mindspore/dataset/utils/__init__.py +2 -1
- mindspore/dataset/utils/line_reader.py +121 -0
- mindspore/dataset/vision/__init__.py +2 -3
- mindspore/dataset/vision/c_transforms.py +9 -9
- mindspore/dataset/vision/py_transforms.py +5 -5
- mindspore/dataset/vision/py_transforms_util.py +2 -0
- mindspore/dataset/vision/transforms.py +160 -161
- mindspore/dataset/vision/utils.py +3 -3
- mindspore/experimental/map_parameter.py +38 -26
- 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 +44 -9
- mindspore/include/api/delegate.h +1 -1
- 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_parallel_runner.h +2 -2
- mindspore/include/api/net.h +12 -11
- mindspore/include/api/serialization.h +19 -3
- mindspore/include/api/types.h +3 -3
- mindspore/include/dataset/constants.h +7 -0
- mindspore/include/dataset/text.h +59 -0
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +1 -1
- mindspore/mindrecord/filereader.py +18 -0
- mindspore/mindrecord/filewriter.py +197 -34
- mindspore/mindrecord/shardreader.py +9 -0
- mindspore/mindrecord/shardwriter.py +1 -1
- mindspore/mindrecord/tools/cifar100_to_mr.py +3 -3
- mindspore/mindrecord/tools/cifar10_to_mr.py +3 -3
- mindspore/mindrecord/tools/csv_to_mr.py +3 -3
- mindspore/mindrecord/tools/imagenet_to_mr.py +16 -11
- mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
- mindspore/mindrecord/tools/tfrecord_to_mr.py +6 -6
- mindspore/mindspore_backend.dll +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_glog.dll +0 -0
- mindspore/mindspore_shared_lib.dll +0 -0
- mindspore/nn/__init__.py +0 -4
- mindspore/nn/cell.py +204 -132
- mindspore/nn/dynamic_lr.py +1 -1
- mindspore/nn/grad/cell_grad.py +7 -6
- mindspore/nn/layer/__init__.py +5 -4
- mindspore/nn/layer/activation.py +40 -89
- mindspore/nn/layer/basic.py +255 -624
- mindspore/nn/layer/channel_shuffle.py +7 -6
- mindspore/nn/layer/combined.py +1 -1
- mindspore/nn/layer/container.py +41 -4
- mindspore/nn/layer/conv.py +64 -28
- mindspore/nn/layer/dense.py +9 -8
- mindspore/nn/layer/embedding.py +27 -25
- mindspore/nn/layer/image.py +53 -46
- mindspore/nn/layer/math.py +97 -105
- mindspore/nn/layer/normalization.py +117 -86
- mindspore/nn/layer/padding.py +185 -95
- mindspore/nn/layer/pooling.py +817 -414
- mindspore/nn/layer/rnn_cells.py +10 -15
- mindspore/nn/layer/rnns.py +37 -38
- mindspore/nn/layer/thor_layer.py +11 -12
- 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 +5 -4
- mindspore/nn/loss/loss.py +334 -199
- mindspore/nn/optim/ada_grad.py +6 -6
- mindspore/nn/optim/adadelta.py +2 -3
- mindspore/nn/optim/adafactor.py +4 -5
- mindspore/nn/optim/adam.py +126 -62
- mindspore/nn/optim/adamax.py +3 -4
- mindspore/nn/optim/adasum.py +6 -6
- mindspore/nn/optim/asgd.py +2 -2
- mindspore/nn/optim/ftrl.py +67 -38
- mindspore/nn/optim/lamb.py +4 -5
- mindspore/nn/optim/lars.py +2 -2
- mindspore/nn/optim/lazyadam.py +43 -4
- mindspore/nn/optim/momentum.py +6 -5
- mindspore/nn/optim/optimizer.py +3 -1
- mindspore/nn/optim/proximal_ada_grad.py +2 -2
- mindspore/nn/optim/rmsprop.py +1 -1
- mindspore/nn/optim/rprop.py +8 -9
- mindspore/nn/optim/sgd.py +19 -13
- mindspore/nn/optim/thor.py +10 -15
- mindspore/nn/probability/__init__.py +0 -2
- mindspore/nn/probability/bijector/bijector.py +4 -4
- mindspore/nn/probability/bijector/invert.py +1 -1
- 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/_utils/utils.py +9 -15
- mindspore/nn/probability/distribution/bernoulli.py +3 -3
- mindspore/nn/probability/distribution/beta.py +1 -1
- mindspore/nn/probability/distribution/categorical.py +5 -7
- mindspore/nn/probability/distribution/cauchy.py +3 -3
- mindspore/nn/probability/distribution/distribution.py +2 -2
- mindspore/nn/probability/distribution/exponential.py +2 -2
- mindspore/nn/probability/distribution/gamma.py +3 -3
- mindspore/nn/probability/distribution/geometric.py +1 -1
- mindspore/nn/probability/distribution/gumbel.py +3 -3
- mindspore/nn/probability/distribution/half_normal.py +15 -11
- mindspore/nn/probability/distribution/laplace.py +16 -13
- mindspore/nn/probability/distribution/logistic.py +2 -2
- mindspore/nn/probability/distribution/normal.py +1 -1
- mindspore/nn/probability/distribution/poisson.py +1 -1
- mindspore/nn/probability/distribution/student_t.py +20 -15
- mindspore/nn/probability/distribution/transformed_distribution.py +4 -4
- mindspore/nn/probability/distribution/uniform.py +2 -2
- mindspore/nn/reinforcement/_tensors_queue.py +3 -3
- mindspore/nn/reinforcement/tensor_array.py +2 -2
- mindspore/nn/sparse/sparse.py +2 -2
- mindspore/nn/wrap/cell_wrapper.py +27 -10
- mindspore/nn/wrap/grad_reducer.py +2 -2
- mindspore/nn/wrap/loss_scale.py +40 -24
- mindspore/numpy/array_creations.py +33 -22
- mindspore/numpy/array_ops.py +35 -30
- mindspore/numpy/logic_ops.py +6 -27
- mindspore/numpy/math_ops.py +22 -19
- mindspore/numpy/utils.py +1 -1
- mindspore/numpy/utils_const.py +108 -58
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/_constants.py +0 -6
- mindspore/ops/_grad/__init__.py +2 -1
- mindspore/ops/_grad/grad_array_ops.py +86 -117
- mindspore/ops/_grad/grad_base.py +23 -1
- mindspore/ops/_grad/grad_clip_ops.py +2 -3
- mindspore/ops/_grad/grad_comm_ops.py +34 -24
- mindspore/ops/_grad/grad_implementations.py +9 -45
- mindspore/ops/_grad/grad_inner_ops.py +47 -4
- mindspore/ops/_grad/grad_math_ops.py +142 -117
- mindspore/ops/_grad/grad_nn_ops.py +71 -165
- mindspore/ops/_grad/grad_sequence_ops.py +296 -0
- mindspore/ops/_grad/grad_sparse.py +7 -6
- mindspore/ops/_grad_experimental/__init__.py +1 -0
- mindspore/ops/_grad_experimental/grad_array_ops.py +150 -15
- mindspore/ops/_grad_experimental/grad_image_ops.py +16 -7
- mindspore/ops/_grad_experimental/grad_inner_ops.py +1 -22
- mindspore/ops/_grad_experimental/grad_linalg_ops.py +4 -11
- mindspore/ops/_grad_experimental/grad_math_ops.py +210 -89
- mindspore/ops/_grad_experimental/grad_nn_ops.py +26 -22
- mindspore/ops/_grad_experimental/grad_scalar_ops.py +112 -0
- mindspore/ops/_grad_experimental/grad_sparse_ops.py +49 -8
- mindspore/ops/_op_impl/_custom_op/batch_matmul_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold.py +2 -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 +4 -4
- 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 +2 -2
- mindspore/ops/_op_impl/_custom_op/correction_mul_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -5
- 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_impl.py +0 -4
- 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 +236 -4
- mindspore/ops/_op_impl/aicpu/abs.py +36 -0
- mindspore/ops/_op_impl/aicpu/{adaptive_avg_pool_2d_v1.py → adaptive_avg_pool_2d.py} +6 -5
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d_grad.py +34 -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/batch_matmul.py +43 -43
- mindspore/ops/_op_impl/aicpu/bernoulli.py +48 -0
- mindspore/{compression/common/__init__.py → ops/_op_impl/aicpu/bessel_i0.py} +15 -8
- mindspore/ops/_op_impl/aicpu/channel_shuffle.py +40 -0
- mindspore/ops/_op_impl/aicpu/conj.py +11 -0
- mindspore/ops/_op_impl/aicpu/cumulative_logsumexp.py +0 -3
- mindspore/ops/_op_impl/aicpu/deformable_offsets.py +38 -0
- mindspore/ops/_op_impl/aicpu/deformable_offsets_grad.py +43 -0
- mindspore/ops/_op_impl/aicpu/{adaptive_avg_pool_2d_grad_v1.py → digamma.py} +7 -9
- 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/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/aicpu/less.py +41 -0
- mindspore/{nn/probability/infer/variational/__init__.py → ops/_op_impl/aicpu/lgamma.py} +16 -10
- mindspore/ops/_op_impl/aicpu/mirror_pad.py +0 -4
- 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/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/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/randperm_v2.py +41 -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/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/smooth_l1_loss.py +35 -0
- mindspore/ops/_op_impl/aicpu/smooth_l1_loss_grad.py +37 -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_slice.py +4 -0
- mindspore/ops/_op_impl/aicpu/sparse_slice_grad.py +6 -0
- mindspore/ops/_op_impl/aicpu/tensor_scatter_update.py +59 -0
- mindspore/ops/_op_impl/aicpu/trans_data.py +1 -0
- mindspore/ops/_op_impl/aicpu/tril_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/dynamic_shape.py +5 -1
- mindspore/ops/_op_impl/cpu/sparse_slice.py +4 -0
- mindspore/ops/_op_impl/cpu/sparse_slice_grad.py +6 -0
- mindspore/ops/_op_impl/cpu/tensor_shape.py +5 -1
- mindspore/ops/_op_impl/tbe/__init__.py +27 -611
- 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/batch_matmul_ds.py +1 -0
- 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/bn_infer_grad.py +4 -2
- 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/data_format_dim_map_ds.py +1 -0
- mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +2 -2
- 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/{index_add.py → inplace_index_add.py} +3 -6
- mindspore/ops/_op_impl/tbe/matmul_ds.py +2 -0
- 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/scatter_mul.py +2 -0
- mindspore/ops/_op_impl/tbe/scatter_nd_add.py +0 -2
- 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/trans_data_ds.py +15 -5
- mindspore/ops/_register_for_op.py +1 -0
- mindspore/ops/_utils/__init__.py +1 -2
- mindspore/ops/_utils/utils.py +19 -40
- mindspore/ops/_vmap/vmap_array_ops.py +116 -38
- mindspore/ops/_vmap/vmap_base.py +16 -9
- 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 +7 -5
- mindspore/ops/_vmap/vmap_image_ops.py +12 -5
- mindspore/ops/_vmap/vmap_math_ops.py +46 -5
- mindspore/ops/_vmap/vmap_nn_ops.py +15 -21
- mindspore/ops/_vmap/vmap_random_ops.py +1 -1
- mindspore/ops/bprop_mindir/AdaptiveAvgPool2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/AdaptiveMaxPool2D_bprop.mindir +0 -0
- 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/BatchNormGrad_bprop.mindir +0 -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 +220 -106
- mindspore/ops/bprop_mindir/CTCLoss_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/DeformableOffsets_bprop.mindir +58 -0
- mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +138 -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 -23
- mindspore/ops/bprop_mindir/DropoutGenMask_bprop.mindir +16 -17
- 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/Elu_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ExpandDims_bprop.mindir +39 -41
- mindspore/ops/bprop_mindir/FastGeLU_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Flatten_bprop.mindir +41 -43
- mindspore/ops/bprop_mindir/GatherNd_bprop.mindir +51 -57
- mindspore/ops/bprop_mindir/Gather_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/HSigmoid_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/HSwish_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/InstanceNorm_bprop.mindir +0 -0
- 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/LogSoftmax_bprop.mindir +23 -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/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/OneHot_bprop.mindir +24 -25
- 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/ReLU6_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/ReLUV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ReluGrad_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/Reshape_bprop.mindir +53 -53
- mindspore/ops/bprop_mindir/ResizeBilinear_bprop.mindir +29 -0
- mindspore/ops/bprop_mindir/ResizeNearestNeighbor_bprop.mindir +77 -85
- mindspore/ops/bprop_mindir/SeLU_bprop.mindir +21 -0
- 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/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/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Squeeze_bprop.mindir +37 -39
- mindspore/ops/bprop_mindir/StridedSlice_bprop.mindir +70 -72
- mindspore/ops/bprop_mindir/TanhGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Tanh_bprop.mindir +66 -0
- mindspore/ops/bprop_mindir/Tile_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TopK_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +17 -17
- mindspore/ops/bprop_mindir/UpsampleNearest3D_bprop.mindir +32 -0
- mindspore/ops/bprop_mindir/UpsampleTrilinear3D_bprop.mindir +38 -0
- mindspore/ops/bprop_mindir/generate_mindir.py +2 -0
- mindspore/ops/composite/__init__.py +7 -8
- mindspore/ops/composite/base.py +101 -47
- mindspore/ops/composite/math_ops.py +188 -158
- mindspore/ops/composite/multitype_ops/_compile_utils.py +415 -170
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +142 -87
- mindspore/ops/composite/multitype_ops/add_impl.py +6 -1
- mindspore/ops/composite/multitype_ops/div_impl.py +2 -3
- mindspore/ops/composite/multitype_ops/getitem_impl.py +31 -3
- 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 +9 -0
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +31 -0
- mindspore/ops/composite/multitype_ops/less_impl.py +31 -0
- mindspore/ops/composite/multitype_ops/mul_impl.py +21 -5
- mindspore/ops/composite/multitype_ops/not_in_impl.py +9 -0
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +2 -4
- mindspore/ops/composite/multitype_ops/setitem_impl.py +21 -3
- mindspore/ops/composite/multitype_ops/sub_impl.py +1 -1
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +35 -4
- mindspore/ops/function/__init__.py +152 -8
- mindspore/ops/function/array_func.py +2555 -674
- mindspore/ops/function/clip_func.py +209 -13
- mindspore/ops/function/debug_func.py +2 -2
- mindspore/ops/function/grad/__init__.py +2 -1
- mindspore/ops/function/grad/grad_func.py +147 -62
- mindspore/ops/function/image_func.py +54 -38
- mindspore/ops/function/linalg_func.py +167 -16
- mindspore/ops/function/math_func.py +4849 -1492
- mindspore/ops/function/nn_func.py +2573 -988
- mindspore/ops/function/other_func.py +115 -0
- mindspore/ops/function/parameter_func.py +3 -3
- mindspore/ops/function/random_func.py +790 -73
- mindspore/ops/function/sparse_func.py +98 -78
- mindspore/ops/function/sparse_unary_func.py +54 -53
- mindspore/ops/function/spectral_func.py +27 -24
- mindspore/ops/function/vmap_func.py +22 -2
- mindspore/ops/functional.py +97 -37
- mindspore/ops/op_info_register.py +70 -28
- mindspore/ops/operations/__init__.py +47 -14
- mindspore/ops/operations/_csr_ops.py +7 -7
- mindspore/ops/operations/_embedding_cache_ops.py +5 -5
- mindspore/ops/operations/_grad_ops.py +276 -187
- mindspore/ops/operations/_inner_ops.py +319 -113
- mindspore/ops/operations/_ms_kernel.py +10 -8
- mindspore/ops/operations/_ocr_ops.py +9 -9
- mindspore/ops/operations/_opaque_predicate_registry.py +4 -0
- mindspore/ops/operations/_quant_ops.py +137 -102
- mindspore/ops/operations/_rl_inner_ops.py +121 -60
- mindspore/ops/operations/_scalar_ops.py +466 -0
- mindspore/ops/operations/_sequence_ops.py +1004 -2
- mindspore/ops/operations/_tensor_array.py +10 -11
- mindspore/ops/operations/_thor_ops.py +1 -1
- mindspore/ops/operations/array_ops.py +801 -466
- mindspore/ops/operations/comm_ops.py +51 -49
- mindspore/ops/operations/control_ops.py +2 -2
- mindspore/ops/operations/custom_ops.py +123 -44
- mindspore/ops/operations/debug_ops.py +24 -24
- mindspore/ops/operations/image_ops.py +240 -153
- mindspore/ops/operations/inner_ops.py +34 -50
- mindspore/ops/operations/linalg_ops.py +31 -9
- mindspore/ops/operations/math_ops.py +988 -757
- mindspore/ops/operations/nn_ops.py +965 -819
- mindspore/ops/operations/other_ops.py +51 -40
- mindspore/ops/operations/random_ops.py +204 -122
- mindspore/ops/operations/rl_ops.py +8 -9
- mindspore/ops/operations/sparse_ops.py +254 -93
- mindspore/ops/operations/spectral_ops.py +35 -3
- mindspore/ops/primitive.py +111 -9
- mindspore/parallel/_auto_parallel_context.py +189 -83
- mindspore/parallel/_offload_context.py +185 -0
- mindspore/parallel/_parallel_serialization.py +99 -7
- mindspore/parallel/_ps_context.py +9 -5
- mindspore/parallel/_recovery_context.py +1 -1
- mindspore/parallel/_tensor.py +7 -1
- mindspore/{nn/transformer → parallel/_transformer}/__init__.py +6 -6
- mindspore/{nn/transformer → parallel/_transformer}/layers.py +6 -37
- mindspore/{nn/transformer → parallel/_transformer}/loss.py +4 -7
- mindspore/{nn/transformer → parallel/_transformer}/moe.py +20 -16
- mindspore/{nn/transformer → parallel/_transformer}/op_parallel_config.py +3 -3
- mindspore/{nn/transformer → parallel/_transformer}/transformer.py +48 -111
- mindspore/parallel/_utils.py +1 -2
- mindspore/parallel/algo_parameter_config.py +1 -1
- mindspore/parallel/checkpoint_transform.py +37 -34
- mindspore/parallel/shard.py +17 -18
- mindspore/profiler/common/validator/validate_path.py +2 -2
- mindspore/profiler/envprofiling.py +69 -47
- mindspore/profiler/parser/ascend_timeline_generator.py +49 -42
- mindspore/profiler/parser/base_timeline_generator.py +49 -56
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +98 -78
- mindspore/profiler/parser/hwts_log_parser.py +1 -1
- mindspore/profiler/parser/integrator.py +15 -14
- mindspore/profiler/parser/minddata_analyzer.py +2 -2
- mindspore/profiler/parser/msadvisor_analyzer.py +12 -25
- mindspore/profiler/parser/msadvisor_parser.py +2 -4
- mindspore/profiler/parser/optime_parser.py +17 -18
- mindspore/profiler/parser/profiler_info.py +2 -1
- mindspore/profiler/profiling.py +218 -186
- mindspore/rewrite/__init__.py +3 -1
- mindspore/rewrite/api/node.py +1 -114
- mindspore/rewrite/api/node_type.py +3 -0
- mindspore/rewrite/api/pattern_engine.py +31 -1
- mindspore/rewrite/api/scoped_value.py +4 -4
- mindspore/rewrite/api/symbol_tree.py +3 -78
- mindspore/rewrite/api/tree_node_helper.py +1 -1
- mindspore/rewrite/ast_creator_register.py +1 -0
- mindspore/rewrite/ast_helpers/__init__.py +2 -2
- mindspore/rewrite/ast_helpers/ast_creator.py +1 -2
- mindspore/rewrite/ast_helpers/ast_finder.py +65 -0
- mindspore/rewrite/ast_helpers/ast_modifier.py +11 -3
- mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +18 -2
- mindspore/rewrite/namespace.py +0 -2
- mindspore/rewrite/node.py +157 -11
- mindspore/rewrite/parsers/assign_parser.py +231 -53
- mindspore/rewrite/parsers/class_def_parser.py +187 -109
- mindspore/rewrite/parsers/for_parser.py +24 -14
- mindspore/rewrite/parsers/function_def_parser.py +21 -4
- mindspore/rewrite/parsers/if_parser.py +6 -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 +256 -133
- mindspore/rewrite/symbol_tree_builder.py +38 -1
- mindspore/run_check/_check_version.py +69 -63
- mindspore/run_check/run_check.py +2 -1
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/__init__.py +1 -1
- mindspore/train/_utils.py +28 -5
- mindspore/train/amp.py +273 -102
- mindspore/train/callback/_backup_and_restore.py +5 -5
- mindspore/train/callback/_callback.py +2 -2
- mindspore/train/callback/_checkpoint.py +3 -3
- mindspore/train/callback/_early_stop.py +3 -3
- mindspore/train/callback/_lambda_callback.py +2 -2
- mindspore/train/callback/_landscape.py +29 -31
- mindspore/train/callback/_loss_monitor.py +3 -3
- mindspore/train/callback/_on_request_exit.py +3 -3
- mindspore/train/callback/_reduce_lr_on_plateau.py +4 -4
- mindspore/train/callback/_summary_collector.py +23 -16
- mindspore/train/callback/_time_monitor.py +3 -3
- mindspore/train/checkpoint_pb2.py +68 -8
- mindspore/train/data_sink.py +15 -3
- mindspore/train/dataset_helper.py +10 -15
- mindspore/train/loss_scale_manager.py +8 -11
- mindspore/train/metrics/__init__.py +1 -1
- mindspore/train/metrics/bleu_score.py +1 -1
- mindspore/train/metrics/confusion_matrix.py +1 -1
- mindspore/train/metrics/cosine_similarity.py +1 -1
- mindspore/train/metrics/dice.py +2 -2
- mindspore/train/metrics/fbeta.py +1 -1
- mindspore/train/metrics/hausdorff_distance.py +4 -3
- mindspore/train/metrics/mean_surface_distance.py +2 -2
- mindspore/train/metrics/occlusion_sensitivity.py +1 -1
- mindspore/train/metrics/perplexity.py +1 -1
- mindspore/train/metrics/precision.py +1 -1
- mindspore/train/metrics/recall.py +1 -1
- mindspore/train/metrics/roc.py +2 -2
- mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
- mindspore/train/mind_ir_pb2.py +116 -37
- mindspore/train/model.py +45 -28
- mindspore/train/serialization.py +295 -188
- mindspore/train/summary/_summary_adapter.py +1 -1
- mindspore/train/summary/summary_record.py +43 -13
- mindspore/train/train_thor/convert_utils.py +2 -2
- mindspore/train/train_thor/dataset_helper.py +3 -3
- mindspore/turbojpeg.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/METADATA +3 -2
- {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/RECORD +610 -541
- mindspore/compression/__init__.py +0 -19
- mindspore/compression/common/constant.py +0 -124
- mindspore/compression/export/__init__.py +0 -19
- mindspore/compression/export/quant_export.py +0 -515
- mindspore/compression/quant/__init__.py +0 -28
- mindspore/compression/quant/qat.py +0 -634
- mindspore/compression/quant/quant_utils.py +0 -462
- mindspore/compression/quant/quantizer.py +0 -68
- 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 -140
- mindspore/nn/probability/dpn/vae/vae.py +0 -124
- 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 -364
- 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/aicpu/parallel_concat.py +0 -42
- mindspore/ops/_op_impl/tbe/gather_v2.py +0 -56
- mindspore/ops/bprop_mindir/AssignAdd_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/Cast_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/LogicalOr_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/MatMul_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ReLU_bprop.mindir +0 -17
- mindspore/ops/bprop_mindir/Transpose_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/UpdateState_bprop.mindir +0 -15
- mindspore/ops/composite/array_ops.py +0 -241
- mindspore/ops/composite/clip_ops.py +0 -134
- mindspore/ops/composite/random_ops.py +0 -426
- mindspore/ops/composite/vmap_ops.py +0 -38
- 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-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/WHEEL +0 -0
- {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/entry_points.txt +0 -0
- {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/top_level.txt +0 -0
mindspore/nn/wrap/loss_scale.py
CHANGED
|
@@ -23,6 +23,7 @@ from mindspore.nn.cell import Cell
|
|
|
23
23
|
from mindspore.common import Tensor
|
|
24
24
|
from mindspore.common.sparse_tensor import RowTensorInner
|
|
25
25
|
from mindspore.common.parameter import Parameter
|
|
26
|
+
from mindspore.ops.operations.math_ops import NPUGetFloatStatusV2, NPUClearFloatStatusV2
|
|
26
27
|
from mindspore.ops import functional as F
|
|
27
28
|
from mindspore.ops import composite as C
|
|
28
29
|
from mindspore.ops import operations as P
|
|
@@ -244,7 +245,7 @@ class TrainOneStepWithLossScaleCell(TrainOneStepCell):
|
|
|
244
245
|
the shape should be :math:`()` or :math:`(1,)`.
|
|
245
246
|
|
|
246
247
|
Inputs:
|
|
247
|
-
-
|
|
248
|
+
- **\*inputs** (Tuple(Tensor)) - Tuple of input tensors with shape :math:`(N, \ldots)`.
|
|
248
249
|
|
|
249
250
|
Outputs:
|
|
250
251
|
Tuple of 3 Tensor, the loss, overflow flag and current loss scale value.
|
|
@@ -255,7 +256,7 @@ class TrainOneStepWithLossScaleCell(TrainOneStepCell):
|
|
|
255
256
|
|
|
256
257
|
Raises:
|
|
257
258
|
TypeError: If `scale_sense` is neither Cell nor Tensor.
|
|
258
|
-
ValueError: If shape of `scale_sense` is neither (1,) nor ()
|
|
259
|
+
ValueError: If shape of `scale_sense` is neither :math:`(1,)` nor :math:`()`.
|
|
259
260
|
|
|
260
261
|
Supported Platforms:
|
|
261
262
|
``Ascend`` ``GPU``
|
|
@@ -309,8 +310,11 @@ class TrainOneStepWithLossScaleCell(TrainOneStepCell):
|
|
|
309
310
|
super(TrainOneStepWithLossScaleCell, self).__init__(network, optimizer, sens=None)
|
|
310
311
|
self.hyper_map = C.HyperMap()
|
|
311
312
|
self.base = Tensor(1, mstype.float32)
|
|
313
|
+
self.base0 = Tensor(0, mstype.int32)
|
|
312
314
|
self.reduce_sum = P.ReduceSum(keep_dims=False)
|
|
315
|
+
self.reduce_any = P.ReduceAny(keep_dims=False)
|
|
313
316
|
self.less_equal = P.LessEqual()
|
|
317
|
+
self.not_equal = P.NotEqual()
|
|
314
318
|
self.allreduce = P.AllReduce()
|
|
315
319
|
self.is_distributed = (self.parallel_mode != ParallelMode.STAND_ALONE)
|
|
316
320
|
self.gpu_target = (context.get_context("device_target") == "GPU")
|
|
@@ -385,18 +389,17 @@ class TrainOneStepWithLossScaleCell(TrainOneStepCell):
|
|
|
385
389
|
cleared before executing the computation.
|
|
386
390
|
|
|
387
391
|
Returns:
|
|
388
|
-
Tuple[object, object], the first
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
execution
|
|
392
|
+
Tuple[object, object], the first output is used to control the execution sequence. To ensure that the
|
|
393
|
+
`start_overflow_check` is executed before get_overflow_status after compilation optimization is performed.
|
|
394
|
+
This value should be used as the first input of get_overflow_status. The second output is the same as
|
|
395
|
+
the input of compute_input, used to control the execution sequence, and make ensure that the overflow flag
|
|
396
|
+
is cleaned up when the function returns.
|
|
392
397
|
"""
|
|
393
|
-
status =
|
|
398
|
+
status = Tensor([0] * 8, mstype.int32)
|
|
394
399
|
if not self.gpu_target:
|
|
395
|
-
# init overflow buffer
|
|
396
|
-
status = P.NPUAllocFloatStatus()()
|
|
397
400
|
status = F.depend(status, pre_cond)
|
|
398
401
|
# clear overflow buffer
|
|
399
|
-
clear_status =
|
|
402
|
+
clear_status = NPUClearFloatStatusV2()(status)
|
|
400
403
|
compute_input = F.depend(compute_input, clear_status)
|
|
401
404
|
return status, compute_input
|
|
402
405
|
|
|
@@ -409,32 +412,45 @@ class TrainOneStepWithLossScaleCell(TrainOneStepCell):
|
|
|
409
412
|
based on this class can also call this interface to process the overflow.
|
|
410
413
|
|
|
411
414
|
Args:
|
|
412
|
-
status (object):
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
computation.
|
|
415
|
+
status (object): To control the execution sequence with start_overflow_check, it should be set as the first
|
|
416
|
+
output of start_overflow_check.
|
|
417
|
+
compute_output: Overflow detection should be performed in a certain computation process. Set
|
|
418
|
+
`compute_output` as the output of the computation process.
|
|
416
419
|
|
|
417
420
|
Returns:
|
|
418
421
|
bool, whether the overflow occurs or not.
|
|
419
422
|
"""
|
|
420
423
|
if not self.gpu_target:
|
|
421
424
|
status = F.depend(status, compute_output)
|
|
422
|
-
get_status =
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
425
|
+
get_status = NPUGetFloatStatusV2()(status)
|
|
426
|
+
|
|
427
|
+
if self.is_distributed:
|
|
428
|
+
# sum overflow flag over devices
|
|
429
|
+
flag_reduce = self.allreduce(get_status)
|
|
430
|
+
# get_status not equal to [0]*8 means overflow
|
|
431
|
+
flag = self.not_equal(self.base0, flag_reduce)
|
|
432
|
+
status = F.depend(status, flag)
|
|
433
|
+
# distributed needs to skip allreduce to avoid its overflow affecting the next step
|
|
434
|
+
clear_status = NPUClearFloatStatusV2()(status)
|
|
435
|
+
flag = F.depend(flag, clear_status)
|
|
436
|
+
else:
|
|
437
|
+
status = F.depend(status, get_status)
|
|
438
|
+
clear_status = NPUClearFloatStatusV2()(status)
|
|
439
|
+
get_status = F.depend(get_status, clear_status)
|
|
440
|
+
flag = self.not_equal(self.base0, get_status)
|
|
441
|
+
overflow = self.reduce_any(flag)
|
|
426
442
|
else:
|
|
427
443
|
flag_sum = self.hyper_map(F.partial(_grad_overflow), compute_output)
|
|
428
444
|
flag_sum = P.AddN()(flag_sum)
|
|
429
445
|
# convert flag_sum to scalar
|
|
430
446
|
flag_sum = P.Reshape()(flag_sum, (()))
|
|
431
447
|
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
448
|
+
if self.is_distributed:
|
|
449
|
+
# sum overflow flag over devices
|
|
450
|
+
flag_reduce = self.allreduce(flag_sum)
|
|
451
|
+
overflow = self.less_equal(self.base, flag_reduce)
|
|
452
|
+
else:
|
|
453
|
+
overflow = self.less_equal(self.base, flag_sum)
|
|
438
454
|
return overflow
|
|
439
455
|
|
|
440
456
|
def process_loss_scale(self, overflow):
|
|
@@ -22,12 +22,14 @@ import operator
|
|
|
22
22
|
import numpy as onp
|
|
23
23
|
|
|
24
24
|
from mindspore import context
|
|
25
|
+
from mindspore import ops
|
|
25
26
|
from mindspore.common import Tensor
|
|
26
27
|
from mindspore.common import dtype as mstype
|
|
27
28
|
from mindspore.common.seed import get_seed
|
|
28
29
|
from mindspore.ops import operations as P
|
|
29
30
|
from mindspore.ops import functional as F
|
|
30
|
-
from mindspore.ops.primitive import constexpr
|
|
31
|
+
from mindspore.ops.primitive import constexpr, _primexpr
|
|
32
|
+
from mindspore.ops.function.random_func import _get_seed
|
|
31
33
|
from mindspore.nn.layer.basic import tril as nn_tril
|
|
32
34
|
from mindspore.nn.layer.basic import triu as nn_triu
|
|
33
35
|
from mindspore._c_expression import Tensor as Tensor_
|
|
@@ -454,7 +456,8 @@ def randn(*shape, dtype=mstype.float32):
|
|
|
454
456
|
size = _generate_shapes(shape)
|
|
455
457
|
seed = get_seed()
|
|
456
458
|
if seed is not None:
|
|
457
|
-
|
|
459
|
+
seed1, seed2 = _get_seed(seed, "StandardNormal")
|
|
460
|
+
stdnormal = P.StandardNormal(seed=seed1, seed2=seed2)
|
|
458
461
|
else:
|
|
459
462
|
stdnormal = P.StandardNormal()
|
|
460
463
|
return stdnormal(size).astype(dtype)
|
|
@@ -494,7 +497,8 @@ def rand(*shape, dtype=mstype.float32):
|
|
|
494
497
|
size = _generate_shapes(shape)
|
|
495
498
|
seed = get_seed()
|
|
496
499
|
if seed is not None:
|
|
497
|
-
|
|
500
|
+
seed1, seed2 = _get_seed(seed, "UniformReal")
|
|
501
|
+
uniformreal = P.UniformReal(seed=seed1, seed2=seed2)
|
|
498
502
|
else:
|
|
499
503
|
uniformreal = P.UniformReal()
|
|
500
504
|
return uniformreal(size).astype(dtype)
|
|
@@ -563,7 +567,8 @@ def randint(minval, maxval=None, shape=None, dtype=mstype.int32):
|
|
|
563
567
|
shape = _check_shape(shape)
|
|
564
568
|
seed = get_seed()
|
|
565
569
|
if seed is not None:
|
|
566
|
-
|
|
570
|
+
seed1, seed2 = _get_seed(seed, "UniformInt")
|
|
571
|
+
uniformint = P.UniformInt(seed=seed1, seed2=seed2)
|
|
567
572
|
else:
|
|
568
573
|
uniformint = P.UniformInt()
|
|
569
574
|
t_min = _type_convert(Tensor, minval).astype(dtype)
|
|
@@ -971,12 +976,10 @@ def empty(shape, dtype=mstype.float32):
|
|
|
971
976
|
>>> import mindspore.numpy as np
|
|
972
977
|
>>> output = np.empty((2, 3))
|
|
973
978
|
>>> print(output)
|
|
974
|
-
|
|
975
|
-
|
|
979
|
+
[[0. 0. 0.]
|
|
980
|
+
[0. 0. 0.]]
|
|
976
981
|
"""
|
|
977
|
-
|
|
978
|
-
dtype = _check_dtype(dtype)
|
|
979
|
-
return empty_compile(dtype, shape)
|
|
982
|
+
return ops.zeros(shape, dtype)
|
|
980
983
|
|
|
981
984
|
|
|
982
985
|
def _get_shape(array_like):
|
|
@@ -1042,8 +1045,10 @@ def empty_like(prototype, dtype=None, shape=None):
|
|
|
1042
1045
|
>>> a = np.ones((4,1,2))
|
|
1043
1046
|
>>> output = np.empty_like(a)
|
|
1044
1047
|
>>> print(output)
|
|
1045
|
-
|
|
1046
|
-
|
|
1048
|
+
[[[0. 0.]]
|
|
1049
|
+
[[0. 0.]]
|
|
1050
|
+
[[0. 0.]]
|
|
1051
|
+
[[0. 0.]]]
|
|
1047
1052
|
"""
|
|
1048
1053
|
return _x_like(prototype, dtype, shape, empty)
|
|
1049
1054
|
|
|
@@ -1240,6 +1245,13 @@ def tril(m, k=0):
|
|
|
1240
1245
|
m = asarray_const(m)
|
|
1241
1246
|
dtype = m.dtype
|
|
1242
1247
|
device_target = _device_target()
|
|
1248
|
+
# check rank
|
|
1249
|
+
rank = len(m.shape)
|
|
1250
|
+
if rank < 1:
|
|
1251
|
+
_raise_value_error("input m's rank should be larger than 0")
|
|
1252
|
+
elif rank == 1:
|
|
1253
|
+
mask = tri(m.shape[0], k=k, dtype=mstype.bool_)
|
|
1254
|
+
return where(mask, m, zeros(1, m.dtype))
|
|
1243
1255
|
# Only Ascend hardware will reduce accuracy
|
|
1244
1256
|
if device_target == "Ascend":
|
|
1245
1257
|
m = m.astype(mstype.float32)
|
|
@@ -1287,6 +1299,13 @@ def triu(m, k=0):
|
|
|
1287
1299
|
m = asarray_const(m)
|
|
1288
1300
|
dtype = m.dtype
|
|
1289
1301
|
device_target = _device_target()
|
|
1302
|
+
# check rank
|
|
1303
|
+
rank = len(m.shape)
|
|
1304
|
+
if rank < 1:
|
|
1305
|
+
_raise_value_error("input m's rank should be larger than 0")
|
|
1306
|
+
elif rank == 1:
|
|
1307
|
+
mask = tri(m.shape[0], k=k-1, dtype=mstype.bool_)
|
|
1308
|
+
return where(mask, zeros(1, m.dtype), m)
|
|
1290
1309
|
# Only Ascend hardware will reduce accuracy
|
|
1291
1310
|
if device_target == "Ascend":
|
|
1292
1311
|
m = m.astype(mstype.float32)
|
|
@@ -1403,14 +1422,6 @@ def trace(a, offset=0, axis1=0, axis2=1, dtype=None):
|
|
|
1403
1422
|
>>> output = np.trace(np.eye(3))
|
|
1404
1423
|
>>> print(output)
|
|
1405
1424
|
3.0
|
|
1406
|
-
>>> a = np.arange(8).reshape((2,2,2))
|
|
1407
|
-
>>> output = np.trace(a)
|
|
1408
|
-
>>> print(output)
|
|
1409
|
-
[6 8]
|
|
1410
|
-
>>> a = np.arange(24).reshape((2,2,2,3))
|
|
1411
|
-
>>> output = np.trace(a).shape
|
|
1412
|
-
>>> print(output)
|
|
1413
|
-
(2, 3)
|
|
1414
1425
|
"""
|
|
1415
1426
|
return a.trace(offset=offset, axis1=axis1, axis2=axis2, dtype=dtype)
|
|
1416
1427
|
|
|
@@ -1565,7 +1576,7 @@ class NdGrid:
|
|
|
1565
1576
|
if self.sparse:
|
|
1566
1577
|
return grids
|
|
1567
1578
|
|
|
1568
|
-
if isinstance(grids, Tensor_):
|
|
1579
|
+
if isinstance(grids, (Tensor, Tensor_)):
|
|
1569
1580
|
return grids
|
|
1570
1581
|
expanded = []
|
|
1571
1582
|
for grid in grids:
|
|
@@ -2564,13 +2575,13 @@ def _pad_func(arr, pad_width, func, **kwargs):
|
|
|
2564
2575
|
return arr
|
|
2565
2576
|
|
|
2566
2577
|
|
|
2567
|
-
@
|
|
2578
|
+
@_primexpr
|
|
2568
2579
|
def _make_stat_length(shape):
|
|
2569
2580
|
"""converts the stat_length values."""
|
|
2570
2581
|
return tuple((shape[i], shape[i]) for i, _ in enumerate(shape))
|
|
2571
2582
|
|
|
2572
2583
|
|
|
2573
|
-
@
|
|
2584
|
+
@_primexpr
|
|
2574
2585
|
def _limit_stat_length(stat_length, shape):
|
|
2575
2586
|
"""limits the stat_length to current array length along given dimension."""
|
|
2576
2587
|
return tuple((min(stat_pair[0], shape[i]), min(stat_pair[1], shape[i])) for i, stat_pair in enumerate(stat_length))
|
mindspore/numpy/array_ops.py
CHANGED
|
@@ -18,11 +18,12 @@ from __future__ import absolute_import
|
|
|
18
18
|
import operator
|
|
19
19
|
|
|
20
20
|
from mindspore.common import dtype as mstype
|
|
21
|
-
from mindspore.common import Tensor
|
|
21
|
+
from mindspore.common import Tensor, mutable
|
|
22
22
|
from mindspore.ops import operations as P
|
|
23
23
|
from mindspore.ops import functional as F
|
|
24
|
-
from mindspore.ops.primitive import constexpr
|
|
24
|
+
from mindspore.ops.primitive import constexpr, _primexpr
|
|
25
25
|
from mindspore.nn import Cell
|
|
26
|
+
from mindspore import ops
|
|
26
27
|
|
|
27
28
|
from mindspore.numpy.utils import _convert_list_tensor_to_tuple_tensor, _expand, _broadcast_to_shape, \
|
|
28
29
|
_check_input_tensor, _broadcast_to, _to_tensor, _callable
|
|
@@ -33,8 +34,6 @@ from mindspore.numpy.utils_const import _check_axes_range, _check_start_normaliz
|
|
|
33
34
|
_list_comprehensions, _check_element_int, _is_shape_empty, _type_convert, \
|
|
34
35
|
_tuple_slice, _expanded_shape, _seq_prod, _tuple_setitem, _iota, \
|
|
35
36
|
_raise_unimplemented_error, _cumprod, _get_device, _check_is_int
|
|
36
|
-
from mindspore.ops._utils.utils import is_shape_unknown
|
|
37
|
-
from ..ops.operations._inner_ops import DynamicBroadcastTo
|
|
38
37
|
|
|
39
38
|
|
|
40
39
|
# According to official numpy reference, the dimension of a numpy array must be less
|
|
@@ -328,7 +327,7 @@ def ravel(x):
|
|
|
328
327
|
return x.ravel()
|
|
329
328
|
|
|
330
329
|
|
|
331
|
-
@
|
|
330
|
+
@_primexpr
|
|
332
331
|
def _move_axes_for_concatenate(arr_shape, axis):
|
|
333
332
|
"""
|
|
334
333
|
Moves axis 0 to the desiganated position, while keeps other axes' relative
|
|
@@ -711,8 +710,7 @@ def where(condition, x=None, y=None):
|
|
|
711
710
|
x = F.cast(x, dtype)
|
|
712
711
|
if not _check_same_type(dtype2, dtype):
|
|
713
712
|
y = F.cast(y, dtype)
|
|
714
|
-
is_bool = _check_same_type(dtype1, mstype.bool_) and _check_same_type(
|
|
715
|
-
dtype2, mstype.bool_)
|
|
713
|
+
is_bool = _check_same_type(dtype1, mstype.bool_) and _check_same_type(dtype2, mstype.bool_)
|
|
716
714
|
if is_bool:
|
|
717
715
|
# select does not support bool type for x or y
|
|
718
716
|
x = F.cast(x, mstype.float32)
|
|
@@ -721,7 +719,8 @@ def where(condition, x=None, y=None):
|
|
|
721
719
|
if not _check_same_type(F.dtype(condition), mstype.float32):
|
|
722
720
|
# tiling with bool is not supported on GPU
|
|
723
721
|
condition = F.cast(condition, mstype.float32)
|
|
724
|
-
dynamic =
|
|
722
|
+
dynamic = F.is_sequence_value_unknown(F.shape(condition)) or F.is_sequence_value_unknown(F.shape(x))\
|
|
723
|
+
or F.is_sequence_value_unknown(F.shape(y))
|
|
725
724
|
# As select op currently does not support broadcast, broadcasts input tensors
|
|
726
725
|
if not dynamic:
|
|
727
726
|
shape_out = _infer_out_shape(F.shape(condition),
|
|
@@ -734,9 +733,9 @@ def where(condition, x=None, y=None):
|
|
|
734
733
|
add_x_y = x + y
|
|
735
734
|
add_out = condition + F.cast(add_x_y, condition.dtype)
|
|
736
735
|
shape_out = P.TensorShape()(add_out)
|
|
737
|
-
condition =
|
|
738
|
-
x =
|
|
739
|
-
y =
|
|
736
|
+
condition = ops.broadcast_to(condition, shape_out)
|
|
737
|
+
x = ops.broadcast_to(x, shape_out)
|
|
738
|
+
y = ops.broadcast_to(y, shape_out)
|
|
740
739
|
|
|
741
740
|
if not _check_same_type(F.dtype(condition), mstype.bool_):
|
|
742
741
|
condition = F.cast(condition, mstype.bool_)
|
|
@@ -1109,14 +1108,17 @@ def roll(a, shift, axis=None):
|
|
|
1109
1108
|
return a
|
|
1110
1109
|
|
|
1111
1110
|
|
|
1112
|
-
@
|
|
1111
|
+
@_primexpr
|
|
1113
1112
|
def _get_moved_perm(ndim, source, destination):
|
|
1114
1113
|
"""
|
|
1115
1114
|
Helper function for moveaxis, returns permutation after moving axes
|
|
1116
1115
|
from source to destination.
|
|
1117
1116
|
"""
|
|
1118
1117
|
dest_sorted_idx = [i for i, _ in sorted(enumerate(destination), key=operator.itemgetter(1))]
|
|
1119
|
-
axes_orig = [
|
|
1118
|
+
axes_orig = mutable([], True)
|
|
1119
|
+
for i in range(ndim):
|
|
1120
|
+
if i not in source:
|
|
1121
|
+
axes_orig = axes_orig + [i]
|
|
1120
1122
|
|
|
1121
1123
|
k = 0
|
|
1122
1124
|
m = 0
|
|
@@ -1135,7 +1137,7 @@ def _get_moved_perm(ndim, source, destination):
|
|
|
1135
1137
|
return tuple(perm)
|
|
1136
1138
|
|
|
1137
1139
|
|
|
1138
|
-
@
|
|
1140
|
+
@_primexpr
|
|
1139
1141
|
def _get_moved_shape(shape, perm):
|
|
1140
1142
|
"""
|
|
1141
1143
|
Helper function for moveaxis, returns the permuated shape after
|
|
@@ -1245,7 +1247,7 @@ def tile(a, reps):
|
|
|
1245
1247
|
return F.tile(a, reps)
|
|
1246
1248
|
|
|
1247
1249
|
|
|
1248
|
-
@
|
|
1250
|
+
@_primexpr
|
|
1249
1251
|
def _check_can_broadcast_to(shape, target_shape):
|
|
1250
1252
|
"""Determines if shape can be broadcast to target_shape."""
|
|
1251
1253
|
ndim = len(shape)
|
|
@@ -1284,9 +1286,11 @@ def broadcast_to(array, shape):
|
|
|
1284
1286
|
[1 2 3]
|
|
1285
1287
|
[1 2 3]]
|
|
1286
1288
|
"""
|
|
1289
|
+
def _check(shape_a, shape):
|
|
1290
|
+
if not _check_can_broadcast_to(shape_a, shape):
|
|
1291
|
+
_raise_value_error('cannot broadcast with ', shape)
|
|
1287
1292
|
shape_a = F.shape(array)
|
|
1288
|
-
|
|
1289
|
-
return _raise_value_error('cannot broadcast with ', shape)
|
|
1293
|
+
_check(shape_a, shape)
|
|
1290
1294
|
return _broadcast_to_shape(array, shape)
|
|
1291
1295
|
|
|
1292
1296
|
|
|
@@ -1432,29 +1436,29 @@ def _split(x, indices_or_sections, opname, axis=0):
|
|
|
1432
1436
|
"""Splits a tensor based on ``np.split`` or ``np.array_split``."""
|
|
1433
1437
|
_check_input_tensor(x)
|
|
1434
1438
|
_ = _check_axis_type(axis, True, False, False)
|
|
1435
|
-
|
|
1439
|
+
axis_new = _canonicalize_axis(axis, x.ndim)
|
|
1436
1440
|
res = None
|
|
1437
1441
|
arr_shape = x.shape
|
|
1438
|
-
length_along_dim = arr_shape[
|
|
1442
|
+
length_along_dim = arr_shape[axis_new]
|
|
1439
1443
|
if isinstance(indices_or_sections, int):
|
|
1440
1444
|
if indices_or_sections > length_along_dim:
|
|
1441
1445
|
_raise_value_error("empty tensor encountered.")
|
|
1442
1446
|
if opname == "split" or length_along_dim % indices_or_sections == 0:
|
|
1443
|
-
res = P.Split(
|
|
1447
|
+
res = P.Split(axis_new, indices_or_sections)(x)
|
|
1444
1448
|
else:
|
|
1445
1449
|
num_long_tensor = length_along_dim % indices_or_sections
|
|
1446
1450
|
num_short_tensor = indices_or_sections - num_long_tensor
|
|
1447
1451
|
length1 = num_long_tensor * (length_along_dim // indices_or_sections + 1)
|
|
1448
1452
|
length2 = length_along_dim - length1
|
|
1449
1453
|
start1 = _list_comprehensions(F.rank(x), 0, True)
|
|
1450
|
-
size1 = _tuple_setitem(arr_shape,
|
|
1451
|
-
start2 = _tuple_setitem(start1,
|
|
1452
|
-
size2 = _tuple_setitem(arr_shape,
|
|
1453
|
-
res = P.Split(
|
|
1454
|
-
P.Split(
|
|
1454
|
+
size1 = _tuple_setitem(arr_shape, axis_new, length1)
|
|
1455
|
+
start2 = _tuple_setitem(start1, axis_new, length1)
|
|
1456
|
+
size2 = _tuple_setitem(arr_shape, axis_new, length2)
|
|
1457
|
+
res = P.Split(axis_new, num_long_tensor)(F.tensor_slice(x, start1, size1)) + \
|
|
1458
|
+
P.Split(axis_new, num_short_tensor)(F.tensor_slice(x, start2, size2))
|
|
1455
1459
|
|
|
1456
1460
|
elif isinstance(indices_or_sections, (list, tuple)) and _check_element_int(indices_or_sections):
|
|
1457
|
-
res = _split_sub_tensors(x, indices_or_sections,
|
|
1461
|
+
res = _split_sub_tensors(x, indices_or_sections, axis_new)
|
|
1458
1462
|
else:
|
|
1459
1463
|
_raise_type_error("Argument `indices_or_sections` in `mindspore.numpy.split`\
|
|
1460
1464
|
should be integer, tuple(int) or list(int), but got", indices_or_sections)
|
|
@@ -1625,17 +1629,17 @@ def dsplit(x, indices_or_sections):
|
|
|
1625
1629
|
return split(x, indices_or_sections, 2)
|
|
1626
1630
|
|
|
1627
1631
|
|
|
1628
|
-
@
|
|
1632
|
+
@_primexpr
|
|
1629
1633
|
def _get_flip_start(ndim, shape, axes):
|
|
1630
1634
|
return tuple([shape[i] - 1 if i in axes else 0 for i in range(ndim)])
|
|
1631
1635
|
|
|
1632
1636
|
|
|
1633
|
-
@
|
|
1637
|
+
@_primexpr
|
|
1634
1638
|
def _get_flip_end(ndim, shape, axes):
|
|
1635
1639
|
return tuple([-shape[i] - 1 if i in axes else shape[i] + 1 for i in range(ndim)])
|
|
1636
1640
|
|
|
1637
1641
|
|
|
1638
|
-
@
|
|
1642
|
+
@_primexpr
|
|
1639
1643
|
def _get_flip_strides(ndim, axes):
|
|
1640
1644
|
return tuple([-1 if i in axes else 1 for i in range(ndim)])
|
|
1641
1645
|
|
|
@@ -1809,6 +1813,7 @@ def take_along_axis(arr, indices, axis):
|
|
|
1809
1813
|
_tuple_slice(shape_arr, None, axis), ndim)
|
|
1810
1814
|
indices = _broadcast_to(indices, _tuple_slice(shape_arr, None, axis + 1) +
|
|
1811
1815
|
_tuple_slice(shape_indices, axis + 1, None), shape_arr, ndim)
|
|
1816
|
+
arr = _broadcast_to(arr, shape_arr, indices.shape, ndim)
|
|
1812
1817
|
return F.gather_d(arr, axis, indices)
|
|
1813
1818
|
|
|
1814
1819
|
|
|
@@ -2087,7 +2092,7 @@ def select(condlist, choicelist, default=0):
|
|
|
2087
2092
|
return F.reshape(default_slice, (case_size)).astype(dtype)
|
|
2088
2093
|
|
|
2089
2094
|
|
|
2090
|
-
@
|
|
2095
|
+
@_primexpr
|
|
2091
2096
|
def _get_grid(shape):
|
|
2092
2097
|
"""Returns a grid representing all the indices for an array with the given shape."""
|
|
2093
2098
|
grids = []
|
mindspore/numpy/logic_ops.py
CHANGED
|
@@ -18,11 +18,12 @@ from __future__ import absolute_import
|
|
|
18
18
|
from mindspore.ops import functional as F
|
|
19
19
|
from mindspore.common import dtype as mstype
|
|
20
20
|
from mindspore.common import Tensor
|
|
21
|
+
from mindspore.ops import operations as P
|
|
21
22
|
|
|
22
|
-
from mindspore.numpy.math_ops import _apply_tensor_op
|
|
23
|
-
from mindspore.numpy.array_creations import zeros, ones,
|
|
23
|
+
from mindspore.numpy.math_ops import _apply_tensor_op
|
|
24
|
+
from mindspore.numpy.array_creations import zeros, ones, asarray
|
|
24
25
|
from mindspore.numpy.utils import _check_input_tensor, _to_tensor, _isnan
|
|
25
|
-
from mindspore.numpy.utils_const import _raise_type_error,
|
|
26
|
+
from mindspore.numpy.utils_const import _raise_type_error, _check_same_type, \
|
|
26
27
|
_check_axis_type, _canonicalize_axis, _can_broadcast, _isscalar
|
|
27
28
|
|
|
28
29
|
|
|
@@ -490,30 +491,8 @@ def isclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False):
|
|
|
490
491
|
[ True True False False True True]
|
|
491
492
|
"""
|
|
492
493
|
a, b = _to_tensor(a, b)
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
if not isinstance(equal_nan, bool):
|
|
496
|
-
_raise_type_error("equal_nan is expected to be bool.")
|
|
497
|
-
|
|
498
|
-
if _is_shape_empty(a.shape) or _is_shape_empty(b.shape):
|
|
499
|
-
return empty(_infer_out_shape(a.shape, b.shape), dtype=mstype.bool_)
|
|
500
|
-
rtol = _to_tensor(rtol).astype("float32")
|
|
501
|
-
atol = _to_tensor(atol).astype("float32")
|
|
502
|
-
res = absolute(a - b) <= (atol + rtol * absolute(b))
|
|
503
|
-
# infs are treated as equal
|
|
504
|
-
a_posinf = isposinf(a)
|
|
505
|
-
b_posinf = isposinf(b)
|
|
506
|
-
a_neginf = isneginf(a)
|
|
507
|
-
b_neginf = isneginf(b)
|
|
508
|
-
same_inf = F.logical_or(F.logical_and(a_posinf, b_posinf), F.logical_and(a_neginf, b_neginf))
|
|
509
|
-
diff_inf = F.logical_or(F.logical_and(a_posinf, b_neginf), F.logical_and(a_neginf, b_posinf))
|
|
510
|
-
res = F.logical_and(F.logical_or(res, same_inf), F.logical_not(diff_inf))
|
|
511
|
-
both_nan = F.logical_and(_isnan(a), _isnan(b))
|
|
512
|
-
if equal_nan:
|
|
513
|
-
res = F.logical_or(both_nan, res)
|
|
514
|
-
else:
|
|
515
|
-
res = F.logical_and(F.logical_not(both_nan), res)
|
|
516
|
-
return res
|
|
494
|
+
is_close = P.IsClose(rtol=rtol, atol=atol, equal_nan=equal_nan)
|
|
495
|
+
return is_close(a, b)
|
|
517
496
|
|
|
518
497
|
|
|
519
498
|
def in1d(ar1, ar2, invert=False):
|
mindspore/numpy/math_ops.py
CHANGED
|
@@ -25,7 +25,7 @@ from numpy import dtype as nptype
|
|
|
25
25
|
from mindspore.ops import operations as P
|
|
26
26
|
from mindspore.ops import functional as F
|
|
27
27
|
from mindspore.ops import composite as C
|
|
28
|
-
from mindspore.ops.primitive import constexpr
|
|
28
|
+
from mindspore.ops.primitive import constexpr, _primexpr
|
|
29
29
|
from mindspore.common import dtype as mstype
|
|
30
30
|
from mindspore.common import Tensor
|
|
31
31
|
from mindspore._c_expression import typing
|
|
@@ -47,6 +47,7 @@ from mindspore.numpy.utils_const import _infer_out_shape, _check_axis_valid, _ge
|
|
|
47
47
|
_raise_unimplemented_error, _abs, _in, _tuple_slice, _check_is_inf
|
|
48
48
|
from mindspore.numpy.utils import _expand, _broadcast_to, _broadcast_to_shape, _check_input_tensor, \
|
|
49
49
|
_to_tensor, _to_tensor_origin_dtype, _isnan
|
|
50
|
+
from mindspore.ops.composite.multitype_ops._compile_utils import reduce_
|
|
50
51
|
|
|
51
52
|
|
|
52
53
|
ZERO_TENSOR = asarray_const(0)
|
|
@@ -1439,7 +1440,8 @@ def amax(a, axis=None, keepdims=False, initial=None, where=True):
|
|
|
1439
1440
|
>>> print(output)
|
|
1440
1441
|
[-1. 3.]
|
|
1441
1442
|
"""
|
|
1442
|
-
return a.
|
|
1443
|
+
return reduce_(a, P.ReduceMax(keepdims), cmp_fn=F.maximum, axis=axis, keepdims=keepdims,
|
|
1444
|
+
initial=initial, where=where)
|
|
1443
1445
|
|
|
1444
1446
|
|
|
1445
1447
|
def amin(a, axis=None, keepdims=False, initial=None, where=True):
|
|
@@ -1494,7 +1496,8 @@ def amin(a, axis=None, keepdims=False, initial=None, where=True):
|
|
|
1494
1496
|
>>> print(output)
|
|
1495
1497
|
[10. 1.]
|
|
1496
1498
|
"""
|
|
1497
|
-
return a.
|
|
1499
|
+
return reduce_(a, P.ReduceMin(keepdims), cmp_fn=F.minimum, axis=axis, keepdims=keepdims,
|
|
1500
|
+
initial=initial, where=where)
|
|
1498
1501
|
|
|
1499
1502
|
|
|
1500
1503
|
def hypot(x1, x2, dtype=None):
|
|
@@ -1915,7 +1918,7 @@ def diff(a, n=1, axis=-1, prepend=None, append=None):
|
|
|
1915
1918
|
prepend/append (Tensor, optional): Values to prepend or append to a along
|
|
1916
1919
|
`axis` prior to performing the difference. Scalar values are expanded to
|
|
1917
1920
|
arrays with length 1 in the direction of `axis` and the shape of the input
|
|
1918
|
-
array in along all other
|
|
1921
|
+
array in along all other axes. Otherwise the dimension and shape must
|
|
1919
1922
|
match `a` except along axis. Default: `None`.
|
|
1920
1923
|
|
|
1921
1924
|
Returns:
|
|
@@ -1939,7 +1942,7 @@ def diff(a, n=1, axis=-1, prepend=None, append=None):
|
|
|
1939
1942
|
"""
|
|
1940
1943
|
# This implementation is inspired by jax.numpy
|
|
1941
1944
|
_check_input_tensor(a)
|
|
1942
|
-
|
|
1945
|
+
new_axis = _canonicalize_axis(axis, a.ndim)
|
|
1943
1946
|
if not isinstance(n, int):
|
|
1944
1947
|
_raise_type_error("Input n should be int, but got ", n)
|
|
1945
1948
|
if n < 0:
|
|
@@ -1957,17 +1960,17 @@ def diff(a, n=1, axis=-1, prepend=None, append=None):
|
|
|
1957
1960
|
combined = _handle_prepend_append(combined, a, append, axis)
|
|
1958
1961
|
|
|
1959
1962
|
if combined:
|
|
1960
|
-
a = concatenate(combined,
|
|
1963
|
+
a = concatenate(combined, new_axis)
|
|
1961
1964
|
|
|
1962
1965
|
# if n > maximum length allowed, the tensor is empty, and is not supported
|
|
1963
|
-
if n >= a.shape[
|
|
1966
|
+
if n >= a.shape[new_axis]:
|
|
1964
1967
|
_raise_value_error("n is bigger then the specified dimension, this will result in an empty tensor.")
|
|
1965
1968
|
|
|
1966
1969
|
original_dtype = a.dtype
|
|
1967
1970
|
# will change once F.tensor_slice supports types other than float32
|
|
1968
1971
|
if not _check_is_float(original_dtype):
|
|
1969
1972
|
a = a.astype(mstype.float32)
|
|
1970
|
-
a = moveaxis(a,
|
|
1973
|
+
a = moveaxis(a, new_axis, -1)
|
|
1971
1974
|
for _ in F.make_range(n):
|
|
1972
1975
|
slice_start = _list_comprehensions(F.rank(a) - 1, 0, True)
|
|
1973
1976
|
slice_size = F.shape(a)[:-1] + (F.shape(a)[-1] - 1,)
|
|
@@ -1976,7 +1979,7 @@ def diff(a, n=1, axis=-1, prepend=None, append=None):
|
|
|
1976
1979
|
a = F.tensor_sub(minuend, subtrahend)
|
|
1977
1980
|
if not _check_is_float(original_dtype):
|
|
1978
1981
|
a = a.astype(original_dtype)
|
|
1979
|
-
return moveaxis(a, -1,
|
|
1982
|
+
return moveaxis(a, -1, new_axis)
|
|
1980
1983
|
|
|
1981
1984
|
|
|
1982
1985
|
def ediff1d(ary, to_end=None, to_begin=None):
|
|
@@ -2407,7 +2410,7 @@ def _real_axes(ndim_orig, ndim_out, axes_orig):
|
|
|
2407
2410
|
return axes + tuple(axes_orig)
|
|
2408
2411
|
|
|
2409
2412
|
|
|
2410
|
-
@
|
|
2413
|
+
@_primexpr
|
|
2411
2414
|
def _shape_reduced_keepdims(shape, axes):
|
|
2412
2415
|
"""
|
|
2413
2416
|
Reduces dimensions corresponding to argument axes while
|
|
@@ -2421,7 +2424,7 @@ def _shape_reduced_keepdims(shape, axes):
|
|
|
2421
2424
|
return tuple(shape_out)
|
|
2422
2425
|
|
|
2423
2426
|
|
|
2424
|
-
@
|
|
2427
|
+
@_primexpr
|
|
2425
2428
|
def _shape_reduced(shape, axes):
|
|
2426
2429
|
"""Removes dimensions corresponding to argument axes"""
|
|
2427
2430
|
ndim_orig = F.tuple_len(shape)
|
|
@@ -3544,7 +3547,7 @@ def arcsin(x, dtype=None):
|
|
|
3544
3547
|
return _apply_tensor_op(F.asin, x, dtype=dtype)
|
|
3545
3548
|
|
|
3546
3549
|
|
|
3547
|
-
def arccos(
|
|
3550
|
+
def arccos(input, dtype=None):
|
|
3548
3551
|
"""
|
|
3549
3552
|
Trigonometric inverse cosine, element-wise.
|
|
3550
3553
|
|
|
@@ -3553,7 +3556,7 @@ def arccos(x, dtype=None):
|
|
|
3553
3556
|
not supported.
|
|
3554
3557
|
|
|
3555
3558
|
Args:
|
|
3556
|
-
|
|
3559
|
+
input (Tensor): Input tensor. x-coordinate on the unit circle.
|
|
3557
3560
|
For real arguments, the domain is :math:`[-1, 1]`.
|
|
3558
3561
|
dtype (:class:`mindspore.dtype`, optional): Default: :class:`None`. Overrides the dtype of the
|
|
3559
3562
|
output Tensor.
|
|
@@ -3569,13 +3572,13 @@ def arccos(x, dtype=None):
|
|
|
3569
3572
|
|
|
3570
3573
|
Examples:
|
|
3571
3574
|
>>> import mindspore.numpy as np
|
|
3572
|
-
>>>
|
|
3573
|
-
>>> output = np.arccos(
|
|
3575
|
+
>>> input = np.asarray([1, -1], np.float32)
|
|
3576
|
+
>>> output = np.arccos(input)
|
|
3574
3577
|
>>> print(output)
|
|
3575
3578
|
[0. 3.1415927]
|
|
3576
3579
|
"""
|
|
3577
|
-
|
|
3578
|
-
return _apply_tensor_op(F.acos,
|
|
3580
|
+
input = _cast_type_for_trigonometric(input)
|
|
3581
|
+
return _apply_tensor_op(F.acos, input, dtype=dtype)
|
|
3579
3582
|
|
|
3580
3583
|
|
|
3581
3584
|
def arctan(x, dtype=None):
|
|
@@ -3802,7 +3805,7 @@ def arctan2(x1, x2, dtype=None):
|
|
|
3802
3805
|
if both `x1` and `x2` are scalars.
|
|
3803
3806
|
|
|
3804
3807
|
Supported Platforms:
|
|
3805
|
-
``Ascend`` ``
|
|
3808
|
+
``Ascend`` ``GPU`` ``CPU``
|
|
3806
3809
|
|
|
3807
3810
|
Examples:
|
|
3808
3811
|
>>> import mindspore.numpy as np
|
|
@@ -4112,7 +4115,7 @@ def _min_cost_chain_matmul(dims):
|
|
|
4112
4115
|
return s
|
|
4113
4116
|
|
|
4114
4117
|
|
|
4115
|
-
@
|
|
4118
|
+
@_primexpr
|
|
4116
4119
|
def _get_dims(shapes):
|
|
4117
4120
|
"""
|
|
4118
4121
|
Returns the chain of the dimensions in arrays.
|
mindspore/numpy/utils.py
CHANGED
|
@@ -206,6 +206,6 @@ def _callable(tensor, obj):
|
|
|
206
206
|
|
|
207
207
|
|
|
208
208
|
def _isnan(x):
|
|
209
|
-
if _get_device() == 'Ascend'
|
|
209
|
+
if _get_device() == 'Ascend' and not _check_is_float(F.dtype(x)):
|
|
210
210
|
return F.fill(mstype.bool_, F.shape(x), False)
|
|
211
211
|
return F.isnan(x)
|