mindspore 2.5.0__cp39-cp39-win_amd64.whl → 2.6.0rc1__cp39-cp39-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mindspore might be problematic. Click here for more details.

Files changed (491) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
  3. mindspore/Newtonsoft.Json.dll +0 -0
  4. mindspore/__init__.py +6 -4
  5. mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
  8. mindspore/_check_jit_forbidden_api.py +3 -0
  9. mindspore/_checkparam.py +3 -33
  10. mindspore/_deprecated/__init__.py +17 -0
  11. mindspore/_deprecated/jit.py +198 -0
  12. mindspore/_extends/builtin_operations.py +1 -1
  13. mindspore/_extends/parse/__init__.py +6 -7
  14. mindspore/_extends/parse/compile_config.py +19 -0
  15. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +22 -3
  16. mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
  17. mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
  18. mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
  19. mindspore/_extends/parse/parser.py +24 -193
  20. mindspore/_extends/parse/resources.py +1 -5
  21. mindspore/_extends/parse/standard_method.py +97 -74
  22. mindspore/_extends/pijit/__init__.py +2 -2
  23. mindspore/_extends/pijit/pijit_func_white_list.py +16 -11
  24. mindspore/_extends/pijit/tensor_func_list.py +27 -0
  25. mindspore/_extends/utils.py +1 -1
  26. mindspore/amp.py +4 -4
  27. mindspore/atlprov.dll +0 -0
  28. mindspore/avcodec-59.dll +0 -0
  29. mindspore/avdevice-59.dll +0 -0
  30. mindspore/avfilter-8.dll +0 -0
  31. mindspore/avformat-59.dll +0 -0
  32. mindspore/avutil-57.dll +0 -0
  33. mindspore/boost/__init__.py +2 -2
  34. mindspore/boost/base.py +3 -7
  35. mindspore/boost/boost_cell_wrapper.py +2 -2
  36. mindspore/c1.dll +0 -0
  37. mindspore/c1xx.dll +0 -0
  38. mindspore/c2.dll +0 -0
  39. mindspore/common/__init__.py +4 -3
  40. mindspore/common/_grad_function.py +56 -0
  41. mindspore/common/_pijit_context.py +14 -5
  42. mindspore/common/_register_for_tensor.py +1 -1
  43. mindspore/common/_stub_tensor.py +5 -10
  44. mindspore/common/_tensor_cpp_method.py +1 -1
  45. mindspore/common/_tensor_docs.py +1915 -3287
  46. mindspore/common/api.py +341 -354
  47. mindspore/common/auto_dynamic_shape.py +41 -44
  48. mindspore/common/dtype.py +5 -2
  49. mindspore/common/dump.py +7 -5
  50. mindspore/common/file_system.py +3 -0
  51. mindspore/common/hook_handle.py +5 -3
  52. mindspore/common/initializer.py +10 -6
  53. mindspore/common/jit_begin_end.py +94 -0
  54. mindspore/common/jit_config.py +6 -1
  55. mindspore/common/jit_context.py +76 -0
  56. mindspore/common/jit_trace.py +378 -0
  57. mindspore/common/lazy_inline.py +2 -2
  58. mindspore/common/mutable.py +5 -4
  59. mindspore/common/parameter.py +106 -39
  60. mindspore/common/seed.py +2 -2
  61. mindspore/common/sparse_tensor.py +23 -17
  62. mindspore/common/tensor.py +297 -714
  63. mindspore/communication/__init__.py +7 -5
  64. mindspore/communication/_comm_helper.py +47 -2
  65. mindspore/communication/comm_func.py +70 -53
  66. mindspore/communication/management.py +83 -17
  67. mindspore/context.py +214 -560
  68. mindspore/dataset/__init__.py +44 -20
  69. mindspore/dataset/audio/__init__.py +2 -8
  70. mindspore/dataset/audio/transforms.py +3 -17
  71. mindspore/dataset/core/config.py +3 -3
  72. mindspore/dataset/engine/cache_client.py +1 -1
  73. mindspore/dataset/engine/datasets.py +102 -120
  74. mindspore/dataset/engine/datasets_audio.py +22 -22
  75. mindspore/dataset/engine/datasets_standard_format.py +43 -24
  76. mindspore/dataset/engine/datasets_text.py +78 -85
  77. mindspore/dataset/engine/datasets_user_defined.py +108 -76
  78. mindspore/dataset/engine/datasets_vision.py +111 -108
  79. mindspore/dataset/engine/iterators.py +5 -3
  80. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  81. mindspore/dataset/engine/samplers.py +279 -57
  82. mindspore/dataset/engine/serializer_deserializer.py +2 -1
  83. mindspore/dataset/engine/validators.py +10 -0
  84. mindspore/dataset/text/__init__.py +7 -6
  85. mindspore/dataset/text/transforms.py +6 -5
  86. mindspore/dataset/text/utils.py +3 -3
  87. mindspore/dataset/transforms/__init__.py +0 -9
  88. mindspore/dataset/transforms/transforms.py +3 -3
  89. mindspore/dataset/utils/browse_dataset.py +1 -1
  90. mindspore/dataset/vision/__init__.py +2 -9
  91. mindspore/dataset/vision/transforms.py +202 -158
  92. mindspore/dataset/vision/utils.py +7 -5
  93. mindspore/device_context/ascend/op_debug.py +60 -1
  94. mindspore/device_context/ascend/op_tuning.py +0 -4
  95. mindspore/device_manager.py +39 -3
  96. mindspore/dnnl.dll +0 -0
  97. mindspore/dpcmi.dll +0 -0
  98. mindspore/experimental/es/embedding_service.py +35 -27
  99. mindspore/experimental/map_parameter.py +4 -4
  100. mindspore/experimental/optim/adadelta.py +22 -26
  101. mindspore/experimental/optim/adagrad.py +4 -4
  102. mindspore/experimental/optim/adam.py +4 -0
  103. mindspore/experimental/optim/adamax.py +4 -4
  104. mindspore/experimental/optim/adamw.py +4 -0
  105. mindspore/experimental/optim/asgd.py +1 -1
  106. mindspore/experimental/optim/lr_scheduler.py +40 -22
  107. mindspore/experimental/optim/radam.py +5 -5
  108. mindspore/experimental/optim/rprop.py +1 -1
  109. mindspore/experimental/optim/sgd.py +1 -1
  110. mindspore/hal/contiguous_tensors_handle.py +6 -10
  111. mindspore/hal/device.py +55 -81
  112. mindspore/hal/event.py +38 -55
  113. mindspore/hal/memory.py +93 -144
  114. mindspore/hal/stream.py +81 -125
  115. mindspore/include/dataset/constants.h +7 -4
  116. mindspore/include/dataset/execute.h +2 -2
  117. mindspore/jpeg62.dll +0 -0
  118. mindspore/log.py +40 -2
  119. mindspore/mindrecord/__init__.py +20 -7
  120. mindspore/mindspore_backend_common.dll +0 -0
  121. mindspore/mindspore_backend_manager.dll +0 -0
  122. mindspore/mindspore_common.dll +0 -0
  123. mindspore/mindspore_core.dll +0 -0
  124. mindspore/mindspore_dump.dll +0 -0
  125. mindspore/mindspore_frontend.dll +0 -0
  126. mindspore/mindspore_glog.dll +0 -0
  127. mindspore/mindspore_memory_pool.dll +0 -0
  128. mindspore/mindspore_ms_backend.dll +0 -0
  129. mindspore/mindspore_ops.dll +0 -0
  130. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  131. mindspore/mindspore_ops_kernel_common.dll +0 -0
  132. mindspore/mindspore_profiler.dll +0 -0
  133. mindspore/mindspore_pyboost.dll +0 -0
  134. mindspore/mindspore_pynative.dll +0 -0
  135. mindspore/mindspore_res_manager.dll +0 -0
  136. mindspore/mindspore_runtime_pipeline.dll +0 -0
  137. mindspore/mint/__init__.py +131 -700
  138. mindspore/mint/distributed/__init__.py +5 -1
  139. mindspore/mint/distributed/distributed.py +194 -109
  140. mindspore/mint/linalg/__init__.py +2 -0
  141. mindspore/mint/nn/__init__.py +280 -18
  142. mindspore/mint/nn/functional.py +282 -64
  143. mindspore/mint/nn/layer/__init__.py +4 -0
  144. mindspore/mint/nn/layer/_functions.py +7 -3
  145. mindspore/mint/nn/layer/activation.py +120 -13
  146. mindspore/mint/nn/layer/conv.py +218 -24
  147. mindspore/mint/nn/layer/normalization.py +15 -16
  148. mindspore/mint/nn/layer/padding.py +1 -1
  149. mindspore/mint/nn/layer/pooling.py +66 -1
  150. mindspore/mint/optim/__init__.py +2 -1
  151. mindspore/mint/optim/sgd.py +171 -0
  152. mindspore/msobj140.dll +0 -0
  153. mindspore/mspdb140.dll +0 -0
  154. mindspore/mspdbcore.dll +0 -0
  155. mindspore/mspdbst.dll +0 -0
  156. mindspore/mspft140.dll +0 -0
  157. mindspore/msvcdis140.dll +0 -0
  158. mindspore/msvcp140_1.dll +0 -0
  159. mindspore/msvcp140_2.dll +0 -0
  160. mindspore/msvcp140_atomic_wait.dll +0 -0
  161. mindspore/msvcp140_codecvt_ids.dll +0 -0
  162. mindspore/nn/__init__.py +4 -1
  163. mindspore/nn/cell.py +1250 -176
  164. mindspore/nn/layer/activation.py +23 -21
  165. mindspore/nn/layer/basic.py +22 -16
  166. mindspore/nn/layer/container.py +1 -1
  167. mindspore/nn/layer/conv.py +22 -17
  168. mindspore/nn/layer/embedding.py +9 -8
  169. mindspore/nn/layer/normalization.py +48 -42
  170. mindspore/nn/layer/pooling.py +75 -31
  171. mindspore/nn/layer/transformer.py +11 -10
  172. mindspore/nn/learning_rate_schedule.py +4 -2
  173. mindspore/nn/loss/loss.py +27 -19
  174. mindspore/nn/optim/ada_grad.py +6 -5
  175. mindspore/nn/optim/adadelta.py +9 -7
  176. mindspore/nn/optim/adafactor.py +1 -1
  177. mindspore/nn/optim/adam.py +16 -12
  178. mindspore/nn/optim/adamax.py +8 -7
  179. mindspore/nn/optim/adasum.py +5 -5
  180. mindspore/nn/optim/asgd.py +1 -1
  181. mindspore/nn/optim/ftrl.py +11 -9
  182. mindspore/nn/optim/lamb.py +1 -1
  183. mindspore/nn/optim/lazyadam.py +12 -10
  184. mindspore/nn/optim/momentum.py +7 -6
  185. mindspore/nn/optim/optimizer.py +2 -2
  186. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  187. mindspore/nn/optim/rmsprop.py +13 -12
  188. mindspore/nn/optim/rprop.py +9 -7
  189. mindspore/nn/optim/sgd.py +9 -6
  190. mindspore/nn/optim/tft_wrapper.py +5 -2
  191. mindspore/nn/probability/bijector/bijector.py +17 -11
  192. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  193. mindspore/nn/probability/bijector/invert.py +2 -2
  194. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  195. mindspore/nn/probability/bijector/softplus.py +3 -2
  196. mindspore/nn/probability/distribution/beta.py +3 -3
  197. mindspore/nn/probability/distribution/categorical.py +1 -1
  198. mindspore/nn/probability/distribution/cauchy.py +4 -2
  199. mindspore/nn/probability/distribution/exponential.py +6 -7
  200. mindspore/nn/probability/distribution/gamma.py +2 -2
  201. mindspore/nn/probability/distribution/gumbel.py +2 -2
  202. mindspore/nn/probability/distribution/half_normal.py +5 -3
  203. mindspore/nn/probability/distribution/logistic.py +5 -3
  204. mindspore/nn/probability/distribution/poisson.py +1 -1
  205. mindspore/nn/probability/distribution/uniform.py +5 -3
  206. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  207. mindspore/nn/reinforcement/tensor_array.py +1 -1
  208. mindspore/nn/wrap/__init__.py +6 -6
  209. mindspore/nn/wrap/cell_wrapper.py +178 -117
  210. mindspore/nn/wrap/grad_reducer.py +45 -36
  211. mindspore/nn/wrap/loss_scale.py +3 -3
  212. mindspore/numpy/array_creations.py +3 -3
  213. mindspore/numpy/array_ops.py +1 -1
  214. mindspore/numpy/math_ops.py +4 -4
  215. mindspore/numpy/utils.py +1 -2
  216. mindspore/numpy/utils_const.py +1 -2
  217. mindspore/opencv_core452.dll +0 -0
  218. mindspore/opencv_imgcodecs452.dll +0 -0
  219. mindspore/opencv_imgproc452.dll +0 -0
  220. mindspore/ops/__init__.py +3 -2
  221. mindspore/ops/_grad_experimental/grad_comm_ops.py +18 -3
  222. mindspore/ops/_grad_experimental/grad_debug_ops.py +8 -1
  223. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  224. mindspore/ops/_register_for_op.py +0 -11
  225. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  226. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -4
  227. mindspore/ops/_vmap/vmap_array_ops.py +7 -6
  228. mindspore/ops/_vmap/vmap_grad_nn_ops.py +2 -1
  229. mindspore/ops/_vmap/vmap_math_ops.py +4 -7
  230. mindspore/ops/_vmap/vmap_nn_ops.py +9 -8
  231. mindspore/ops/auto_generate/__init__.py +4 -3
  232. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +102 -49
  233. mindspore/ops/auto_generate/gen_extend_func.py +281 -135
  234. mindspore/ops/auto_generate/gen_ops_def.py +2574 -2326
  235. mindspore/ops/auto_generate/gen_ops_prim.py +8566 -2755
  236. mindspore/ops/auto_generate/pyboost_inner_prim.py +106 -76
  237. mindspore/ops/composite/__init__.py +2 -1
  238. mindspore/ops/composite/base.py +19 -24
  239. mindspore/ops/composite/math_ops.py +6 -16
  240. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  241. mindspore/ops/composite/multitype_ops/_compile_utils.py +2 -3
  242. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  243. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  244. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  245. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  246. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  247. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  248. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  249. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  250. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  251. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  252. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  253. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  254. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  255. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  256. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  257. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  258. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  259. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  260. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  261. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  262. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  263. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  264. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  265. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  266. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  267. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -1
  268. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  269. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  270. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  271. mindspore/ops/function/__init__.py +28 -2
  272. mindspore/ops/function/_add_attr_func.py +58 -0
  273. mindspore/ops/function/array_func.py +1629 -2345
  274. mindspore/ops/function/clip_func.py +38 -45
  275. mindspore/ops/function/debug_func.py +36 -44
  276. mindspore/ops/function/grad/__init__.py +1 -0
  277. mindspore/ops/function/grad/grad_func.py +104 -71
  278. mindspore/ops/function/image_func.py +1 -1
  279. mindspore/ops/function/linalg_func.py +46 -78
  280. mindspore/ops/function/math_func.py +3035 -3705
  281. mindspore/ops/function/nn_func.py +676 -241
  282. mindspore/ops/function/other_func.py +159 -1
  283. mindspore/ops/function/parameter_func.py +17 -30
  284. mindspore/ops/function/random_func.py +204 -361
  285. mindspore/ops/function/reshard_func.py +4 -70
  286. mindspore/ops/function/sparse_func.py +3 -3
  287. mindspore/ops/function/sparse_unary_func.py +5 -5
  288. mindspore/ops/function/spectral_func.py +25 -58
  289. mindspore/ops/function/vmap_func.py +24 -17
  290. mindspore/ops/functional.py +6 -4
  291. mindspore/ops/functional_overload.py +547 -4
  292. mindspore/ops/op_info_register.py +32 -244
  293. mindspore/ops/operations/__init__.py +10 -5
  294. mindspore/ops/operations/_custom_ops_utils.py +247 -0
  295. mindspore/ops/operations/_grad_ops.py +1 -10
  296. mindspore/ops/operations/_inner_ops.py +5 -76
  297. mindspore/ops/operations/_ms_kernel.py +4 -10
  298. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  299. mindspore/ops/operations/_scalar_ops.py +3 -2
  300. mindspore/ops/operations/_sequence_ops.py +1 -1
  301. mindspore/ops/operations/_tensor_array.py +1 -1
  302. mindspore/ops/operations/array_ops.py +37 -22
  303. mindspore/ops/operations/comm_ops.py +150 -107
  304. mindspore/ops/operations/custom_ops.py +221 -23
  305. mindspore/ops/operations/debug_ops.py +115 -16
  306. mindspore/ops/operations/inner_ops.py +1 -1
  307. mindspore/ops/operations/linalg_ops.py +1 -58
  308. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  309. mindspore/ops/operations/manually_defined/ops_def.py +746 -79
  310. mindspore/ops/operations/math_ops.py +21 -18
  311. mindspore/ops/operations/nn_ops.py +65 -191
  312. mindspore/ops/operations/other_ops.py +62 -9
  313. mindspore/ops/operations/random_ops.py +13 -7
  314. mindspore/ops/operations/reshard_ops.py +1 -1
  315. mindspore/ops/operations/sparse_ops.py +2 -2
  316. mindspore/ops/primitive.py +43 -32
  317. mindspore/ops/tensor_method.py +232 -13
  318. mindspore/ops_generate/__init__.py +0 -5
  319. mindspore/ops_generate/aclnn/__init__.py +0 -0
  320. mindspore/ops_generate/{aclnn_kernel_register_auto_cc_generator.py → aclnn/aclnn_kernel_register_auto_cc_generator.py} +43 -18
  321. mindspore/ops_generate/{gen_aclnn_implement.py → aclnn/gen_aclnn_implement.py} +49 -51
  322. mindspore/ops_generate/api/__init__.py +0 -0
  323. mindspore/ops_generate/{add_tensor_docs_generator.py → api/add_tensor_docs_generator.py} +9 -7
  324. mindspore/ops_generate/{cpp_create_prim_instance_helper_generator.py → api/cpp_create_prim_instance_helper_generator.py} +6 -9
  325. mindspore/ops_generate/{functional_map_cpp_generator.py → api/functional_map_cpp_generator.py} +25 -12
  326. mindspore/ops_generate/{functional_overload_py_generator.py → api/functional_overload_py_generator.py} +8 -6
  327. mindspore/ops_generate/{functions_cc_generator.py → api/functions_cc_generator.py} +14 -10
  328. mindspore/ops_generate/api/gen_api.py +103 -0
  329. mindspore/ops_generate/{op_api_proto.py → api/op_api_proto.py} +98 -69
  330. mindspore/ops_generate/{tensor_func_reg_cpp_generator.py → api/tensor_func_reg_cpp_generator.py} +82 -43
  331. mindspore/ops_generate/common/__init__.py +0 -0
  332. mindspore/ops_generate/common/gen_constants.py +91 -0
  333. mindspore/ops_generate/{gen_utils.py → common/gen_utils.py} +72 -19
  334. mindspore/ops_generate/{op_proto.py → common/op_proto.py} +64 -1
  335. mindspore/ops_generate/{template.py → common/template.py} +96 -84
  336. mindspore/ops_generate/gen_ops.py +23 -325
  337. mindspore/ops_generate/op_def/__init__.py +0 -0
  338. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  339. mindspore/ops_generate/{lite_ops_cpp_generator.py → op_def/lite_ops_cpp_generator.py} +47 -11
  340. mindspore/ops_generate/{ops_def_cc_generator.py → op_def/ops_def_cc_generator.py} +18 -7
  341. mindspore/ops_generate/{ops_def_h_generator.py → op_def/ops_def_h_generator.py} +5 -5
  342. mindspore/ops_generate/{ops_name_h_generator.py → op_def/ops_name_h_generator.py} +30 -15
  343. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  344. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  345. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  346. mindspore/ops_generate/{op_def_py_generator.py → op_def_py/op_def_py_generator.py} +6 -5
  347. mindspore/ops_generate/{op_prim_py_generator.py → op_def_py/op_prim_py_generator.py} +24 -15
  348. mindspore/ops_generate/pyboost/__init__.py +0 -0
  349. mindspore/ops_generate/{auto_grad_impl_cc_generator.py → pyboost/auto_grad_impl_cc_generator.py} +11 -7
  350. mindspore/ops_generate/{auto_grad_reg_cc_generator.py → pyboost/auto_grad_reg_cc_generator.py} +7 -7
  351. mindspore/ops_generate/{gen_pyboost_func.py → pyboost/gen_pyboost_func.py} +40 -16
  352. mindspore/ops_generate/{op_template_parser.py → pyboost/op_template_parser.py} +105 -24
  353. mindspore/ops_generate/{pyboost_functions_cpp_generator.py → pyboost/pyboost_functions_cpp_generator.py} +55 -18
  354. mindspore/ops_generate/{pyboost_functions_h_generator.py → pyboost/pyboost_functions_h_generator.py} +42 -10
  355. mindspore/ops_generate/{pyboost_functions_py_generator.py → pyboost/pyboost_functions_py_generator.py} +6 -6
  356. mindspore/ops_generate/{pyboost_grad_function_cpp_generator.py → pyboost/pyboost_grad_function_cpp_generator.py} +11 -10
  357. mindspore/ops_generate/{pyboost_inner_prim_generator.py → pyboost/pyboost_inner_prim_generator.py} +8 -7
  358. mindspore/ops_generate/{pyboost_native_grad_functions_generator.py → pyboost/pyboost_native_grad_functions_generator.py} +14 -10
  359. mindspore/ops_generate/{pyboost_op_cpp_code_generator.py → pyboost/pyboost_op_cpp_code_generator.py} +140 -53
  360. mindspore/ops_generate/{pyboost_overload_functions_cpp_generator.py → pyboost/pyboost_overload_functions_cpp_generator.py} +28 -15
  361. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +88 -4
  362. mindspore/ops_generate/resources/__init__.py +0 -0
  363. mindspore/ops_generate/resources/resource_list.py +30 -0
  364. mindspore/ops_generate/resources/resource_loader.py +36 -0
  365. mindspore/ops_generate/resources/resource_manager.py +64 -0
  366. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  367. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  368. mindspore/parallel/__init__.py +6 -2
  369. mindspore/parallel/_auto_parallel_context.py +133 -6
  370. mindspore/parallel/_cell_wrapper.py +130 -15
  371. mindspore/parallel/_parallel_serialization.py +95 -4
  372. mindspore/parallel/_ps_context.py +1 -1
  373. mindspore/parallel/_recovery_context.py +7 -2
  374. mindspore/parallel/_tensor.py +142 -18
  375. mindspore/parallel/_utils.py +198 -25
  376. mindspore/parallel/algo_parameter_config.py +3 -3
  377. mindspore/parallel/auto_parallel.py +732 -0
  378. mindspore/parallel/checkpoint_convert.py +159 -0
  379. mindspore/parallel/checkpoint_transform.py +656 -37
  380. mindspore/parallel/cluster/process_entity/_api.py +151 -19
  381. mindspore/parallel/cluster/run.py +1 -1
  382. mindspore/parallel/function/__init__.py +24 -0
  383. mindspore/parallel/function/reshard_func.py +259 -0
  384. mindspore/parallel/nn/__init__.py +25 -0
  385. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  386. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  387. mindspore/parallel/parameter_broadcast.py +24 -13
  388. mindspore/parallel/shard.py +137 -61
  389. mindspore/parallel/transform_safetensors.py +287 -95
  390. mindspore/pgodb140.dll +0 -0
  391. mindspore/pgort140.dll +0 -0
  392. mindspore/profiler/__init__.py +9 -5
  393. mindspore/profiler/analysis/parser/ascend_cann_parser.py +6 -2
  394. mindspore/profiler/analysis/parser/ms_framework_parser.py +4 -4
  395. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -4
  396. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +22 -0
  397. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  398. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +241 -86
  399. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +41 -2
  400. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +33 -35
  401. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +7 -0
  402. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +8 -3
  403. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +141 -30
  404. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +5 -6
  405. mindspore/profiler/common/ascend_msprof_exporter.py +5 -4
  406. mindspore/profiler/common/constant.py +12 -0
  407. mindspore/profiler/common/msprof_cmd_tool.py +42 -23
  408. mindspore/profiler/common/path_manager.py +24 -0
  409. mindspore/profiler/common/profiler_context.py +26 -2
  410. mindspore/profiler/common/profiler_meta_data.py +74 -0
  411. mindspore/profiler/common/profiler_parameters.py +59 -18
  412. mindspore/profiler/common/profiler_path_manager.py +66 -7
  413. mindspore/profiler/dynamic_profiler.py +112 -79
  414. mindspore/profiler/envprofiler.py +26 -1
  415. mindspore/profiler/experimental_config.py +197 -0
  416. mindspore/profiler/mstx.py +57 -14
  417. mindspore/profiler/platform/npu_profiler.py +33 -7
  418. mindspore/profiler/profiler.py +541 -45
  419. mindspore/profiler/profiler_action_controller.py +1 -1
  420. mindspore/profiler/profiler_interface.py +4 -0
  421. mindspore/profiler/schedule.py +57 -22
  422. mindspore/rewrite/api/node.py +15 -13
  423. mindspore/rewrite/api/symbol_tree.py +1 -1
  424. mindspore/run_check/_check_version.py +25 -14
  425. mindspore/run_check/run_check.py +1 -1
  426. mindspore/runtime/__init__.py +2 -2
  427. mindspore/runtime/executor.py +40 -11
  428. mindspore/runtime/memory.py +25 -8
  429. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  430. mindspore/swresample-4.dll +0 -0
  431. mindspore/swscale-6.dll +0 -0
  432. mindspore/tbbmalloc.dll +0 -0
  433. mindspore/tinyxml2.dll +0 -0
  434. mindspore/train/__init__.py +8 -8
  435. mindspore/train/_utils.py +35 -7
  436. mindspore/train/amp.py +1 -1
  437. mindspore/train/callback/__init__.py +2 -2
  438. mindspore/train/callback/_callback.py +2 -16
  439. mindspore/train/callback/_checkpoint.py +24 -40
  440. mindspore/train/callback/_cluster_monitor.py +14 -18
  441. mindspore/train/callback/_flops_collector.py +2 -3
  442. mindspore/train/callback/_history.py +7 -4
  443. mindspore/train/callback/_lambda_callback.py +2 -2
  444. mindspore/train/callback/_landscape.py +0 -3
  445. mindspore/train/callback/_loss_monitor.py +2 -1
  446. mindspore/train/callback/_on_request_exit.py +6 -5
  447. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  448. mindspore/train/callback/_summary_collector.py +8 -13
  449. mindspore/train/callback/_time_monitor.py +2 -1
  450. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +179 -103
  451. mindspore/train/data_sink.py +25 -2
  452. mindspore/train/dataset_helper.py +4 -5
  453. mindspore/train/loss_scale_manager.py +8 -7
  454. mindspore/train/metrics/accuracy.py +3 -3
  455. mindspore/train/metrics/confusion_matrix.py +9 -9
  456. mindspore/train/metrics/error.py +3 -3
  457. mindspore/train/metrics/hausdorff_distance.py +4 -4
  458. mindspore/train/metrics/mean_surface_distance.py +3 -3
  459. mindspore/train/metrics/metric.py +0 -12
  460. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  461. mindspore/train/metrics/precision.py +8 -6
  462. mindspore/train/metrics/recall.py +9 -9
  463. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  464. mindspore/train/mind_ir_pb2.py +19 -12
  465. mindspore/train/model.py +176 -103
  466. mindspore/train/serialization.py +246 -988
  467. mindspore/train/summary/_summary_adapter.py +2 -2
  468. mindspore/train/summary/summary_record.py +1 -1
  469. mindspore/turbojpeg.dll +0 -0
  470. mindspore/utils/__init__.py +3 -2
  471. mindspore/utils/dryrun.py +4 -2
  472. mindspore/utils/hooks.py +81 -0
  473. mindspore/utils/utils.py +138 -4
  474. mindspore/vcmeta.dll +0 -0
  475. mindspore/vcruntime140.dll +0 -0
  476. mindspore/vcruntime140_1.dll +0 -0
  477. mindspore/version.py +1 -1
  478. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/METADATA +2 -1
  479. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/RECORD +483 -438
  480. mindspore/_install_custom.py +0 -43
  481. mindspore/common/_register_for_adapter.py +0 -74
  482. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  483. mindspore/ops/auto_generate/gen_arg_handler.py +0 -136
  484. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  485. mindspore/ops_generate/gen_constants.py +0 -190
  486. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  487. mindspore/ops_generate/ops_primitive_h_generator.py +0 -81
  488. /mindspore/ops_generate/{base_generator.py → common/base_generator.py} +0 -0
  489. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/WHEEL +0 -0
  490. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/entry_points.txt +0 -0
  491. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/top_level.txt +0 -0
