mindspore 2.1.0__cp37-cp37m-win_amd64.whl → 2.2.11__cp37-cp37m-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 (511) 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 +4 -1
  5. mindspore/_c_dataengine.cp37-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp37-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp37-win_amd64.pyd +0 -0
  8. mindspore/_check_jit_forbidden_api.py +3 -1
  9. mindspore/_checkparam.py +23 -29
  10. mindspore/_extends/graph_kernel/__init__.py +0 -1
  11. mindspore/_extends/graph_kernel/model/graph_split.py +84 -76
  12. mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
  13. mindspore/_extends/graph_kernel/splitter.py +4 -11
  14. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
  15. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +84 -67
  16. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
  17. mindspore/_extends/parallel_compile/akg_compiler/util.py +10 -7
  18. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
  19. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +6 -5
  20. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
  21. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
  22. mindspore/_extends/parse/__init__.py +13 -15
  23. mindspore/_extends/parse/namespace.py +7 -33
  24. mindspore/_extends/parse/parser.py +67 -72
  25. mindspore/_extends/parse/resources.py +1 -1
  26. mindspore/_extends/parse/standard_method.py +86 -106
  27. mindspore/_extends/parse/trope.py +1 -1
  28. mindspore/_extends/remote/kernel_build_server.py +25 -7
  29. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  30. mindspore/_install_custom.py +43 -0
  31. mindspore/amp.py +47 -11
  32. mindspore/atlprov.dll +0 -0
  33. mindspore/boost/boost.py +1 -8
  34. mindspore/boost/boost_cell_wrapper.py +3 -2
  35. mindspore/boost/grad_accumulation.py +1 -1
  36. mindspore/boost/group_loss_scale_manager.py +8 -7
  37. mindspore/c1.dll +0 -0
  38. mindspore/c1xx.dll +0 -0
  39. mindspore/c2.dll +0 -0
  40. mindspore/common/__init__.py +5 -3
  41. mindspore/common/_jit_fallback_utils.py +6 -0
  42. mindspore/common/_register_for_adapter.py +2 -0
  43. mindspore/common/_register_for_tensor.py +2 -2
  44. mindspore/common/_stub_tensor.py +13 -0
  45. mindspore/common/_utils.py +29 -0
  46. mindspore/common/api.py +174 -259
  47. mindspore/common/auto_dynamic_shape.py +494 -0
  48. mindspore/common/dtype.py +18 -11
  49. mindspore/common/dump.py +6 -4
  50. mindspore/common/initializer.py +14 -14
  51. mindspore/common/jit_config.py +33 -15
  52. mindspore/common/lazy_inline.py +126 -7
  53. mindspore/common/mindir_util.py +101 -0
  54. mindspore/common/parameter.py +51 -41
  55. mindspore/common/seed.py +4 -4
  56. mindspore/common/sparse_tensor.py +13 -14
  57. mindspore/common/tensor.py +243 -165
  58. mindspore/communication/__init__.py +7 -4
  59. mindspore/communication/_comm_helper.py +83 -4
  60. mindspore/communication/management.py +152 -84
  61. mindspore/config/op_info.config +14 -3
  62. mindspore/context.py +152 -61
  63. mindspore/dataset/__init__.py +5 -5
  64. mindspore/dataset/audio/__init__.py +2 -2
  65. mindspore/dataset/audio/transforms.py +52 -52
  66. mindspore/dataset/callback/ds_callback.py +16 -2
  67. mindspore/dataset/core/config.py +68 -51
  68. mindspore/dataset/engine/cache_client.py +33 -7
  69. mindspore/dataset/engine/datasets.py +250 -112
  70. mindspore/dataset/engine/datasets_audio.py +43 -211
  71. mindspore/dataset/engine/datasets_standard_format.py +16 -35
  72. mindspore/dataset/engine/datasets_text.py +43 -67
  73. mindspore/dataset/engine/datasets_user_defined.py +86 -100
  74. mindspore/dataset/engine/datasets_vision.py +219 -1029
  75. mindspore/dataset/engine/iterators.py +11 -4
  76. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
  77. mindspore/dataset/engine/obs/util.py +3 -0
  78. mindspore/dataset/engine/samplers.py +1 -1
  79. mindspore/dataset/engine/validators.py +19 -5
  80. mindspore/dataset/text/__init__.py +3 -3
  81. mindspore/dataset/text/transforms.py +101 -127
  82. mindspore/dataset/text/utils.py +205 -138
  83. mindspore/dataset/transforms/__init__.py +1 -1
  84. mindspore/dataset/transforms/py_transforms_util.py +40 -12
  85. mindspore/dataset/transforms/transforms.py +95 -40
  86. mindspore/dataset/utils/browse_dataset.py +8 -2
  87. mindspore/dataset/utils/line_reader.py +17 -19
  88. mindspore/dataset/vision/__init__.py +3 -3
  89. mindspore/dataset/vision/c_transforms.py +6 -3
  90. mindspore/dataset/vision/transforms.py +409 -287
  91. mindspore/dataset/vision/utils.py +13 -14
  92. mindspore/dataset/vision/validators.py +11 -1
  93. mindspore/dnnl.dll +0 -0
  94. mindspore/dpcmi.dll +0 -0
  95. mindspore/experimental/map_parameter.py +14 -0
  96. mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
  97. mindspore/{nn/optim_ex → experimental/optim}/adam.py +60 -67
  98. mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
  99. mindspore/experimental/optim/lr_scheduler.py +1427 -0
  100. mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
  101. mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
  102. mindspore/gen_ops.py +273 -0
  103. mindspore/include/OWNERS +0 -1
  104. mindspore/include/api/data_type.h +2 -1
  105. mindspore/include/api/graph.h +0 -15
  106. mindspore/include/api/kernel.h +2 -0
  107. mindspore/include/api/kernel_api.h +37 -12
  108. mindspore/include/api/model.h +17 -14
  109. mindspore/include/api/status.h +8 -3
  110. mindspore/include/api/types.h +37 -4
  111. mindspore/include/c_api/ms/abstract.h +67 -0
  112. mindspore/include/c_api/ms/attribute.h +197 -0
  113. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  114. mindspore/include/c_api/ms/base/macros.h +32 -0
  115. mindspore/include/c_api/ms/base/status.h +33 -0
  116. mindspore/include/c_api/ms/base/types.h +282 -0
  117. mindspore/include/c_api/ms/context.h +102 -0
  118. mindspore/include/c_api/ms/graph.h +160 -0
  119. mindspore/include/c_api/ms/node.h +606 -0
  120. mindspore/include/c_api/ms/tensor.h +161 -0
  121. mindspore/include/c_api/ms/value.h +84 -0
  122. mindspore/include/dataset/constants.h +6 -5
  123. mindspore/include/dataset/execute.h +23 -13
  124. mindspore/include/dataset/text.h +26 -26
  125. mindspore/include/dataset/transforms.h +13 -13
  126. mindspore/include/dataset/vision.h +60 -60
  127. mindspore/include/dataset/vision_ascend.h +5 -6
  128. mindspore/include/dataset/vision_lite.h +17 -17
  129. mindspore/jpeg62.dll +0 -0
  130. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  131. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  132. mindspore/mindspore_backend.dll +0 -0
  133. mindspore/mindspore_common.dll +0 -0
  134. mindspore/mindspore_core.dll +0 -0
  135. mindspore/mindspore_glog.dll +0 -0
  136. mindspore/mindspore_shared_lib.dll +0 -0
  137. mindspore/msobj140.dll +0 -0
  138. mindspore/mspdb140.dll +0 -0
  139. mindspore/mspdbcore.dll +0 -0
  140. mindspore/mspdbst.dll +0 -0
  141. mindspore/mspft140.dll +0 -0
  142. mindspore/msvcdis140.dll +0 -0
  143. mindspore/msvcp140_1.dll +0 -0
  144. mindspore/msvcp140_2.dll +0 -0
  145. mindspore/msvcp140_atomic_wait.dll +0 -0
  146. mindspore/msvcp140_codecvt_ids.dll +0 -0
  147. mindspore/nn/__init__.py +0 -2
  148. mindspore/nn/cell.py +313 -74
  149. mindspore/nn/dynamic_lr.py +21 -21
  150. mindspore/nn/layer/activation.py +22 -30
  151. mindspore/nn/layer/basic.py +15 -13
  152. mindspore/nn/layer/channel_shuffle.py +1 -1
  153. mindspore/nn/layer/container.py +271 -9
  154. mindspore/nn/layer/conv.py +323 -204
  155. mindspore/nn/layer/dense.py +8 -5
  156. mindspore/nn/layer/embedding.py +33 -27
  157. mindspore/nn/layer/flash_attention.py +61 -95
  158. mindspore/nn/layer/image.py +8 -6
  159. mindspore/nn/layer/math.py +16 -25
  160. mindspore/nn/layer/normalization.py +107 -66
  161. mindspore/nn/layer/padding.py +1 -1
  162. mindspore/nn/layer/pooling.py +131 -109
  163. mindspore/nn/layer/rnn_cells.py +27 -22
  164. mindspore/nn/layer/rnns.py +13 -16
  165. mindspore/nn/layer/thor_layer.py +1 -1
  166. mindspore/nn/layer/transformer.py +221 -154
  167. mindspore/nn/learning_rate_schedule.py +9 -1
  168. mindspore/nn/loss/loss.py +235 -174
  169. mindspore/nn/optim/ada_grad.py +2 -1
  170. mindspore/nn/optim/adadelta.py +1 -0
  171. mindspore/nn/optim/adafactor.py +2 -1
  172. mindspore/nn/optim/adam.py +7 -4
  173. mindspore/nn/optim/adamax.py +3 -2
  174. mindspore/nn/optim/adasum.py +2 -2
  175. mindspore/nn/optim/asgd.py +2 -3
  176. mindspore/nn/optim/ftrl.py +6 -5
  177. mindspore/nn/optim/lamb.py +7 -4
  178. mindspore/nn/optim/lars.py +1 -1
  179. mindspore/nn/optim/lazyadam.py +5 -3
  180. mindspore/nn/optim/momentum.py +2 -1
  181. mindspore/nn/optim/optimizer.py +53 -4
  182. mindspore/nn/optim/proximal_ada_grad.py +3 -4
  183. mindspore/nn/optim/rmsprop.py +4 -3
  184. mindspore/nn/optim/rprop.py +23 -12
  185. mindspore/nn/optim/sgd.py +26 -11
  186. mindspore/nn/optim/thor.py +9 -7
  187. mindspore/nn/probability/bijector/bijector.py +5 -5
  188. mindspore/nn/probability/bijector/power_transform.py +27 -27
  189. mindspore/nn/probability/bijector/softplus.py +3 -3
  190. mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
  191. mindspore/nn/probability/distribution/bernoulli.py +5 -5
  192. mindspore/nn/probability/distribution/beta.py +3 -3
  193. mindspore/nn/probability/distribution/categorical.py +7 -7
  194. mindspore/nn/probability/distribution/cauchy.py +0 -1
  195. mindspore/nn/probability/distribution/distribution.py +3 -3
  196. mindspore/nn/probability/distribution/gamma.py +3 -3
  197. mindspore/nn/probability/distribution/geometric.py +4 -4
  198. mindspore/nn/probability/distribution/gumbel.py +4 -4
  199. mindspore/nn/probability/distribution/log_normal.py +2 -2
  200. mindspore/nn/probability/distribution/logistic.py +2 -2
  201. mindspore/nn/probability/distribution/poisson.py +4 -4
  202. mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
  203. mindspore/nn/probability/distribution/uniform.py +6 -6
  204. mindspore/nn/wrap/__init__.py +4 -2
  205. mindspore/nn/wrap/cell_wrapper.py +87 -34
  206. mindspore/nn/wrap/grad_reducer.py +8 -5
  207. mindspore/nn/wrap/loss_scale.py +105 -42
  208. mindspore/numpy/array_creations.py +1 -2
  209. mindspore/numpy/array_ops.py +3 -2
  210. mindspore/numpy/utils_const.py +5 -5
  211. mindspore/opencv_core452.dll +0 -0
  212. mindspore/opencv_imgcodecs452.dll +0 -0
  213. mindspore/opencv_imgproc452.dll +0 -0
  214. mindspore/ops/_grad_experimental/__init__.py +0 -5
  215. mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
  216. mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
  217. mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
  218. mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
  219. mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
  220. mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
  221. mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
  222. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
  223. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  224. mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
  225. mindspore/ops/_op_impl/aicpu/add.py +3 -3
  226. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  227. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  228. mindspore/ops/_op_impl/{_custom_op/flash_attention/constants.py → aicpu/eps.py} +18 -27
  229. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  230. mindspore/ops/_op_impl/aicpu/linear_sum_assignment.py +21 -2
  231. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  232. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  233. mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
  234. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  235. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  236. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  237. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  238. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  239. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  240. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  241. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
  242. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
  243. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  244. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  245. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  246. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  247. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  248. mindspore/ops/_op_impl/tbe/__init__.py +4 -4
  249. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  250. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  251. mindspore/ops/_primitive_cache.py +1 -1
  252. mindspore/ops/_tracefunc.py +45 -13
  253. mindspore/ops/_utils/utils.py +6 -1
  254. mindspore/ops/_vmap/vmap_array_ops.py +3 -3
  255. mindspore/ops/_vmap/vmap_base.py +3 -3
  256. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  257. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  258. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  259. mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
  260. mindspore/ops/arg_dtype_cast.py +54 -0
  261. mindspore/ops/composite/base.py +37 -10
  262. mindspore/ops/composite/math_ops.py +5 -4
  263. mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
  264. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
  265. mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
  266. mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
  267. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  268. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  269. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  270. mindspore/ops/deprecated.py +304 -0
  271. mindspore/ops/function/__init__.py +4 -1
  272. mindspore/ops/function/array_func.py +174 -193
  273. mindspore/ops/function/clip_func.py +81 -13
  274. mindspore/ops/function/debug_func.py +1 -1
  275. mindspore/ops/function/grad/grad_func.py +18 -9
  276. mindspore/ops/function/image_func.py +10 -4
  277. mindspore/ops/function/linalg_func.py +5 -5
  278. mindspore/ops/function/math_func.py +575 -386
  279. mindspore/ops/function/nn_func.py +568 -260
  280. mindspore/ops/function/random_func.py +88 -57
  281. mindspore/ops/function/sparse_func.py +1 -1
  282. mindspore/ops/function/sparse_unary_func.py +14 -12
  283. mindspore/ops/function/vmap_func.py +6 -5
  284. mindspore/ops/functional.py +15 -10
  285. mindspore/ops/op_info_register.py +244 -25
  286. mindspore/ops/operations/__init__.py +31 -19
  287. mindspore/ops/operations/_grad_ops.py +71 -7
  288. mindspore/ops/operations/_inner_ops.py +350 -17
  289. mindspore/ops/operations/_quant_ops.py +4 -8
  290. mindspore/ops/operations/_sequence_ops.py +42 -0
  291. mindspore/ops/operations/array_ops.py +68 -282
  292. mindspore/ops/operations/comm_ops.py +107 -59
  293. mindspore/ops/operations/custom_ops.py +94 -70
  294. mindspore/ops/operations/debug_ops.py +8 -4
  295. mindspore/ops/operations/image_ops.py +18 -12
  296. mindspore/ops/operations/inner_ops.py +26 -3
  297. mindspore/ops/operations/math_ops.py +192 -144
  298. mindspore/ops/operations/nn_ops.py +857 -489
  299. mindspore/ops/operations/other_ops.py +0 -22
  300. mindspore/ops/operations/random_ops.py +53 -111
  301. mindspore/ops/operations/sparse_ops.py +3 -1
  302. mindspore/ops/primitive.py +24 -18
  303. mindspore/parallel/_auto_parallel_context.py +68 -8
  304. mindspore/parallel/_cost_model_context.py +2 -2
  305. mindspore/parallel/_offload_context.py +17 -3
  306. mindspore/parallel/_parallel_serialization.py +12 -5
  307. mindspore/parallel/_ps_context.py +12 -0
  308. mindspore/parallel/_tensor.py +18 -13
  309. mindspore/parallel/_transformer/layers.py +5 -3
  310. mindspore/parallel/_transformer/loss.py +1 -0
  311. mindspore/parallel/_transformer/moe.py +2 -2
  312. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  313. mindspore/parallel/_transformer/transformer.py +23 -3
  314. mindspore/parallel/_utils.py +11 -7
  315. mindspore/parallel/algo_parameter_config.py +85 -5
  316. mindspore/parallel/checkpoint_transform.py +19 -12
  317. mindspore/parallel/shard.py +21 -14
  318. mindspore/pgodb140.dll +0 -0
  319. mindspore/pgort140.dll +0 -0
  320. mindspore/profiler/common/struct_type.py +3 -3
  321. mindspore/profiler/common/util.py +4 -2
  322. mindspore/profiler/envprofiling.py +1 -1
  323. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  324. mindspore/profiler/parser/ascend_flops_generator.py +2 -2
  325. mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
  326. mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
  327. mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
  328. mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
  329. mindspore/profiler/parser/ascend_op_generator.py +6 -6
  330. mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
  331. mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
  332. mindspore/profiler/parser/base_timeline_generator.py +10 -8
  333. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
  334. mindspore/profiler/parser/flops_parser.py +15 -11
  335. mindspore/profiler/parser/framework_parser.py +38 -22
  336. mindspore/profiler/parser/hccl_parser.py +16 -12
  337. mindspore/profiler/parser/integrator.py +22 -11
  338. mindspore/profiler/parser/memory_usage_parser.py +2 -2
  339. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  340. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  341. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  342. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  343. mindspore/profiler/parser/optime_parser.py +1 -1
  344. mindspore/profiler/parser/profiler_info.py +21 -2
  345. mindspore/profiler/parser/step_trace_parser.py +11 -14
  346. mindspore/profiler/profiling.py +179 -89
  347. mindspore/rewrite/api/node.py +102 -19
  348. mindspore/rewrite/api/node_type.py +5 -1
  349. mindspore/rewrite/api/pattern_engine.py +1 -1
  350. mindspore/rewrite/api/scoped_value.py +9 -17
  351. mindspore/rewrite/api/symbol_tree.py +131 -47
  352. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  353. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  354. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  355. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
  356. mindspore/rewrite/common/rewrite_elog.py +5 -1
  357. mindspore/rewrite/namer.py +33 -24
  358. mindspore/rewrite/namespace.py +14 -5
  359. mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
  360. mindspore/rewrite/node/call_function.py +79 -0
  361. mindspore/rewrite/node/cell_container.py +135 -0
  362. mindspore/rewrite/node/control_flow.py +88 -0
  363. mindspore/rewrite/{node.py → node/node.py} +273 -234
  364. mindspore/rewrite/node/node_manager.py +254 -0
  365. mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
  366. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  367. mindspore/rewrite/parsers/assign_parser.py +216 -221
  368. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  369. mindspore/rewrite/parsers/class_def_parser.py +174 -113
  370. mindspore/rewrite/parsers/constant_parser.py +9 -6
  371. mindspore/rewrite/parsers/container_parser.py +9 -7
  372. mindspore/rewrite/parsers/for_parser.py +42 -21
  373. mindspore/rewrite/parsers/function_def_parser.py +24 -16
  374. mindspore/rewrite/parsers/if_parser.py +28 -24
  375. mindspore/rewrite/parsers/module_parser.py +196 -25
  376. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  377. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  378. mindspore/rewrite/parsers/return_parser.py +6 -6
  379. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  380. mindspore/rewrite/sparsify/utils.py +1 -1
  381. mindspore/rewrite/symbol_tree.py +523 -578
  382. mindspore/rewrite/symbol_tree_builder.py +9 -193
  383. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  384. mindspore/run_check/_check_version.py +6 -4
  385. mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
  386. mindspore/safeguard/rewrite_obfuscation.py +541 -0
  387. mindspore/tbbmalloc.dll +0 -0
  388. mindspore/tinyxml2.dll +0 -0
  389. mindspore/train/_utils.py +7 -3
  390. mindspore/train/amp.py +323 -123
  391. mindspore/train/anf_ir_pb2.py +14 -2
  392. mindspore/train/callback/_backup_and_restore.py +2 -12
  393. mindspore/train/callback/_callback.py +29 -4
  394. mindspore/train/callback/_checkpoint.py +23 -8
  395. mindspore/train/callback/_early_stop.py +2 -2
  396. mindspore/train/callback/_landscape.py +4 -4
  397. mindspore/train/callback/_loss_monitor.py +2 -2
  398. mindspore/train/callback/_on_request_exit.py +2 -2
  399. mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
  400. mindspore/train/callback/_summary_collector.py +15 -8
  401. mindspore/train/callback/_time_monitor.py +58 -5
  402. mindspore/train/data_sink.py +5 -11
  403. mindspore/train/dataset_helper.py +84 -57
  404. mindspore/train/loss_scale_manager.py +2 -2
  405. mindspore/train/metrics/__init__.py +3 -3
  406. mindspore/train/metrics/cosine_similarity.py +1 -1
  407. mindspore/train/metrics/hausdorff_distance.py +3 -2
  408. mindspore/train/metrics/mean_surface_distance.py +3 -2
  409. mindspore/train/metrics/metric.py +39 -19
  410. mindspore/train/metrics/roc.py +2 -2
  411. mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
  412. mindspore/train/mind_ir_pb2.py +85 -36
  413. mindspore/train/model.py +187 -47
  414. mindspore/train/serialization.py +487 -161
  415. mindspore/train/summary/_summary_adapter.py +1 -1
  416. mindspore/train/summary/_writer_pool.py +3 -2
  417. mindspore/train/summary/summary_record.py +37 -17
  418. mindspore/train/train_thor/convert_utils.py +3 -3
  419. mindspore/train/train_thor/dataset_helper.py +1 -1
  420. mindspore/turbojpeg.dll +0 -0
  421. mindspore/vcmeta.dll +0 -0
  422. mindspore/vcruntime140.dll +0 -0
  423. mindspore/vcruntime140_1.dll +0 -0
  424. mindspore/version.py +1 -1
  425. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/METADATA +7 -4
  426. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/RECORD +429 -486
  427. mindspore/_extends/graph_kernel/expander.py +0 -80
  428. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
  429. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  430. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  431. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  432. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  433. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  434. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  435. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  436. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  437. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  438. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  439. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  440. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  441. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  442. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  443. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  444. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  445. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  446. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  447. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  448. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  449. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  450. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  451. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  452. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  453. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  454. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  455. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  456. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  457. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  458. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  459. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  460. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  461. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  462. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  463. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  464. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  465. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  466. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  467. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  468. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  469. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  470. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  471. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  472. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  473. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  474. mindspore/dataset/datapreprocess/__init__.py +0 -20
  475. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  476. mindspore/include/api/net.h +0 -142
  477. mindspore/nn/lr_scheduler.py +0 -262
  478. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
  479. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
  480. mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
  481. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  482. mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
  483. mindspore/ops/_op_impl/_custom_op/flash_attention/__init__.py +0 -0
  484. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +0 -350
  485. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +0 -409
  486. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +0 -578
  487. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +0 -199
  488. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +0 -446
  489. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/__init__.py +0 -0
  490. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/sparse_tiling.py +0 -45
  491. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/strategy.py +0 -67
  492. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +0 -62
  493. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
  494. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
  495. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
  496. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  497. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  498. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
  499. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
  500. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  501. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  502. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
  503. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
  504. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
  505. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
  506. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
  507. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  508. mindspore/rewrite/node_visitor.py +0 -44
  509. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/WHEEL +0 -0
  510. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/entry_points.txt +0 -0
  511. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/top_level.txt +0 -0
