mindspore 2.0.0a0__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.

Files changed (693) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/Third_Party_Open_Source_Software_Notice +9064 -0
  3. mindspore/__init__.py +4 -2
  4. mindspore/_akg/akg/composite/build_module.py +11 -0
  5. mindspore/_akg/akg/config/repository_cuda.json +11 -0
  6. mindspore/_akg/akg/tvm/contrib/nvcc.py +4 -3
  7. mindspore/_c_dataengine.cpython-37m-aarch64-linux-gnu.so +0 -0
  8. mindspore/_c_expression.cpython-37m-aarch64-linux-gnu.so +0 -0
  9. mindspore/_c_mindrecord.cpython-37m-aarch64-linux-gnu.so +0 -0
  10. mindspore/_check_jit_forbidden_api.py +102 -0
  11. mindspore/_checkparam.py +1066 -1001
  12. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +4 -3
  13. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +50 -48
  14. mindspore/_extends/parallel_compile/akg_compiler/util.py +9 -4
  15. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +4 -4
  16. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +9 -4
  17. mindspore/_extends/parse/__init__.py +5 -3
  18. mindspore/_extends/parse/namespace.py +16 -1
  19. mindspore/_extends/parse/parser.py +107 -22
  20. mindspore/_extends/parse/resources.py +0 -7
  21. mindspore/_extends/parse/standard_method.py +885 -413
  22. mindspore/_mindspore_offline_debug.cpython-37m-aarch64-linux-gnu.so +0 -0
  23. mindspore/amp.py +52 -57
  24. mindspore/bin/cache_admin +0 -0
  25. mindspore/bin/cache_server +0 -0
  26. mindspore/boost/boost.py +2 -2
  27. mindspore/boost/boost_cell_wrapper.py +38 -20
  28. mindspore/boost/dim_reduce.py +3 -3
  29. mindspore/boost/group_loss_scale_manager.py +1 -1
  30. mindspore/common/__init__.py +4 -6
  31. mindspore/common/_decorator.py +2 -0
  32. mindspore/common/_register_for_adapter.py +55 -0
  33. mindspore/common/_stub_tensor.py +201 -0
  34. mindspore/common/_utils.py +41 -7
  35. mindspore/common/api.py +215 -141
  36. mindspore/common/dtype.py +8 -1
  37. mindspore/common/dump.py +2 -2
  38. mindspore/common/initializer.py +4 -2
  39. mindspore/common/jit_config.py +17 -13
  40. mindspore/common/mutable.py +33 -13
  41. mindspore/common/parameter.py +23 -21
  42. mindspore/common/seed.py +8 -24
  43. mindspore/common/sparse_tensor.py +62 -41
  44. mindspore/common/tensor.py +852 -1154
  45. mindspore/communication/__init__.py +2 -2
  46. mindspore/communication/_comm_helper.py +11 -4
  47. mindspore/communication/management.py +22 -21
  48. mindspore/config/op_info.config +501 -1008
  49. mindspore/config/super_bar_config.json +512 -0
  50. mindspore/context.py +201 -23
  51. mindspore/dataset/__init__.py +6 -6
  52. mindspore/dataset/audio/__init__.py +7 -7
  53. mindspore/dataset/audio/transforms.py +670 -30
  54. mindspore/dataset/audio/utils.py +47 -4
  55. mindspore/dataset/audio/validators.py +223 -1
  56. mindspore/dataset/callback/ds_callback.py +2 -2
  57. mindspore/dataset/core/config.py +210 -14
  58. mindspore/dataset/core/validator_helpers.py +2 -2
  59. mindspore/{parallel/nn/layers.py → dataset/debug/__init__.py} +7 -8
  60. mindspore/dataset/debug/debug_hook.py +65 -0
  61. mindspore/dataset/debug/pre_defined_hook.py +67 -0
  62. mindspore/dataset/engine/__init__.py +7 -3
  63. mindspore/dataset/engine/cache_client.py +1 -1
  64. mindspore/dataset/engine/datasets.py +322 -66
  65. mindspore/dataset/engine/datasets_audio.py +80 -76
  66. mindspore/dataset/engine/datasets_standard_format.py +51 -38
  67. mindspore/dataset/engine/datasets_text.py +232 -118
  68. mindspore/dataset/engine/datasets_user_defined.py +41 -17
  69. mindspore/dataset/engine/datasets_vision.py +746 -225
  70. mindspore/dataset/engine/graphdata.py +75 -10
  71. mindspore/dataset/engine/iterators.py +45 -5
  72. mindspore/dataset/engine/offload.py +48 -28
  73. mindspore/dataset/engine/validators.py +117 -8
  74. mindspore/dataset/text/__init__.py +6 -5
  75. mindspore/dataset/text/transforms.py +86 -3
  76. mindspore/dataset/text/utils.py +6 -4
  77. mindspore/dataset/text/validators.py +25 -0
  78. mindspore/dataset/transforms/__init__.py +3 -2
  79. mindspore/dataset/transforms/c_transforms.py +1 -1
  80. mindspore/dataset/transforms/transforms.py +2 -2
  81. mindspore/dataset/utils/__init__.py +2 -1
  82. mindspore/dataset/utils/line_reader.py +121 -0
  83. mindspore/dataset/vision/__init__.py +2 -3
  84. mindspore/dataset/vision/c_transforms.py +9 -9
  85. mindspore/dataset/vision/py_transforms.py +5 -5
  86. mindspore/dataset/vision/py_transforms_util.py +2 -0
  87. mindspore/dataset/vision/transforms.py +160 -161
  88. mindspore/dataset/vision/utils.py +3 -3
  89. mindspore/experimental/map_parameter.py +38 -26
  90. mindspore/include/OWNERS +0 -1
  91. mindspore/include/api/callback/callback.h +9 -13
  92. mindspore/include/api/callback/ckpt_saver.h +2 -2
  93. mindspore/include/api/callback/loss_monitor.h +2 -2
  94. mindspore/include/api/callback/lr_scheduler.h +5 -5
  95. mindspore/include/api/callback/time_monitor.h +2 -2
  96. mindspore/include/api/callback/train_accuracy.h +4 -6
  97. mindspore/include/api/cfg.h +19 -6
  98. mindspore/include/api/context.h +44 -9
  99. mindspore/include/api/delegate.h +1 -1
  100. mindspore/include/api/metrics/accuracy.h +2 -2
  101. mindspore/include/api/metrics/metrics.h +4 -3
  102. mindspore/include/api/model.h +9 -4
  103. mindspore/include/api/model_parallel_runner.h +2 -2
  104. mindspore/include/api/net.h +12 -11
  105. mindspore/include/api/serialization.h +19 -3
  106. mindspore/include/api/types.h +3 -3
  107. mindspore/include/dataset/constants.h +7 -0
  108. mindspore/include/dataset/text.h +59 -0
  109. mindspore/include/mindapi/base/type_id.h +1 -0
  110. mindspore/lib/libdnnl.so.2 +0 -0
  111. mindspore/lib/libicudata.so.69 +0 -0
  112. mindspore/lib/libicui18n.so.69 +0 -0
  113. mindspore/lib/libicuuc.so.69 +0 -0
  114. mindspore/lib/libmindspore.so +0 -0
  115. mindspore/lib/libmindspore_backend.so +0 -0
  116. mindspore/lib/libmindspore_common.so +0 -0
  117. mindspore/lib/libmindspore_core.so +0 -0
  118. mindspore/lib/libmindspore_glog.so.0 +0 -0
  119. mindspore/lib/libmindspore_gpr.so.15 +0 -0
  120. mindspore/lib/libmindspore_grpc++.so.1 +0 -0
  121. mindspore/lib/libmindspore_grpc.so.15 +0 -0
  122. mindspore/lib/libmindspore_shared_lib.so +0 -0
  123. mindspore/lib/libmpi_adapter.so +0 -0
  124. mindspore/lib/libmpi_collective.so +0 -0
  125. mindspore/lib/libnnacl.so +0 -0
  126. mindspore/lib/libopencv_core.so.4.5 +0 -0
  127. mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
  128. mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
  129. mindspore/lib/libps_cache.so +0 -0
  130. mindspore/lib/plugin/ascend/libakg.so +0 -0
  131. mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
  132. mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
  133. mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
  134. mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
  135. mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
  136. mindspore/lib/plugin/cpu/libakg.so +0 -0
  137. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  138. mindspore/lib/plugin/{libmindspore_ascend.so → libmindspore_ascend.so.2} +0 -0
  139. mindspore/log.py +1 -1
  140. mindspore/mindrecord/filereader.py +18 -0
  141. mindspore/mindrecord/filewriter.py +197 -34
  142. mindspore/mindrecord/shardreader.py +9 -0
  143. mindspore/mindrecord/shardwriter.py +1 -1
  144. mindspore/mindrecord/tools/cifar100_to_mr.py +3 -3
  145. mindspore/mindrecord/tools/cifar10_to_mr.py +3 -3
  146. mindspore/mindrecord/tools/csv_to_mr.py +3 -3
  147. mindspore/mindrecord/tools/imagenet_to_mr.py +16 -11
  148. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  149. mindspore/mindrecord/tools/tfrecord_to_mr.py +6 -6
  150. mindspore/nn/__init__.py +0 -4
  151. mindspore/nn/cell.py +204 -132
  152. mindspore/nn/dynamic_lr.py +1 -1
  153. mindspore/nn/grad/cell_grad.py +7 -6
  154. mindspore/nn/layer/__init__.py +5 -4
  155. mindspore/nn/layer/activation.py +40 -89
  156. mindspore/nn/layer/basic.py +255 -624
  157. mindspore/nn/layer/channel_shuffle.py +7 -6
  158. mindspore/nn/layer/combined.py +1 -1
  159. mindspore/nn/layer/container.py +41 -4
  160. mindspore/nn/layer/conv.py +64 -28
  161. mindspore/nn/layer/dense.py +9 -8
  162. mindspore/nn/layer/embedding.py +27 -25
  163. mindspore/nn/layer/image.py +53 -46
  164. mindspore/nn/layer/math.py +97 -105
  165. mindspore/nn/layer/normalization.py +117 -86
  166. mindspore/nn/layer/padding.py +185 -95
  167. mindspore/nn/layer/pooling.py +817 -414
  168. mindspore/nn/layer/rnn_cells.py +10 -15
  169. mindspore/nn/layer/rnns.py +37 -38
  170. mindspore/nn/layer/thor_layer.py +11 -12
  171. mindspore/nn/layer/timedistributed.py +5 -5
  172. mindspore/nn/layer/transformer.py +701 -0
  173. mindspore/nn/learning_rate_schedule.py +8 -8
  174. mindspore/nn/loss/__init__.py +5 -4
  175. mindspore/nn/loss/loss.py +334 -199
  176. mindspore/nn/optim/ada_grad.py +6 -6
  177. mindspore/nn/optim/adadelta.py +2 -3
  178. mindspore/nn/optim/adafactor.py +4 -5
  179. mindspore/nn/optim/adam.py +126 -62
  180. mindspore/nn/optim/adamax.py +3 -4
  181. mindspore/nn/optim/adasum.py +6 -6
  182. mindspore/nn/optim/asgd.py +2 -2
  183. mindspore/nn/optim/ftrl.py +67 -38
  184. mindspore/nn/optim/lamb.py +4 -5
  185. mindspore/nn/optim/lars.py +2 -2
  186. mindspore/nn/optim/lazyadam.py +43 -4
  187. mindspore/nn/optim/momentum.py +6 -5
  188. mindspore/nn/optim/optimizer.py +3 -1
  189. mindspore/nn/optim/proximal_ada_grad.py +2 -2
  190. mindspore/nn/optim/rmsprop.py +1 -1
  191. mindspore/nn/optim/rprop.py +8 -9
  192. mindspore/nn/optim/sgd.py +19 -13
  193. mindspore/nn/optim/thor.py +10 -15
  194. mindspore/nn/probability/__init__.py +0 -2
  195. mindspore/nn/probability/bijector/bijector.py +4 -4
  196. mindspore/nn/probability/bijector/invert.py +1 -1
  197. mindspore/nn/probability/bijector/softplus.py +2 -2
  198. mindspore/nn/probability/bnn_layers/dense_variational.py +1 -1
  199. mindspore/nn/probability/bnn_layers/layer_distribution.py +2 -2
  200. mindspore/nn/probability/distribution/_utils/utils.py +9 -15
  201. mindspore/nn/probability/distribution/bernoulli.py +3 -3
  202. mindspore/nn/probability/distribution/beta.py +1 -1
  203. mindspore/nn/probability/distribution/categorical.py +5 -7
  204. mindspore/nn/probability/distribution/cauchy.py +3 -3
  205. mindspore/nn/probability/distribution/distribution.py +2 -2
  206. mindspore/nn/probability/distribution/exponential.py +2 -2
  207. mindspore/nn/probability/distribution/gamma.py +3 -3
  208. mindspore/nn/probability/distribution/geometric.py +1 -1
  209. mindspore/nn/probability/distribution/gumbel.py +3 -3
  210. mindspore/nn/probability/distribution/half_normal.py +15 -11
  211. mindspore/nn/probability/distribution/laplace.py +16 -13
  212. mindspore/nn/probability/distribution/logistic.py +2 -2
  213. mindspore/nn/probability/distribution/normal.py +1 -1
  214. mindspore/nn/probability/distribution/poisson.py +1 -1
  215. mindspore/nn/probability/distribution/student_t.py +20 -15
  216. mindspore/nn/probability/distribution/transformed_distribution.py +4 -4
  217. mindspore/nn/probability/distribution/uniform.py +2 -2
  218. mindspore/nn/reinforcement/_tensors_queue.py +3 -3
  219. mindspore/nn/reinforcement/tensor_array.py +2 -2
  220. mindspore/nn/sparse/sparse.py +2 -2
  221. mindspore/nn/wrap/cell_wrapper.py +27 -10
  222. mindspore/nn/wrap/grad_reducer.py +2 -2
  223. mindspore/nn/wrap/loss_scale.py +40 -24
  224. mindspore/numpy/array_creations.py +33 -22
  225. mindspore/numpy/array_ops.py +35 -30
  226. mindspore/numpy/logic_ops.py +6 -27
  227. mindspore/numpy/math_ops.py +22 -19
  228. mindspore/numpy/utils.py +1 -1
  229. mindspore/numpy/utils_const.py +108 -58
  230. mindspore/ops/_constants.py +0 -6
  231. mindspore/ops/_grad/__init__.py +2 -1
  232. mindspore/ops/_grad/grad_array_ops.py +86 -117
  233. mindspore/ops/_grad/grad_base.py +23 -1
  234. mindspore/ops/_grad/grad_clip_ops.py +2 -3
  235. mindspore/ops/_grad/grad_comm_ops.py +34 -24
  236. mindspore/ops/_grad/grad_implementations.py +9 -45
  237. mindspore/ops/_grad/grad_inner_ops.py +47 -4
  238. mindspore/ops/_grad/grad_math_ops.py +142 -117
  239. mindspore/ops/_grad/grad_nn_ops.py +71 -165
  240. mindspore/ops/_grad/grad_sequence_ops.py +296 -0
  241. mindspore/ops/_grad/grad_sparse.py +7 -6
  242. mindspore/ops/_grad_experimental/__init__.py +1 -0
  243. mindspore/ops/_grad_experimental/grad_array_ops.py +150 -15
  244. mindspore/ops/_grad_experimental/grad_image_ops.py +16 -7
  245. mindspore/ops/_grad_experimental/grad_inner_ops.py +1 -22
  246. mindspore/ops/_grad_experimental/grad_linalg_ops.py +4 -11
  247. mindspore/ops/_grad_experimental/grad_math_ops.py +210 -89
  248. mindspore/ops/_grad_experimental/grad_nn_ops.py +26 -22
  249. mindspore/ops/_grad_experimental/grad_scalar_ops.py +112 -0
  250. mindspore/ops/_grad_experimental/grad_sparse_ops.py +49 -8
  251. mindspore/ops/_op_impl/_custom_op/batch_matmul_impl.py +1 -1
  252. mindspore/ops/_op_impl/_custom_op/batchnorm_fold.py +2 -2
  253. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2.py +2 -2
  254. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad.py +2 -2
  255. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad_reduce.py +4 -4
  256. mindspore/ops/_op_impl/_custom_op/batchnorm_fold_grad.py +3 -3
  257. mindspore/ops/_op_impl/_custom_op/cholesky_trsm_impl.py +1 -1
  258. mindspore/ops/_op_impl/_custom_op/correction_mul.py +2 -2
  259. mindspore/ops/_op_impl/_custom_op/correction_mul_grad.py +2 -2
  260. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -5
  261. mindspore/ops/_op_impl/_custom_op/dsd_impl.py +1 -1
  262. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel.py +2 -2
  263. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad.py +2 -2
  264. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad_reduce.py +2 -2
  265. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer.py +2 -2
  266. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad.py +2 -2
  267. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad_reduce.py +2 -2
  268. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel.py +2 -2
  269. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel_grad.py +2 -2
  270. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer.py +2 -2
  271. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer_grad.py +2 -2
  272. mindspore/ops/_op_impl/_custom_op/fused_abs_max1_impl.py +1 -1
  273. mindspore/ops/_op_impl/_custom_op/img2col_impl.py +1 -1
  274. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +2 -2
  275. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_right_impl.py +1 -1
  276. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_left_cast_impl.py +1 -1
  277. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_right_mul_impl.py +1 -1
  278. mindspore/ops/_op_impl/_custom_op/matmul_cube_impl.py +2 -2
  279. mindspore/ops/_op_impl/_custom_op/matmul_dds_impl.py +0 -4
  280. mindspore/ops/_op_impl/_custom_op/matrix_combine_impl.py +1 -1
  281. mindspore/ops/_op_impl/_custom_op/minmax_update_perchannel.py +2 -2
  282. mindspore/ops/_op_impl/_custom_op/minmax_update_perlayer.py +2 -2
  283. mindspore/ops/_op_impl/_custom_op/transpose02314_impl.py +1 -1
  284. mindspore/ops/_op_impl/aicpu/__init__.py +236 -4
  285. mindspore/ops/_op_impl/aicpu/abs.py +36 -0
  286. mindspore/ops/_op_impl/aicpu/{adaptive_avg_pool_2d_v1.py → adaptive_avg_pool_2d.py} +6 -5
  287. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d_grad.py +34 -0
  288. mindspore/ops/_op_impl/aicpu/add.py +43 -0
  289. mindspore/ops/_op_impl/aicpu/addcdiv.py +0 -32
  290. mindspore/ops/_op_impl/aicpu/addcmul.py +0 -84
  291. mindspore/ops/_op_impl/aicpu/affine_grid_grad.py +35 -0
  292. mindspore/ops/_op_impl/aicpu/batch_matmul.py +43 -43
  293. mindspore/ops/_op_impl/aicpu/bernoulli.py +48 -0
  294. mindspore/{compression/common/__init__.py → ops/_op_impl/aicpu/bessel_i0.py} +15 -8
  295. mindspore/ops/_op_impl/aicpu/channel_shuffle.py +40 -0
  296. mindspore/ops/_op_impl/aicpu/conj.py +11 -0
  297. mindspore/ops/_op_impl/aicpu/cumulative_logsumexp.py +0 -3
  298. mindspore/ops/_op_impl/aicpu/deformable_offsets.py +38 -0
  299. mindspore/ops/_op_impl/aicpu/deformable_offsets_grad.py +43 -0
  300. mindspore/ops/_op_impl/aicpu/{adaptive_avg_pool_2d_grad_v1.py → digamma.py} +7 -9
  301. mindspore/ops/_op_impl/aicpu/flatten.py +1 -0
  302. mindspore/ops/_op_impl/aicpu/fmax.py +36 -0
  303. mindspore/ops/_op_impl/aicpu/fmin.py +37 -0
  304. mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_with_fixed_ksize.py +1 -1
  305. mindspore/ops/_op_impl/aicpu/fse_decode.py +43 -0
  306. mindspore/ops/_op_impl/aicpu/greater.py +41 -0
  307. mindspore/ops/_op_impl/aicpu/greater_equal.py +41 -0
  308. mindspore/ops/_op_impl/aicpu/index_put.py +50 -0
  309. mindspore/ops/_op_impl/aicpu/less.py +41 -0
  310. mindspore/{nn/probability/infer/variational/__init__.py → ops/_op_impl/aicpu/lgamma.py} +16 -10
  311. mindspore/ops/_op_impl/aicpu/mirror_pad.py +0 -4
  312. mindspore/ops/_op_impl/aicpu/mirror_pad_grad.py +0 -4
  313. mindspore/ops/_op_impl/aicpu/mul.py +3 -1
  314. mindspore/ops/_op_impl/aicpu/multinomial.py +14 -6
  315. mindspore/ops/_op_impl/aicpu/nllloss.py +38 -0
  316. mindspore/ops/_op_impl/aicpu/nllloss_grad.py +39 -0
  317. mindspore/ops/_op_impl/aicpu/ones_like.py +0 -2
  318. mindspore/ops/_op_impl/aicpu/polar.py +32 -0
  319. mindspore/ops/_op_impl/aicpu/polygamma.py +34 -0
  320. mindspore/ops/_op_impl/aicpu/quant_dtype_cast.py +40 -0
  321. mindspore/ops/_op_impl/aicpu/quantile.py +35 -0
  322. mindspore/ops/_op_impl/aicpu/ragged_tensor_to_sparse.py +73 -0
  323. mindspore/ops/_op_impl/aicpu/randperm_v2.py +41 -0
  324. mindspore/ops/_op_impl/aicpu/resize_bicubic.py +2 -8
  325. mindspore/ops/_op_impl/aicpu/resize_bicubic_grad.py +1 -1
  326. mindspore/ops/_op_impl/aicpu/resize_v2.py +68 -0
  327. mindspore/ops/_op_impl/aicpu/resize_v2_grad.py +68 -0
  328. mindspore/ops/_op_impl/aicpu/scatter_elements.py +4 -0
  329. mindspore/ops/_op_impl/aicpu/scatter_nd_update.py +2 -0
  330. mindspore/ops/_op_impl/aicpu/sequence_add.py +34 -0
  331. mindspore/ops/_op_impl/aicpu/sequence_add_offset.py +34 -0
  332. mindspore/ops/_op_impl/aicpu/sequence_addn.py +38 -0
  333. mindspore/ops/_op_impl/aicpu/smooth_l1_loss.py +35 -0
  334. mindspore/ops/_op_impl/aicpu/smooth_l1_loss_grad.py +37 -0
  335. mindspore/ops/_op_impl/aicpu/sparse_apply_adagrad_da.py +0 -24
  336. mindspore/ops/_op_impl/aicpu/sparse_cross.py +42 -0
  337. mindspore/ops/_op_impl/aicpu/sparse_slice.py +4 -0
  338. mindspore/ops/_op_impl/aicpu/sparse_slice_grad.py +6 -0
  339. mindspore/ops/_op_impl/aicpu/tensor_scatter_update.py +59 -0
  340. mindspore/ops/_op_impl/aicpu/trans_data.py +1 -0
  341. mindspore/ops/_op_impl/aicpu/tril_indices.py +34 -0
  342. mindspore/ops/_op_impl/aicpu/uniform.py +34 -0
  343. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +1 -0
  344. mindspore/ops/_op_impl/aicpu/unique_consecutive.py +10 -2
  345. mindspore/ops/_op_impl/cpu/dynamic_shape.py +5 -1
  346. mindspore/ops/_op_impl/cpu/sparse_slice.py +4 -0
  347. mindspore/ops/_op_impl/cpu/sparse_slice_grad.py +6 -0
  348. mindspore/ops/_op_impl/cpu/tensor_shape.py +5 -1
  349. mindspore/ops/_op_impl/tbe/__init__.py +27 -611
  350. mindspore/ops/_op_impl/tbe/assign_add_ds.py +1 -0
  351. mindspore/ops/_op_impl/tbe/atomic_addr_clean.py +1 -1
  352. mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +1 -1
  353. mindspore/ops/_op_impl/tbe/batch_matmul_ds.py +1 -0
  354. mindspore/ops/_op_impl/tbe/batch_to_space.py +1 -1
  355. mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +1 -1
  356. mindspore/ops/_op_impl/tbe/bn_infer_grad.py +4 -2
  357. mindspore/ops/_op_impl/tbe/bn_training_update.py +0 -1
  358. mindspore/ops/_op_impl/tbe/bn_training_update_ds.py +0 -1
  359. mindspore/ops/_op_impl/tbe/broadcast_to_ds.py +6 -4
  360. mindspore/ops/_op_impl/tbe/cast.py +0 -2
  361. mindspore/ops/_op_impl/tbe/cast_ds.py +3 -3
  362. mindspore/ops/_op_impl/tbe/data_format_dim_map_ds.py +1 -0
  363. mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +2 -2
  364. mindspore/ops/_op_impl/tbe/dynamic_atomic_addr_clean.py +1 -1
  365. mindspore/ops/_op_impl/tbe/gather_nd.py +1 -0
  366. mindspore/ops/_op_impl/tbe/{index_add.py → inplace_index_add.py} +3 -6
  367. mindspore/ops/_op_impl/tbe/matmul_ds.py +2 -0
  368. mindspore/ops/_op_impl/tbe/npu_clear_float_status_v2.py +35 -0
  369. mindspore/ops/_op_impl/tbe/npu_get_float_status_v2.py +35 -0
  370. mindspore/ops/_op_impl/tbe/scatter_mul.py +2 -0
  371. mindspore/ops/_op_impl/tbe/scatter_nd_add.py +0 -2
  372. mindspore/ops/_op_impl/tbe/space_to_batch.py +1 -1
  373. mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +1 -1
  374. mindspore/ops/_op_impl/tbe/trans_data_ds.py +15 -5
  375. mindspore/ops/_register_for_op.py +1 -0
  376. mindspore/ops/_utils/__init__.py +1 -2
  377. mindspore/ops/_utils/utils.py +19 -40
  378. mindspore/ops/_vmap/vmap_array_ops.py +116 -38
  379. mindspore/ops/_vmap/vmap_base.py +16 -9
  380. mindspore/ops/_vmap/vmap_convolution_ops.py +7 -10
  381. mindspore/ops/_vmap/vmap_grad_math_ops.py +4 -4
  382. mindspore/ops/_vmap/vmap_grad_nn_ops.py +7 -5
  383. mindspore/ops/_vmap/vmap_image_ops.py +12 -5
  384. mindspore/ops/_vmap/vmap_math_ops.py +46 -5
  385. mindspore/ops/_vmap/vmap_nn_ops.py +15 -21
  386. mindspore/ops/_vmap/vmap_random_ops.py +1 -1
  387. mindspore/ops/bprop_mindir/AdaptiveAvgPool2D_bprop.mindir +0 -0
  388. mindspore/ops/bprop_mindir/AdaptiveMaxPool2D_bprop.mindir +0 -0
  389. mindspore/ops/bprop_mindir/AvgPool3D_bprop.mindir +150 -0
  390. mindspore/ops/bprop_mindir/AvgPool_bprop.mindir +66 -0
  391. mindspore/ops/bprop_mindir/BCEWithLogitsLoss_bprop.mindir +0 -0
  392. mindspore/ops/bprop_mindir/BatchNormGrad_bprop.mindir +0 -0
  393. mindspore/ops/bprop_mindir/BiasAddGrad_bprop.mindir +0 -0
  394. mindspore/ops/bprop_mindir/BinaryCrossEntropy_bprop.mindir +33 -0
  395. mindspore/ops/bprop_mindir/BroadcastTo_bprop.mindir +220 -106
  396. mindspore/ops/bprop_mindir/CTCLoss_bprop.mindir +0 -0
  397. mindspore/ops/bprop_mindir/Conv2DBackpropFilter_bprop.mindir +240 -0
  398. mindspore/ops/bprop_mindir/Conv2DBackpropInput_bprop.mindir +247 -0
  399. mindspore/ops/bprop_mindir/Conv2DTranspose_bprop.mindir +247 -0
  400. mindspore/ops/bprop_mindir/Conv3DTranspose_bprop.mindir +315 -0
  401. mindspore/ops/bprop_mindir/Conv3D_bprop.mindir +278 -0
  402. mindspore/ops/bprop_mindir/DeformableOffsets_bprop.mindir +58 -0
  403. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +138 -0
  404. mindspore/ops/bprop_mindir/Dropout2D_bprop.mindir +0 -0
  405. mindspore/ops/bprop_mindir/Dropout3D_bprop.mindir +0 -0
  406. mindspore/ops/bprop_mindir/DropoutDoMask_bprop.mindir +22 -23
  407. mindspore/ops/bprop_mindir/DropoutGenMask_bprop.mindir +16 -17
  408. mindspore/ops/bprop_mindir/DropoutGrad_bprop.mindir +27 -0
  409. mindspore/ops/bprop_mindir/Dropout_bprop.mindir +0 -0
  410. mindspore/ops/bprop_mindir/DynamicGRUV2_bprop.mindir +0 -0
  411. mindspore/ops/bprop_mindir/DynamicRNN_bprop.mindir +0 -0
  412. mindspore/ops/bprop_mindir/Elu_bprop.mindir +16 -0
  413. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  414. mindspore/ops/bprop_mindir/ExpandDims_bprop.mindir +39 -41
  415. mindspore/ops/bprop_mindir/FastGeLU_bprop.mindir +16 -0
  416. mindspore/ops/bprop_mindir/Flatten_bprop.mindir +41 -43
  417. mindspore/ops/bprop_mindir/GatherNd_bprop.mindir +51 -57
  418. mindspore/ops/bprop_mindir/Gather_bprop.mindir +0 -0
  419. mindspore/ops/bprop_mindir/HSigmoid_bprop.mindir +16 -0
  420. mindspore/ops/bprop_mindir/HSwish_bprop.mindir +16 -0
  421. mindspore/ops/bprop_mindir/InstanceNorm_bprop.mindir +0 -0
  422. mindspore/ops/bprop_mindir/KLDivLoss_bprop.mindir +126 -0
  423. mindspore/ops/bprop_mindir/L2Loss_bprop.mindir +15 -0
  424. mindspore/ops/bprop_mindir/L2Normalize_bprop.mindir +30 -0
  425. mindspore/ops/bprop_mindir/LRN_bprop.mindir +43 -0
  426. mindspore/ops/bprop_mindir/LayerNormGrad_bprop.mindir +0 -0
  427. mindspore/ops/bprop_mindir/LogSoftmax_bprop.mindir +23 -0
  428. mindspore/ops/bprop_mindir/MaxPool3DGradGrad_bprop.mindir +74 -0
  429. mindspore/ops/bprop_mindir/MaxPool3DGrad_bprop.mindir +74 -0
  430. mindspore/ops/bprop_mindir/MaxPool3D_bprop.mindir +75 -0
  431. mindspore/ops/bprop_mindir/MaxPoolGradGrad_bprop.mindir +65 -0
  432. mindspore/ops/bprop_mindir/MaxPoolWithArgmax_bprop.mindir +0 -0
  433. mindspore/ops/bprop_mindir/MirrorPad_bprop.mindir +27 -0
  434. mindspore/ops/bprop_mindir/Mish_bprop.mindir +35 -0
  435. mindspore/ops/bprop_mindir/MulNoNan_bprop.mindir +0 -0
  436. mindspore/ops/bprop_mindir/NLLLoss_bprop.mindir +0 -0
  437. mindspore/ops/bprop_mindir/OneHot_bprop.mindir +24 -25
  438. mindspore/ops/bprop_mindir/PReLU_bprop.mindir +0 -0
  439. mindspore/ops/bprop_mindir/Pad_bprop.mindir +0 -0
  440. mindspore/ops/bprop_mindir/Padding_bprop.mindir +0 -0
  441. mindspore/ops/bprop_mindir/RNNTLoss_bprop.mindir +29 -0
  442. mindspore/ops/bprop_mindir/ROIAlign_bprop.mindir +82 -0
  443. mindspore/ops/bprop_mindir/ReLU6_bprop.mindir +16 -0
  444. mindspore/ops/bprop_mindir/ReLUV2_bprop.mindir +0 -0
  445. mindspore/ops/bprop_mindir/ReluGrad_bprop.mindir +18 -19
  446. mindspore/ops/bprop_mindir/Reshape_bprop.mindir +53 -53
  447. mindspore/ops/bprop_mindir/ResizeBilinear_bprop.mindir +29 -0
  448. mindspore/ops/bprop_mindir/ResizeNearestNeighbor_bprop.mindir +77 -85
  449. mindspore/ops/bprop_mindir/SeLU_bprop.mindir +21 -0
  450. mindspore/ops/bprop_mindir/SigmoidCrossEntropyWithLogits_bprop.mindir +21 -0
  451. mindspore/ops/bprop_mindir/SigmoidGrad_bprop.mindir +0 -0
  452. mindspore/ops/bprop_mindir/Sigmoid_bprop.mindir +16 -0
  453. mindspore/ops/bprop_mindir/SmoothL1Loss_bprop.mindir +36 -0
  454. mindspore/ops/bprop_mindir/SoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  455. mindspore/ops/bprop_mindir/Softplus_bprop.mindir +16 -0
  456. mindspore/ops/bprop_mindir/Softsign_bprop.mindir +33 -0
  457. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  458. mindspore/ops/bprop_mindir/Squeeze_bprop.mindir +37 -39
  459. mindspore/ops/bprop_mindir/StridedSlice_bprop.mindir +70 -72
  460. mindspore/ops/bprop_mindir/TanhGrad_bprop.mindir +0 -0
  461. mindspore/ops/bprop_mindir/Tanh_bprop.mindir +66 -0
  462. mindspore/ops/bprop_mindir/Tile_bprop.mindir +0 -0
  463. mindspore/ops/bprop_mindir/TopK_bprop.mindir +0 -0
  464. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +17 -17
  465. mindspore/ops/bprop_mindir/UpsampleNearest3D_bprop.mindir +32 -0
  466. mindspore/ops/bprop_mindir/UpsampleTrilinear3D_bprop.mindir +38 -0
  467. mindspore/ops/bprop_mindir/generate_mindir.py +2 -0
  468. mindspore/ops/composite/__init__.py +7 -8
  469. mindspore/ops/composite/base.py +101 -47
  470. mindspore/ops/composite/math_ops.py +188 -158
  471. mindspore/ops/composite/multitype_ops/_compile_utils.py +415 -170
  472. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +142 -87
  473. mindspore/ops/composite/multitype_ops/add_impl.py +6 -1
  474. mindspore/ops/composite/multitype_ops/div_impl.py +2 -3
  475. mindspore/ops/composite/multitype_ops/getitem_impl.py +31 -3
  476. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +31 -0
  477. mindspore/ops/composite/multitype_ops/greater_impl.py +31 -0
  478. mindspore/ops/composite/multitype_ops/in_impl.py +9 -0
  479. mindspore/ops/composite/multitype_ops/less_equal_impl.py +31 -0
  480. mindspore/ops/composite/multitype_ops/less_impl.py +31 -0
  481. mindspore/ops/composite/multitype_ops/mul_impl.py +21 -5
  482. mindspore/ops/composite/multitype_ops/not_in_impl.py +9 -0
  483. mindspore/ops/composite/multitype_ops/ones_like_impl.py +2 -4
  484. mindspore/ops/composite/multitype_ops/setitem_impl.py +21 -3
  485. mindspore/ops/composite/multitype_ops/sub_impl.py +1 -1
  486. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +35 -4
  487. mindspore/ops/function/__init__.py +152 -8
  488. mindspore/ops/function/array_func.py +2555 -674
  489. mindspore/ops/function/clip_func.py +209 -13
  490. mindspore/ops/function/debug_func.py +2 -2
  491. mindspore/ops/function/grad/__init__.py +2 -1
  492. mindspore/ops/function/grad/grad_func.py +147 -62
  493. mindspore/ops/function/image_func.py +54 -38
  494. mindspore/ops/function/linalg_func.py +167 -16
  495. mindspore/ops/function/math_func.py +4849 -1492
  496. mindspore/ops/function/nn_func.py +2573 -988
  497. mindspore/ops/function/other_func.py +115 -0
  498. mindspore/ops/function/parameter_func.py +3 -3
  499. mindspore/ops/function/random_func.py +790 -73
  500. mindspore/ops/function/sparse_func.py +98 -78
  501. mindspore/ops/function/sparse_unary_func.py +54 -53
  502. mindspore/ops/function/spectral_func.py +27 -24
  503. mindspore/ops/function/vmap_func.py +22 -2
  504. mindspore/ops/functional.py +97 -37
  505. mindspore/ops/op_info_register.py +70 -28
  506. mindspore/ops/operations/__init__.py +47 -14
  507. mindspore/ops/operations/_csr_ops.py +7 -7
  508. mindspore/ops/operations/_embedding_cache_ops.py +5 -5
  509. mindspore/ops/operations/_grad_ops.py +276 -187
  510. mindspore/ops/operations/_inner_ops.py +319 -113
  511. mindspore/ops/operations/_ms_kernel.py +10 -8
  512. mindspore/ops/operations/_ocr_ops.py +9 -9
  513. mindspore/ops/operations/_opaque_predicate_registry.py +4 -0
  514. mindspore/ops/operations/_quant_ops.py +137 -102
  515. mindspore/ops/operations/_rl_inner_ops.py +121 -60
  516. mindspore/ops/operations/_scalar_ops.py +466 -0
  517. mindspore/ops/operations/_sequence_ops.py +1004 -2
  518. mindspore/ops/operations/_tensor_array.py +10 -11
  519. mindspore/ops/operations/_thor_ops.py +1 -1
  520. mindspore/ops/operations/array_ops.py +801 -466
  521. mindspore/ops/operations/comm_ops.py +51 -49
  522. mindspore/ops/operations/control_ops.py +2 -2
  523. mindspore/ops/operations/custom_ops.py +123 -44
  524. mindspore/ops/operations/debug_ops.py +24 -24
  525. mindspore/ops/operations/image_ops.py +240 -153
  526. mindspore/ops/operations/inner_ops.py +34 -50
  527. mindspore/ops/operations/linalg_ops.py +31 -9
  528. mindspore/ops/operations/math_ops.py +988 -757
  529. mindspore/ops/operations/nn_ops.py +965 -819
  530. mindspore/ops/operations/other_ops.py +51 -40
  531. mindspore/ops/operations/random_ops.py +204 -122
  532. mindspore/ops/operations/rl_ops.py +8 -9
  533. mindspore/ops/operations/sparse_ops.py +254 -93
  534. mindspore/ops/operations/spectral_ops.py +35 -3
  535. mindspore/ops/primitive.py +111 -9
  536. mindspore/parallel/_auto_parallel_context.py +189 -83
  537. mindspore/parallel/_offload_context.py +185 -0
  538. mindspore/parallel/_parallel_serialization.py +99 -7
  539. mindspore/parallel/_ps_context.py +9 -5
  540. mindspore/parallel/_recovery_context.py +1 -1
  541. mindspore/parallel/_tensor.py +7 -1
  542. mindspore/{nn/transformer → parallel/_transformer}/__init__.py +6 -6
  543. mindspore/{nn/transformer → parallel/_transformer}/layers.py +6 -37
  544. mindspore/{nn/transformer → parallel/_transformer}/loss.py +4 -7
  545. mindspore/{nn/transformer → parallel/_transformer}/moe.py +20 -16
  546. mindspore/{nn/transformer → parallel/_transformer}/op_parallel_config.py +3 -3
  547. mindspore/{nn/transformer → parallel/_transformer}/transformer.py +48 -111
  548. mindspore/parallel/_utils.py +1 -2
  549. mindspore/parallel/algo_parameter_config.py +1 -1
  550. mindspore/parallel/checkpoint_transform.py +37 -34
  551. mindspore/parallel/shard.py +17 -18
  552. mindspore/profiler/common/validator/validate_path.py +2 -2
  553. mindspore/profiler/envprofiling.py +69 -47
  554. mindspore/profiler/parser/ascend_timeline_generator.py +49 -42
  555. mindspore/profiler/parser/base_timeline_generator.py +49 -56
  556. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +98 -78
  557. mindspore/profiler/parser/hwts_log_parser.py +1 -1
  558. mindspore/profiler/parser/integrator.py +15 -14
  559. mindspore/profiler/parser/minddata_analyzer.py +2 -2
  560. mindspore/profiler/parser/msadvisor_analyzer.py +12 -25
  561. mindspore/profiler/parser/msadvisor_parser.py +2 -4
  562. mindspore/profiler/parser/optime_parser.py +17 -18
  563. mindspore/profiler/parser/profiler_info.py +2 -1
  564. mindspore/profiler/profiling.py +218 -186
  565. mindspore/rewrite/__init__.py +3 -1
  566. mindspore/rewrite/api/node.py +1 -114
  567. mindspore/rewrite/api/node_type.py +3 -0
  568. mindspore/rewrite/api/pattern_engine.py +31 -1
  569. mindspore/rewrite/api/scoped_value.py +4 -4
  570. mindspore/rewrite/api/symbol_tree.py +3 -78
  571. mindspore/rewrite/api/tree_node_helper.py +1 -1
  572. mindspore/rewrite/ast_creator_register.py +1 -0
  573. mindspore/rewrite/ast_helpers/__init__.py +2 -2
  574. mindspore/rewrite/ast_helpers/ast_creator.py +1 -2
  575. mindspore/rewrite/ast_helpers/ast_finder.py +65 -0
  576. mindspore/rewrite/ast_helpers/ast_modifier.py +11 -3
  577. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +18 -2
  578. mindspore/rewrite/namespace.py +0 -2
  579. mindspore/rewrite/node.py +157 -11
  580. mindspore/rewrite/parsers/assign_parser.py +231 -53
  581. mindspore/rewrite/parsers/class_def_parser.py +187 -109
  582. mindspore/rewrite/parsers/for_parser.py +24 -14
  583. mindspore/rewrite/parsers/function_def_parser.py +21 -4
  584. mindspore/rewrite/parsers/if_parser.py +6 -2
  585. mindspore/rewrite/sparsify/__init__.py +0 -0
  586. mindspore/rewrite/sparsify/sparse_transformer.py +448 -0
  587. mindspore/rewrite/sparsify/sparsify.py +109 -0
  588. mindspore/rewrite/sparsify/utils.py +173 -0
  589. mindspore/rewrite/symbol_tree.py +256 -133
  590. mindspore/rewrite/symbol_tree_builder.py +38 -1
  591. mindspore/run_check/_check_version.py +69 -63
  592. mindspore/run_check/run_check.py +2 -1
  593. mindspore/scipy/linalg.py +10 -114
  594. mindspore/scipy/ops.py +2 -2
  595. mindspore/scipy/ops_wrapper.py +1 -1
  596. mindspore/scipy/optimize/_bfgs.py +1 -1
  597. mindspore/scipy/optimize/_lagrange.py +200 -0
  598. mindspore/scipy/optimize/line_search.py +3 -2
  599. mindspore/scipy/optimize/minimize.py +41 -2
  600. mindspore/scipy/sparse/__init__.py +2 -2
  601. mindspore/scipy/sparse/linalg.py +4 -464
  602. mindspore/scipy/utils.py +1 -1
  603. mindspore/scipy/utils_const.py +7 -1
  604. mindspore/train/__init__.py +1 -1
  605. mindspore/train/_utils.py +28 -5
  606. mindspore/train/amp.py +273 -102
  607. mindspore/train/callback/_backup_and_restore.py +5 -5
  608. mindspore/train/callback/_callback.py +2 -2
  609. mindspore/train/callback/_checkpoint.py +3 -3
  610. mindspore/train/callback/_early_stop.py +3 -3
  611. mindspore/train/callback/_lambda_callback.py +2 -2
  612. mindspore/train/callback/_landscape.py +29 -31
  613. mindspore/train/callback/_loss_monitor.py +3 -3
  614. mindspore/train/callback/_on_request_exit.py +3 -3
  615. mindspore/train/callback/_reduce_lr_on_plateau.py +4 -4
  616. mindspore/train/callback/_summary_collector.py +23 -16
  617. mindspore/train/callback/_time_monitor.py +3 -3
  618. mindspore/train/checkpoint_pb2.py +68 -8
  619. mindspore/train/data_sink.py +15 -3
  620. mindspore/train/dataset_helper.py +10 -15
  621. mindspore/train/loss_scale_manager.py +8 -11
  622. mindspore/train/metrics/__init__.py +1 -1
  623. mindspore/train/metrics/bleu_score.py +1 -1
  624. mindspore/train/metrics/confusion_matrix.py +1 -1
  625. mindspore/train/metrics/cosine_similarity.py +1 -1
  626. mindspore/train/metrics/dice.py +2 -2
  627. mindspore/train/metrics/fbeta.py +1 -1
  628. mindspore/train/metrics/hausdorff_distance.py +4 -3
  629. mindspore/train/metrics/mean_surface_distance.py +2 -2
  630. mindspore/train/metrics/occlusion_sensitivity.py +1 -1
  631. mindspore/train/metrics/perplexity.py +1 -1
  632. mindspore/train/metrics/precision.py +1 -1
  633. mindspore/train/metrics/recall.py +1 -1
  634. mindspore/train/metrics/roc.py +2 -2
  635. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  636. mindspore/train/mind_ir_pb2.py +116 -37
  637. mindspore/train/model.py +45 -28
  638. mindspore/train/serialization.py +295 -188
  639. mindspore/train/summary/_summary_adapter.py +1 -1
  640. mindspore/train/summary/summary_record.py +43 -13
  641. mindspore/train/train_thor/convert_utils.py +2 -2
  642. mindspore/train/train_thor/dataset_helper.py +3 -3
  643. mindspore/version.py +1 -1
  644. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/METADATA +3 -2
  645. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/RECORD +648 -574
  646. mindspore/compression/__init__.py +0 -19
  647. mindspore/compression/common/constant.py +0 -124
  648. mindspore/compression/export/__init__.py +0 -19
  649. mindspore/compression/export/quant_export.py +0 -515
  650. mindspore/compression/quant/__init__.py +0 -28
  651. mindspore/compression/quant/qat.py +0 -634
  652. mindspore/compression/quant/quant_utils.py +0 -462
  653. mindspore/compression/quant/quantizer.py +0 -68
  654. mindspore/nn/layer/quant.py +0 -1868
  655. mindspore/nn/layer/rnn_utils.py +0 -90
  656. mindspore/nn/probability/dpn/__init__.py +0 -22
  657. mindspore/nn/probability/dpn/vae/__init__.py +0 -25
  658. mindspore/nn/probability/dpn/vae/cvae.py +0 -140
  659. mindspore/nn/probability/dpn/vae/vae.py +0 -124
  660. mindspore/nn/probability/infer/__init__.py +0 -22
  661. mindspore/nn/probability/infer/variational/elbo.py +0 -70
  662. mindspore/nn/probability/infer/variational/svi.py +0 -84
  663. mindspore/nn/probability/toolbox/__init__.py +0 -22
  664. mindspore/nn/probability/toolbox/anomaly_detection.py +0 -99
  665. mindspore/nn/probability/toolbox/uncertainty_evaluation.py +0 -364
  666. mindspore/nn/probability/transforms/__init__.py +0 -22
  667. mindspore/nn/probability/transforms/transform_bnn.py +0 -262
  668. mindspore/nn/probability/zhusuan/__init__.py +0 -18
  669. mindspore/nn/probability/zhusuan/framework/__init__.py +0 -18
  670. mindspore/nn/probability/zhusuan/framework/bn.py +0 -95
  671. mindspore/nn/probability/zhusuan/variational/__init__.py +0 -18
  672. mindspore/nn/probability/zhusuan/variational/elbo.py +0 -46
  673. mindspore/ops/_op_impl/aicpu/parallel_concat.py +0 -42
  674. mindspore/ops/_op_impl/tbe/gather_v2.py +0 -56
  675. mindspore/ops/bprop_mindir/AssignAdd_bprop.mindir +0 -19
  676. mindspore/ops/bprop_mindir/Cast_bprop.mindir +0 -19
  677. mindspore/ops/bprop_mindir/LogicalOr_bprop.mindir +0 -19
  678. mindspore/ops/bprop_mindir/MatMul_bprop.mindir +0 -0
  679. mindspore/ops/bprop_mindir/ReLU_bprop.mindir +0 -17
  680. mindspore/ops/bprop_mindir/Transpose_bprop.mindir +0 -0
  681. mindspore/ops/bprop_mindir/UpdateState_bprop.mindir +0 -15
  682. mindspore/ops/composite/array_ops.py +0 -241
  683. mindspore/ops/composite/clip_ops.py +0 -134
  684. mindspore/ops/composite/random_ops.py +0 -426
  685. mindspore/ops/composite/vmap_ops.py +0 -38
  686. mindspore/parallel/nn/__init__.py +0 -42
  687. mindspore/parallel/nn/loss.py +0 -22
  688. mindspore/parallel/nn/moe.py +0 -21
  689. mindspore/parallel/nn/op_parallel_config.py +0 -22
  690. mindspore/parallel/nn/transformer.py +0 -31
  691. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/WHEEL +0 -0
  692. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/entry_points.txt +0 -0
  693. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -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, int fmt = NHWC);
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 parameter data.
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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2020-2022 Huawei Technologies Co., Ltd
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
@@ -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:
@@ -77,6 +77,7 @@ enum TypeId : int {
77
77
  kNumberTypeFloat16,
78
78
  kNumberTypeFloat32,
79
79
  kNumberTypeFloat64,
80
+ kNumberTypeDouble,
80
81
  kNumberTypeComplex,
81
82
  kNumberTypeComplex64,
82
83
  kNumberTypeComplex128,
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
mindspore/lib/libnnacl.so CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
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 self._writer.is_open:
263
- self._writer.open(self._paths, self._overwrite)
264
- if not self._writer.get_shard_header():
265
- self._writer.set_shard_header(self._header)
266
- if not isinstance(raw_data, list):
267
- raise ParamTypeError('raw_data', 'list')
268
- if self._flush and not self._append:
269
- raise RuntimeError("Not allowed to call `write_raw_data` on flushed MindRecord files." \
270
- "When creating new Mindrecord files, please remove `commit` before `write_raw_data`." \
271
- "In other cases, when appending to existing MindRecord files, " \
272
- "please call `open_for_append` first and then `write_raw_data`.")
273
- for each_raw in raw_data:
274
- if not isinstance(each_raw, dict):
275
- raise ParamTypeError('raw_data item', 'dict')
276
- self._verify_based_on_schema(raw_data)
277
- return self._writer.write_raw_data(raw_data, True, parallel_writer)
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._flush = True
347
- if not self._writer.is_open:
348
- self._writer.open(self._paths, self._overwrite)
349
- # permit commit without data
350
- if not self._writer.get_shard_header():
351
- self._writer.set_shard_header(self._header)
352
- ret = self._writer.commit()
353
- if self._index_generator:
354
- if self._append:
355
- self._generator = ShardIndexGenerator(self._file_name, self._append)
356
- elif len(self._paths) >= 1:
357
- self._generator = ShardIndexGenerator(os.path.realpath(self._paths[0]), self._append)
358
- self._generator.build()
359
- self._generator.write_to_db()
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 ret
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(list(row_blob))
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}