@@ -29,7 +29,7 @@ import sys
29
29
  import time
30
30
 
31
31
  from mindspore import log as logger
32
- from ..datasets import Shuffle
32
+ from ..samplers import Shuffle
33
33
  from ...core.config import set_seed
34
34
 
35
35
 
@@ -22,12 +22,61 @@ Users can also define a custom sampler by extending from the Sampler class.
22
22
  import copy
23
23
  import numbers
24
24
 
25
+ from enum import Enum
25
26
  import numpy as np
26
27
  import mindspore._c_dataengine as cde
27
28
  import mindspore.dataset as ds
28
29
  from ..core import validator_helpers as validator
29
30
 
30
31
 
32
+ class Shuffle(str, Enum):
33
+ """Specify the shuffle mode.
34
+
35
+ - ``Shuffle.FALSE`` : Disable the shuffle.
36
+ - ``Shuffle.ADAPTIVE`` : When the number of dataset samples is less than or equal to 100 million,
37
+ global shuffle is used. When the number of dataset samples is greater than 100 million, partial shuffle is used.
38
+ - ``Shuffle.GLOBAL`` : Shuffle both the files and samples.
39
+ - ``Shuffle.PARTIAL`` : Shuffle data with every 1 million samples
40
+ - ``Shuffle.FILES`` : Shuffle files only.
41
+ - ``Shuffle.INFILE`` : Shuffle data within each file.
42
+ """
43
+ FALSE: str = "false"
44
+ ADAPTIVE: str = "adaptive"
45
+ GLOBAL: str = "global"
46
+ PARTIAL: str = "partial"
47
+ FILES: str = "files"
48
+ INFILE: str = "infile"
49
+
50
+
51
+ ShuffleToShuffleMode = {Shuffle.FALSE: cde.ShuffleMode.FALSE,
52
+ Shuffle.ADAPTIVE: cde.ShuffleMode.ADAPTIVE,
53
+ Shuffle.GLOBAL: cde.ShuffleMode.GLOBAL,
54
+ Shuffle.PARTIAL: cde.ShuffleMode.PARTIAL,
55
+ Shuffle.FILES: cde.ShuffleMode.FILES,
56
+ Shuffle.INFILE: cde.ShuffleMode.INFILE}
57
+
58
+
59
+ def shuffle_to_shuffle_mode(shuffle):
60
+ """
61
+ Shuffle Enum to Shuffle Mode
62
+
63
+ Args:
64
+ shuffle (Shuffle): shuffle flag to shuffle mode in C layer
65
+
66
+ Returns:
67
+ ShuffleMode, shuffle mode
68
+ """
69
+ shuffle_mode = cde.ShuffleMode.GLOBAL # Global shuffle
70
+ if not isinstance(shuffle, Shuffle):
71
+ if shuffle is None or shuffle:
72
+ shuffle_mode = cde.ShuffleMode.GLOBAL # Global shuffle
73
+ else:
74
+ shuffle_mode = cde.ShuffleMode.FALSE # No shuffle
75
+ else:
76
+ shuffle_mode = ShuffleToShuffleMode[shuffle]
77
+ return shuffle_mode
78
+
79
+
31
80
  def select_sampler(num_samples, input_sampler, shuffle, num_shards, shard_id):