@@ -31,7 +31,7 @@ Note: Legacy c_transforms and py_transforms are deprecated but can still be impo
31
31
  from mindspore.dataset.transforms import py_transforms
32
32
 
33
33
  See `Common Transforms
34
- <https://www.mindspore.cn/tutorials/en/r2.1/beginner/transforms.html#common-transforms>`_ tutorial for more details.
34
+ <https://www.mindspore.cn/tutorials/en/r2.2/beginner/transforms.html#common-transforms>`_ tutorial for more details.
35
35
 
36
36
  Descriptions of common data processing terms are as follows:
37
37
 
@@ -18,11 +18,12 @@ Built-in py_transforms_utils functions.
18
18
  import json
19
19
  import random
20
20
  from enum import IntEnum
21
- from types import FunctionType
21
+ from types import FunctionType, MethodType
22
22
  import numpy as np
23
23
 
24
24
  from mindspore import log as logger
25
25
  from ..core.py_util_helpers import is_numpy, ExceptionHandler
26
+ from .. import transforms as t
26
27
 
27
28
 
28
29
  class Implementation(IntEnum):
@@ -212,16 +213,43 @@ class FuncWrapper:
212
213
 
213
214
  def to_json(self):
214
215
  """ Serialize to JSON format """
215
- if isinstance(self.transform, FunctionType):
216
- # User-defined Python functions cannot be fully nor correctly serialized.
217
- # Log a warning, and produce minimal info for the Python UDF, so that serialization of the
218
- # dataset pipeline can continue.
219
- # Note that the serialized JSON output is not valid to be deserialized.
220
- logger.warning("Serialization of user-defined Python functions is not supported. "
221
- "Any produced serialized JSON file output for this dataset pipeline is not valid "
222
- "to be deserialized.")
216
+ # User-defined Python functions cannot be fully nor correctly serialized.
217
+ # Log a warning, and produce minimal info for the Python UDF, so that serialization of the
218
+ # dataset pipeline can continue.
219
+ # Note that the serialized JSON output is not valid to be deserialized.
220
+ udf_python_warning = "Serialization of user-defined Python functions is not supported. " \
221
+ "Any produced serialized JSON file output for this dataset pipeline is not valid " \
222
+ "to be deserialized."
223
+ try:
224
+ if isinstance(self.transform, (FunctionType, MethodType)):
225
+ # common function type(include lambda, class method) / object method
226
+ logger.warning(udf_python_warning)
227
+ json_obj = {}
228
+ json_obj["tensor_op_name"] = self.transform.__name__
229
+ json_obj["python_module"] = self.__class__.__module__
230
+ return json.dumps(json_obj)
231
+ if callable(self.transform) and not isinstance(self.transform, (t.c_transforms.TensorOperation,
232
+ t.py_transforms.PyTensorOperation,
233
+ t.transforms.TensorOperation,
234
+ t.transforms.PyTensorOperation,
235
+ FuncWrapper)):
236
+ # udf callable class
237
+ logger.warning(udf_python_warning)
238
+ json_obj = {}
239
+ json_obj["tensor_op_name"] = type(self.transform).__name__
240
+ json_obj["python_module"] = self.__class__.__module__
241
+ return json.dumps(json_obj)
242
+ # dataset operations
243
+ return self.transform.to_json()
244
+ except Exception as e:
245
+ logger.warning("Skip user-defined Python method which cannot be serialized, reason is: " + str(e))
223
246
  json_obj = {}
