mindspore 2.0.0a0__cp38-cp38-win_amd64.whl → 2.0.0rc1__cp38-cp38-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/__init__.py +4 -2
- mindspore/_c_dataengine.cp38-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp38-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp38-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +102 -0
- mindspore/_checkparam.py +1066 -1001
- mindspore/_extends/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/layer/padding.py
CHANGED
|
@@ -18,22 +18,32 @@ from __future__ import absolute_import
|
|
|
18
18
|
from mindspore.common import Tensor
|
|
19
19
|
from mindspore import ops
|
|
20
20
|
from mindspore.ops.operations import nn_ops
|
|
21
|
-
from mindspore.ops.primitive import constexpr
|
|
21
|
+
from mindspore.ops.primitive import constexpr, _primexpr
|
|
22
22
|
from mindspore.nn.cell import Cell
|
|
23
23
|
|
|
24
|
-
__all__ = ['ConstantPad1d', 'ConstantPad2d', 'ConstantPad3d', 'ReflectionPad1d', 'ReflectionPad2d', '
|
|
25
|
-
'ReplicationPad1d', 'ReplicationPad2d', 'ReplicationPad3d']
|
|
24
|
+
__all__ = ['ConstantPad1d', 'ConstantPad2d', 'ConstantPad3d', 'ReflectionPad1d', 'ReflectionPad2d', 'ReflectionPad3d',
|
|
25
|
+
'ZeroPad2d', 'ReplicationPad1d', 'ReplicationPad2d', 'ReplicationPad3d']
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
def _check_dim(dim, target1, target2, cls_name):
|
|
29
|
+
"""check dim"""
|
|
30
|
+
def _check_func():
|
|
31
|
+
if dim not in (target1, target2):
|
|
32
|
+
raise ValueError(f"For '{cls_name}', the in_shape must have {target1} or {target2} dims, but got {dim}.")
|
|
33
|
+
_check_func()
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@_primexpr
|
|
29
37
|
def _check_padding_dimension(dimension, padding):
|
|
30
38
|
r"""
|
|
31
|
-
Validate the input padding and add
|
|
39
|
+
Validate the input padding and add placeholders if needed.
|
|
32
40
|
Note: the input 'padding' in this function is already converted to list of lists to match MirrorPad
|
|
33
41
|
"""
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
42
|
+
def _check_padding(dimension, padding):
|
|
43
|
+
if dimension < len(padding):
|
|
44
|
+
raise ValueError(f"For padding with length {len(padding) * 2}, the dimension of the tensor should "
|
|
45
|
+
f"be at least {len(padding)}, but got {dimension}")
|
|
46
|
+
_check_padding(dimension, padding)
|
|
37
47
|
# add place holders
|
|
38
48
|
if dimension > len(padding):
|
|
39
49
|
padding = [(0, 0) for _ in range(dimension - len(padding))] + [x for x in padding]
|
|
@@ -42,7 +52,7 @@ def _check_padding_dimension(dimension, padding):
|
|
|
42
52
|
|
|
43
53
|
def _swap_to_ms_padding_order(padding):
|
|
44
54
|
r"""
|
|
45
|
-
Check whether the input padding is a tuple or
|
|
55
|
+
Check whether the input padding is a tuple or an int converted to a tuple.
|
|
46
56
|
Check if the length of padding is divisible by 2.
|
|
47
57
|
Convert the input padding to the format that MirrorPad would understand.
|
|
48
58
|
"""
|
|
@@ -55,16 +65,33 @@ def _swap_to_ms_padding_order(padding):
|
|
|
55
65
|
return new_padding
|
|
56
66
|
|
|
57
67
|
|
|
58
|
-
@
|
|
68
|
+
@_primexpr
|
|
59
69
|
def _check(input_shape, padding, name):
|
|
60
70
|
"""
|
|
61
71
|
Check relationship between input shape and padding to make sure after negative dimension padding the out is
|
|
62
72
|
positive.
|
|
63
73
|
"""
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
74
|
+
def _check_len(input_shape, padding):
|
|
75
|
+
if len(input_shape) < len(padding):
|
|
76
|
+
msg = "For '{}', the dimension of input must more than or equal to len(padding)/2, " \
|
|
77
|
+
"but got {}".format(name, len(input_shape))
|
|
78
|
+
raise ValueError(msg)
|
|
79
|
+
|
|
80
|
+
def _check_item(item, input_shape, index, dim_name):
|
|
81
|
+
if item < -input_shape[index]:
|
|
82
|
+
msg = "For '{}', the shape of input after padding must be positive, the input shape is {}, " \
|
|
83
|
+
"value of parameter 'padding' applied to the {} dimension of input must " \
|
|
84
|
+
"no less than -{}, but got {}".format(name, input_shape, dim_name, input_shape[index], item)
|
|
85
|
+
raise ValueError(msg)
|
|
86
|
+
|
|
87
|
+
def _check_item_two(item0, item1, input_shape, index, dim_name):
|
|
88
|
+
if input_shape[index] + item0 + item1 <= 0:
|
|
89
|
+
msg = "For '{}', the shape of input after padding must be positive, the input shape is {}, " \
|
|
90
|
+
"but the {} dimension of input shape {} plus padding {} and {} resulted in a non-positive output " \
|
|
91
|
+
"shape.".format(name, input_shape, dim_name, input_shape[index], item0, item1)
|
|
92
|
+
raise ValueError(msg)
|
|
93
|
+
|
|
94
|
+
_check_len(input_shape, padding)
|
|
68
95
|
if len(input_shape) > len(padding):
|
|
69
96
|
if len(padding) == 2 and isinstance(padding[0], int):
|
|
70
97
|
padding = [(0, 0) for i in range(len(input_shape) - 1)] + [padding]
|
|
@@ -80,21 +107,9 @@ def _check(input_shape, padding, name):
|
|
|
80
107
|
else:
|
|
81
108
|
dim_name = str(index + 1) + 'th'
|
|
82
109
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
"no less than -{}, but got {}".format(name, input_shape, dim_name, input_shape[index], item[0])
|
|
87
|
-
raise ValueError(msg)
|
|
88
|
-
if item[1] < -input_shape[index]:
|
|
89
|
-
msg = "For '{}', the shape of input after padding must be positive, the input shape is {}, " \
|
|
90
|
-
"value of parameter 'padding' applied to the {} dimension of input must " \
|
|
91
|
-
"no less than -{}, but got {}".format(name, input_shape, dim_name, input_shape[index], item[1])
|
|
92
|
-
raise ValueError(msg)
|
|
93
|
-
if input_shape[index] + item[0] + item[1] <= 0:
|
|
94
|
-
msg = "For '{}', the shape of input after padding must be positive, the input shape is {}, " \
|
|
95
|
-
"but the {} dimension of input shape {} plus padding {} and {} resulted in a non-positive output " \
|
|
96
|
-
"shape.".format(name, input_shape, dim_name, input_shape[index], item[0], item[1])
|
|
97
|
-
raise ValueError(msg)
|
|
110
|
+
_check_item(item[0], input_shape, index, dim_name)
|
|
111
|
+
_check_item(item[1], input_shape, index, dim_name)
|
|
112
|
+
_check_item_two(item[0], item[1], input_shape, index, dim_name)
|
|
98
113
|
return padding
|
|
99
114
|
|
|
100
115
|
|
|
@@ -115,7 +130,7 @@ def _get_new_padding(padding):
|
|
|
115
130
|
return new_padding, start, end
|
|
116
131
|
|
|
117
132
|
|
|
118
|
-
@
|
|
133
|
+
@_primexpr
|
|
119
134
|
def _get_begin_size(shape, begin, end):
|
|
120
135
|
"""Calculate begin and size for ops.Slice."""
|
|
121
136
|
size = tuple([shape[i] + begin[i] + end[i] for i in range(len(shape))])
|
|
@@ -198,13 +213,12 @@ class _ConstantPadNd(Cell):
|
|
|
198
213
|
def construct(self, x):
|
|
199
214
|
"""Construct the pad net."""
|
|
200
215
|
input_shape = x.shape
|
|
201
|
-
input_type = x.dtype
|
|
202
216
|
padding = _check(input_shape, self.padding, self._name)
|
|
203
217
|
new_padding, start, end = _get_new_padding(padding)
|
|
204
|
-
mask = ops.
|
|
218
|
+
mask = ops.OnesLike()(x)
|
|
205
219
|
output = ops.Pad(new_padding)(x)
|
|
206
220
|
mask = ops.Pad(new_padding)(mask)
|
|
207
|
-
ones = ops.
|
|
221
|
+
ones = ops.OnesLike()(output)
|
|
208
222
|
value = ops.Fill()(output.dtype, output.shape, self.value)
|
|
209
223
|
output = ops.Add()(ops.Mul()(mask, output), ops.Mul()(ops.Sub()(ones, mask), value))
|
|
210
224
|
slice_op = ops.Slice()
|
|
@@ -427,6 +441,8 @@ class _ReflectionPadNd(Cell):
|
|
|
427
441
|
|
|
428
442
|
def construct(self, x):
|
|
429
443
|
input_shape = x.shape
|
|
444
|
+
if not self.padding:
|
|
445
|
+
return x
|
|
430
446
|
padding = _check_padding_dimension(len(input_shape), self.padding)
|
|
431
447
|
x = ops.MirrorPad(mode='REFLECT')(x, Tensor(padding))
|
|
432
448
|
return x
|
|
@@ -491,7 +507,7 @@ class ReflectionPad2d(_ReflectionPadNd):
|
|
|
491
507
|
If padding is a tuple: uses :math:`(pad\_left, pad\_right, pad\_up, pad\_down)` to pad.
|
|
492
508
|
|
|
493
509
|
Inputs:
|
|
494
|
-
- **x** (Tensor) - 3D or 4D, shape: :math:`(C, H_{in}, W_{
|
|
510
|
+
- **x** (Tensor) - 3D or 4D, shape: :math:`(C, H_{in}, W_{in})` or :math:`(N, C, H_{in}, W_{in})`.
|
|
495
511
|
|
|
496
512
|
Outputs:
|
|
497
513
|
Tensor, after padding. Shape: :math:`(C, H_{out}, W_{out})` or :math:`(N, C, H_{out}, W_{out})`,
|
|
@@ -534,6 +550,70 @@ class ReflectionPad2d(_ReflectionPadNd):
|
|
|
534
550
|
super(ReflectionPad2d, self).__init__(padding, 'ReflectionPad2d')
|
|
535
551
|
|
|
536
552
|
|
|
553
|
+
class ReflectionPad3d(_ReflectionPadNd):
|
|
554
|
+
r"""
|
|
555
|
+
Pad the given tensor in a reflecting way using the input boundaries as the axis of symmetry.
|
|
556
|
+
|
|
557
|
+
Note:
|
|
558
|
+
ReflectionPad3d has not supported 5D tensor yet.
|
|
559
|
+
|
|
560
|
+
Args:
|
|
561
|
+
padding (union[int, tuple]): The padding size to pad the input tensor.
|
|
562
|
+
If padding is an integer: all directions will be padded with the same size.
|
|
563
|
+
If padding is a tuple: uses :math:`(pad\_left, pad\_right, pad\_up, pad\_down, pad\_front, pad\_back)`
|
|
564
|
+
to pad.
|
|
565
|
+
|
|
566
|
+
Inputs:
|
|
567
|
+
- **x** (Tensor) - 4D Tensor, shape: :math:`(N, D_{in}, H_{in}, W_{in})`.
|
|
568
|
+
|
|
569
|
+
Outputs:
|
|
570
|
+
Tensor, after padding. Shape: :math:`(N, D_{out}, H_{out}, W_{out})`,
|
|
571
|
+
where :math:`D_{out} = D_{in} + pad\_front + pad\_back`, :math:`H_{out} = H_{in} + pad\_up + pad\_down`
|
|
572
|
+
:math:`W_{out} = W_{in} + pad\_left + pad\_right`.
|
|
573
|
+
|
|
574
|
+
Raises:
|
|
575
|
+
TypeError: If 'padding' is not a tuple or int.
|
|
576
|
+
TypeError: If there is an element in 'padding' that is not int.
|
|
577
|
+
ValueError: If the length of 'padding' is not divisible by 2.
|
|
578
|
+
ValueError: If there is an element in 'padding' that is negative.
|
|
579
|
+
ValueError: If the there is a dimension mismatch between the padding and the tensor.
|
|
580
|
+
|
|
581
|
+
Supported Platforms:
|
|
582
|
+
``Ascend`` ``GPU`` ``CPU``
|
|
583
|
+
|
|
584
|
+
Examples:
|
|
585
|
+
>>> import numpy as np
|
|
586
|
+
>>> from mindspore import Tensor
|
|
587
|
+
>>> from mindspore.nn import ReflectionPad3d
|
|
588
|
+
>>> arr = np.arange(8).astype(np.float32).reshape((1, 2, 2, 2))
|
|
589
|
+
>>> x = Tensor(arr)
|
|
590
|
+
>>> # x has shape (1, 2, 2, 2)
|
|
591
|
+
>>> padding = (1, 1, 1, 0, 0, 1)
|
|
592
|
+
>>> pad3d = ReflectionPad3d(padding)
|
|
593
|
+
>>> out = pad3d(x)
|
|
594
|
+
>>> # The first dimension of x remains the same.
|
|
595
|
+
>>> # The second dimension of x: D_out = D_in + pad_front + pad_back = 2 + 0 + 1 = 3
|
|
596
|
+
>>> # The third dimension of x: H_out = H_in + pad_up + pad_down = 2 + 1 + 0 = 3
|
|
597
|
+
>>> # The last dimension of x: W_out = W_in + pad_left + pad_right = 2 + 1 + 1 = 4
|
|
598
|
+
>>> # The shape of out is (1, 3, 3, 4)
|
|
599
|
+
>>> print(out)
|
|
600
|
+
[[[[3. 2. 3. 2.]
|
|
601
|
+
[1. 0. 1. 0.]
|
|
602
|
+
[3. 2. 3. 2.]]
|
|
603
|
+
[[7. 6. 7. 6.]
|
|
604
|
+
[5. 4. 5. 4.]
|
|
605
|
+
[7. 6. 7. 6.]]
|
|
606
|
+
[[3. 2. 3. 2.]
|
|
607
|
+
[1. 0. 1. 0.]
|
|
608
|
+
[3. 2. 3. 2.]]]]
|
|
609
|
+
"""
|
|
610
|
+
|
|
611
|
+
def __init__(self, padding):
|
|
612
|
+
if isinstance(padding, int):
|
|
613
|
+
padding = (padding, padding, padding, padding, padding, padding)
|
|
614
|
+
super(ReflectionPad3d, self).__init__(padding, 'ReflectionPad3d')
|
|
615
|
+
|
|
616
|
+
|
|
537
617
|
class ZeroPad2d(_ConstantPadNd):
|
|
538
618
|
r"""
|
|
539
619
|
Pads the last two dimensions of input tensor with zero.
|
|
@@ -589,6 +669,7 @@ class _ReplicationPadNd(Cell):
|
|
|
589
669
|
Using a given padding to do replication pad on the given tensor.
|
|
590
670
|
Work as a parent class, and only accepts tuple as padding input.
|
|
591
671
|
"""
|
|
672
|
+
|
|
592
673
|
def __init__(self, padding, name="ReplicationPadNd"):
|
|
593
674
|
super(_ReplicationPadNd, self).__init__()
|
|
594
675
|
self.name = name
|
|
@@ -605,7 +686,7 @@ class _ReplicationPadNd(Cell):
|
|
|
605
686
|
self.padv3 = nn_ops.PadV3(mode="edge")
|
|
606
687
|
|
|
607
688
|
@staticmethod
|
|
608
|
-
@
|
|
689
|
+
@_primexpr
|
|
609
690
|
def _check_input_dim(shape, cls_name):
|
|
610
691
|
raise NotImplementedError
|
|
611
692
|
|
|
@@ -619,10 +700,10 @@ class _ReplicationPadNd(Cell):
|
|
|
619
700
|
need_expend_dims = self._need_expend_dim(x)
|
|
620
701
|
if need_expend_dims:
|
|
621
702
|
x = x.expand_dims(0)
|
|
622
|
-
x = self.padv3(x, self.padding)
|
|
703
|
+
x = self.padv3(x, self.padding, None)
|
|
623
704
|
x = x.squeeze(0)
|
|
624
705
|
else:
|
|
625
|
-
x = self.padv3(x, self.padding)
|
|
706
|
+
x = self.padv3(x, self.padding, None)
|
|
626
707
|
return x
|
|
627
708
|
|
|
628
709
|
|
|
@@ -631,8 +712,10 @@ class ReplicationPad1d(_ReplicationPadNd):
|
|
|
631
712
|
Pad on W dimension of input `x` according to `padding`.
|
|
632
713
|
|
|
633
714
|
Args:
|
|
634
|
-
padding (union[int, tuple]):
|
|
635
|
-
|
|
715
|
+
padding (union[int, tuple]): The padding size to pad the last dimension of `x` .
|
|
716
|
+
|
|
717
|
+
- If `padding` is an integer, all directions will be padded with the same size.
|
|
718
|
+
- If `padding` is a tuple, uses :math:`(pad_{left}, pad_{right})` to pad.
|
|
636
719
|
|
|
637
720
|
Inputs:
|
|
638
721
|
- **x** (Tensor) - 2D or 3D, shape: :math:`(C, W_{in})` or :math:`(N, C, W_{in})`.
|
|
@@ -650,40 +733,37 @@ class ReplicationPad1d(_ReplicationPadNd):
|
|
|
650
733
|
Supported Platforms:
|
|
651
734
|
``GPU``
|
|
652
735
|
|
|
653
|
-
Examples
|
|
736
|
+
Examples:
|
|
654
737
|
>>> import numpy as np
|
|
738
|
+
>>> import mindspore
|
|
655
739
|
>>> from mindspore import Tensor
|
|
656
740
|
>>> from mindspore.nn import ReplicationPad1d
|
|
657
|
-
>>> x = Tensor(np.array([[[0, 1, 2], [3, 4, 5], [6, 7, 8]]]).astype(np.float32))
|
|
658
741
|
>>> pad1d = ReplicationPad1d(2)
|
|
659
742
|
>>> input = Tensor(np.arange(0, 8).reshape(1, 2, 4), mindspore.float32)
|
|
660
|
-
>>> input
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
[4., 5., 6., 7.]]])
|
|
743
|
+
>>> print(input)
|
|
744
|
+
[[[0. 1. 2. 3.]
|
|
745
|
+
[4. 5. 6. 7.]]]
|
|
664
746
|
>>> out = pad1d(input)
|
|
665
747
|
>>> print(out)
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
[4., 4., 4., 5., 6., 7., 7., 7.]]])
|
|
748
|
+
[[[0. 0. 0. 1. 2. 3. 3. 3.]
|
|
749
|
+
[4. 4. 4. 5. 6. 7. 7. 7.]]]
|
|
669
750
|
>>> pad1d = ReplicationPad1d((3, 1))
|
|
670
751
|
>>> out = pad1d(input)
|
|
671
752
|
>>> print(out)
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
[4., 4., 4., 4., 5., 6., 7., 7.]]])
|
|
753
|
+
[[[0. 0. 0. 0. 1. 2. 3. 3.]
|
|
754
|
+
[4. 4. 4. 4. 5. 6. 7. 7.]]]
|
|
675
755
|
"""
|
|
756
|
+
|
|
676
757
|
def __init__(self, padding):
|
|
677
758
|
if isinstance(padding, int):
|
|
678
759
|
padding = (padding, padding)
|
|
679
760
|
super(ReplicationPad1d, self).__init__(padding, name="ReplicationPad1d")
|
|
680
761
|
|
|
681
762
|
@staticmethod
|
|
682
|
-
@
|
|
763
|
+
@_primexpr
|
|
683
764
|
def _check_input_dim(shape, cls_name):
|
|
684
765
|
dim = len(shape)
|
|
685
|
-
|
|
686
|
-
raise ValueError(f"For '{cls_name}', the in_shape must have 2 or 3 dims, but got {dim}.")
|
|
766
|
+
_check_dim(dim, 2, 3, cls_name)
|
|
687
767
|
|
|
688
768
|
def _need_expend_dim(self, x):
|
|
689
769
|
input_shape = x.shape
|
|
@@ -695,11 +775,13 @@ class ReplicationPad2d(_ReplicationPadNd):
|
|
|
695
775
|
Pad on HW dimension of input `x` according to `padding`.
|
|
696
776
|
|
|
697
777
|
Args:
|
|
698
|
-
padding (union[int, tuple]):
|
|
699
|
-
|
|
778
|
+
padding (union[int, tuple]): The padding size to pad the last two dimension of `x` .
|
|
779
|
+
|
|
780
|
+
- If `padding` is an integer, all directions will be padded with the same size.
|
|
781
|
+
- If `padding` is a tuple, uses :math:`(pad_{left}, pad_{right}, pad_{up}, pad_{down})` to pad.
|
|
700
782
|
|
|
701
783
|
Inputs:
|
|
702
|
-
- **x** (Tensor) - 3D or 4D, shape: :math:`(C, H_{in}, W_{
|
|
784
|
+
- **x** (Tensor) - 3D or 4D, shape: :math:`(C, H_{in}, W_{in})` or :math:`(N, C, H_{in}, W_{in})`.
|
|
703
785
|
|
|
704
786
|
Outputs:
|
|
705
787
|
Tensor, after padding. Shape: :math:`(C, H_{out}, W_{out})` or :math:`(N, C, H_{out}, W_{out})`,
|
|
@@ -714,36 +796,34 @@ class ReplicationPad2d(_ReplicationPadNd):
|
|
|
714
796
|
Supported Platforms:
|
|
715
797
|
``GPU``
|
|
716
798
|
|
|
717
|
-
Examples
|
|
799
|
+
Examples:
|
|
718
800
|
>>> import numpy as np
|
|
801
|
+
>>> import mindspore
|
|
719
802
|
>>> from mindspore import Tensor
|
|
720
803
|
>>> from mindspore.nn import ReplicationPad2d
|
|
721
804
|
>>> pad2d = ReplicationPad2d(2)
|
|
722
805
|
>>> input = Tensor(np.arange(0, 9).reshape(1, 1, 3, 3), mindspore.float32)
|
|
723
|
-
>>> input
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
[6., 7., 8.]]]])
|
|
806
|
+
>>> print(input)
|
|
807
|
+
[[[[0. 1. 2.]
|
|
808
|
+
[3. 4. 5.]
|
|
809
|
+
[6. 7. 8.]]]]
|
|
728
810
|
>>> out = pad2d(input)
|
|
729
811
|
>>> print(out)
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
>>>
|
|
739
|
-
>>> out = m(input)
|
|
812
|
+
[[[[0. 0. 0. 1. 2. 2. 2.]
|
|
813
|
+
[0. 0. 0. 1. 2. 2. 2.]
|
|
814
|
+
[0. 0. 0. 1. 2. 2. 2.]
|
|
815
|
+
[3. 3. 3. 4. 5. 5. 5.]
|
|
816
|
+
[6. 6. 6. 7. 8. 8. 8.]
|
|
817
|
+
[6. 6. 6. 7. 8. 8. 8.]
|
|
818
|
+
[6. 6. 6. 7. 8. 8. 8.]]]]
|
|
819
|
+
>>> pad2d = ReplicationPad2d((1, 1, 2, 0))
|
|
820
|
+
>>> out = pad2d(input)
|
|
740
821
|
>>> print(out)
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
[6., 6., 7., 8., 8.]]]])
|
|
822
|
+
[[[[0. 0. 1. 2. 2.]
|
|
823
|
+
[0. 0. 1. 2. 2.]
|
|
824
|
+
[0. 0. 1. 2. 2.]
|
|
825
|
+
[3. 3. 4. 5. 5.]
|
|
826
|
+
[6. 6. 7. 8. 8.]]]]
|
|
747
827
|
"""
|
|
748
828
|
|
|
749
829
|
def __init__(self, padding):
|
|
@@ -752,11 +832,10 @@ class ReplicationPad2d(_ReplicationPadNd):
|
|
|
752
832
|
super(ReplicationPad2d, self).__init__(padding, name="ReplicationPad2d")
|
|
753
833
|
|
|
754
834
|
@staticmethod
|
|
755
|
-
@
|
|
835
|
+
@_primexpr
|
|
756
836
|
def _check_input_dim(shape, cls_name):
|
|
757
837
|
dim = len(shape)
|
|
758
|
-
|
|
759
|
-
raise ValueError(f"For '{cls_name}', the in_shape must have 3 or 4 dims, but got {dim}.")
|
|
838
|
+
_check_dim(dim, 3, 4, cls_name)
|
|
760
839
|
|
|
761
840
|
def _need_expend_dim(self, x):
|
|
762
841
|
input_shape = x.shape
|
|
@@ -768,8 +847,11 @@ class ReplicationPad3d(_ReplicationPadNd):
|
|
|
768
847
|
Pad on DHW dimension of input `x` according to `padding`.
|
|
769
848
|
|
|
770
849
|
Args:
|
|
771
|
-
padding (union[int, tuple]):
|
|
772
|
-
|
|
850
|
+
padding (union[int, tuple]): The padding size to pad the last three dimension of `x` .
|
|
851
|
+
|
|
852
|
+
- If `padding` is an integer, all directions will be padded with the same size.
|
|
853
|
+
- If `padding` is a tuple, uses :math:`(pad_{left}, pad_{right}, pad_{up}, pad_{down},
|
|
854
|
+
pad_{front}, pad_{back})` to pad.
|
|
773
855
|
|
|
774
856
|
Inputs:
|
|
775
857
|
- **x** (Tensor) - 4D or 5D,
|
|
@@ -791,21 +873,30 @@ class ReplicationPad3d(_ReplicationPadNd):
|
|
|
791
873
|
Supported Platforms:
|
|
792
874
|
``GPU``
|
|
793
875
|
|
|
794
|
-
Examples
|
|
876
|
+
Examples:
|
|
795
877
|
>>> import numpy as np
|
|
878
|
+
>>> import mindspore
|
|
796
879
|
>>> from mindspore import Tensor
|
|
797
880
|
>>> from mindspore.nn import ReplicationPad3d
|
|
798
881
|
>>> pad3d = ReplicationPad3d(1)
|
|
799
882
|
>>> input = Tensor(np.arange(0, 9).reshape(1, 1, 1, 3, 3), mindspore.float32)
|
|
800
883
|
>>> out = pad3d(input)
|
|
801
884
|
>>> print(out)
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
885
|
+
[[[[[0. 0. 1. 2. 2.]
|
|
886
|
+
[0. 0. 1. 2. 2.]
|
|
887
|
+
[3. 3. 4. 5. 5.]
|
|
888
|
+
[6. 6. 7. 8. 8.]
|
|
889
|
+
[6. 6. 7. 8. 8.]]
|
|
890
|
+
[[0. 0. 1. 2. 2.]
|
|
891
|
+
[0. 0. 1. 2. 2.]
|
|
892
|
+
[3. 3. 4. 5. 5.]
|
|
893
|
+
[6. 6. 7. 8. 8.]
|
|
894
|
+
[6. 6. 7. 8. 8.]]
|
|
895
|
+
[[0. 0. 1. 2. 2.]
|
|
896
|
+
[0. 0. 1. 2. 2.]
|
|
897
|
+
[3. 3. 4. 5. 5.]
|
|
898
|
+
[6. 6. 7. 8. 8.]
|
|
899
|
+
[6. 6. 7. 8. 8.]]]]]
|
|
809
900
|
"""
|
|
810
901
|
|
|
811
902
|
def __init__(self, padding):
|
|
@@ -814,11 +905,10 @@ class ReplicationPad3d(_ReplicationPadNd):
|
|
|
814
905
|
super(ReplicationPad3d, self).__init__(padding, name="ReplicationPad3d")
|
|
815
906
|
|
|
816
907
|
@staticmethod
|
|
817
|
-
@
|
|
908
|
+
@_primexpr
|
|
818
909
|
def _check_input_dim(shape, cls_name):
|
|
819
910
|
dim = len(shape)
|
|
820
|
-
|
|
821
|
-
raise ValueError(f"For '{cls_name}', the in_shape must have 4 or 5 dims, but got {dim}.")
|
|
911
|
+
_check_dim(dim, 4, 5, cls_name)
|
|
822
912
|
|
|
823
913
|
def _need_expend_dim(self, x):
|
|
824
914
|
input_shape = x.shape
|