32
81
  """
33
82
  Create sampler based on user input.
@@ -35,13 +84,16 @@ def select_sampler(num_samples, input_sampler, shuffle, num_shards, shard_id):
35
84
  Args:
36
85
  num_samples (int): Number of samples.
37
86
  input_sampler (Union[Iterable, Sampler]): Sampler from user.
38
- shuffle (bool): Shuffle.
87
+ shuffle (Shuffle): Shuffle is FALSE / ADAPTIVE / GLOBAL / PARTIAL / FILES / INFILE
39
88
  num_shards (int): Number of shard for sharding.
40
89
  shard_id (int): Shard ID.
41
90
 
42
91
  Returns:
43
92
  Sampler, sampler selected based on user input.
44
93
  """
94
+ if input_sampler is None and shuffle not in (Shuffle.FALSE, Shuffle.ADAPTIVE, Shuffle.GLOBAL, Shuffle.PARTIAL,
95
+ Shuffle.FILES, Shuffle.INFILE):
96
+ raise RuntimeError("The input parameter shuffle: {} is not valid.".format(shuffle))
45
97
 
46
98
  if input_sampler is not None:
47
99
  # If the user provided a sampler, then it doesn't matter what the other args are because
@@ -67,23 +119,14 @@ def select_sampler(num_samples, input_sampler, shuffle, num_shards, shard_id):
67
119
  if isinstance(input_sampler, int):