224
- json_obj["tensor_op_name"] = self.transform.__name__
225
- json_obj["python_module"] = self.__class__.__module__
247
+ json_obj["tensor_op_name"] = "unknown"
248
+ json_obj["python_module"] = "unknown"
226
249
  return json.dumps(json_obj)
227
- return self.transform.to_json()
250
+
251
+ def release_resource(self):
252
+ # release the executor which is used by current thread/process when
253
+ # use transform in eager mode in map op or batch op
254
+ # this will be call in MapOp::WorkerEntry and BatchOp::WorkerEntry
255
+ t.transforms.clean_unused_executors()
@@ -17,6 +17,8 @@ The module transforms provides common operations, including Compose, OneHot and
17
17
  """
18
18
  import json
19
19
  from abc import ABC
20
+ import os
21
+ import threading
20
22
 
21
23
  import sys
22
24
  from enum import IntEnum
@@ -36,6 +38,28 @@ from ..core.datatypes import mstype_to_detype, nptype_to_detype
36
38
  from ..vision.py_transforms_util import is_pil
37
39
 
38
40
 
41
+ # hold all the executor objects when in training procedure
42
+ # key : pid_tid which distinguishes multiple executors by process_id + thread_id
43
+ # value : executor object which lifecycle will always exist during training
44
+ EXECUTORS_LIST = dict()
45
+
46
+
47
+ # the follow case process / thread exit need call the function
48
+ # 1. user defined dataset with process mode
49
+ # 2. user defined dataset with thread mode
50
+ # 3. user defined transform in map op with process mode
51
+ # 4. user defined transform in map op with thread mode
52
+ # 5. batch op with per_batch_map operation in process mode
53
+ # 6. batch op with per_batch_map operation in thread mode
54
+ def clean_unused_executors():
55
+ """
56
+ clean the unused executor object in UDF or map with PyFunc process / thread mode
57
+ """
58
+ key = str(os.getpid()) + "_" + str(threading.currentThread().ident)
59
+ if key in EXECUTORS_LIST:
60
+ EXECUTORS_LIST.pop(key)
61
+
62
+
39
63
  class TensorOperation:
40
64
  """
