mindspore 1.10.0__cp37-none-any.whl → 2.0.0rc1__cp37-none-any.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/Third_Party_Open_Source_Software_Notice +9064 -0
- mindspore/__init__.py +9 -4
- mindspore/_akg/akg/composite/build_module.py +11 -0
- mindspore/_akg/akg/config/repository_cuda.json +11 -0
- mindspore/_akg/akg/tvm/contrib/nvcc.py +4 -3
- mindspore/_c_dataengine.cpython-37m-aarch64-linux-gnu.so +0 -0
- mindspore/_c_expression.cpython-37m-aarch64-linux-gnu.so +0 -0
- mindspore/_c_mindrecord.cpython-37m-aarch64-linux-gnu.so +0 -0
- mindspore/_check_jit_forbidden_api.py +102 -0
- mindspore/_checkparam.py +1066 -1001
- mindspore/_extends/builtin_operations.py +32 -4
- mindspore/_extends/graph_kernel/model/graph_split.py +66 -222
- mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +12 -9
- mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +119 -26
- mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +50 -50
- mindspore/_extends/parallel_compile/akg_compiler/util.py +9 -6
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +4 -25
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +9 -4
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -27
- mindspore/_extends/parse/__init__.py +5 -3
- mindspore/_extends/parse/namespace.py +17 -2
- mindspore/_extends/parse/parser.py +193 -34
- mindspore/_extends/parse/resources.py +7 -8
- mindspore/_extends/parse/standard_method.py +1780 -435
- mindspore/_extends/parse/trope.py +3 -1
- mindspore/_mindspore_offline_debug.cpython-37m-aarch64-linux-gnu.so +0 -0
- mindspore/amp.py +53 -58
- mindspore/bin/cache_admin +0 -0
- mindspore/bin/cache_server +0 -0
- mindspore/boost/adasum.py +3 -2
- mindspore/boost/boost.py +2 -2
- mindspore/boost/boost_cell_wrapper.py +46 -26
- mindspore/boost/dim_reduce.py +6 -5
- mindspore/boost/grad_accumulation.py +2 -1
- mindspore/boost/group_loss_scale_manager.py +1 -1
- mindspore/common/__init__.py +11 -10
- mindspore/common/_decorator.py +2 -0
- mindspore/common/_register_for_adapter.py +55 -0
- mindspore/common/_stub_tensor.py +201 -0
- mindspore/common/_utils.py +57 -0
- mindspore/common/api.py +582 -297
- mindspore/common/dtype.py +66 -18
- mindspore/common/dump.py +2 -2
- mindspore/common/initializer.py +38 -1
- mindspore/common/jit_config.py +25 -13
- mindspore/common/mutable.py +53 -24
- mindspore/common/parameter.py +60 -37
- mindspore/common/seed.py +8 -24
- mindspore/common/sparse_tensor.py +927 -0
- mindspore/common/tensor.py +1627 -3900
- mindspore/communication/__init__.py +10 -5
- mindspore/communication/_comm_helper.py +78 -214
- mindspore/communication/_hccl_management.py +2 -1
- mindspore/communication/management.py +136 -47
- mindspore/config/op_info.config +501 -1008
- mindspore/config/super_bar_config.json +512 -0
- mindspore/context.py +291 -56
- mindspore/dataset/__init__.py +12 -8
- mindspore/dataset/audio/__init__.py +9 -9
- mindspore/dataset/audio/transforms.py +1090 -228
- mindspore/dataset/audio/utils.py +87 -39
- mindspore/dataset/audio/validators.py +223 -1
- mindspore/dataset/callback/ds_callback.py +17 -15
- mindspore/dataset/core/config.py +246 -17
- mindspore/dataset/core/py_util_helpers.py +4 -3
- mindspore/dataset/core/validator_helpers.py +10 -10
- mindspore/{parallel/nn/layers.py → dataset/debug/__init__.py} +7 -8
- mindspore/dataset/debug/debug_hook.py +65 -0
- mindspore/dataset/debug/pre_defined_hook.py +67 -0
- mindspore/dataset/engine/__init__.py +7 -3
- mindspore/dataset/engine/cache_client.py +9 -9
- mindspore/dataset/engine/datasets.py +648 -477
- mindspore/dataset/engine/datasets_audio.py +165 -167
- mindspore/dataset/engine/datasets_standard_format.py +93 -67
- mindspore/dataset/engine/datasets_text.py +492 -342
- mindspore/dataset/engine/datasets_user_defined.py +85 -50
- mindspore/dataset/engine/datasets_vision.py +1224 -699
- mindspore/dataset/engine/graphdata.py +134 -69
- mindspore/dataset/engine/iterators.py +50 -9
- mindspore/dataset/engine/offload.py +52 -31
- mindspore/dataset/engine/samplers.py +27 -24
- mindspore/dataset/engine/serializer_deserializer.py +14 -15
- mindspore/dataset/engine/validators.py +213 -52
- mindspore/dataset/text/__init__.py +10 -8
- mindspore/dataset/text/transforms.py +152 -57
- mindspore/dataset/text/utils.py +98 -49
- mindspore/dataset/text/validators.py +25 -0
- mindspore/dataset/transforms/__init__.py +4 -2
- mindspore/dataset/transforms/c_transforms.py +11 -13
- mindspore/dataset/transforms/py_transforms.py +2 -2
- mindspore/dataset/transforms/py_transforms_util.py +10 -0
- mindspore/dataset/transforms/transforms.py +13 -15
- mindspore/dataset/transforms/validators.py +7 -7
- mindspore/dataset/utils/__init__.py +2 -1
- mindspore/dataset/utils/browse_dataset.py +13 -13
- mindspore/dataset/utils/line_reader.py +121 -0
- mindspore/dataset/vision/__init__.py +8 -7
- mindspore/dataset/vision/c_transforms.py +125 -126
- mindspore/dataset/vision/py_transforms.py +37 -37
- mindspore/dataset/vision/py_transforms_util.py +23 -20
- mindspore/dataset/vision/transforms.py +316 -315
- mindspore/dataset/vision/utils.py +313 -17
- mindspore/dataset/vision/validators.py +6 -6
- mindspore/default_config.py +0 -1
- mindspore/{compression → experimental}/__init__.py +6 -5
- mindspore/experimental/map_parameter.py +275 -0
- mindspore/include/OWNERS +0 -1
- mindspore/include/api/callback/callback.h +9 -13
- mindspore/include/api/callback/ckpt_saver.h +2 -2
- mindspore/include/api/callback/loss_monitor.h +2 -2
- mindspore/include/api/callback/lr_scheduler.h +5 -5
- mindspore/include/api/callback/time_monitor.h +2 -2
- mindspore/include/api/callback/train_accuracy.h +4 -6
- mindspore/include/api/cfg.h +19 -6
- mindspore/include/api/context.h +70 -9
- mindspore/include/api/delegate.h +8 -1
- mindspore/include/api/dual_abi_helper.h +8 -24
- mindspore/include/api/metrics/accuracy.h +2 -2
- mindspore/include/api/metrics/metrics.h +4 -3
- mindspore/include/api/model.h +9 -4
- mindspore/include/api/model_group.h +68 -0
- mindspore/include/api/model_parallel_runner.h +17 -17
- mindspore/include/api/net.h +12 -11
- mindspore/include/api/serialization.h +20 -4
- mindspore/include/api/status.h +7 -1
- mindspore/include/api/types.h +25 -21
- mindspore/include/api/visible.h +4 -0
- mindspore/include/c_api/model_c.h +5 -0
- mindspore/include/c_api/status_c.h +1 -1
- mindspore/include/dataset/config.h +1 -1
- mindspore/include/dataset/constants.h +14 -0
- mindspore/include/dataset/text.h +59 -0
- mindspore/include/dataset/vision.h +56 -117
- mindspore/include/dataset/vision_lite.h +102 -0
- mindspore/include/mindapi/base/type_id.h +42 -3
- mindspore/lib/libdnnl.so.2 +0 -0
- mindspore/lib/libicudata.so.69 +0 -0
- mindspore/lib/libicui18n.so.69 +0 -0
- mindspore/lib/libicuuc.so.69 +0 -0
- mindspore/lib/libmindspore.so +0 -0
- mindspore/lib/libmindspore_backend.so +0 -0
- mindspore/lib/libmindspore_common.so +0 -0
- mindspore/lib/libmindspore_core.so +0 -0
- mindspore/lib/libmindspore_glog.so.0 +0 -0
- mindspore/lib/libmindspore_gpr.so.15 +0 -0
- mindspore/lib/libmindspore_grpc++.so.1 +0 -0
- mindspore/lib/libmindspore_grpc.so.15 +0 -0
- mindspore/lib/libmindspore_shared_lib.so +0 -0
- mindspore/lib/libmpi_adapter.so +0 -0
- mindspore/lib/libmpi_collective.so +0 -0
- mindspore/lib/libnnacl.so +0 -0
- mindspore/lib/libopencv_core.so.4.5 +0 -0
- mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
- mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
- mindspore/lib/libps_cache.so +0 -0
- mindspore/lib/plugin/ascend/libakg.so +0 -0
- mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
- mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
- mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
- mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
- mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
- mindspore/lib/{libakg.so → plugin/cpu/libakg.so} +0 -0
- mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
- mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
- mindspore/log.py +28 -28
- mindspore/mindrecord/common/exceptions.py +2 -4
- mindspore/mindrecord/filereader.py +19 -1
- mindspore/mindrecord/filewriter.py +250 -88
- mindspore/mindrecord/mindpage.py +13 -13
- mindspore/mindrecord/shardheader.py +15 -15
- mindspore/mindrecord/shardreader.py +9 -0
- mindspore/mindrecord/shardwriter.py +29 -29
- mindspore/mindrecord/tools/cifar100_to_mr.py +9 -9
- mindspore/mindrecord/tools/cifar10_to_mr.py +9 -9
- mindspore/mindrecord/tools/csv_to_mr.py +4 -4
- mindspore/mindrecord/tools/imagenet_to_mr.py +70 -65
- mindspore/mindrecord/tools/mnist_to_mr.py +41 -41
- mindspore/mindrecord/tools/tfrecord_to_mr.py +6 -6
- mindspore/nn/__init__.py +1 -5
- mindspore/nn/cell.py +297 -234
- mindspore/nn/dynamic_lr.py +1 -1
- mindspore/nn/grad/cell_grad.py +17 -42
- mindspore/nn/layer/__init__.py +7 -4
- mindspore/nn/layer/activation.py +131 -88
- mindspore/nn/layer/basic.py +313 -613
- mindspore/nn/layer/channel_shuffle.py +103 -0
- mindspore/nn/layer/combined.py +1 -1
- mindspore/nn/layer/container.py +52 -6
- mindspore/nn/layer/conv.py +112 -43
- mindspore/nn/layer/dense.py +10 -9
- mindspore/nn/layer/embedding.py +36 -34
- mindspore/nn/layer/image.py +123 -27
- mindspore/nn/layer/math.py +108 -107
- mindspore/nn/layer/normalization.py +212 -366
- mindspore/nn/layer/padding.py +370 -42
- mindspore/nn/layer/pooling.py +1443 -219
- mindspore/nn/layer/rnn_cells.py +11 -16
- mindspore/nn/layer/rnns.py +38 -39
- mindspore/nn/layer/thor_layer.py +24 -25
- mindspore/nn/layer/timedistributed.py +5 -5
- mindspore/nn/layer/transformer.py +701 -0
- mindspore/nn/learning_rate_schedule.py +8 -8
- mindspore/nn/loss/__init__.py +9 -6
- mindspore/nn/loss/loss.py +678 -142
- mindspore/nn/metrics.py +53 -0
- mindspore/nn/optim/_dist_optimizer_registry.py +2 -2
- mindspore/nn/optim/ada_grad.py +8 -8
- mindspore/nn/optim/adadelta.py +2 -3
- mindspore/nn/optim/adafactor.py +18 -14
- mindspore/nn/optim/adam.py +429 -87
- mindspore/nn/optim/adamax.py +5 -6
- mindspore/nn/optim/adasum.py +10 -8
- mindspore/nn/optim/asgd.py +7 -7
- mindspore/nn/optim/ftrl.py +81 -11
- mindspore/nn/optim/lamb.py +7 -8
- mindspore/nn/optim/lars.py +4 -4
- mindspore/nn/optim/lazyadam.py +82 -7
- mindspore/nn/optim/momentum.py +8 -7
- mindspore/nn/optim/optimizer.py +19 -10
- mindspore/nn/optim/proximal_ada_grad.py +6 -5
- mindspore/nn/optim/rmsprop.py +3 -3
- mindspore/nn/optim/rprop.py +20 -16
- mindspore/nn/optim/sgd.py +21 -15
- mindspore/nn/optim/thor.py +23 -21
- mindspore/nn/probability/__init__.py +0 -2
- mindspore/nn/probability/bijector/bijector.py +7 -6
- mindspore/nn/probability/bijector/invert.py +4 -2
- mindspore/nn/probability/bijector/softplus.py +2 -2
- mindspore/nn/probability/bnn_layers/dense_variational.py +1 -1
- mindspore/nn/probability/bnn_layers/layer_distribution.py +2 -2
- mindspore/nn/probability/distribution/__init__.py +6 -0
- mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -2
- mindspore/nn/probability/distribution/_utils/utils.py +11 -17
- mindspore/nn/probability/distribution/bernoulli.py +6 -6
- mindspore/nn/probability/distribution/beta.py +1 -1
- mindspore/nn/probability/distribution/categorical.py +9 -9
- mindspore/nn/probability/distribution/cauchy.py +8 -8
- mindspore/nn/probability/distribution/distribution.py +12 -6
- mindspore/nn/probability/distribution/exponential.py +5 -5
- mindspore/nn/probability/distribution/gamma.py +3 -3
- mindspore/nn/probability/distribution/geometric.py +6 -5
- mindspore/nn/probability/distribution/gumbel.py +5 -5
- mindspore/nn/probability/distribution/half_normal.py +133 -0
- mindspore/nn/probability/distribution/laplace.py +128 -0
- mindspore/nn/probability/distribution/log_normal.py +0 -1
- mindspore/nn/probability/distribution/logistic.py +4 -5
- mindspore/nn/probability/distribution/normal.py +11 -15
- mindspore/nn/probability/distribution/poisson.py +6 -2
- mindspore/nn/probability/distribution/student_t.py +150 -0
- mindspore/nn/probability/distribution/transformed_distribution.py +4 -4
- mindspore/nn/probability/distribution/uniform.py +5 -5
- mindspore/nn/reinforcement/_tensors_queue.py +3 -3
- mindspore/nn/reinforcement/tensor_array.py +2 -2
- mindspore/nn/sparse/sparse.py +8 -1
- mindspore/nn/wrap/cell_wrapper.py +55 -27
- mindspore/nn/wrap/grad_reducer.py +20 -11
- mindspore/nn/wrap/loss_scale.py +47 -30
- mindspore/numpy/array_creations.py +33 -22
- mindspore/numpy/array_ops.py +46 -42
- mindspore/numpy/logic_ops.py +6 -27
- mindspore/numpy/math_ops.py +26 -19
- mindspore/numpy/utils.py +1 -8
- mindspore/numpy/utils_const.py +112 -62
- mindspore/ops/__init__.py +6 -3
- mindspore/ops/_constants.py +0 -6
- mindspore/ops/_grad/__init__.py +2 -1
- mindspore/ops/_grad/grad_array_ops.py +209 -152
- mindspore/ops/_grad/grad_base.py +55 -17
- mindspore/ops/_grad/grad_clip_ops.py +11 -3
- mindspore/ops/_grad/grad_comm_ops.py +58 -47
- mindspore/ops/_grad/grad_implementations.py +21 -61
- mindspore/ops/_grad/grad_inner_ops.py +48 -6
- mindspore/ops/_grad/grad_math_ops.py +306 -161
- mindspore/ops/_grad/grad_nn_ops.py +192 -181
- mindspore/ops/_grad/grad_other_ops.py +1 -1
- mindspore/ops/_grad/grad_quant_ops.py +5 -5
- mindspore/ops/_grad/grad_sequence_ops.py +296 -0
- mindspore/ops/_grad/grad_sparse.py +15 -9
- mindspore/ops/_grad_experimental/__init__.py +1 -0
- mindspore/ops/_grad_experimental/grad_array_ops.py +441 -55
- mindspore/ops/_grad_experimental/grad_image_ops.py +25 -7
- mindspore/ops/_grad_experimental/grad_inner_ops.py +3 -44
- mindspore/ops/_grad_experimental/grad_linalg_ops.py +16 -21
- mindspore/ops/_grad_experimental/grad_math_ops.py +979 -49
- mindspore/ops/_grad_experimental/grad_nn_ops.py +78 -8
- mindspore/ops/_grad_experimental/grad_scalar_ops.py +112 -0
- mindspore/ops/_grad_experimental/grad_sparse_ops.py +197 -13
- mindspore/ops/_op_impl/__init__.py +3 -3
- mindspore/ops/_op_impl/_custom_op/__init__.py +0 -1
- mindspore/ops/_op_impl/_custom_op/_basic.py +0 -1
- mindspore/ops/_op_impl/_custom_op/batch_matmul_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold.py +4 -2
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold2.py +2 -2
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad_reduce.py +5 -5
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold_grad.py +3 -3
- mindspore/ops/_op_impl/_custom_op/cholesky_trsm_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/correction_mul.py +3 -3
- mindspore/ops/_op_impl/_custom_op/correction_mul_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +4 -8
- mindspore/ops/_op_impl/_custom_op/dsd_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad_reduce.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad_reduce.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fused_abs_max1_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/img2col_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +2 -2
- mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_right_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_left_cast_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_right_mul_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_impl.py +2 -2
- mindspore/ops/_op_impl/_custom_op/matmul_dds_grad_impl.py +0 -1
- mindspore/ops/_op_impl/_custom_op/matmul_dds_impl.py +0 -1
- mindspore/ops/_op_impl/_custom_op/matrix_combine_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/minmax_update_perchannel.py +2 -2
- mindspore/ops/_op_impl/_custom_op/minmax_update_perlayer.py +2 -2
- mindspore/ops/_op_impl/_custom_op/transpose02314_impl.py +1 -1
- mindspore/ops/_op_impl/aicpu/__init__.py +238 -3
- mindspore/ops/_op_impl/aicpu/abs.py +36 -0
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d.py +34 -0
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d_grad.py +34 -0
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d.py +39 -0
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d_grad.py +39 -0
- mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d_grad.py +37 -0
- mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d.py +42 -0
- mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d_grad.py +152 -0
- mindspore/ops/_op_impl/aicpu/add.py +43 -0
- mindspore/ops/_op_impl/aicpu/addcdiv.py +0 -32
- mindspore/ops/_op_impl/aicpu/addcmul.py +0 -84
- mindspore/ops/_op_impl/aicpu/affine_grid_grad.py +35 -0
- mindspore/ops/_op_impl/aicpu/arg_max.py +75 -0
- mindspore/ops/_op_impl/aicpu/arg_min.py +75 -0
- mindspore/ops/_op_impl/aicpu/argmin_with_value.py +43 -0
- mindspore/ops/_op_impl/aicpu/batch_matmul.py +43 -0
- mindspore/ops/_op_impl/aicpu/batch_norm_grad_grad.py +49 -0
- mindspore/ops/_op_impl/aicpu/bernoulli.py +48 -0
- mindspore/ops/_op_impl/aicpu/bessel_i0.py +31 -0
- mindspore/ops/_op_impl/aicpu/bias_add.py +44 -0
- mindspore/ops/_op_impl/aicpu/bias_add_grad.py +43 -0
- mindspore/ops/_op_impl/aicpu/bincount.py +33 -0
- mindspore/{nn/probability/infer/variational/__init__.py → ops/_op_impl/aicpu/cauchy.py} +17 -10
- mindspore/ops/_op_impl/aicpu/channel_shuffle.py +40 -0
- mindspore/ops/_op_impl/aicpu/cholesky.py +1 -1
- mindspore/ops/_op_impl/{cpu/bias_add.py → aicpu/choleskygrad.py} +9 -7
- mindspore/ops/_op_impl/aicpu/combined_non_max_suppression.py +42 -0
- mindspore/ops/_op_impl/aicpu/concat_offset.py +42 -0
- mindspore/ops/_op_impl/aicpu/concat_offset_v1.py +31 -0
- mindspore/ops/_op_impl/aicpu/conj.py +11 -0
- mindspore/ops/_op_impl/aicpu/crop_and_resize_grad_image.py +38 -0
- mindspore/ops/_op_impl/aicpu/cumulative_logsumexp.py +36 -0
- mindspore/ops/_op_impl/aicpu/deformable_offsets.py +38 -0
- mindspore/ops/_op_impl/aicpu/deformable_offsets_grad.py +2 -2
- mindspore/ops/_op_impl/aicpu/dense_to_sparse_set_operation.py +48 -0
- mindspore/ops/_op_impl/aicpu/diag.py +36 -0
- mindspore/ops/_op_impl/aicpu/diag_part.py +36 -0
- mindspore/ops/_op_impl/aicpu/diagonal.py +35 -0
- mindspore/ops/_op_impl/{cpu/bias_add_grad.py → aicpu/digamma.py} +9 -7
- mindspore/ops/_op_impl/aicpu/eig.py +35 -0
- mindspore/ops/_op_impl/aicpu/fft_with_size.py +41 -0
- mindspore/ops/_op_impl/aicpu/flatten.py +1 -0
- mindspore/ops/_op_impl/aicpu/fmax.py +36 -0
- mindspore/ops/_op_impl/aicpu/fmin.py +37 -0
- mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_with_fixed_ksize.py +1 -1
- mindspore/ops/_op_impl/aicpu/fse_decode.py +43 -0
- mindspore/ops/_op_impl/aicpu/glu.py +33 -0
- mindspore/ops/_op_impl/aicpu/glu_grad.py +34 -0
- mindspore/ops/_op_impl/aicpu/greater.py +41 -0
- mindspore/ops/_op_impl/aicpu/greater_equal.py +41 -0
- mindspore/ops/_op_impl/aicpu/index_put.py +50 -0
- mindspore/ops/_op_impl/{tbe/scatter_add_ds.py → aicpu/inplace_index_add.py} +17 -21
- mindspore/ops/_op_impl/aicpu/instance_norm_v2.py +41 -0
- mindspore/ops/_op_impl/aicpu/instance_norm_v2_grad.py +44 -0
- mindspore/ops/_op_impl/aicpu/layer_norm_grad_grad.py +47 -0
- mindspore/ops/_op_impl/aicpu/less.py +41 -0
- mindspore/ops/_op_impl/aicpu/less_equal.py +41 -0
- mindspore/ops/_op_impl/aicpu/lgamma.py +32 -0
- mindspore/ops/_op_impl/aicpu/log_normal_reverse.py +33 -0
- mindspore/ops/_op_impl/aicpu/logit.py +33 -0
- mindspore/ops/_op_impl/aicpu/logit_grad.py +34 -0
- mindspore/ops/_op_impl/aicpu/masked_fill.py +42 -0
- mindspore/ops/_op_impl/aicpu/masked_scatter.py +39 -0
- mindspore/ops/_op_impl/aicpu/matmul.py +39 -0
- mindspore/ops/_op_impl/aicpu/matrix_logarithm.py +31 -0
- mindspore/ops/_op_impl/aicpu/matrix_power.py +32 -0
- mindspore/ops/_op_impl/aicpu/matrix_solve_ls.py +36 -0
- mindspore/ops/_op_impl/aicpu/matrix_triangular_solve.py +36 -0
- mindspore/ops/_op_impl/aicpu/mirror_pad.py +2 -0
- mindspore/ops/_op_impl/aicpu/mirror_pad_grad.py +0 -4
- mindspore/ops/_op_impl/aicpu/mul.py +3 -1
- mindspore/ops/_op_impl/aicpu/multinomial.py +14 -6
- mindspore/ops/_op_impl/aicpu/multinomial_with_replacement.py +35 -0
- mindspore/ops/_op_impl/aicpu/nan_to_num.py +34 -0
- mindspore/ops/_op_impl/aicpu/nllloss.py +38 -0
- mindspore/ops/_op_impl/aicpu/nllloss_grad.py +39 -0
- mindspore/ops/_op_impl/aicpu/ones_like.py +0 -2
- mindspore/ops/_op_impl/aicpu/polar.py +32 -0
- mindspore/ops/_op_impl/aicpu/polygamma.py +34 -0
- mindspore/ops/_op_impl/aicpu/qr.py +36 -0
- mindspore/ops/_op_impl/aicpu/quant_dtype_cast.py +40 -0
- mindspore/ops/_op_impl/aicpu/quantile.py +35 -0
- mindspore/ops/_op_impl/aicpu/ragged_tensor_to_sparse.py +73 -0
- mindspore/ops/_op_impl/aicpu/ragged_tensor_to_tensor.py +74 -0
- mindspore/ops/_op_impl/aicpu/random_shuffle.py +3 -0
- mindspore/ops/_op_impl/aicpu/randperm_v2.py +41 -0
- mindspore/ops/_op_impl/aicpu/range.py +36 -0
- mindspore/ops/_op_impl/aicpu/reciprocal.py +34 -0
- mindspore/ops/_op_impl/aicpu/reciprocal_grad.py +35 -0
- mindspore/ops/_op_impl/aicpu/reduce_sum.py +57 -0
- mindspore/ops/_op_impl/aicpu/resize_bicubic.py +2 -8
- mindspore/ops/_op_impl/aicpu/resize_bicubic_grad.py +1 -1
- mindspore/ops/_op_impl/aicpu/resize_v2.py +68 -0
- mindspore/ops/_op_impl/aicpu/resize_v2_grad.py +68 -0
- mindspore/ops/_op_impl/aicpu/scatter_elements.py +4 -0
- mindspore/ops/_op_impl/aicpu/scatter_nd_update.py +2 -0
- mindspore/ops/_op_impl/aicpu/search_sorted.py +12 -6
- mindspore/ops/_op_impl/aicpu/self_adjoint_eig.py +34 -0
- mindspore/ops/_op_impl/aicpu/sequence_add.py +34 -0
- mindspore/ops/_op_impl/aicpu/sequence_add_offset.py +34 -0
- mindspore/ops/_op_impl/aicpu/sequence_addn.py +38 -0
- mindspore/ops/_op_impl/aicpu/slice_grad.py +76 -0
- mindspore/ops/_op_impl/aicpu/smooth_l1_loss.py +35 -0
- mindspore/ops/_op_impl/aicpu/smooth_l1_loss_grad.py +37 -0
- mindspore/ops/_op_impl/aicpu/sort.py +39 -0
- mindspore/ops/_op_impl/aicpu/sparse_apply_adagrad_da.py +0 -24
- mindspore/ops/_op_impl/aicpu/sparse_cross.py +42 -0
- mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows.py +63 -0
- mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows_grad.py +45 -0
- mindspore/ops/_op_impl/aicpu/sparse_matrix_mat_mul.py +56 -0
- mindspore/ops/_op_impl/{tbe/slice_ds.py → aicpu/sparse_segment_sum.py} +16 -24
- mindspore/ops/_op_impl/aicpu/sparse_segment_sum_with_num_segments.py +68 -0
- mindspore/ops/_op_impl/aicpu/sparse_slice.py +63 -0
- mindspore/ops/_op_impl/aicpu/sparse_slice_grad.py +61 -0
- mindspore/ops/_op_impl/aicpu/squared_difference.py +2 -0
- mindspore/ops/_op_impl/aicpu/strided_slice_v2.py +93 -0
- mindspore/ops/_op_impl/aicpu/strided_slice_v2_grad.py +66 -0
- mindspore/ops/_op_impl/aicpu/tensor_scatter_update.py +59 -0
- mindspore/ops/_op_impl/{tbe/gather_v2.py → aicpu/tile.py} +24 -24
- mindspore/ops/_op_impl/aicpu/tridiagonal_solve.py +35 -0
- mindspore/ops/_op_impl/aicpu/tril_indices.py +34 -0
- mindspore/ops/_op_impl/aicpu/triu_indices.py +34 -0
- mindspore/ops/_op_impl/aicpu/uniform.py +34 -0
- mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +1 -0
- mindspore/ops/_op_impl/aicpu/unique_consecutive.py +10 -2
- mindspore/ops/_op_impl/cpu/__init__.py +1 -2
- mindspore/ops/_op_impl/cpu/dynamic_shape.py +5 -1
- mindspore/ops/_op_impl/cpu/maximum_grad.py +2 -0
- mindspore/{compression/common/__init__.py → ops/_op_impl/cpu/pyexecute.py} +13 -8
- mindspore/ops/_op_impl/cpu/reduce_sum.py +8 -0
- mindspore/ops/_op_impl/cpu/sparse_slice.py +62 -0
- mindspore/ops/_op_impl/cpu/sparse_slice_grad.py +60 -0
- mindspore/ops/_op_impl/cpu/tensor_shape.py +5 -1
- mindspore/ops/_op_impl/tbe/__init__.py +27 -608
- mindspore/ops/_op_impl/tbe/addcdiv_ds.py +42 -0
- mindspore/ops/_op_impl/tbe/addcmul_ds.py +44 -0
- mindspore/ops/_op_impl/tbe/assign_add_ds.py +1 -0
- mindspore/ops/_op_impl/tbe/atomic_addr_clean.py +1 -1
- mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +1 -1
- mindspore/ops/_op_impl/tbe/basic_lstm_cell_c_state_grad_v2.py +0 -1
- mindspore/ops/_op_impl/tbe/batch_to_space.py +1 -1
- mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +1 -1
- mindspore/ops/_op_impl/tbe/batch_to_space_nd_v2.py +41 -0
- mindspore/ops/_op_impl/tbe/bce_with_logits_loss.py +1 -0
- mindspore/ops/_op_impl/tbe/bias_add_grad.py +2 -0
- mindspore/ops/_op_impl/tbe/bn_infer_grad.py +4 -2
- mindspore/ops/_op_impl/tbe/bn_infer_grad_ds.py +40 -0
- mindspore/ops/_op_impl/tbe/bn_training_update.py +0 -1
- mindspore/ops/_op_impl/tbe/bn_training_update_ds.py +0 -1
- mindspore/ops/_op_impl/tbe/broadcast_to_ds.py +6 -4
- mindspore/ops/_op_impl/tbe/cast.py +0 -2
- mindspore/ops/_op_impl/tbe/cast_ds.py +3 -3
- mindspore/ops/_op_impl/tbe/ctc_loss_v2.py +0 -2
- mindspore/ops/_op_impl/tbe/ctc_loss_v2_grad.py +0 -2
- mindspore/ops/_op_impl/tbe/data_format_dim_map_ds.py +1 -0
- mindspore/ops/_op_impl/tbe/deformable_offsets.py +1 -0
- mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +1 -1
- mindspore/ops/_op_impl/tbe/dynamic_atomic_addr_clean.py +1 -1
- mindspore/ops/_op_impl/tbe/gather_nd.py +1 -0
- mindspore/ops/_op_impl/tbe/greater.py +2 -0
- mindspore/ops/_op_impl/tbe/{index_add.py → inplace_index_add.py} +3 -6
- mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_v2.py +0 -1
- mindspore/ops/_op_impl/tbe/npu_clear_float_status_v2.py +35 -0
- mindspore/ops/_op_impl/tbe/npu_get_float_status_v2.py +35 -0
- mindspore/ops/_op_impl/tbe/one_hot_ds.py +0 -6
- mindspore/ops/_op_impl/tbe/{greater_ds.py → reduce_all_ds.py} +13 -16
- mindspore/ops/_op_impl/tbe/reduce_any_ds.py +39 -0
- mindspore/ops/_op_impl/tbe/roi_align_ds.py +44 -0
- mindspore/ops/_op_impl/tbe/roi_align_grad_ds.py +44 -0
- mindspore/ops/_op_impl/tbe/scatter_add.py +2 -0
- mindspore/ops/_op_impl/tbe/scatter_nd_add.py +2 -2
- mindspore/ops/_op_impl/tbe/slice.py +26 -15
- mindspore/ops/_op_impl/tbe/space_to_batch.py +1 -1
- mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +1 -1
- mindspore/ops/_op_impl/tbe/strided_slice_grad_d.py +1 -0
- mindspore/ops/_op_impl/tbe/trans_data_ds.py +15 -5
- mindspore/ops/_op_impl/tbe/unsorted_segment_sum.py +1 -1
- mindspore/ops/_op_impl/tbe/unsorted_segment_sum_ds.py +2 -0
- mindspore/ops/_primitive_cache.py +3 -2
- mindspore/ops/_register_for_op.py +11 -0
- mindspore/ops/_utils/__init__.py +1 -1
- mindspore/ops/_utils/utils.py +20 -41
- mindspore/ops/_vmap/__init__.py +2 -2
- mindspore/ops/_vmap/vmap_array_ops.py +170 -78
- mindspore/ops/_vmap/vmap_base.py +24 -10
- mindspore/ops/_vmap/vmap_convolution_ops.py +7 -10
- mindspore/ops/_vmap/vmap_grad_math_ops.py +4 -4
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +41 -9
- mindspore/ops/_vmap/vmap_image_ops.py +52 -0
- mindspore/ops/_vmap/vmap_math_ops.py +77 -6
- mindspore/ops/_vmap/vmap_nn_ops.py +78 -29
- mindspore/ops/_vmap/vmap_other_ops.py +3 -1
- mindspore/ops/_vmap/vmap_random_ops.py +55 -3
- mindspore/ops/_vmap/vmap_sparse_ops.py +1 -0
- mindspore/ops/bprop_mindir/AdaptiveAvgPool2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/AdaptiveMaxPool2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ApproximateEqual_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/Argmax_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/Argmin_bprop.mindir +14 -13
- mindspore/ops/bprop_mindir/AssignSub_bprop.mindir +17 -18
- mindspore/ops/bprop_mindir/Assign_bprop.mindir +16 -16
- mindspore/ops/bprop_mindir/AvgPool3D_bprop.mindir +150 -0
- mindspore/ops/bprop_mindir/AvgPool_bprop.mindir +66 -0
- mindspore/ops/bprop_mindir/BCEWithLogitsLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/BatchNormGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BatchToSpaceND_bprop.mindir +28 -0
- mindspore/ops/bprop_mindir/BiasAddGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BinaryCrossEntropy_bprop.mindir +33 -0
- mindspore/ops/bprop_mindir/BroadcastTo_bprop.mindir +306 -0
- mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +12 -8
- mindspore/ops/bprop_mindir/CTCLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Concat_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Conv2DBackpropFilter_bprop.mindir +240 -0
- mindspore/ops/bprop_mindir/Conv2DBackpropInput_bprop.mindir +247 -0
- mindspore/ops/bprop_mindir/Conv2DTranspose_bprop.mindir +247 -0
- mindspore/ops/bprop_mindir/Conv3DTranspose_bprop.mindir +315 -0
- mindspore/ops/bprop_mindir/Conv3D_bprop.mindir +278 -0
- mindspore/ops/bprop_mindir/DType_bprop.mindir +12 -12
- mindspore/ops/bprop_mindir/DeformableOffsets_bprop.mindir +58 -0
- mindspore/ops/bprop_mindir/Depend_bprop.mindir +12 -13
- mindspore/ops/bprop_mindir/DepthToSpace_bprop.mindir +23 -0
- mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +138 -0
- mindspore/ops/bprop_mindir/DiagPart_bprop.mindir +15 -0
- mindspore/ops/bprop_mindir/Dropout2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Dropout3D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DropoutDoMask_bprop.mindir +22 -24
- mindspore/ops/bprop_mindir/DropoutGenMask_bprop.mindir +16 -14
- mindspore/ops/bprop_mindir/DropoutGrad_bprop.mindir +27 -0
- mindspore/ops/bprop_mindir/Dropout_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DynamicGRUV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DynamicRNN_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DynamicShape_bprop.mindir +12 -12
- mindspore/ops/bprop_mindir/Elu_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Equal_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/ExpandDims_bprop.mindir +58 -0
- mindspore/ops/bprop_mindir/FastGeLU_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Flatten_bprop.mindir +54 -0
- mindspore/ops/bprop_mindir/FloorDiv_bprop.mindir +18 -15
- mindspore/ops/bprop_mindir/GatherD_bprop.mindir +26 -0
- mindspore/ops/bprop_mindir/GatherNd_bprop.mindir +57 -0
- mindspore/ops/bprop_mindir/Gather_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/GreaterEqual_bprop.mindir +17 -18
- mindspore/ops/bprop_mindir/Greater_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/HSigmoid_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/HSwish_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/IOU_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/InstanceNorm_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/IsFinite_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/IsInf_bprop.mindir +13 -10
- mindspore/ops/bprop_mindir/IsNan_bprop.mindir +14 -11
- mindspore/ops/bprop_mindir/KLDivLoss_bprop.mindir +126 -0
- mindspore/ops/bprop_mindir/L2Loss_bprop.mindir +15 -0
- mindspore/ops/bprop_mindir/L2Normalize_bprop.mindir +30 -0
- mindspore/ops/bprop_mindir/LRN_bprop.mindir +43 -0
- mindspore/ops/bprop_mindir/LayerNormGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/LessEqual_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/Less_bprop.mindir +17 -18
- mindspore/ops/bprop_mindir/LinSpace_bprop.mindir +22 -19
- mindspore/ops/bprop_mindir/Load_bprop.mindir +12 -13
- mindspore/ops/bprop_mindir/LogSoftmax_bprop.mindir +23 -0
- mindspore/ops/bprop_mindir/LogicalAnd_bprop.mindir +17 -18
- mindspore/ops/bprop_mindir/LogicalNot_bprop.mindir +14 -13
- mindspore/ops/bprop_mindir/MaskedSelect_bprop.mindir +21 -0
- mindspore/ops/bprop_mindir/MaxPool3DGradGrad_bprop.mindir +74 -0
- mindspore/ops/bprop_mindir/MaxPool3DGrad_bprop.mindir +74 -0
- mindspore/ops/bprop_mindir/MaxPool3D_bprop.mindir +75 -0
- mindspore/ops/bprop_mindir/MaxPoolGradGrad_bprop.mindir +65 -0
- mindspore/ops/bprop_mindir/MaxPoolWithArgmax_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Maximum_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Minimum_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/MirrorPad_bprop.mindir +27 -0
- mindspore/ops/bprop_mindir/Mish_bprop.mindir +35 -0
- mindspore/ops/bprop_mindir/MulNoNan_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/NLLLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/NonZero_bprop.mindir +14 -0
- mindspore/ops/bprop_mindir/NotEqual_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/OneHot_bprop.mindir +25 -23
- mindspore/ops/bprop_mindir/OnesLike_bprop.mindir +13 -13
- mindspore/ops/bprop_mindir/PReLU_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Pad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Padding_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/RNNTLoss_bprop.mindir +29 -0
- mindspore/ops/bprop_mindir/ROIAlign_bprop.mindir +82 -0
- mindspore/ops/bprop_mindir/Range_bprop.mindir +21 -19
- mindspore/ops/bprop_mindir/Rank_bprop.mindir +11 -11
- mindspore/ops/bprop_mindir/ReLU6_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/ReLUV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ReduceAll_bprop.mindir +18 -17
- mindspore/ops/bprop_mindir/ReduceAny_bprop.mindir +18 -17
- mindspore/ops/bprop_mindir/ReluGrad_bprop.mindir +19 -23
- mindspore/ops/bprop_mindir/Reshape_bprop.mindir +60 -0
- mindspore/ops/bprop_mindir/ResizeBilinear_bprop.mindir +29 -0
- mindspore/ops/bprop_mindir/ResizeNearestNeighbor_bprop.mindir +89 -0
- mindspore/ops/bprop_mindir/ReverseSequence_bprop.mindir +52 -0
- mindspore/ops/bprop_mindir/ReverseV2_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/Round_bprop.mindir +14 -13
- mindspore/ops/bprop_mindir/ScatterMax_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterMin_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterNdUpdate_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/ScatterNd_bprop.mindir +24 -0
- mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/ScatterUpdate_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SeLU_bprop.mindir +21 -0
- mindspore/ops/bprop_mindir/Select_bprop.mindir +30 -34
- mindspore/ops/bprop_mindir/Shape_bprop.mindir +12 -12
- mindspore/ops/bprop_mindir/SigmoidCrossEntropyWithLogits_bprop.mindir +21 -0
- mindspore/ops/bprop_mindir/SigmoidGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Sigmoid_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Sign_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/Slice_bprop.mindir +26 -0
- mindspore/ops/bprop_mindir/SmoothL1Loss_bprop.mindir +36 -0
- mindspore/ops/bprop_mindir/SoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Softplus_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Softsign_bprop.mindir +33 -0
- mindspore/ops/bprop_mindir/Sort_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SpaceToBatchND_bprop.mindir +28 -0
- mindspore/ops/bprop_mindir/SpaceToDepth_bprop.mindir +23 -0
- mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Split_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/Squeeze_bprop.mindir +54 -0
- mindspore/ops/bprop_mindir/StridedSliceGrad_bprop.mindir +95 -0
- mindspore/ops/bprop_mindir/StridedSlice_bprop.mindir +98 -0
- mindspore/ops/bprop_mindir/Switch_bprop.mindir +28 -32
- mindspore/ops/bprop_mindir/TanhGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Tanh_bprop.mindir +66 -0
- mindspore/ops/bprop_mindir/TensorScatterAdd_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/TensorScatterUpdate_bprop.mindir +29 -0
- mindspore/ops/bprop_mindir/TensorShape_bprop.mindir +14 -0
- mindspore/ops/bprop_mindir/Tile_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TopK_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TransShape_bprop.mindir +23 -0
- mindspore/ops/bprop_mindir/TruncateDiv_bprop.mindir +18 -15
- mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +11 -13
- mindspore/ops/bprop_mindir/Unique_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Unstack_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/UpsampleNearest3D_bprop.mindir +32 -0
- mindspore/ops/bprop_mindir/UpsampleTrilinear3D_bprop.mindir +38 -0
- mindspore/ops/bprop_mindir/ZerosLike_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/__init__.py +1 -4
- mindspore/ops/bprop_mindir/generate_mindir.py +32 -20
- mindspore/ops/composite/__init__.py +12 -13
- mindspore/ops/composite/base.py +261 -254
- mindspore/ops/composite/env_ops.py +41 -0
- mindspore/ops/composite/math_ops.py +197 -156
- mindspore/ops/composite/multitype_ops/_compile_utils.py +428 -176
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +188 -87
- mindspore/ops/composite/multitype_ops/add_impl.py +23 -1
- mindspore/ops/composite/multitype_ops/div_impl.py +3 -3
- mindspore/ops/composite/multitype_ops/equal_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +1 -1
- mindspore/ops/composite/multitype_ops/getitem_impl.py +52 -5
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +31 -0
- mindspore/ops/composite/multitype_ops/greater_impl.py +31 -0
- mindspore/ops/composite/multitype_ops/in_impl.py +15 -3
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +33 -2
- mindspore/ops/composite/multitype_ops/less_impl.py +33 -0
- mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -2
- mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mod_impl.py +1 -1
- mindspore/ops/composite/multitype_ops/mul_impl.py +21 -7
- mindspore/ops/composite/multitype_ops/not_in_impl.py +15 -3
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +2 -4
- mindspore/ops/composite/multitype_ops/pow_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +62 -70
- mindspore/ops/composite/multitype_ops/sub_impl.py +3 -3
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +41 -4
- mindspore/ops/function/__init__.py +323 -8
- mindspore/ops/function/array_func.py +3511 -780
- mindspore/ops/function/clip_func.py +329 -0
- mindspore/ops/function/debug_func.py +6 -6
- mindspore/ops/function/grad/__init__.py +5 -1
- mindspore/ops/function/grad/grad_func.py +736 -65
- mindspore/ops/function/image_func.py +270 -0
- mindspore/ops/function/linalg_func.py +268 -8
- mindspore/ops/function/math_func.py +8032 -3164
- mindspore/ops/function/nn_func.py +5619 -1855
- mindspore/ops/function/other_func.py +115 -0
- mindspore/ops/function/parameter_func.py +11 -10
- mindspore/ops/function/random_func.py +939 -77
- mindspore/ops/function/sparse_func.py +249 -84
- mindspore/ops/function/sparse_unary_func.py +2303 -0
- mindspore/ops/function/spectral_func.py +146 -0
- mindspore/ops/function/vmap_func.py +114 -0
- mindspore/ops/functional.py +182 -254
- mindspore/ops/op_info_register.py +79 -34
- mindspore/ops/operations/__init__.py +210 -118
- mindspore/ops/operations/_csr_ops.py +7 -7
- mindspore/ops/operations/_embedding_cache_ops.py +25 -15
- mindspore/ops/operations/_grad_ops.py +447 -322
- mindspore/ops/operations/_inner_ops.py +547 -176
- mindspore/ops/operations/_map_tensor_ops.py +112 -0
- mindspore/ops/operations/_ms_kernel.py +29 -27
- mindspore/ops/operations/_ocr_ops.py +11 -11
- mindspore/ops/operations/_opaque_predicate_registry.py +41 -0
- mindspore/ops/operations/_quant_ops.py +186 -101
- mindspore/ops/operations/_rl_inner_ops.py +122 -61
- mindspore/ops/operations/_scalar_ops.py +466 -0
- mindspore/ops/operations/_sequence_ops.py +1047 -0
- mindspore/ops/operations/_tensor_array.py +10 -11
- mindspore/ops/operations/_thor_ops.py +4 -4
- mindspore/ops/operations/array_ops.py +1428 -1226
- mindspore/ops/operations/comm_ops.py +180 -117
- mindspore/ops/operations/control_ops.py +4 -2
- mindspore/ops/operations/custom_ops.py +185 -98
- mindspore/ops/operations/debug_ops.py +92 -54
- mindspore/ops/operations/image_ops.py +406 -211
- mindspore/ops/operations/inner_ops.py +42 -53
- mindspore/ops/operations/linalg_ops.py +32 -29
- mindspore/ops/operations/math_ops.py +2076 -897
- mindspore/ops/operations/nn_ops.py +1282 -1252
- mindspore/ops/operations/other_ops.py +124 -278
- mindspore/ops/operations/random_ops.py +345 -178
- mindspore/ops/operations/rl_ops.py +8 -9
- mindspore/ops/operations/sparse_ops.py +502 -157
- mindspore/ops/operations/spectral_ops.py +107 -0
- mindspore/ops/primitive.py +192 -15
- mindspore/ops/vm_impl_registry.py +23 -2
- mindspore/parallel/__init__.py +6 -1
- mindspore/parallel/_auto_parallel_context.py +199 -92
- mindspore/parallel/_cell_wrapper.py +4 -2
- mindspore/parallel/_cost_model_context.py +3 -0
- mindspore/parallel/_dp_allreduce_fusion.py +2 -1
- mindspore/parallel/_offload_context.py +185 -0
- mindspore/parallel/_parallel_serialization.py +167 -28
- mindspore/parallel/_ps_context.py +9 -5
- mindspore/parallel/_recovery_context.py +1 -1
- mindspore/parallel/_tensor.py +9 -1
- mindspore/{nn/transformer → parallel/_transformer}/__init__.py +6 -6
- mindspore/{nn/transformer → parallel/_transformer}/layers.py +59 -37
- mindspore/{nn/transformer → parallel/_transformer}/loss.py +4 -7
- mindspore/{nn/transformer → parallel/_transformer}/moe.py +160 -35
- mindspore/{nn/transformer → parallel/_transformer}/op_parallel_config.py +3 -3
- mindspore/{nn/transformer → parallel/_transformer}/transformer.py +235 -196
- mindspore/parallel/_utils.py +47 -7
- mindspore/parallel/algo_parameter_config.py +5 -1
- mindspore/parallel/checkpoint_transform.py +329 -0
- mindspore/parallel/shard.py +229 -0
- mindspore/profiler/__init__.py +2 -1
- mindspore/profiler/common/util.py +4 -3
- mindspore/profiler/common/validator/validate_path.py +2 -2
- mindspore/profiler/envprofiling.py +249 -0
- mindspore/profiler/parser/aicpu_data_parser.py +38 -39
- mindspore/profiler/parser/ascend_timeline_generator.py +497 -0
- mindspore/profiler/parser/base_timeline_generator.py +471 -0
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +684 -0
- mindspore/profiler/parser/framework_parser.py +42 -16
- mindspore/profiler/parser/hccl_parser.py +158 -158
- mindspore/profiler/parser/hwts_log_parser.py +7 -6
- mindspore/profiler/parser/integrator.py +18 -1579
- mindspore/profiler/parser/minddata_analyzer.py +8 -8
- mindspore/profiler/parser/msadvisor_analyzer.py +14 -27
- mindspore/profiler/parser/msadvisor_parser.py +2 -4
- mindspore/profiler/parser/optime_parser.py +17 -18
- mindspore/profiler/parser/profiler_info.py +108 -0
- mindspore/profiler/parser/step_trace_parser.py +1 -1
- mindspore/profiler/profiling.py +396 -194
- mindspore/rewrite/__init__.py +6 -2
- mindspore/rewrite/api/node.py +51 -110
- mindspore/rewrite/api/node_type.py +10 -6
- mindspore/rewrite/api/pattern_engine.py +51 -7
- mindspore/rewrite/api/scoped_value.py +64 -53
- mindspore/rewrite/api/symbol_tree.py +108 -61
- mindspore/rewrite/api/tree_node_helper.py +2 -3
- mindspore/{compression/quant/__init__.py → rewrite/ast_creator_register.py} +20 -11
- mindspore/rewrite/ast_helpers/__init__.py +6 -3
- mindspore/rewrite/ast_helpers/ast_creator.py +115 -0
- mindspore/rewrite/ast_helpers/ast_finder.py +99 -1
- mindspore/rewrite/ast_helpers/ast_modifier.py +17 -4
- mindspore/rewrite/ast_helpers/ast_replacer.py +1 -1
- mindspore/rewrite/ast_transformers/__init__.py +0 -1
- mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +46 -5
- mindspore/rewrite/ast_transformers/remove_return_out_of_if.py +6 -3
- mindspore/rewrite/common/__init__.py +2 -0
- mindspore/rewrite/common/event.py +1 -1
- mindspore/rewrite/common/observable.py +1 -1
- mindspore/rewrite/common/observer.py +1 -1
- mindspore/rewrite/common/rewrite_elog.py +35 -0
- mindspore/rewrite/namer.py +2 -2
- mindspore/rewrite/namespace.py +14 -4
- mindspore/rewrite/node.py +161 -13
- mindspore/rewrite/parser.py +0 -1
- mindspore/rewrite/parser_register.py +0 -1
- mindspore/rewrite/parsers/arguments_parser.py +3 -2
- mindspore/rewrite/parsers/assign_parser.py +267 -67
- mindspore/rewrite/parsers/attribute_parser.py +56 -0
- mindspore/rewrite/parsers/class_def_parser.py +191 -108
- mindspore/rewrite/parsers/constant_parser.py +101 -0
- mindspore/rewrite/parsers/container_parser.py +88 -0
- mindspore/rewrite/parsers/for_parser.py +28 -15
- mindspore/rewrite/parsers/function_def_parser.py +21 -5
- mindspore/rewrite/parsers/if_parser.py +11 -28
- mindspore/rewrite/parsers/module_parser.py +9 -6
- mindspore/rewrite/parsers/return_parser.py +3 -2
- mindspore/rewrite/sparsify/__init__.py +0 -0
- mindspore/rewrite/sparsify/sparse_transformer.py +448 -0
- mindspore/rewrite/sparsify/sparsify.py +109 -0
- mindspore/rewrite/sparsify/utils.py +173 -0
- mindspore/rewrite/symbol_tree.py +322 -109
- mindspore/rewrite/symbol_tree_builder.py +45 -8
- mindspore/rewrite/symbol_tree_dumper.py +0 -1
- mindspore/rewrite/topological_manager.py +1 -2
- mindspore/run_check/_check_version.py +209 -112
- mindspore/run_check/run_check.py +2 -1
- mindspore/scipy/linalg.py +13 -117
- mindspore/scipy/ops.py +5 -71
- mindspore/scipy/ops_grad.py +1 -25
- mindspore/scipy/ops_wrapper.py +1 -1
- mindspore/scipy/optimize/_bfgs.py +1 -1
- mindspore/scipy/optimize/_lagrange.py +200 -0
- mindspore/scipy/optimize/line_search.py +3 -2
- mindspore/scipy/optimize/minimize.py +43 -6
- mindspore/scipy/sparse/__init__.py +2 -2
- mindspore/scipy/sparse/linalg.py +5 -465
- mindspore/scipy/utils.py +2 -1
- mindspore/scipy/utils_const.py +7 -1
- mindspore/train/__init__.py +6 -4
- mindspore/train/_utils.py +28 -5
- mindspore/train/amp.py +321 -50
- mindspore/train/callback/__init__.py +3 -1
- mindspore/train/callback/_backup_and_restore.py +120 -0
- mindspore/train/callback/_callback.py +8 -8
- mindspore/train/callback/_checkpoint.py +12 -9
- mindspore/train/callback/_early_stop.py +13 -7
- mindspore/train/callback/_history.py +8 -8
- mindspore/train/callback/_lambda_callback.py +6 -6
- mindspore/train/callback/_landscape.py +36 -38
- mindspore/train/callback/_loss_monitor.py +12 -6
- mindspore/train/callback/_lr_scheduler_callback.py +2 -4
- mindspore/train/callback/_on_request_exit.py +212 -0
- mindspore/train/callback/_reduce_lr_on_plateau.py +13 -7
- mindspore/train/callback/_summary_collector.py +27 -19
- mindspore/train/callback/_time_monitor.py +13 -7
- mindspore/train/checkpoint_pb2.py +68 -8
- mindspore/train/data_sink.py +122 -33
- mindspore/train/dataset_helper.py +28 -87
- mindspore/train/loss_scale_manager.py +4 -7
- mindspore/{nn → train}/metrics/__init__.py +20 -20
- mindspore/{nn → train}/metrics/accuracy.py +12 -10
- mindspore/{nn → train}/metrics/auc.py +4 -4
- mindspore/{nn → train}/metrics/bleu_score.py +4 -4
- mindspore/{nn → train}/metrics/confusion_matrix.py +10 -8
- mindspore/{nn → train}/metrics/cosine_similarity.py +4 -4
- mindspore/{nn → train}/metrics/dice.py +6 -5
- mindspore/{nn → train}/metrics/error.py +7 -5
- mindspore/{nn → train}/metrics/fbeta.py +9 -7
- mindspore/{nn → train}/metrics/hausdorff_distance.py +8 -6
- mindspore/{nn → train}/metrics/loss.py +4 -3
- mindspore/{nn → train}/metrics/mean_surface_distance.py +6 -5
- mindspore/{nn → train}/metrics/metric.py +6 -5
- mindspore/{nn → train}/metrics/occlusion_sensitivity.py +4 -3
- mindspore/{nn → train}/metrics/perplexity.py +5 -4
- mindspore/{nn → train}/metrics/precision.py +5 -4
- mindspore/{nn → train}/metrics/recall.py +5 -4
- mindspore/{nn → train}/metrics/roc.py +7 -6
- mindspore/{nn → train}/metrics/root_mean_square_surface_distance.py +6 -5
- mindspore/{nn → train}/metrics/topk.py +7 -5
- mindspore/train/mind_ir_pb2.py +339 -32
- mindspore/train/model.py +113 -84
- mindspore/train/serialization.py +547 -167
- mindspore/train/summary/_summary_adapter.py +1 -1
- mindspore/train/summary/summary_record.py +43 -12
- mindspore/train/train_thor/convert_utils.py +7 -1
- mindspore/train/train_thor/dataset_helper.py +3 -3
- mindspore/train/train_thor/model_thor.py +0 -4
- mindspore/version.py +1 -1
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/METADATA +4 -3
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/RECORD +899 -675
- mindspore/compression/common/constant.py +0 -124
- mindspore/compression/export/__init__.py +0 -19
- mindspore/compression/export/quant_export.py +0 -514
- mindspore/compression/quant/qat.py +0 -636
- mindspore/compression/quant/quant_utils.py +0 -462
- mindspore/compression/quant/quantizer.py +0 -68
- mindspore/nn/layer/quant.py +0 -1868
- mindspore/nn/layer/rnn_utils.py +0 -90
- mindspore/nn/probability/dpn/__init__.py +0 -22
- mindspore/nn/probability/dpn/vae/__init__.py +0 -25
- mindspore/nn/probability/dpn/vae/cvae.py +0 -138
- mindspore/nn/probability/dpn/vae/vae.py +0 -122
- mindspore/nn/probability/infer/__init__.py +0 -22
- mindspore/nn/probability/infer/variational/elbo.py +0 -70
- mindspore/nn/probability/infer/variational/svi.py +0 -84
- mindspore/nn/probability/toolbox/__init__.py +0 -22
- mindspore/nn/probability/toolbox/anomaly_detection.py +0 -99
- mindspore/nn/probability/toolbox/uncertainty_evaluation.py +0 -363
- mindspore/nn/probability/transforms/__init__.py +0 -22
- mindspore/nn/probability/transforms/transform_bnn.py +0 -262
- mindspore/nn/probability/zhusuan/__init__.py +0 -18
- mindspore/nn/probability/zhusuan/framework/__init__.py +0 -18
- mindspore/nn/probability/zhusuan/framework/bn.py +0 -95
- mindspore/nn/probability/zhusuan/variational/__init__.py +0 -18
- mindspore/nn/probability/zhusuan/variational/elbo.py +0 -46
- mindspore/ops/_op_impl/tbe/bias_add_grad_ds.py +0 -52
- mindspore/ops/_op_impl/tbe/scatter_nd_add_ds.py +0 -43
- mindspore/ops/bprop_mindir/AssignAdd_bprop.mindir +0 -20
- mindspore/ops/bprop_mindir/Identity_bprop.mindir +0 -9
- mindspore/ops/bprop_mindir/LogicalOr_bprop.mindir +0 -20
- mindspore/ops/bprop_mindir/ReLU_bprop.mindir +0 -16
- mindspore/ops/bprop_mindir/UpdateState_bprop.mindir +0 -17
- mindspore/ops/bprop_mindir/stop_gradient_bprop.mindir +0 -12
- mindspore/ops/composite/array_ops.py +0 -210
- mindspore/ops/composite/clip_ops.py +0 -238
- mindspore/ops/composite/random_ops.py +0 -426
- mindspore/ops/composite/vmap_ops.py +0 -38
- mindspore/ops/operations/sponge_ops.py +0 -3531
- mindspore/ops/operations/sponge_update_ops.py +0 -2546
- mindspore/parallel/nn/__init__.py +0 -42
- mindspore/parallel/nn/loss.py +0 -22
- mindspore/parallel/nn/moe.py +0 -21
- mindspore/parallel/nn/op_parallel_config.py +0 -22
- mindspore/parallel/nn/transformer.py +0 -31
- mindspore/run_check/_check_deps_version.py +0 -84
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/WHEEL +0 -0
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/entry_points.txt +0 -0
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/top_level.txt +0 -0
mindspore/log.py
CHANGED
|
@@ -37,18 +37,18 @@ _setup_logger_lock = threading.Lock()
|
|
|
37
37
|
|
|
38
38
|
# When getting the logger, Used to check whether
|
|
39
39
|
# the logger already exists
|
|
40
|
-
|
|
40
|
+
GLOBAL_LOGGER = None
|
|
41
41
|
|
|
42
42
|
# The flag for enable console output
|
|
43
|
-
|
|
43
|
+
STD_ON = '1'
|
|
44
44
|
# The flag for disable console output
|
|
45
|
-
|
|
45
|
+
STD_OFF = '0'
|
|
46
46
|
# Rotating max bytes, default is 50M
|
|
47
|
-
|
|
47
|
+
MAX_BYTES = '52428800'
|
|
48
48
|
# Rotating backup count, default is 30
|
|
49
|
-
|
|
49
|
+
BACKUP_COUNT = '30'
|
|
50
50
|
# The default log level
|
|
51
|
-
|
|
51
|
+
LOGGER_LEVEL = '2'
|
|
52
52
|
|
|
53
53
|
# Log level name and level mapping
|
|
54
54
|
_name_to_level = {
|
|
@@ -155,8 +155,8 @@ def _get_logger():
|
|
|
155
155
|
Returns:
|
|
156
156
|
Logger, a logger.
|
|
157
157
|
"""
|
|
158
|
-
if
|
|
159
|
-
return
|
|
158
|
+
if GLOBAL_LOGGER:
|
|
159
|
+
return GLOBAL_LOGGER
|
|
160
160
|
|
|
161
161
|
kwargs = _get_env_config()
|
|
162
162
|
_verify_config(kwargs)
|
|
@@ -180,11 +180,11 @@ def _adapt_cfg(kwargs):
|
|
|
180
180
|
Returns:
|
|
181
181
|
Dict, the input parameter dictionary.
|
|
182
182
|
"""
|
|
183
|
-
kwargs['level'] = _gloglevel_to_name.get(kwargs.get('level',
|
|
184
|
-
kwargs['stderr_level'] = _gloglevel_to_name.get(kwargs.get('stderr_level',
|
|
185
|
-
kwargs['console'] = not kwargs.get('console') ==
|
|
186
|
-
kwargs['maxBytes'] = int(kwargs.get('maxBytes',
|
|
187
|
-
kwargs['backupCount'] = int(kwargs.get('backupCount',
|
|
183
|
+
kwargs['level'] = _gloglevel_to_name.get(kwargs.get('level', LOGGER_LEVEL))
|
|
184
|
+
kwargs['stderr_level'] = _gloglevel_to_name.get(kwargs.get('stderr_level', LOGGER_LEVEL))
|
|
185
|
+
kwargs['console'] = not kwargs.get('console') == STD_OFF
|
|
186
|
+
kwargs['maxBytes'] = int(kwargs.get('maxBytes', MAX_BYTES))
|
|
187
|
+
kwargs['backupCount'] = int(kwargs.get('backupCount', BACKUP_COUNT))
|
|
188
188
|
return kwargs
|
|
189
189
|
|
|
190
190
|
|
|
@@ -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(
|
|
@@ -335,29 +335,29 @@ def _verify_config(kwargs):
|
|
|
335
335
|
file_path = kwargs.get('filepath', None)
|
|
336
336
|
|
|
337
337
|
if console is not None:
|
|
338
|
-
if not console.isdigit() or console not in (
|
|
338
|
+
if not console.isdigit() or console not in (STD_OFF, STD_ON):
|
|
339
339
|
raise ValueError(f'Incorrect value, the value of {_confmap_dict["console"]} must be 0 or 1, '
|
|
340
340
|
f'but got {console}.')
|
|
341
341
|
|
|
342
|
-
if console ==
|
|
342
|
+
if console == STD_OFF and not file_path:
|
|
343
343
|
raise ValueError(f'When {_confmap_dict["console"]} is set to 0, the directory of saving log '
|
|
344
344
|
f'{_confmap_dict["filepath"]} must be set, but got it empty.')
|
|
345
345
|
|
|
346
346
|
# Check the input value of filepath
|
|
347
|
-
if console ==
|
|
347
|
+
if console == STD_OFF and file_path is not None:
|
|
348
348
|
file_real_path = os.path.realpath(file_path)
|
|
349
349
|
if not os.path.exists(file_real_path):
|
|
350
350
|
_make_directory(file_real_path)
|
|
351
351
|
# Check the input value of maxBytes
|
|
352
352
|
max_bytes = kwargs.get('maxBytes', None)
|
|
353
|
-
if console ==
|
|
353
|
+
if console == STD_OFF and max_bytes is not None:
|
|
354
354
|
if not max_bytes.isdigit():
|
|
355
355
|
raise ValueError(f'Incorrect value, the value of {_confmap_dict["maxBytes"]} must be positive integer. '
|
|
356
356
|
f'But got {_confmap_dict["maxBytes"]}:{max_bytes}.')
|
|
357
357
|
|
|
358
358
|
# Check the input value of backupCount
|
|
359
359
|
backup_count = kwargs.get('backupCount', None)
|
|
360
|
-
if console ==
|
|
360
|
+
if console == STD_OFF and backup_count is not None:
|
|
361
361
|
if not backup_count.isdigit():
|
|
362
362
|
raise ValueError(f'Incorrect value, the value of {_confmap_dict["backupCount"]} must be positive '
|
|
363
363
|
f'integer. But got {_confmap_dict["backupCount"]}:{backup_count}')
|
|
@@ -404,10 +404,10 @@ def get_log_config():
|
|
|
404
404
|
handler = logger.handlers[0]
|
|
405
405
|
config_dict = {}
|
|
406
406
|
config_dict['GLOG_v'] = get_level()
|
|
407
|
-
config_dict['GLOG_logtostderr'] =
|
|
407
|
+
config_dict['GLOG_logtostderr'] = STD_ON
|
|
408
408
|
|
|
409
409
|
if handler.name == 'FileHandler':
|
|
410
|
-
config_dict['GLOG_logtostderr'] =
|
|
410
|
+
config_dict['GLOG_logtostderr'] = STD_OFF
|
|
411
411
|
# Separating file path and name
|
|
412
412
|
file_path_and_name = os.path.split(handler.baseFilename)
|
|
413
413
|
config_dict['GLOG_log_dir'] = file_path_and_name[0]
|
|
@@ -532,12 +532,12 @@ def _setup_logger(kwargs):
|
|
|
532
532
|
pid = str(os.getpid())
|
|
533
533
|
log_name = 'mindspore.log.' + pid
|
|
534
534
|
|
|
535
|
-
global
|
|
535
|
+
global GLOBAL_LOGGER
|
|
536
536
|
|
|
537
537
|
_setup_logger_lock.acquire()
|
|
538
538
|
try:
|
|
539
|
-
if
|
|
540
|
-
return
|
|
539
|
+
if GLOBAL_LOGGER:
|
|
540
|
+
return GLOBAL_LOGGER
|
|
541
541
|
|
|
542
542
|
logger = logging.getLogger(name=f'{sub_module}.{log_name}')
|
|
543
543
|
# Override findCaller on the logger, Support for getting log record
|
|
@@ -569,9 +569,9 @@ def _setup_logger(kwargs):
|
|
|
569
569
|
logfile_handler = _MultiCompatibleRotatingFileHandler(
|
|
570
570
|
filename=file_name,
|
|
571
571
|
# Rotating max bytes, default is 50M
|
|
572
|
-
maxBytes=kwargs.get('maxBytes',
|
|
572
|
+
maxBytes=kwargs.get('maxBytes', MAX_BYTES),
|
|
573
573
|
# Rotating backup count, default is 30
|
|
574
|
-
backupCount=kwargs.get('backupCount',
|
|
574
|
+
backupCount=kwargs.get('backupCount', BACKUP_COUNT),
|
|
575
575
|
encoding='utf8'
|
|
576
576
|
)
|
|
577
577
|
logfile_handler.name = 'FileHandler'
|
|
@@ -589,11 +589,11 @@ def _setup_logger(kwargs):
|
|
|
589
589
|
console_handler.setLevel(kwargs.get('stderr_level', logging.WARNING))
|
|
590
590
|
logger.addHandler(console_handler)
|
|
591
591
|
|
|
592
|
-
|
|
592
|
+
GLOBAL_LOGGER = logger
|
|
593
593
|
|
|
594
594
|
finally:
|
|
595
595
|
_setup_logger_lock.release()
|
|
596
|
-
return
|
|
596
|
+
return GLOBAL_LOGGER
|
|
597
597
|
|
|
598
598
|
|
|
599
599
|
class _LogActionOnce:
|
|
@@ -80,8 +80,7 @@ class MindRecordException(Exception):
|
|
|
80
80
|
"""Initialize an error which may occurs in mindrecord."""
|
|
81
81
|
super(MindRecordException, self).__init__()
|
|
82
82
|
class_name = self.__class__.__name__
|
|
83
|
-
error_item = EXCEPTIONS
|
|
84
|
-
else EXCEPTIONS['UnknownError']
|
|
83
|
+
error_item = EXCEPTIONS.get(class_name) if class_name in EXCEPTIONS else EXCEPTIONS.get('UnknownError')
|
|
85
84
|
self._error_msg = error_item[1]
|
|
86
85
|
self._error_code = MindRecordException.transform_error_code(error_item[0])
|
|
87
86
|
|
|
@@ -123,8 +122,7 @@ class MindRecordException(Exception):
|
|
|
123
122
|
runtime = LogRuntime.RT_HOST
|
|
124
123
|
error_code_type = ErrorCodeType.ERROR_CODE
|
|
125
124
|
error_level = ErrorLevel.COMMON_LEVEL
|
|
126
|
-
|
|
127
|
-
mod_id = int(exception_no / exception_no_range_per_module) + 1
|
|
125
|
+
mod_id = int(exception_no / 100) + 1
|
|
128
126
|
error_code = (((0xFF & runtime) << 30)
|
|
129
127
|
| ((0xFF & error_code_type) << 28)
|
|
130
128
|
| ((0xFF & error_level) << 25)
|
|
@@ -43,7 +43,7 @@ class FileReader:
|
|
|
43
43
|
operator (int, optional): Reserved parameter for operators. Default: None.
|
|
44
44
|
|
|
45
45
|
Raises:
|
|
46
|
-
ParamValueError: If `file_name
|
|
46
|
+
ParamValueError: If `file_name` , `num_consumer` or `columns` is invalid.
|
|
47
47
|
|
|
48
48
|
Examples:
|
|
49
49
|
>>> from mindspore.mindrecord import FileReader
|
|
@@ -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"""
|
|
@@ -163,7 +173,7 @@ class FileWriter:
|
|
|
163
173
|
The schema is added to describe the raw data to be written.
|
|
164
174
|
|
|
165
175
|
Note:
|
|
166
|
-
Please refer to the Examples of class: `mindspore.mindrecord.FileWriter
|
|
176
|
+
Please refer to the Examples of class: `mindspore.mindrecord.FileWriter` .
|
|
167
177
|
|
|
168
178
|
Args:
|
|
169
179
|
content (dict): Dictionary of schema content.
|
|
@@ -186,14 +196,14 @@ class FileWriter:
|
|
|
186
196
|
def add_index(self, index_fields):
|
|
187
197
|
"""
|
|
188
198
|
Select index fields from schema to accelerate reading.
|
|
189
|
-
schema is added through `add_schema
|
|
199
|
+
schema is added through `add_schema` .
|
|
190
200
|
|
|
191
201
|
Note:
|
|
192
202
|
The index fields should be primitive type. e.g. int/float/str.
|
|
193
203
|
If the function is not called, the fields of the primitive type
|
|
194
204
|
in schema are set as indexes by default.
|
|
195
205
|
|
|
196
|
-
Please refer to the Examples of class: `mindspore.mindrecord.FileWriter
|
|
206
|
+
Please refer to the Examples of class: `mindspore.mindrecord.FileWriter` .
|
|
197
207
|
|
|
198
208
|
Args:
|
|
199
209
|
index_fields (list[str]): fields from schema.
|
|
@@ -217,56 +227,10 @@ class FileWriter:
|
|
|
217
227
|
raise ParamTypeError('index field', 'str')
|
|
218
228
|
return self._header.add_index_fields(index_fields)
|
|
219
229
|
|
|
220
|
-
def _verify_based_on_schema(self, raw_data):
|
|
221
|
-
"""
|
|
222
|
-
Verify data according to schema and remove invalid data if validation failed.
|
|
223
|
-
|
|
224
|
-
1) allowed data type contains: "int32", "int64", "float32", "float64", "string", "bytes".
|
|
225
|
-
|
|
226
|
-
Args:
|
|
227
|
-
raw_data (list[dict]): List of raw data.
|
|
228
|
-
"""
|
|
229
|
-
error_data_dic = {}
|
|
230
|
-
schema_content = self._header.schema
|
|
231
|
-
for field in schema_content:
|
|
232
|
-
for i, v in enumerate(raw_data):
|
|
233
|
-
if i in error_data_dic:
|
|
234
|
-
continue
|
|
235
|
-
|
|
236
|
-
if field not in v:
|
|
237
|
-
error_data_dic[i] = "for schema, {} th data is wrong, " \
|
|
238
|
-
"there is not '{}' object in the raw data.".format(i, field)
|
|
239
|
-
continue
|
|
240
|
-
field_type = type(v[field]).__name__
|
|
241
|
-
if field_type not in VALUE_TYPE_MAP:
|
|
242
|
-
error_data_dic[i] = "for schema, {} th data is wrong, " \
|
|
243
|
-
"data type for '{}' is not matched.".format(i, field)
|
|
244
|
-
continue
|
|
245
|
-
|
|
246
|
-
if schema_content[field]["type"] not in VALUE_TYPE_MAP[field_type]:
|
|
247
|
-
error_data_dic[i] = "for schema, {} th data is wrong, " \
|
|
248
|
-
"data type for '{}' is not matched.".format(i, field)
|
|
249
|
-
continue
|
|
250
|
-
|
|
251
|
-
if field_type == 'ndarray':
|
|
252
|
-
if 'shape' not in schema_content[field]:
|
|
253
|
-
error_data_dic[i] = "for schema, {} th data is wrong, " \
|
|
254
|
-
"data type for '{}' is not matched.".format(i, field)
|
|
255
|
-
else:
|
|
256
|
-
try:
|
|
257
|
-
np.reshape(v[field], schema_content[field]['shape'])
|
|
258
|
-
except ValueError:
|
|
259
|
-
error_data_dic[i] = "for schema, {} th data is wrong, " \
|
|
260
|
-
"data type for '{}' is not matched.".format(i, field)
|
|
261
|
-
error_data_dic = sorted(error_data_dic.items(), reverse=True)
|
|
262
|
-
for i, v in error_data_dic:
|
|
263
|
-
raw_data.pop(i)
|
|
264
|
-
logger.warning(v)
|
|
265
|
-
|
|
266
230
|
def open_and_set_header(self):
|
|
267
231
|
"""
|
|
268
232
|
Open writer and set header which stores meta information. The function is only used for parallel \
|
|
269
|
-
writing and is called before the `write_raw_data
|
|
233
|
+
writing and is called before the `write_raw_data` .
|
|
270
234
|
|
|
271
235
|
Returns:
|
|
272
236
|
MSRStatus, SUCCESS or FAILED.
|
|
@@ -289,7 +253,7 @@ class FileWriter:
|
|
|
289
253
|
files after the raw data is verified against the schema.
|
|
290
254
|
|
|
291
255
|
Note:
|
|
292
|
-
Please refer to the Examples of class: `mindspore.mindrecord.FileWriter
|
|
256
|
+
Please refer to the Examples of class: `mindspore.mindrecord.FileWriter` .
|
|
293
257
|
|
|
294
258
|
Args:
|
|
295
259
|
raw_data (list[dict]): List of raw data.
|
|
@@ -304,23 +268,72 @@ class FileWriter:
|
|
|
304
268
|
MRMValidateDataError: If data does not match blob fields.
|
|
305
269
|
MRMSetHeaderError: If failed to set header.
|
|
306
270
|
MRMWriteDatasetError: If failed to write dataset.
|
|
271
|
+
TypeError: If parallel_writer is not bool.
|
|
307
272
|
"""
|
|
308
|
-
if not
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
if not isinstance(
|
|
321
|
-
raise ParamTypeError('raw_data
|
|
322
|
-
|
|
323
|
-
|
|
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
|
|
324
337
|
|
|
325
338
|
def set_header_size(self, header_size):
|
|
326
339
|
"""
|
|
@@ -329,7 +342,6 @@ class FileWriter:
|
|
|
329
342
|
the MindRecord file can store. If the size of header is larger than \
|
|
330
343
|
the default size (16MB), users need to call the API to set a proper size.
|
|
331
344
|
|
|
332
|
-
|
|
333
345
|
Args:
|
|
334
346
|
header_size (int): Size of header, between 16*1024(16KB) and
|
|
335
347
|
128*1024*1024(128MB).
|
|
@@ -369,16 +381,16 @@ class FileWriter:
|
|
|
369
381
|
Examples:
|
|
370
382
|
>>> from mindspore.mindrecord import FileWriter
|
|
371
383
|
>>> writer = FileWriter(file_name="test.mindrecord", shard_num=1)
|
|
372
|
-
>>> status = writer.set_page_size(1 << 26)
|
|
384
|
+
>>> status = writer.set_page_size(1 << 26) # 64MB
|
|
373
385
|
"""
|
|
374
386
|
return self._writer.set_page_size(page_size)
|
|
375
387
|
|
|
376
|
-
def commit(self):
|
|
388
|
+
def commit(self): # pylint: disable=W0212
|
|
377
389
|
"""
|
|
378
390
|
Flush data in memory to disk and generate the corresponding database files.
|
|
379
391
|
|
|
380
392
|
Note:
|
|
381
|
-
Please refer to the Examples of class: `mindspore.mindrecord.FileWriter
|
|
393
|
+
Please refer to the Examples of class: `mindspore.mindrecord.FileWriter` .
|
|
382
394
|
|
|
383
395
|
Returns:
|
|
384
396
|
MSRStatus, SUCCESS or FAILED.
|
|
@@ -389,25 +401,37 @@ class FileWriter:
|
|
|
389
401
|
MRMIndexGeneratorError: If failed to create index generator.
|
|
390
402
|
MRMGenerateIndexError: If failed to write to database.
|
|
391
403
|
MRMCommitError: If failed to flush data to disk.
|
|
404
|
+
RuntimeError: Parallel write failed.
|
|
392
405
|
"""
|
|
393
|
-
self.
|
|
394
|
-
|
|
395
|
-
self._writer.
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
self._writer.
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
if self.
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
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()
|
|
407
431
|
|
|
432
|
+
# change the file mode to 600
|
|
408
433
|
mindrecord_files = []
|
|
409
434
|
index_files = []
|
|
410
|
-
# change the file mode to 600
|
|
411
435
|
for item in self._paths:
|
|
412
436
|
if os.path.exists(item):
|
|
413
437
|
os.chmod(item, stat.S_IRUSR | stat.S_IWUSR)
|
|
@@ -420,7 +444,73 @@ class FileWriter:
|
|
|
420
444
|
logger.info("The list of mindrecord files created are: {}, and the list of index files are: {}".format(
|
|
421
445
|
mindrecord_files, index_files))
|
|
422
446
|
|
|
423
|
-
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()
|
|
424
514
|
|
|
425
515
|
def _validate_array(self, k, v):
|
|
426
516
|
"""
|
|
@@ -448,6 +538,52 @@ class FileWriter:
|
|
|
448
538
|
return False, error
|
|
449
539
|
return True, ''
|
|
450
540
|
|
|
541
|
+
def _verify_based_on_schema(self, raw_data):
|
|
542
|
+
"""
|
|
543
|
+
Verify data according to schema and remove invalid data if validation failed.
|
|
544
|
+
|
|
545
|
+
1) allowed data type contains: "int32", "int64", "float32", "float64", "string", "bytes".
|
|
546
|
+
|
|
547
|
+
Args:
|
|
548
|
+
raw_data (list[dict]): List of raw data.
|
|
549
|
+
"""
|
|
550
|
+
error_data_dic = {}
|
|
551
|
+
schema_content = self._header.schema
|
|
552
|
+
for field in schema_content:
|
|
553
|
+
for i, v in enumerate(raw_data):
|
|
554
|
+
if i in error_data_dic:
|
|
555
|
+
continue
|
|
556
|
+
|
|
557
|
+
if field not in v:
|
|
558
|
+
error_data_dic[i] = "for schema, {} th data is wrong, " \
|
|
559
|
+
"there is not '{}' object in the raw data.".format(i, field)
|
|
560
|
+
continue
|
|
561
|
+
field_type = type(v[field]).__name__
|
|
562
|
+
if field_type not in VALUE_TYPE_MAP:
|
|
563
|
+
error_data_dic[i] = "for schema, {} th data is wrong, " \
|
|
564
|
+
"data type for '{}' is not matched.".format(i, field)
|
|
565
|
+
continue
|
|
566
|
+
|
|
567
|
+
if schema_content[field]["type"] not in VALUE_TYPE_MAP[field_type]:
|
|
568
|
+
error_data_dic[i] = "for schema, {} th data is wrong, " \
|
|
569
|
+
"data type for '{}' is not matched.".format(i, field)
|
|
570
|
+
continue
|
|
571
|
+
|
|
572
|
+
if field_type == 'ndarray':
|
|
573
|
+
if 'shape' not in schema_content[field]:
|
|
574
|
+
error_data_dic[i] = "for schema, {} th data is wrong, " \
|
|
575
|
+
"data type for '{}' is not matched.".format(i, field)
|
|
576
|
+
else:
|
|
577
|
+
try:
|
|
578
|
+
np.reshape(v[field], schema_content[field]['shape'])
|
|
579
|
+
except ValueError:
|
|
580
|
+
error_data_dic[i] = "for schema, {} th data is wrong, " \
|
|
581
|
+
"data type for '{}' is not matched.".format(i, field)
|
|
582
|
+
error_data_dic = sorted(error_data_dic.items(), reverse=True)
|
|
583
|
+
for i, v in error_data_dic:
|
|
584
|
+
raw_data.pop(i)
|
|
585
|
+
logger.warning(v)
|
|
586
|
+
|
|
451
587
|
def _validate_schema(self, content):
|
|
452
588
|
"""
|
|
453
589
|
Validate schema and return validation result and error message.
|
|
@@ -488,3 +624,29 @@ class FileWriter:
|
|
|
488
624
|
error = "Field '{}' should be dict.".format(k)
|
|
489
625
|
return False, error
|
|
490
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)
|