68
120
  return SubsetSampler([input_sampler])
69
121
  raise TypeError('Unsupported sampler object of type ({})'.format(type(input_sampler)))
70
- if shuffle is None:
71
- if num_shards is not None:
72
- # If shuffle is not specified, sharding enabled, use distributed random sampler
73
- shuffle = True
74
- return DistributedSampler(num_shards, shard_id, shuffle=shuffle, num_samples=num_samples)
75
- # If shuffle is not specified, sharding disabled, use random sampler
76
- if num_samples is not None and num_samples != 0:
77
- return RandomSampler(replacement=True, num_samples=num_samples)
78
- return RandomSampler(num_samples=num_samples)
79
- if shuffle is True:
122
+ if shuffle is not Shuffle.FALSE:
80
123
  if num_shards is not None:
81
124
  # If shuffle enabled, sharding enabled, use distributed random sampler
82
125
  return DistributedSampler(num_shards, shard_id, shuffle=shuffle, num_samples=num_samples)
83
126
  # If shuffle enabled, sharding disabled, use random sampler
84
127
  if num_samples is not None:
85
- return RandomSampler(replacement=True, num_samples=num_samples)
86
- return RandomSampler(num_samples=num_samples)
128
+ return RandomSampler(replacement=True, num_samples=num_samples, shuffle=shuffle)
129
+ return RandomSampler(num_samples=num_samples, shuffle=shuffle)
87
130
  if num_shards is not None:
88
131
  # If shuffle disabled, sharding enabled, use distributed sequential sampler
89
132
  return DistributedSampler(num_shards, shard_id, shuffle=shuffle, num_samples=num_samples)
@@ -110,6 +153,10 @@ class BuiltinSampler:
110
153
  Add a sub-sampler for given sampler. The parent will receive all data from the
111
154
  output of sub-sampler sampler and apply its sample logic to return new samples.
112
155
 
156
+ Note:
157
+ - If a child sampler is added and it has a shuffle option, its value cannot be ``Shuffle.PARTIAL`` .
158
+ Additionally, the parent sampler's shuffle value must be ``Shuffle.GLOBAL`` .
159
+
113
160
  Args:
114
161
  sampler (Sampler): Object used to choose samples from the dataset. Only builtin
115
162
  samplers(:class:`mindspore.dataset.DistributedSampler` ,
@@ -127,6 +174,15 @@ class BuiltinSampler:
127
174
  """
128
175
  if self.child_sampler is not None:
129
176
  raise RuntimeError("Cannot add child sampler, this sampler already has a child.")
177
+
178
+ if sampler is not None and sampler.get_shuffle_mode() == Shuffle.PARTIAL:
179
+ raise RuntimeError("When multiple samplers are used, ensure that the shuffle of the input sampler "
180
+ "must not be Shuffle.PARTIAL.")
181
+
182
+ if self.get_shuffle_mode() != Shuffle.GLOBAL and self.get_shuffle_mode() != Shuffle.FALSE:
183
+ raise RuntimeError("When multiple samplers are used, ensure that the shuffle of the current sampler "
184
+ "must be Shuffle.FALSE or Shuffle.GLOBAL, but got: {}.".format(self.get_shuffle_mode()))
185
+
130
186
  self.child_sampler = sampler
131
187
 
132
188
  def get_child(self):
@@ -229,6 +285,10 @@ class BuiltinSampler:
229
285
 
230
286
  return self.num_samples
231
287
 
288
+ def get_shuffle_mode(self):
289
+ """ Not implemented. """
290
+ return Shuffle.FALSE
291
+
232
292
 
233
293
  class Sampler(BuiltinSampler):
234
294
  """
@@ -255,6 +315,8 @@ class Sampler(BuiltinSampler):
255
315
  self.dataset_size = 0
256
316
  self.child_sampler = None
257
317
  self.num_samples = num_samples
318
+ if self.num_samples is None and hasattr(self, '__len__'):
319
+ self.num_samples = len(self)
258
320
  self.batch_sizes = []
259
321
 
260
322
  def __iter__(self):
@@ -271,32 +333,30 @@ class Sampler(BuiltinSampler):
271
333
 
272
334
  # Initialization handshake callback
273
335
  # Do not override this method!
274
- def _handshake(self, ds_size, num_samples):
336
+ def _handshake(self, ds_size):
275
337
  self.dataset_size = ds_size
276
- self.num_samples = num_samples
277
338
 
278
- # Indices fetcher
279
- # Do not override this method!
280
- # pylint: disable=missing-docstring
281
- def _get_indices(self):
282
- sampler_iter = iter(self)
339
+ def get_indices(self):
340
+ """
341
+ Get the indices of the sampler.
342
+
343
+ Do not override this method!
344
+ """
283
345
  ret = []
284
346
  batch_sizes = []
285
- for _ in range(self.num_samples):
286
- try:
287
- idx = next(sampler_iter)
288
- # The idx can be either a number (for sampler) or a list (for batch sampler).
289
- # If number, we convert it to list first. So they can be handled in the same way.
290
- if isinstance(idx, numbers.Number):
291
- idx = [idx]
292
- # normal sampler does not have batch sizes
293
- batch_sizes.append(0)
294
- else:
295
- # Using extend instead of append will flatten the list, so we need to save the
296
- # batch size information here.
297
- batch_sizes.append(len(idx))
298
- ret.extend(idx)
299
- except StopIteration:
347
+ for count, idx in enumerate(self):
348
+ # The idx can be either a number (for sampler) or a list (for batch sampler).
349
+ # If number, we convert it to list first. So they can be handled in the same way.
350
+ if isinstance(idx, numbers.Number):
351
+ idx = [idx]
352
+ # normal sampler does not have batch sizes
353
+ batch_sizes.append(0)
354
+ else:
355
+ # Using extend instead of append will flatten the list, so we need to save the
356
+ # batch size information here.
357
+ batch_sizes.append(len(idx))
358
+ ret.extend(idx)
359
+ if self.num_samples is not None and count + 1 >= self.num_samples:
300
360
  break
301
361
  self.batch_sizes.append(batch_sizes)
302
362
  indices = np.array(ret)
@@ -345,20 +405,71 @@ class Sampler(BuiltinSampler):
345
405
  return self.child_sampler.is_sharded()
346
406
 
347
407
  def get_num_samples(self):
348
- if self.num_samples is None:
349
- return None
350
- return self._get_indices().size
408
+ if self.num_samples is not None:
409
+ return self.num_samples
410
+ # deepcopy self to avoid changing the random state
411
+ fake_sampler = copy.deepcopy(self)
412
+ fake_sampler.get_indices()
413
+ return len(fake_sampler.batch_sizes[-1])
351
414
 
352
415
 
353
416
  class DistributedSampler(BuiltinSampler):
354
417
  """
355
418
  A sampler that accesses a shard of the dataset, it helps divide dataset into multi-subset for distributed training.
356
419
 
420
+ Note:
421
+ The shuffling modes supported for different datasets are as follows:
422
+
423
+ .. list-table:: List of support for shuffling mode
424
+ :widths: 50 50 50 50
425
+ :header-rows: 1
426
+
427
+ * - Shuffling Mode
428
+ - MindDataset
429
+ - TFRecordDataset
430
+ - Others
431
+ * - ``Shuffle.ADAPTIVE``
432
+ - Supported
433
+ - Not Supported
434
+ - Not Supported
435
+ * - ``Shuffle.GLOBAL``
436
+ - Supported
437
+ - Supported
438
+ - Supported
439
+ * - ``Shuffle.PARTIAL``
440
+ - Supported
441
+ - Not Supported
442
+ - Not Supported
443
+ * - ``Shuffle.FILES``
444
+ - Supported
445
+ - Supported
446
+ - Not Supported
447
+ * - ``Shuffle.INFILE``
448
+ - Supported
449
+ - Not Supported
450
+ - Not Supported
451
+
357
452
  Args:
358
453
  num_shards (int): Number of shards to divide the dataset into.
359
454
  shard_id (int): Shard ID of the current shard, which should within the range of [0, `num_shards` - 1].
360
- shuffle (bool, optional): If True, the indices are shuffled, otherwise it will not be shuffled.
361
- Default: ``True``.
455
+ shuffle (Union[bool, Shuffle], optional): Specify the shuffle mode.
456
+ Default: ``True``, performs ``mindspore.dataset.Shuffle.GLOBAL`` . If `shuffle` is ``False`` ,
457
+ no shuffling will be performed.
458
+ There are several levels of shuffling, desired shuffle enum defined by :class:`mindspore.dataset.Shuffle` .
459
+
460
+ - ``Shuffle.ADAPTIVE`` : When the number of dataset samples is less than or equal to 100 million,
461
+ ``Shuffle.GLOBAL`` is used. When the number of dataset samples is greater than 100
462
+ million, ``Shuffle.PARTIAL`` is used. The shuffle is performed once every 1 million samples.
463
+
464
+ - ``Shuffle.GLOBAL`` : Global shuffle of all rows of data in dataset. The memory usage is large.
465
+
466
+ - ``Shuffle.PARTIAL`` : Partial shuffle of data in dataset for every 1 million samples.
467
+ The memory usage is less than ``Shuffle.GLOBAL`` .
468
+
469
+ - ``Shuffle.FILES`` : Shuffle the file sequence but keep the order of data within each file.
470
+
471
+ - ``Shuffle.INFILE`` : Keep the file sequence the same but shuffle the data within each file.
472
+
362
473
  num_samples (int, optional): The number of samples to draw. Default: ``None``, which means sample all elements.
363
474
  offset(int, optional): The starting shard ID where the elements in the dataset are sent to, which
364
475
  should be no more than `num_shards` . This parameter is only valid when a ConcatDataset takes
@@ -368,7 +479,7 @@ class DistributedSampler(BuiltinSampler):
368
479
  Raises:
369
480
  TypeError: If `num_shards` is not of type int.
370
481
  TypeError: If `shard_id` is not of type int.
371
- TypeError: If `shuffle` is not of type bool.
482
+ TypeError: If `shuffle` is not of type bool or Shuffle.
372
483
  TypeError: If `num_samples` is not of type int.
373
484
  TypeError: If `offset` is not of type int.
374
485
  ValueError: If `num_samples` is a negative value.
@@ -392,8 +503,9 @@ class DistributedSampler(BuiltinSampler):
392
503
  if not isinstance(shard_id, int):
393
504
  raise TypeError("shard_id must be integer but was: {}.".format(shard_id))
394
505
 
395
- if not isinstance(shuffle, bool):
396
- raise TypeError("shuffle must be a boolean value but was: {}.".format(shuffle))
506
+ if not isinstance(shuffle, bool) and shuffle not in (Shuffle.FALSE, Shuffle.ADAPTIVE, Shuffle.GLOBAL,
507
+ Shuffle.PARTIAL, Shuffle.FILES, Shuffle.INFILE):
508
+ raise TypeError("shuffle must be a boolean value or valid shuffle mode but was: {}.".format(shuffle))
397
509
 
398
510
  if num_samples is not None:
399
511
  if not isinstance(num_samples, int):
@@ -407,7 +519,11 @@ class DistributedSampler(BuiltinSampler):
407
519
 
408
520
  self.num_shards = num_shards
409
521
  self.shard_id = shard_id
522
+
523
+ if isinstance(shuffle, bool):
524
+ shuffle = Shuffle.GLOBAL if shuffle is True else Shuffle.FALSE
410
525
  self.shuffle = shuffle
526
+
411
527
  # get seed in distributed scenario
412
528
  # Example 1. if user set seeds by ds.config.set_seed(4321), then seed 4321 is used
413
529
  # Example 2. if user does not set the seed, then existing or default seed (like 5489) is used
@@ -419,11 +535,18 @@ class DistributedSampler(BuiltinSampler):
419
535
  """ Parse the sampler."""
420
536
  num_samples = self.num_samples if self.num_samples is not None else 0
421
537
  shuffle = self.shuffle if self.shuffle is not None else True
538
+
539
+ if isinstance(shuffle, bool):
540
+ shuffle = Shuffle.GLOBAL if shuffle else Shuffle.FALSE
541
+
542
+ if shuffle not in (Shuffle.FALSE, Shuffle.GLOBAL):
543
+ raise RuntimeError("The shuffle mode: {} is not supported with current dataset.".format(self.shuffle))
544
+
422
545
  offset = self.offset if self.offset is not None else -1
423
546
  # each time user calls create_dict_iterator() (to do repeat) sampler would get a different seed to shuffle
424
547
  self.seed += 1
425
548
  c_sampler = cde.DistributedSamplerObj(self.num_shards, self.shard_id,
426
- shuffle, num_samples, self.seed, offset, True)
549
+ shuffle_to_shuffle_mode(shuffle), num_samples, self.seed, offset, True)
427
550
  c_child_sampler = self.parse_child()
428
551
  c_sampler.add_child(c_child_sampler)
429
552
  return c_sampler
@@ -432,7 +555,14 @@ class DistributedSampler(BuiltinSampler):
432
555
  """ Parse the sampler for MindRecord."""
433
556
  num_samples = self.num_samples if self.num_samples is not None else 0
434
557
  shuffle = self.shuffle if self.shuffle is not None else True
435
- c_sampler = cde.MindrecordDistributedSampler(self.num_shards, self.shard_id, shuffle,
558
+
559
+ # convert shuffle=True to Shuffle.ADAPTIVE, convert shuffle=False to Shuffle.FALSE
560
+ if isinstance(shuffle, bool):
561
+ if shuffle:
562
+ shuffle = Shuffle.ADAPTIVE
563
+ else:
564
+ shuffle = Shuffle.FALSE
565
+ c_sampler = cde.MindrecordDistributedSampler(self.num_shards, self.shard_id, shuffle_to_shuffle_mode(shuffle),
436
566
  self.seed, num_samples, self.offset)
437
567
  c_child_sampler = self.parse_child_for_minddataset()
438
568
  c_sampler.add_child(c_child_sampler)
@@ -441,7 +571,9 @@ class DistributedSampler(BuiltinSampler):
441
571
 
442
572
  def is_shuffled(self):
443
573
  if self.child_sampler is None:
444
- return self.shuffle
574
+ if self.shuffle == Shuffle.FALSE:
575
+ return False
576
+ return True
445
577
 
446
578
  return self.child_sampler.is_shuffled()
447
579
 
@@ -455,6 +587,10 @@ class DistributedSampler(BuiltinSampler):
455
587
  self.offset = offset
456
588
  return self
457
589
 
590
+ def get_shuffle_mode(self):
591
+ """Get the shuffle mode"""
592
+ return self.shuffle
593
+
458
594
 
459
595
  class PKSampler(BuiltinSampler):
460
596
  """
@@ -543,19 +679,72 @@ class PKSampler(BuiltinSampler):
543
679
  c_sampler.set_num_samples(num_samples)
544
680
  return c_sampler
545
681
 
682
+ def get_shuffle_mode(self):
683
+ """Get the shuffle mode"""
684
+ return Shuffle.FALSE
685
+
546
686
 
547
687
  class RandomSampler(BuiltinSampler):
548
688
  """
549
689
  Samples the elements randomly.
550
690
 
691
+ Note:
692
+ The shuffling modes supported for different datasets are as follows:
693
+
694
+ .. list-table:: List of support for shuffling mode
695
+ :widths: 50 50 50 50
696
+ :header-rows: 1
697
+
698
+ * - Shuffling Mode
699
+ - MindDataset
700
+ - TFRecordDataset
701
+ - Others
702
+ * - ``Shuffle.ADAPTIVE``
703
+ - Supported
704
+ - Not Supported
705
+ - Not Supported
706
+ * - ``Shuffle.GLOBAL``
707
+ - Supported
708
+ - Supported
709
+ - Supported
710
+ * - ``Shuffle.PARTIAL``
711
+ - Supported
712
+ - Not Supported
713
+ - Not Supported
714
+ * - ``Shuffle.FILES``
715
+ - Supported
716
+ - Supported
717
+ - Not Supported
718
+ * - ``Shuffle.INFILE``
719
+ - Supported
720
+ - Not Supported
721
+ - Not Supported
722
+
551
723
  Args:
552
724
  replacement (bool, optional): If True, put the sample ID back for the next draw. Default: ``False``.
553
725
  num_samples (int, optional): Number of elements to sample. Default: ``None`` , which means sample all elements.
726
+ shuffle (Shuffle, optional): Specify the shuffle mode.
727
+ Default: ``Shuffle.GLOBAL``, Global shuffle of all rows of data in dataset.
728
+ There are several levels of shuffling, desired shuffle enum defined by :class:`mindspore.dataset.Shuffle` .
729
+
730
+ - ``Shuffle.ADAPTIVE`` : When the number of dataset samples is less than or equal to 100 million,
731
+ ``Shuffle.GLOBAL`` is used. When the number of dataset samples is greater than 100
732
+ million, ``Shuffle.PARTIAL`` is used. The shuffle is performed once every 1 million samples.
733
+
734
+ - ``Shuffle.GLOBAL`` : Global shuffle of all rows of data in dataset. The memory usage is large.
735
+
736
+ - ``Shuffle.PARTIAL`` : Partial shuffle of data in dataset for every 1 million samples.
737
+ The memory usage is less than ``Shuffle.GLOBAL`` .
738
+
739
+ - ``Shuffle.FILES`` : Shuffle the file sequence but keep the order of data within each file.
740
+
741
+ - ``Shuffle.INFILE`` : Keep the file sequence the same but shuffle the data within each file.
554
742
 
555
743
  Raises:
556
744
  TypeError: If `replacement` is not of type bool.
557
745
  TypeError: If `num_samples` is not of type int.
558
746
  ValueError: If `num_samples` is a negative value.
747
+ TypeError: If `shuffle` is not of type Shuffle.
559
748
 
560
749
  Examples:
561
750
  >>> import mindspore.dataset as ds
@@ -566,7 +755,7 @@ class RandomSampler(BuiltinSampler):
566
755
  ... sampler=sampler)
567
756
  """
568
757
 
569
- def __init__(self, replacement=False, num_samples=None):
758
+ def __init__(self, replacement=False, num_samples=None, shuffle=Shuffle.GLOBAL):
570
759
  if not isinstance(replacement, bool):
571
760
  raise TypeError("replacement must be a boolean value but was: {}.".format(replacement))
572
761
 
@@ -577,6 +766,10 @@ class RandomSampler(BuiltinSampler):
577
766
  raise ValueError("num_samples exceeds the boundary between {} and {}(INT64_MAX)!"
578
767
  .format(0, validator.INT64_MAX))
579
768
 
769
+ if shuffle not in (Shuffle.ADAPTIVE, Shuffle.GLOBAL, Shuffle.PARTIAL, Shuffle.FILES, Shuffle.INFILE):
770
+ raise TypeError("shuffle must be valid shuffle mode but was: {}.".format(shuffle))
771
+ self.shuffle = shuffle
772
+
580
773
  self.deterministic = False
581
774
  self.replacement = replacement
582
775
  self.reshuffle_each_epoch = True
@@ -586,7 +779,11 @@ class RandomSampler(BuiltinSampler):
586
779
  """ Parse the sampler."""
587
780
  num_samples = self.num_samples if self.num_samples is not None else 0
588
781
  replacement = self.replacement if self.replacement is not None else False
589
- c_sampler = cde.RandomSamplerObj(replacement, num_samples, self.reshuffle_each_epoch)
782
+ # convert shuffle=True to Shuffle.GLOBAL, convert shuffle=False to Shuffle.FALSE
783
+ if self.shuffle is not Shuffle.GLOBAL:
784
+ raise RuntimeError("The shuffle mode: {} is not supported with current dataset.".format(self.shuffle))
785
+ c_sampler = cde.RandomSamplerObj(replacement, num_samples, self.reshuffle_each_epoch,
786
+ shuffle_to_shuffle_mode(self.shuffle))
590
787
  c_child_sampler = self.parse_child()
591
788
  c_sampler.add_child(c_child_sampler)
592
789
  return c_sampler
@@ -594,7 +791,15 @@ class RandomSampler(BuiltinSampler):
594
791
  def parse_for_minddataset(self):
595
792
  """Parse the sampler for MindRecord."""
596
793
  num_samples = self.num_samples if self.num_samples is not None else 0
597
- c_sampler = cde.MindrecordRandomSampler(num_samples, self.replacement, self.reshuffle_each_epoch)
794
+ shuffle = self.shuffle if self.shuffle is not None else True
795
+ # convert shuffle=True to Shuffle.ADAPTIVE, convert shuffle=False to Shuffle.FALSE
796
+ if isinstance(shuffle, bool):
797
+ if shuffle:
798
+ shuffle = Shuffle.ADAPTIVE
799
+ else:
800
+ raise RuntimeError("The shuffle: False is invalid for RandomSampler.")
801
+ c_sampler = cde.MindrecordRandomSampler(num_samples, self.replacement, self.reshuffle_each_epoch,
802
+ shuffle_to_shuffle_mode(shuffle))
598
803
  c_child_sampler = self.parse_child_for_minddataset()
599
804
  c_sampler.add_child(c_child_sampler)
600
805
  c_sampler.set_num_samples(num_samples)
@@ -609,6 +814,10 @@ class RandomSampler(BuiltinSampler):
609
814
 
610
815
  return self.child_sampler.is_sharded()
611
816
 
817
+ def get_shuffle_mode(self):
818
+ """Get the shuffle mode"""
819
+ return self.shuffle
820
+
612
821
 
613
822
  class SequentialSampler(BuiltinSampler):
614
823
  """
@@ -678,6 +887,10 @@ class SequentialSampler(BuiltinSampler):
678
887
 
679
888
  return self.child_sampler.is_sharded()
680
889
 
890
+ def get_shuffle_mode(self):
891
+ """Get the shuffle mode"""
892
+ return Shuffle.FALSE
893
+
681
894
 
682
895
  class SubsetSampler(BuiltinSampler):
683
896
  """
@@ -767,6 +980,10 @@ class SubsetSampler(BuiltinSampler):
767
980
 
768
981
  return min(len(self.indices), num_samples)
769
982
 
983
+ def get_shuffle_mode(self):
984
+ """Get the shuffle mode"""
985
+ return Shuffle.FALSE
986
+
770
987
 
771
988
  class SubsetRandomSampler(SubsetSampler):
772
989
  """
@@ -809,6 +1026,10 @@ class SubsetRandomSampler(SubsetSampler):
809
1026
  c_sampler.set_num_samples(self.get_num_samples())
810
1027
  return c_sampler
811
1028
 
1029
+ def get_shuffle_mode(self):
1030
+ """Get the shuffle mode"""
1031
+ return Shuffle.GLOBAL
1032
+
812
1033
 
813
1034
  class IterSampler(Sampler):
814
1035
  """
@@ -837,12 +1058,8 @@ class IterSampler(Sampler):
837
1058
  """
838
1059
 
839
1060
  def __init__(self, sampler, num_samples=None):
840
- if num_samples is None:
841
- if hasattr(sampler, "__len__"):
842
- num_samples = len(sampler)
843
- else:
844
- # counting on a copied sampler to prevent changing the random state of the original one
845
- num_samples = len(list(copy.deepcopy(sampler)))
1061
+ if num_samples is None and hasattr(sampler, '__len__'):
1062
+ num_samples = len(sampler)
846
1063
  super().__init__(num_samples=num_samples)
847
1064
  self.sampler = sampler
848
1065
 
@@ -856,8 +1073,9 @@ class WeightedRandomSampler(BuiltinSampler):
856
1073
 
857
1074
  Args:
858
1075
  weights (list[float, int]): A sequence of weights, not necessarily summing up to 1.
859
- num_samples (int, optional): Number of elements to sample. Default: ``None`` , which means sample all elements.
860
- replacement (bool): If ``True``, put the sample ID back for the next draw. Default: ``True``.
1076
+ num_samples (int, optional): Number of elements to sample. Default: ``None`` ,
1077
+ which means sample all elements.
1078
+ replacement (bool, optional): If ``True``, put the sample ID back for the next draw. Default: ``True``.
861
1079
 
862
1080
  Raises:
863
1081
  TypeError: If elements of `weights` are not of type number.
@@ -917,3 +1135,7 @@ class WeightedRandomSampler(BuiltinSampler):
917
1135
  return False
918
1136
 
919
1137
  return self.child_sampler.is_sharded()
1138
+
1139
+ def get_shuffle_mode(self):
1140
+ """Get the shuffle mode"""
1141
+ return Shuffle.GLOBAL
@@ -63,7 +63,8 @@ def serialize(dataset, json_filepath=""):
63
63
 
64
64
  def deserialize(input_dict=None, json_filepath=None):
65
65
  """
66
- Construct dataset pipeline from a JSON file produced by dataset serialize function.
66
+ Deserialize the data processing pipeline, the api accepts a Python dictionary or
67
+ a JSON file generated by :func:`mindspore.dataset.serialize`.
67
68
 
68
69
  Args:
69
70
  input_dict (dict): A Python dictionary containing a serialized dataset graph. Default: ``None``.
@@ -1133,9 +1133,13 @@ def check_generator_dataset(method):
1133
1133
  raise ValueError("Neither columns_names nor schema are provided.")
1134
1134
 
1135
1135
  if schema is not None:
1136
+ logger.warning("'schema' is deprecated from version 2.6 and will be removed in a future version.")
1136
1137
  if not isinstance(schema, (datasets.Schema, str)):
1137
1138
  raise ValueError("schema should be a path to schema file or a schema object.")
1138
1139
 
1140
+ if param_dict.get('column_types') is not None:
1141
+ logger.warning("'column_types' is deprecated from version 2.6 and will be removed in a future version.")
1142
+
1139
1143
  # check optional argument
1140
1144
  nreq_param_int = ["max_rowsize", "num_samples", "num_parallel_workers", "num_shards", "shard_id"]
1141
1145
  validate_dataset_param_value(nreq_param_int, param_dict, int)
@@ -1146,6 +1150,7 @@ def check_generator_dataset(method):
1146
1150
 
1147
1151
  max_rowsize = param_dict.get("max_rowsize")
1148
1152
  if max_rowsize is not None:
1153
+ logger.warning("'max_rowsize' is deprecated from version 2.6 and will be removed in a future version.")
1149
1154
  check_value(max_rowsize, [-1, INT32_MAX], "max_rowsize")
1150
1155
 
1151
1156
  num_shards = param_dict.get("num_shards")
@@ -1345,6 +1350,8 @@ def check_batch(method):
1345
1350
  check_num_parallel_workers(num_parallel_workers)
1346
1351
  type_check(drop_remainder, (bool,), "drop_remainder")
1347
1352
 
1353
+ if max_rowsize is not None:
1354
+ logger.warning("'max_rowsize' is deprecated from version 2.6 and will be removed in a future version.")
1348
1355
  check_max_rowsize(max_rowsize)
1349
1356
 
1350
1357
  if (input_columns is not None) and (per_batch_map is None):
@@ -1523,6 +1530,9 @@ def check_map(method):
1523
1530
  check_num_parallel_workers(num_parallel_workers)
1524
1531
  type_check(python_multiprocessing, (bool,), "python_multiprocessing")
1525
1532
  check_cache_option(cache)
1533
+
1534
+ if max_rowsize is not None:
1535
+ logger.warning("'max_rowsize' is deprecated from version 2.6 and will be removed in a future version.")
1526
1536
  check_max_rowsize(max_rowsize)
1527
1537
  if offload is not None:
1528
1538
  type_check(offload, (bool,), "offload")
@@ -12,10 +12,11 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  """
15
- This module is to support text processing for NLP. It includes two parts:
16
- text transforms and utils. text transforms is a high performance
17
- NLP text processing module which is developed with ICU4C and cppjieba.
18
- utils provides some general methods for NLP text processing.
15
+ This module is designed for text data augmentation and comprises two submodules: `transforms` and `utils`.
16
+
17
+ `transforms` is a high-performance text data augmentation lib that supports common text data augmentation operations.
18
+
19
+ `utils` provides a collection of utility methods for text processing.
19
20
 
20
21
  Common imported modules in corresponding API examples are as follows:
21
22
 
@@ -33,9 +34,9 @@ The data transform operation can be executed in the data processing pipeline or
33
34
 
34
35
  - Pipeline mode is generally used to process big datasets. Examples refer to
35
36
  `introduction to data processing pipeline <https://www.mindspore.cn/docs/en/master/api_python/
36
- mindspore.dataset.html#introduction-to-data-processing-pipeline>`_ .
37
+ mindspore.dataset.loading.html#introduction-to-data-processing-pipeline>`_ .
37
38
  - Eager mode is more like a function call to process data. Examples refer to
38
- `Lightweight Data Processing <https://www.mindspore.cn/docs/en/master/model_train/dataset/eager.html>`_ .
39
+ `Lightweight Data Processing <https://www.mindspore.cn/tutorials/en/master/dataset/eager.html>`_ .
39
40
  """
40
41
  import platform
41
42