41
65
  Base class Tensor Ops
@@ -44,7 +68,7 @@ class TensorOperation:
44
68
  def __init__(self):
45
69
  super().__init__()
46
70
  self.implementation = None
47
- self.callable_op_ = None
71
+ self.device_target = "CPU"
48
72
 
49
73
  def __call__(self, *input_tensor_list):
50
74
  """
@@ -62,9 +86,22 @@ class TensorOperation:
62
86
  except (RuntimeError, TypeError):
63
87
  raise TypeError("Invalid user input. Got {}: {}, cannot be converted into tensor." \
64
88
  .format(type(tensor), tensor))
65
- if not hasattr(self, 'callable_op_') or self.callable_op_ is None:
66
- self.callable_op_ = cde.Execute(self.parse())
67
- output_tensor_list = self.callable_op_(tensor_row)
89
+
90
+ # get or create the executor from EXECUTORS_LIST
91
+ executor = None
92
+ key = str(os.getpid()) + "_" + str(threading.currentThread().ident)
93
+ if key in EXECUTORS_LIST:
94
+ # get the executor by process id and thread id
95
+ executor = EXECUTORS_LIST[key]
96
+ # remove the old transform which in executor and update the new transform
97
+ executor.UpdateOperation(self.parse())
98
+ else:
99
+ # create a new executor by process id and thread_id
100
+ executor = cde.Execute(self.parse())
101
+ # add the executor the global EXECUTORS_LIST
102
+ EXECUTORS_LIST[key] = executor
103
+
104
+ output_tensor_list = executor(tensor_row)
68
105
  output_numpy_list = [x.as_array() for x in output_tensor_list]
69
106
  return output_numpy_list[0] if len(output_numpy_list) == 1 else tuple(output_numpy_list)
70
107
 
@@ -340,6 +377,20 @@ class Compose(CompoundOperation):
340
377
  """
