mindspore 2.0.0a0__cp39-cp39-win_amd64.whl → 2.0.0rc1__cp39-cp39-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/__init__.py +4 -2
- mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +102 -0
- mindspore/_checkparam.py +1066 -1001
- mindspore/_extends/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/include/api/net.h
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2022 Huawei Technologies Co., Ltd
|
|
2
|
+
* Copyright 2022-2023 Huawei Technologies Co., Ltd
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -36,14 +36,14 @@ class NodeSet;
|
|
|
36
36
|
class Graph;
|
|
37
37
|
class NetData;
|
|
38
38
|
|
|
39
|
-
class NetBase {
|
|
39
|
+
class MS_API NetBase {
|
|
40
40
|
public:
|
|
41
41
|
NetBase() = default;
|
|
42
42
|
virtual std::vector<Expr *> operator()(const std::vector<Expr *> &inputs) = 0;
|
|
43
43
|
virtual uint32_t type() = 0;
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
-
class Node : public NetBase {
|
|
46
|
+
class MS_API Node : public NetBase {
|
|
47
47
|
public:
|
|
48
48
|
Node();
|
|
49
49
|
virtual ~Node();
|
|
@@ -65,7 +65,7 @@ class Node : public NetBase {
|
|
|
65
65
|
std::shared_ptr<NodeImpl> impl_ = nullptr;
|
|
66
66
|
};
|
|
67
67
|
|
|
68
|
-
class Net : public NetBase, public std::enable_shared_from_this<Net> {
|
|
68
|
+
class MS_API Net : public NetBase, public std::enable_shared_from_this<Net> {
|
|
69
69
|
public:
|
|
70
70
|
Net();
|
|
71
71
|
virtual ~Net();
|
|
@@ -116,12 +116,12 @@ class Net : public NetBase, public std::enable_shared_from_this<Net> {
|
|
|
116
116
|
std::shared_ptr<NetImpl> impl_;
|
|
117
117
|
};
|
|
118
118
|
|
|
119
|
-
class SoftMaxCrossEntropyCfg {
|
|
119
|
+
class MS_API SoftMaxCrossEntropyCfg {
|
|
120
120
|
public:
|
|
121
121
|
std::string reduction = "mean"; /**< Specifies reduction mode. The optional values are "none", "mean", "sum" */
|
|
122
122
|
};
|
|
123
123
|
|
|
124
|
-
class AdamConfig {
|
|
124
|
+
class MS_API AdamConfig {
|
|
125
125
|
public:
|
|
126
126
|
float learning_rate_ = 1e-3;
|
|
127
127
|
float beta1_ = 0.9;
|
|
@@ -131,11 +131,12 @@ class AdamConfig {
|
|
|
131
131
|
};
|
|
132
132
|
|
|
133
133
|
namespace NN {
|
|
134
|
-
Net *NetWithLoss(Net *net, Node *loss);
|
|
135
|
-
Graph *GraphWithLoss(Graph *g, Node *loss);
|
|
136
|
-
Node *Adam(std::shared_ptr<NodeSet> learn, const AdamConfig &cfg);
|
|
137
|
-
Node *SoftmaxCrossEntropy(const SoftMaxCrossEntropyCfg &cfg);
|
|
138
|
-
std::unique_ptr<Node> Input(std::vector<int> dims, DataType data_type = DataType::kNumberTypeFloat32,
|
|
134
|
+
MS_API Net *NetWithLoss(Net *net, Node *loss);
|
|
135
|
+
MS_API Graph *GraphWithLoss(Graph *g, Node *loss);
|
|
136
|
+
MS_API Node *Adam(std::shared_ptr<NodeSet> learn, const AdamConfig &cfg);
|
|
137
|
+
MS_API Node *SoftmaxCrossEntropy(const SoftMaxCrossEntropyCfg &cfg);
|
|
138
|
+
MS_API std::unique_ptr<Node> Input(std::vector<int> dims, DataType data_type = DataType::kNumberTypeFloat32,
|
|
139
|
+
int fmt = NHWC);
|
|
139
140
|
}; // namespace NN
|
|
140
141
|
} // namespace mindspore
|
|
141
142
|
#endif // MINDSPORE_INCLUDE_API_NET_H
|
|
@@ -79,16 +79,22 @@ class MS_API Serialization {
|
|
|
79
79
|
///
|
|
80
80
|
/// \param[in] model The model data.
|
|
81
81
|
/// \param[in] model_type The model file type.
|
|
82
|
-
/// \param[out] model_data The model
|
|
82
|
+
/// \param[out] model_data The model buffer.
|
|
83
|
+
/// \param[in] quantization_type The quantification type.
|
|
84
|
+
/// \param[in] export_inference_only Whether to export a reasoning only model.
|
|
85
|
+
/// \param[in] output_tensor_name The set the name of the output tensor of the exported reasoning model, default as
|
|
86
|
+
/// empty, and export the complete reasoning model.
|
|
83
87
|
///
|
|
84
88
|
/// \return Status.
|
|
85
|
-
static Status ExportModel(const Model &model, ModelType model_type, Buffer *model_data
|
|
89
|
+
inline static Status ExportModel(const Model &model, ModelType model_type, Buffer *model_data,
|
|
90
|
+
QuantizationType quantization_type = kNoQuant, bool export_inference_only = true,
|
|
91
|
+
const std::vector<std::string> &output_tensor_name = {});
|
|
86
92
|
|
|
87
93
|
/// \brief Export training model from file.
|
|
88
94
|
///
|
|
89
95
|
/// \param[in] model The model data.
|
|
90
96
|
/// \param[in] model_type The model file type.
|
|
91
|
-
/// \param[in] model_file The exported model file.
|
|
97
|
+
/// \param[in] model_file The path of exported model file.
|
|
92
98
|
/// \param[in] quantization_type The quantification type.
|
|
93
99
|
/// \param[in] export_inference_only Whether to export a reasoning only model.
|
|
94
100
|
/// \param[in] output_tensor_name The set the name of the output tensor of the exported reasoning model, default as
|
|
@@ -111,6 +117,9 @@ class MS_API Serialization {
|
|
|
111
117
|
static Status ExportModel(const Model &model, ModelType model_type, const std::vector<char> &model_file,
|
|
112
118
|
QuantizationType quantization_type, bool export_inference_only,
|
|
113
119
|
const std::vector<std::vector<char>> &output_tensor_name);
|
|
120
|
+
static Status ExportModel(const Model &model, ModelType model_type, Buffer *model_data,
|
|
121
|
+
QuantizationType quantization_type, bool export_inference_only,
|
|
122
|
+
const std::vector<std::vector<char>> &output_tensor_name);
|
|
114
123
|
};
|
|
115
124
|
|
|
116
125
|
Status Serialization::Load(const void *model_data, size_t data_size, ModelType model_type, Graph *graph,
|
|
@@ -139,5 +148,12 @@ Status Serialization::ExportModel(const Model &model, ModelType model_type, cons
|
|
|
139
148
|
VectorStringToChar(output_tensor_name));
|
|
140
149
|
}
|
|
141
150
|
|
|
151
|
+
Status Serialization::ExportModel(const Model &model, ModelType model_type, Buffer *model_data,
|
|
152
|
+
QuantizationType quantization_type, bool export_inference_only,
|
|
153
|
+
const std::vector<std::string> &output_tensor_name) {
|
|
154
|
+
return ExportModel(model, model_type, model_data, quantization_type, export_inference_only,
|
|
155
|
+
VectorStringToChar(output_tensor_name));
|
|
156
|
+
}
|
|
157
|
+
|
|
142
158
|
} // namespace mindspore
|
|
143
159
|
#endif // MINDSPORE_INCLUDE_API_SERIALIZATION_H
|
mindspore/include/api/types.h
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2020-
|
|
2
|
+
* Copyright 2020-2023 Huawei Technologies Co., Ltd
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -368,7 +368,7 @@ std::string MSTensor::Name() const { return CharToString(CharName()); }
|
|
|
368
368
|
|
|
369
369
|
void MSTensor::SetTensorName(const std::string &name) { SetTensorName(StringToChar(name)); }
|
|
370
370
|
|
|
371
|
-
using Key = struct Key {
|
|
371
|
+
using Key = struct MS_API Key {
|
|
372
372
|
const size_t max_key_len = 32;
|
|
373
373
|
size_t len = 0;
|
|
374
374
|
unsigned char key[32] = {0};
|
|
@@ -390,7 +390,7 @@ using MSKernelCallBack =
|
|
|
390
390
|
std::function<bool(const std::vector<MSTensor> & /* inputs */, const std::vector<MSTensor> & /* outputs */,
|
|
391
391
|
const MSCallBackParam &opInfo)>;
|
|
392
392
|
|
|
393
|
-
std::vector<char> CharVersion();
|
|
393
|
+
MS_API std::vector<char> CharVersion();
|
|
394
394
|
inline std::string Version() { return CharToString(CharVersion()); }
|
|
395
395
|
|
|
396
396
|
} // namespace mindspore
|
|
@@ -291,6 +291,13 @@ enum class DATASET_API ResampleMethod {
|
|
|
291
291
|
kKaiserWindow = 1, ///< Resample audio by Kaiser window
|
|
292
292
|
};
|
|
293
293
|
|
|
294
|
+
/// \brief Possible configuration methods for processing error samples.
|
|
295
|
+
enum class DATASET_API ErrorSamplesMode {
|
|
296
|
+
kReturn = 0, ///< Erroneous sample results in error raised and returned
|
|
297
|
+
kReplace = 1, ///< Erroneous sample is replaced with an internally determined sample
|
|
298
|
+
kSkip = 2 ///< Erroneous sample is skipped
|
|
299
|
+
};
|
|
300
|
+
|
|
294
301
|
/// \brief Convenience function to check bitmask for a 32bit int
|
|
295
302
|
/// \param[in] bits a 32bit int to be tested
|
|
296
303
|
/// \param[in] bitMask a 32bit int representing bit mask
|
mindspore/include/dataset/text.h
CHANGED
|
@@ -234,6 +234,36 @@ class SentencePieceVocab {
|
|
|
234
234
|
|
|
235
235
|
// Transform operations for text
|
|
236
236
|
namespace text {
|
|
237
|
+
/// \brief Add token to beginning or end of sequence.
|
|
238
|
+
class DATASET_API AddToken final : public TensorTransform {
|
|
239
|
+
public:
|
|
240
|
+
/// \brief Constructor.
|
|
241
|
+
/// \param[in] token The token to be added.
|
|
242
|
+
/// \param[in] begin Whether to insert token at start or end of sequence. Default: true.
|
|
243
|
+
/// \par Example
|
|
244
|
+
/// \code
|
|
245
|
+
/// /* Define operations */
|
|
246
|
+
/// auto add_token_op = text::AddToken(token='TOKEN', begin=True);
|
|
247
|
+
///
|
|
248
|
+
/// /* dataset is an instance of Dataset object */
|
|
249
|
+
/// dataset = dataset->Map({add_token_op}, // operations
|
|
250
|
+
/// {"text"}); // input columns
|
|
251
|
+
/// \endcode
|
|
252
|
+
explicit AddToken(const std::string &token, bool begin = true);
|
|
253
|
+
|
|
254
|
+
/// \brief Destructor.
|
|
255
|
+
~AddToken() override = default;
|
|
256
|
+
|
|
257
|
+
protected:
|
|
258
|
+
/// \brief Function to convert TensorTransform object into a TensorOperation object.
|
|
259
|
+
/// \return Shared pointer to TensorOperation object.
|
|
260
|
+
std::shared_ptr<TensorOperation> Parse() override;
|
|
261
|
+
|
|
262
|
+
private:
|
|
263
|
+
struct Data;
|
|
264
|
+
std::shared_ptr<Data> data_;
|
|
265
|
+
};
|
|
266
|
+
|
|
237
267
|
#ifndef _WIN32
|
|
238
268
|
/// \brief Tokenize a scalar tensor of UTF-8 string by specific rules.
|
|
239
269
|
/// \note BasicTokenizer is not supported on the Windows platform yet.
|
|
@@ -864,6 +894,35 @@ class DATASET_API ToVectors final : public TensorTransform {
|
|
|
864
894
|
std::shared_ptr<Data> data_;
|
|
865
895
|
};
|
|
866
896
|
|
|
897
|
+
/// \brief Truncate the input sequence so that it does not exceed the maximum length.
|
|
898
|
+
class DATASET_API Truncate final : public TensorTransform {
|
|
899
|
+
public:
|
|
900
|
+
/// \brief Constructor.
|
|
901
|
+
/// \param[in] max_seq_len Maximum allowable length.
|
|
902
|
+
/// \par Example
|
|
903
|
+
/// \code
|
|
904
|
+
/// /* Define operations */
|
|
905
|
+
/// auto truncate_op = text::Truncate(5);
|
|
906
|
+
///
|
|
907
|
+
/// /* dataset is an instance of Dataset object */
|
|
908
|
+
/// dataset = dataset->Map({truncate_op}, // operations
|
|
909
|
+
/// {"text"}); // input columns
|
|
910
|
+
/// \endcode
|
|
911
|
+
explicit Truncate(int32_t max_seq_len);
|
|
912
|
+
|
|
913
|
+
/// \brief Destructor.
|
|
914
|
+
~Truncate() = default;
|
|
915
|
+
|
|
916
|
+
protected:
|
|
917
|
+
/// \brief The function to convert a TensorTransform object into a TensorOperation object.
|
|
918
|
+
/// \return Shared pointer to the TensorOperation object.
|
|
919
|
+
std::shared_ptr<TensorOperation> Parse() override;
|
|
920
|
+
|
|
921
|
+
private:
|
|
922
|
+
struct Data;
|
|
923
|
+
std::shared_ptr<Data> data_;
|
|
924
|
+
};
|
|
925
|
+
|
|
867
926
|
/// \brief Truncate a pair of rank-1 tensors such that the total length is less than max_length.
|
|
868
927
|
class DATASET_API TruncateSequencePair final : public TensorTransform {
|
|
869
928
|
public:
|
mindspore/jpeg62.dll
CHANGED
|
Binary file
|
mindspore/log.py
CHANGED
|
@@ -279,7 +279,7 @@ def _check_directory_by_regular(target, reg=None, flag=re.ASCII, prim_name=None)
|
|
|
279
279
|
if not isinstance(target, str):
|
|
280
280
|
raise ValueError("The directory {} must be string, but got {}, please check it".format(target, type(target)))
|
|
281
281
|
if reg is None:
|
|
282
|
-
reg = r"^[\/0-9a-zA-Z
|
|
282
|
+
reg = r"^[\/0-9a-zA-Z@\_\-\.\:\\]+$"
|
|
283
283
|
if re.match(reg, target, flag) is None:
|
|
284
284
|
prim_name = f'in `{prim_name}`' if prim_name else ""
|
|
285
285
|
raise ValueError("'{}' {} is illegal, it should be match regular'{}' by flag'{}'".format(
|
|
@@ -100,3 +100,21 @@ class FileReader:
|
|
|
100
100
|
def close(self):
|
|
101
101
|
"""Stop reader worker and close file."""
|
|
102
102
|
self._reader.close()
|
|
103
|
+
|
|
104
|
+
def schema(self):
|
|
105
|
+
"""
|
|
106
|
+
Get the schema of the MindRecord.
|
|
107
|
+
|
|
108
|
+
Returns:
|
|
109
|
+
dict, the schema info.
|
|
110
|
+
"""
|
|
111
|
+
return self._header.schema
|
|
112
|
+
|
|
113
|
+
def len(self):
|
|
114
|
+
"""
|
|
115
|
+
Get the number of the samples in MindRecord.
|
|
116
|
+
|
|
117
|
+
Returns:
|
|
118
|
+
int, the number of the samples in MindRecord.
|
|
119
|
+
"""
|
|
120
|
+
return self._reader.len()
|
|
@@ -17,8 +17,11 @@ This module is to write data into mindrecord.
|
|
|
17
17
|
"""
|
|
18
18
|
import os
|
|
19
19
|
import platform
|
|
20
|
+
import queue
|
|
20
21
|
import re
|
|
21
22
|
import stat
|
|
23
|
+
import time
|
|
24
|
+
import multiprocessing as mp
|
|
22
25
|
import numpy as np
|
|
23
26
|
from mindspore import log as logger
|
|
24
27
|
from .shardwriter import ShardWriter
|
|
@@ -26,7 +29,7 @@ from .shardreader import ShardReader
|
|
|
26
29
|
from .shardheader import ShardHeader
|
|
27
30
|
from .shardindexgenerator import ShardIndexGenerator
|
|
28
31
|
from .shardutils import MIN_SHARD_COUNT, MAX_SHARD_COUNT, VALID_ATTRIBUTES, VALID_ARRAY_ATTRIBUTES, \
|
|
29
|
-
check_filename, VALUE_TYPE_MAP
|
|
32
|
+
check_filename, VALUE_TYPE_MAP, SUCCESS
|
|
30
33
|
from .common.exceptions import ParamValueError, ParamTypeError, MRMInvalidSchemaError, MRMDefineIndexError
|
|
31
34
|
|
|
32
35
|
__all__ = ['FileWriter']
|
|
@@ -103,6 +106,13 @@ class FileWriter:
|
|
|
103
106
|
self._writer = ShardWriter()
|
|
104
107
|
self._generator = None
|
|
105
108
|
|
|
109
|
+
# parallel write mode
|
|
110
|
+
self._parallel_writer = None
|
|
111
|
+
self._writers = None
|
|
112
|
+
self._queue = None
|
|
113
|
+
self._workers = None
|
|
114
|
+
self._index_workers = None
|
|
115
|
+
|
|
106
116
|
@classmethod
|
|
107
117
|
def open_for_append(cls, file_name):
|
|
108
118
|
r"""
|
|
@@ -258,23 +268,72 @@ class FileWriter:
|
|
|
258
268
|
MRMValidateDataError: If data does not match blob fields.
|
|
259
269
|
MRMSetHeaderError: If failed to set header.
|
|
260
270
|
MRMWriteDatasetError: If failed to write dataset.
|
|
271
|
+
TypeError: If parallel_writer is not bool.
|
|
261
272
|
"""
|
|
262
|
-
if not
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
if not isinstance(
|
|
275
|
-
raise ParamTypeError('raw_data
|
|
276
|
-
|
|
277
|
-
|
|
273
|
+
if not isinstance(parallel_writer, bool):
|
|
274
|
+
raise TypeError("The parameter `parallel_writer` must be bool.")
|
|
275
|
+
|
|
276
|
+
if self._parallel_writer is None:
|
|
277
|
+
self._parallel_writer = parallel_writer
|
|
278
|
+
if self._parallel_writer != parallel_writer:
|
|
279
|
+
raise RuntimeError("The parameter `parallel_writer` must be consistent during use.")
|
|
280
|
+
if not self._parallel_writer:
|
|
281
|
+
if not self._writer.is_open:
|
|
282
|
+
self._writer.open(self._paths, self._overwrite)
|
|
283
|
+
if not self._writer.get_shard_header():
|
|
284
|
+
self._writer.set_shard_header(self._header)
|
|
285
|
+
if not isinstance(raw_data, list):
|
|
286
|
+
raise ParamTypeError('raw_data', 'list')
|
|
287
|
+
if self._flush and not self._append:
|
|
288
|
+
raise RuntimeError("Not allowed to call `write_raw_data` on flushed MindRecord files." \
|
|
289
|
+
"When creating new Mindrecord files, please remove `commit` before " \
|
|
290
|
+
"`write_raw_data`. In other cases, when appending to existing MindRecord files, " \
|
|
291
|
+
"please call `open_for_append` first and then `write_raw_data`.")
|
|
292
|
+
for each_raw in raw_data:
|
|
293
|
+
if not isinstance(each_raw, dict):
|
|
294
|
+
raise ParamTypeError('raw_data item', 'dict')
|
|
295
|
+
self._verify_based_on_schema(raw_data)
|
|
296
|
+
return self._writer.write_raw_data(raw_data, True, parallel_writer)
|
|
297
|
+
|
|
298
|
+
## parallel write mode
|
|
299
|
+
# init the _writers and launch the workers
|
|
300
|
+
if self._writers is None:
|
|
301
|
+
self._writers = [None] * len(self._paths) # writers used by worker
|
|
302
|
+
self._queue = mp.Queue(len(self._paths) * 2) # queue for worker
|
|
303
|
+
self._workers = [None] * len(self._paths) # worker process
|
|
304
|
+
for i, path in enumerate(self._paths):
|
|
305
|
+
self._writers[i] = ShardWriter()
|
|
306
|
+
self._writers[i].open([path], self._overwrite)
|
|
307
|
+
self._writers[i].set_shard_header(self._header)
|
|
308
|
+
|
|
309
|
+
# launch the workers for parallel write
|
|
310
|
+
self._queue._joincancelled = True # pylint: disable=W0212
|
|
311
|
+
p = mp.Process(target=self._write_worker, args=(i, self._queue))
|
|
312
|
+
p.daemon = True
|
|
313
|
+
p.start()
|
|
314
|
+
logger.info("Start worker process(pid:{}) to parallel write.".format(p.pid))
|
|
315
|
+
self._workers[i] = p
|
|
316
|
+
|
|
317
|
+
# fill the self._queue
|
|
318
|
+
check_interval = 0.5 # 0.5s
|
|
319
|
+
start_time = time.time()
|
|
320
|
+
while True:
|
|
321
|
+
try:
|
|
322
|
+
self._queue.put(raw_data, block=False)
|
|
323
|
+
except queue.Full:
|
|
324
|
+
if time.time() - start_time > check_interval:
|
|
325
|
+
start_time = time.time()
|
|
326
|
+
logger.warning("Because there are too few MindRecord file shards, the efficiency of parallel " \
|
|
327
|
+
"writing is too low. You can stop the current task and add the parameter " \
|
|
328
|
+
"`shard_num` of `FileWriter` to upgrade the task.")
|
|
329
|
+
|
|
330
|
+
# check the status of worker process
|
|
331
|
+
for i in range(len(self._paths)):
|
|
332
|
+
if not self._workers[i].is_alive():
|
|
333
|
+
raise RuntimeError("Worker process(pid:{}) has stopped abnormal. Please check " \
|
|
334
|
+
"the above log".format(self._workers[i].pid))
|
|
335
|
+
continue
|
|
336
|
+
return SUCCESS
|
|
278
337
|
|
|
279
338
|
def set_header_size(self, header_size):
|
|
280
339
|
"""
|
|
@@ -326,7 +385,7 @@ class FileWriter:
|
|
|
326
385
|
"""
|
|
327
386
|
return self._writer.set_page_size(page_size)
|
|
328
387
|
|
|
329
|
-
def commit(self):
|
|
388
|
+
def commit(self): # pylint: disable=W0212
|
|
330
389
|
"""
|
|
331
390
|
Flush data in memory to disk and generate the corresponding database files.
|
|
332
391
|
|
|
@@ -342,25 +401,37 @@ class FileWriter:
|
|
|
342
401
|
MRMIndexGeneratorError: If failed to create index generator.
|
|
343
402
|
MRMGenerateIndexError: If failed to write to database.
|
|
344
403
|
MRMCommitError: If failed to flush data to disk.
|
|
404
|
+
RuntimeError: Parallel write failed.
|
|
345
405
|
"""
|
|
346
|
-
self.
|
|
347
|
-
|
|
348
|
-
self._writer.
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
self._writer.
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
if self.
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
406
|
+
if not self._parallel_writer:
|
|
407
|
+
self._flush = True
|
|
408
|
+
if not self._writer.is_open:
|
|
409
|
+
self._writer.open(self._paths, self._overwrite)
|
|
410
|
+
# permit commit without data
|
|
411
|
+
if not self._writer.get_shard_header():
|
|
412
|
+
self._writer.set_shard_header(self._header)
|
|
413
|
+
self._writer.commit()
|
|
414
|
+
if self._index_generator:
|
|
415
|
+
if self._append:
|
|
416
|
+
self._generator = ShardIndexGenerator(self._file_name, self._append)
|
|
417
|
+
elif len(self._paths) >= 1:
|
|
418
|
+
self._generator = ShardIndexGenerator(os.path.realpath(self._paths[0]), self._append)
|
|
419
|
+
self._generator.build()
|
|
420
|
+
self._generator.write_to_db()
|
|
421
|
+
else:
|
|
422
|
+
# maybe a empty mindrecord, so need check _writers
|
|
423
|
+
if self._writers is None:
|
|
424
|
+
self._writers = [None] * len(self._paths)
|
|
425
|
+
for i, path in enumerate(self._paths):
|
|
426
|
+
self._writers[i] = ShardWriter()
|
|
427
|
+
self._writers[i].open(path, self._overwrite)
|
|
428
|
+
self._writers[i].set_shard_header(self._header)
|
|
429
|
+
|
|
430
|
+
self._parallel_commit()
|
|
360
431
|
|
|
432
|
+
# change the file mode to 600
|
|
361
433
|
mindrecord_files = []
|
|
362
434
|
index_files = []
|
|
363
|
-
# change the file mode to 600
|
|
364
435
|
for item in self._paths:
|
|
365
436
|
if os.path.exists(item):
|
|
366
437
|
os.chmod(item, stat.S_IRUSR | stat.S_IWUSR)
|
|
@@ -373,7 +444,73 @@ class FileWriter:
|
|
|
373
444
|
logger.info("The list of mindrecord files created are: {}, and the list of index files are: {}".format(
|
|
374
445
|
mindrecord_files, index_files))
|
|
375
446
|
|
|
376
|
-
return
|
|
447
|
+
return SUCCESS
|
|
448
|
+
|
|
449
|
+
def _index_worker(self, i):
|
|
450
|
+
"""The worker do the index generator"""
|
|
451
|
+
generator = ShardIndexGenerator(os.path.realpath(self._paths[i]), False)
|
|
452
|
+
generator.build()
|
|
453
|
+
generator.write_to_db()
|
|
454
|
+
|
|
455
|
+
def _parallel_commit(self):
|
|
456
|
+
"""Parallel commit"""
|
|
457
|
+
# if some workers stopped, error may occur
|
|
458
|
+
alive_count = 0
|
|
459
|
+
for i in range(len(self._paths)):
|
|
460
|
+
if self._workers[i].is_alive():
|
|
461
|
+
alive_count += 1
|
|
462
|
+
if alive_count != len(self._paths):
|
|
463
|
+
raise RuntimeError("Parallel write worker error, please check the log file.")
|
|
464
|
+
|
|
465
|
+
# send EOF to worker process
|
|
466
|
+
for _ in range(len(self._paths)):
|
|
467
|
+
while True:
|
|
468
|
+
try:
|
|
469
|
+
self._queue.put("EOF", block=False)
|
|
470
|
+
except queue.Full:
|
|
471
|
+
time.sleep(1)
|
|
472
|
+
continue
|
|
473
|
+
break
|
|
474
|
+
|
|
475
|
+
# wait the worker processing
|
|
476
|
+
while True:
|
|
477
|
+
alive_count = 0
|
|
478
|
+
for i in range(len(self._paths)):
|
|
479
|
+
if self._workers[i].is_alive():
|
|
480
|
+
alive_count += 1
|
|
481
|
+
if alive_count == 0:
|
|
482
|
+
break
|
|
483
|
+
time.sleep(1)
|
|
484
|
+
logger.info("Waiting for all the parallel workers to finish.")
|
|
485
|
+
|
|
486
|
+
del self._queue
|
|
487
|
+
|
|
488
|
+
# wait for worker process stop
|
|
489
|
+
for index in range(len(self._paths)):
|
|
490
|
+
while True:
|
|
491
|
+
logger.info("Waiting for the worker process(pid:{}) to process all the data.".format(
|
|
492
|
+
self._workers[index].pid))
|
|
493
|
+
if self._workers[index].is_alive():
|
|
494
|
+
time.sleep(1)
|
|
495
|
+
continue
|
|
496
|
+
elif self._workers[index].exitcode != 0:
|
|
497
|
+
raise RuntimeError("Worker process(pid:{}) has stopped abnormal. Please check " \
|
|
498
|
+
"the above log".format(self._workers[index].pid))
|
|
499
|
+
break
|
|
500
|
+
|
|
501
|
+
if self._index_generator:
|
|
502
|
+
# use parallel index workers to generator index
|
|
503
|
+
self._index_workers = [None] * len(self._paths)
|
|
504
|
+
for index in range(len(self._paths)):
|
|
505
|
+
p = mp.Process(target=self._index_worker, args=(index,))
|
|
506
|
+
p.daemon = True
|
|
507
|
+
p.start()
|
|
508
|
+
logger.info("Start worker process(pid:{}) to generate index.".format(p.pid))
|
|
509
|
+
self._index_workers[index] = p
|
|
510
|
+
|
|
511
|
+
# wait the index workers stop
|
|
512
|
+
for index in range(len(self._paths)):
|
|
513
|
+
self._index_workers[index].join()
|
|
377
514
|
|
|
378
515
|
def _validate_array(self, k, v):
|
|
379
516
|
"""
|
|
@@ -487,3 +624,29 @@ class FileWriter:
|
|
|
487
624
|
error = "Field '{}' should be dict.".format(k)
|
|
488
625
|
return False, error
|
|
489
626
|
return True, error
|
|
627
|
+
|
|
628
|
+
def _write_worker(self, i, in_queue):
|
|
629
|
+
"""The worker do the data check and write to disk for parallel mode"""
|
|
630
|
+
while True:
|
|
631
|
+
# try to get new raw_data from master
|
|
632
|
+
try:
|
|
633
|
+
raw_data = in_queue.get(block=False)
|
|
634
|
+
except queue.Empty:
|
|
635
|
+
continue
|
|
636
|
+
|
|
637
|
+
# get EOF from master, worker should commit and stop
|
|
638
|
+
if raw_data == "EOF":
|
|
639
|
+
ret = self._writers[i].commit()
|
|
640
|
+
if ret != SUCCESS:
|
|
641
|
+
raise RuntimeError("Commit the {}th shard of MindRecord file failed.".format(i))
|
|
642
|
+
break
|
|
643
|
+
|
|
644
|
+
# check the raw_data
|
|
645
|
+
if not isinstance(raw_data, list):
|
|
646
|
+
raise ParamTypeError('raw_data', 'list')
|
|
647
|
+
for each_raw in raw_data:
|
|
648
|
+
if not isinstance(each_raw, dict):
|
|
649
|
+
raise ParamTypeError('raw_data item', 'dict')
|
|
650
|
+
|
|
651
|
+
self._verify_based_on_schema(raw_data)
|
|
652
|
+
self._writers[i].write_raw_data(raw_data, True, False)
|
|
@@ -106,3 +106,12 @@ class ShardReader:
|
|
|
106
106
|
def close(self):
|
|
107
107
|
"""close MindRecord File."""
|
|
108
108
|
self._reader.close()
|
|
109
|
+
|
|
110
|
+
def len(self):
|
|
111
|
+
"""
|
|
112
|
+
Get the number of the samples in MindRecord.
|
|
113
|
+
|
|
114
|
+
Returns:
|
|
115
|
+
int, the number of the samples in MindRecord.
|
|
116
|
+
"""
|
|
117
|
+
return self._reader.len()
|
|
@@ -173,7 +173,7 @@ class ShardWriter:
|
|
|
173
173
|
for item in data:
|
|
174
174
|
row_blob = self._merge_blob({field: item[field] for field in self._header.blob_fields})
|
|
175
175
|
if row_blob:
|
|
176
|
-
blob_data.append(
|
|
176
|
+
blob_data.append(row_blob)
|
|
177
177
|
# filter raw data according to schema
|
|
178
178
|
row_raw = {field: self.convert_np_types(item[field])
|
|
179
179
|
for field in self._header.schema.keys() - self._header.blob_fields if field in item}
|
|
@@ -40,12 +40,12 @@ class Cifar100ToMR:
|
|
|
40
40
|
|
|
41
41
|
Note:
|
|
42
42
|
For details about Examples, please refer to `Converting the CIFAR-10 Dataset <https://
|
|
43
|
-
www.mindspore.cn/tutorials/
|
|
43
|
+
www.mindspore.cn/tutorials/en/r2.0/advanced/dataset/record.html#converting-the-cifar-10-dataset>`_ .
|
|
44
44
|
|
|
45
45
|
Args:
|
|
46
46
|
source (str): The cifar100 directory to be transformed.
|
|
47
|
-
destination (str): MindRecord file path to transform into, ensure that
|
|
48
|
-
exists in the directory.
|
|
47
|
+
destination (str): MindRecord file path to transform into, ensure that the directory is created in advance and
|
|
48
|
+
no file with the same name exists in the directory.
|
|
49
49
|
|
|
50
50
|
Raises:
|
|
51
51
|
ValueError: If source or destination is invalid.
|
|
@@ -40,12 +40,12 @@ class Cifar10ToMR:
|
|
|
40
40
|
|
|
41
41
|
Note:
|
|
42
42
|
For details about Examples, please refer to `Converting the CIFAR-10 Dataset <https://
|
|
43
|
-
www.mindspore.cn/tutorials/
|
|
43
|
+
www.mindspore.cn/tutorials/en/r2.0/advanced/dataset/record.html#converting-the-cifar-10-dataset>`_ .
|
|
44
44
|
|
|
45
45
|
Args:
|
|
46
46
|
source (str): The cifar10 directory to be transformed.
|
|
47
|
-
destination (str): MindRecord file path to transform into, ensure that
|
|
48
|
-
exists in the directory.
|
|
47
|
+
destination (str): MindRecord file path to transform into, ensure that the directory is created in advance and
|
|
48
|
+
no file with the same name exists in the directory.
|
|
49
49
|
|
|
50
50
|
Raises:
|
|
51
51
|
ValueError: If source or destination is invalid.
|
|
@@ -36,12 +36,12 @@ class CsvToMR:
|
|
|
36
36
|
|
|
37
37
|
Note:
|
|
38
38
|
For details about Examples, please refer to `Converting CSV Dataset <https://
|
|
39
|
-
www.mindspore.cn/tutorials/
|
|
39
|
+
www.mindspore.cn/tutorials/en/r2.0/advanced/dataset/record.html#converting-csv-dataset>`_ .
|
|
40
40
|
|
|
41
41
|
Args:
|
|
42
42
|
source (str): The file path of csv.
|
|
43
|
-
destination (str): The MindRecord file path to transform into, ensure that
|
|
44
|
-
exists in the directory.
|
|
43
|
+
destination (str): The MindRecord file path to transform into, ensure that the directory is created in advance
|
|
44
|
+
and no file with the same name exists in the directory.
|
|
45
45
|
columns_list(list[str], optional): A list of columns to be read. Default: None.
|
|
46
46
|
partition_number (int, optional): The partition size, Default: 1.
|
|
47
47
|
|