341
378
  return util.compose(self.transforms, *args)
342
379
 
380
+ def __call__(self, *args):
381
+ '''
382
+ If PY op exists in self.transforms, should use _execute_py to keep the output types unchanged.
383
+ '''
384
+ if any([t.implementation == Implementation.PY for t in self.transforms]):
385
+ self.implementation = Implementation.PY
386
+ return super().__call__(*args)
387
+
388
+ def release_resource(self):
389
+ # release the executor which is used by current thread/process when
390
+ # use transform in eager mode in map op
391
+ # this will be call in MapOp::WorkerEntry
392
+ clean_unused_executors()
393
+
343
394
 
344
395
  class Concatenate(TensorOperation):
345
396
  """
@@ -476,7 +527,7 @@ class Mask(TensorOperation):
476
527
  ``Relational.GT``, ``Relational.LE``, ``Relational.GE``, take ``Relational.EQ`` as example,
477
528
  EQ refers to equal.
478
529
  constant (Union[str, int, float, bool]): Constant to be compared to.
479
- dtype (mindspore.dtype, optional): Type of the generated mask. Default: ``mstype.bool\_``.
530
+ dtype (mindspore.dtype, optional): Type of the generated mask. Default: ``mstype.bool_``.
480
531
 
481
532
  Raises:
482
533
  TypeError: `operator` is not of type Relational.
@@ -519,20 +570,25 @@ class Mask(TensorOperation):
519
570
 
520
571
  class OneHot(TensorOperation):
521
572
  """
522
- Tensor operation to apply one hot encoding.
573
+ Apply One-Hot encoding to the input labels.
574
+
575
+ For a 1-D input of shape :math:`(*)`, an output of shape :math:`(*, num_classes)` will be
576
+ returned, where the elements with index values equal to the input values will be set to 1,
577
+ and the rest will be set to 0. If a label smoothing rate is specified, the element values
578
+ are further smoothed to enhance generalization.
523
579
 
524
580
  Args:
525
- num_classes (int): Number of classes of objects in dataset.
526
- It should be larger than the largest label number in the dataset.
527
- smoothing_rate (float, optional): Adjustable hyperparameter for label smoothing level.
528
- Default: ``0.0``, means no smoothing is applied.
581
+ num_classes (int): Total number of classes. Must be greater than the maximum value
582
+ of the input labels.
583
+ smoothing_rate (float, optional): The amount of label smoothing. Must be between
584
+ [0.0, 1.0]. Default: ``0.0``, no label smoothing.
529
585
 
530
586
  Raises:
531
- TypeError: `num_classes` is not of type int.
532
- TypeError: `smoothing_rate` is not of type float or int.
533
- ValueError: `smoothing_rate` is not in range [0.0, 1.0].
534
- RuntimeError: Input tensor is not of type int.
535
- RuntimeError: Input tensor is not a 1-D tensor.
587
+ TypeError: If `num_classes` is not of type int.
588
+ TypeError: If `smoothing_rate` is not of type float.
589
+ ValueError: If `smoothing_rate` is not in range of [0.0, 1.0].
590
+ RuntimeError: If input label is not of type int.
591
+ RuntimeError: If the dimension of the input label is not 1.
536
592
 
537
593
  Supported Platforms:
538
594
  ``CPU``
@@ -815,17 +871,16 @@ class RandomOrder(PyTensorOperation):
815
871
 
816
872
  class Relational(IntEnum):
817
873
  """
818
- Relationship operator.
874
+ Relational operator.
819
875
 
820
- Possible enumeration values are: ``Relational.EQ``, ``Relational.NE``, ``Relational.GT``, ``Relational.GE``,
821
- ``Relational.LT``, ``Relational.LE``.
876
+ Available values are as follows:
822
877
 
823
- - Relational.EQ: refers to Equality.
824
- - Relational.NE: refers not equal, or Inequality.
825
- - Relational.GT: refers to Greater than.
826
- - Relational.GE: refers to Greater than or equal to.
827
- - Relational.LT: refers to Less than.
828
- - Relational.LE: refers to Less than or equal to.
878
+ - Relational.EQ: Equal to.
879
+ - Relational.NE: Not equal to.
880
+ - Relational.GT: Greater than.
881
+ - Relational.GE: Greater than or equal to.
882
+ - Relational.LT: Less than.
883
+ - Relational.LE: Less than or equal to.
829
884
  """
830
885
  EQ = 0
831
886
  NE = 1
@@ -871,25 +926,24 @@ class _SliceOption(cde.SliceOption):
871
926
 
872
927
  class Slice(TensorOperation):
873
928
  """
874
- Slice operation to extract a tensor out using the given n slices.
929
+ Extract a slice from the input.
875
930
 
876
- The functionality of Slice is similar to NumPy's indexing feature (Currently only rank-1 tensors are supported).
931
+ Currently, only 1-D input is supported.
877
932
 
878
933
  Args:
879
- slices (Union[int, list[int], slice, None, Ellipsis]):
880
- Maximum `n` number of arguments to slice a tensor of rank `n` .
881
- One object in slices can be one of:
882
-
883
- 1. :py:obj:`int`: Slice this index only along the first dimension. Negative index is supported.
884
- 2. :py:obj:`list(int)`: Slice these indices along the first dimension. Negative indices are supported.
885
- 3. :py:obj:`slice`: Slice the generated indices from the
886
- `slice <https://docs.python.org/3.7/library/functions.html?highlight=slice#slice>`_ object along the
887
- first dimension. Similar to start:stop:step.
888
- 4. :py:obj:`None`: Slice the whole dimension. Similar to :py:obj:`[:]` in Python indexing.
889
- 5. :py:obj:`Ellipsis`: Slice the whole dimension, same result with `None` .
934
+ slices (Union[int, list[int], slice, Ellipsis]): The desired slice.
935
+ If the input type is int, it will slice the element with the specified index value.
936
+ Negative index is also supported.
937
+ If the input type is list[int], it will slice all the elements with the specified index values.
938
+ Negative index is also supported.
939
+ If the input type is `slice <https://docs.python.org/3.7/library/functions.html#slice>`_ ,
940
+ it will slice according to its specified start position, stop position and step size.
941
+ If the input type is `Ellipsis <https://docs.python.org/3.7/library/constants.html#Ellipsis>`_ ,
942
+ all elements will be sliced.
943
+ If the input is None, all elements will be sliced.
890
944
 
891
945
  Raises:
892
- TypeError: If `slices` is not of type int, list[int], :py:obj:`slice` , :py:obj:`None` or :py:obj:`Ellipsis` .
946
+ TypeError: If `slices` is not of type Union[int, list[int], slice, Ellipsis].
893
947
 
894
948
  Supported Platforms:
895
949
  ``CPU``
@@ -930,7 +984,8 @@ class TypeCast(TensorOperation):
930
984
  Tensor operation to cast to a given MindSpore data type or NumPy data type.
931
985
 
932
986
  Note:
933
- This operation supports running on Ascend or GPU platforms by Offload.
987
+ This operation is executed on the CPU by default, but it is also supported
988
+ to be executed on the GPU or Ascend via heterogeneous acceleration.
934
989
 
935
990
  Args:
936
991
  data_type (Union[mindspore.dtype, numpy.dtype]): mindspore.dtype or numpy.dtype (e.g. `numpy.float32`)
@@ -940,7 +995,7 @@ class TypeCast(TensorOperation):
940
995
  TypeError: If `data_type` is not of MindSpore data type bool, int, float, string or type :class:`numpy.dtype` .
941
996
 
942
997
  Supported Platforms:
943
- ``Ascend`` ``GPU`` ``CPU``
998
+ ``CPU`` ``GPU`` ``Ascend``
944
999
 
945
1000
  Examples:
946
1001
  >>> import mindspore.dataset as ds
@@ -48,15 +48,21 @@ def imshow_det_bbox(image, bboxes, labels, segm=None, class_names=None, score_th
48
48
  font_size (int, float): Font size of texts. Default: ``0.8``.
49
49
  show (bool): Whether to show the image. Default: ``True``.
50
50
  win_name (str): The window name. Default: ``"win"``.
51
- wait_time (int): Value of waitKey param. Default: ``2000``, means display interval is 2000ms.
51
+ wait_time (int): Waiting time delay for a key event in milliseconds. During image display,
52
+ if there is no key pressed, wait for this time then jump to next image. If ESC is pressed,
53
+ quit display immediately. If any other key is pressed, stop waiting then jump to
54
+ next image directly. Default: ``2000`` , wait 2000ms then jump to next image.
52
55
  out_file (str, optional): The filename to write the imagee. Default: ``None``. File extension name
53
56
  is required to indicate the image compression type, e.g. 'jpg', 'png'.
54
57
 
55
58
  Returns:
56
59
  ndarray, The image with bboxes drawn on it.
57
60
 
61
+ Note:
62
+ This interface relies on the `opencv-python` library.
63
+
58
64
  Raises:
59
- ImportError: If opencv-python is not installed.
65
+ ImportError: If `opencv-python` is not installed.
60
66
  AssertionError: If `image` is not in (H, W, C) or (C, H, W) format.
61
67
  AssertionError: If `bboxes` is not in (N, 4) or (N, 5) format.
62
68
  AssertionError: If `labels` is not in (N, 1) format.
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  # ==============================================================================
15
- """Efficient line based file reading.
15
+ """Efficient line-based file reading.
16
16
  """
17
17
  import os
18
18
 
@@ -22,28 +22,26 @@ from ..core.validator_helpers import check_filename, check_uint64, check_value
22
22
 
23
23
  class LineReader:
24
24
  """
25
- Efficient file line reader.
25
+ Line-based file reader.
26
26
 
27
- This class is used to hold the line offsets of line based file.
28
-
29
- The following functionality is provided:
30
-
31
- - len(): return the number of lines in the file
32
- - readline(line): open file handle (if not opened yet), and read a line in the file
33
- - close(): close the file handle opened in readline
27
+ Cache the line-based meta data of the file in advance to achieve random-access reading of each file line.
34
28
 
35
29
  Args:
36
- filename (str): line based file to be loaded.
30
+ filename (str): Filename to be read.
37
31
 
38
32
  Raises:
39
- TypeError: Parameter `filename` is wrong.
40
- RuntimeError: The input file does not exist or is not a regular file.
33
+ TypeError: If `filename` is not of type int.
34
+ RuntimeError: If `filename` does not exist or is not a regular file.
41
35
 
42
36
  Examples:
43
37
  >>> from mindspore.dataset import LineReader
44
38
  >>>
45
39
  >>> reader = LineReader("/path/to/txt/or/csv/file")
40
+ >>> # Read the first line of csv file
46
41
  >>> reader.readline(1)
42
+ >>> # Return the row size in csv file
43
+ >>> reader.len()
44
+ >>> # Close the handle
47
45
  >>> reader.close()
48
46
  """
49
47
 
@@ -84,22 +82,22 @@ class LineReader:
84
82
  self.close()
85
83
 
86
84
  def len(self):
87
- """Get the total number of lines in the file"""
85
+ """Get the total number of lines in the current file."""
88
86
  return len(self.offsets)
89
87
 
90
88
  def readline(self, line):
91
89
  """
92
- Read specified line content.
90
+ Reads the contents of the specified line.
93
91
 
94
92
  Args:
95
- line (int): the line number to be read, starting at 1.
93
+ line (int): The line number to be read, with a starting line number of 1.
96
94
 
97
95
  Returns:
98
- str, line content (until line break character).
96
+ str, the contents of the corresponding line, without line break characters.
99
97
 
100
98
  Raises:
101
- TypeError: Parameter `line` is the wrong type.
102
- ValueError: Parameter `line` exceeds the file range.
99
+ TypeError: If `line` is not of type int.
100
+ ValueError: If `line` exceeds the total number of lines in the file.
103
101
  """
104
102
  check_uint64(line, "line")
105
103
  check_value(line, [1, len(self.offsets)], "line")
@@ -119,7 +117,7 @@ class LineReader:
119
117
  return content
120
118
 
121
119
  def close(self):
122
- """Close the file"""
120
+ """Close the file handle."""
123
121
  if self.fo_handle is None:
124
122
  return
125
123
  self.fo_handle.close()
@@ -32,7 +32,7 @@ Note: Legacy c_transforms and py_transforms are deprecated but can still be impo
32
32
  import mindspore.dataset.vision.py_transforms as py_vision
33
33
 
34
34
  See `Vision Transforms
35
- <https://www.mindspore.cn/tutorials/en/r2.1/beginner/transforms.html#vision-transforms>`_ tutorial for more details.
35
+ <https://www.mindspore.cn/tutorials/en/r2.2/beginner/transforms.html#vision-transforms>`_ tutorial for more details.
36
36
 
37
37
  Descriptions of common data processing terms are as follows:
38
38
 
@@ -43,10 +43,10 @@ Descriptions of common data processing terms are as follows:
43
43
  The data transform operation can be executed in the data processing pipeline or in the eager mode:
44
44
 
45
45
  - Pipeline mode is generally used to process big datasets. Examples refer to
46
- `introduction to data processing pipeline <https://www.mindspore.cn/docs/en/r2.1/api_python/
46
+ `introduction to data processing pipeline <https://www.mindspore.cn/docs/en/r2.2/api_python/
47
47
  mindspore.dataset.html#introduction-to-data-processing-pipeline>`_ .
48
48
  - Eager mode is more like a function call to process data. Examples refer to
49
- `Lightweight Data Processing <https://www.mindspore.cn/tutorials/en/r2.1/advanced/dataset/eager.html>`_ .
49
+ `Lightweight Data Processing <https://www.mindspore.cn/tutorials/en/r2.2/advanced/dataset/eager.html>`_ .
50
50
  """
51
51
  from . import c_transforms
52
52
  from . import py_transforms
@@ -610,7 +610,8 @@ class Decode(ImageTensorOperation):
610
610
  return super().__call__(img)
611
611
 
612
612
  def parse(self):
613
- return cde.DecodeOperation(self.rgb)
613
+ # deprecated api just support cpu device target
614
+ return cde.DecodeOperation(self.rgb, "CPU")
614
615
 
615
616
 
616
617
  class Equalize(ImageTensorOperation):
@@ -842,7 +843,8 @@ class Normalize(ImageTensorOperation):
842
843
  self.std = std
843
844
 
844
845
  def parse(self):
845
- return cde.NormalizeOperation(self.mean, self.std, True)
846
+ # deprecated api just support cpu device target
847
+ return cde.NormalizeOperation(self.mean, self.std, True, "CPU")
846
848
 
847
849
 
848
850
  class NormalizePad(ImageTensorOperation):
@@ -2275,7 +2277,8 @@ class Resize(ImageTensorOperation):
2275
2277
  self.interpolation = interpolation
2276
2278
 
2277
2279
  def parse(self):
2278
- return cde.ResizeOperation(self.size, DE_C_INTER_MODE.get(self.interpolation))
2280
+ # deprecated api just support cpu device target
2281
+ return cde.ResizeOperation(self.size, DE_C_INTER_MODE.get(self.interpolation), "CPU")
2279
2282
 
2280
2283
 
2281
2284
  class ResizeWithBBox(ImageTensorOperation):