mindspore 2.4.0__cp311-cp311-macosx_11_0_arm64.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 (1387) hide show
  1. mindspore/.commit_id +1 -0
  2. mindspore/__init__.py +53 -0
  3. mindspore/_c_dataengine.cpython-311-darwin.so +0 -0
  4. mindspore/_c_expression.cpython-311-darwin.so +0 -0
  5. mindspore/_c_mindrecord.cpython-311-darwin.so +0 -0
  6. mindspore/_check_jit_forbidden_api.py +106 -0
  7. mindspore/_checkparam.py +1419 -0
  8. mindspore/_extends/__init__.py +23 -0
  9. mindspore/_extends/builtin_operations.py +224 -0
  10. mindspore/_extends/graph_kernel/__init__.py +17 -0
  11. mindspore/_extends/graph_kernel/model/__init__.py +19 -0
  12. mindspore/_extends/graph_kernel/model/graph_parallel.py +311 -0
  13. mindspore/_extends/graph_kernel/model/graph_split.py +1348 -0
  14. mindspore/_extends/graph_kernel/model/model.py +553 -0
  15. mindspore/_extends/graph_kernel/model/model_builder.py +216 -0
  16. mindspore/_extends/graph_kernel/parallel_estimate.py +60 -0
  17. mindspore/_extends/graph_kernel/splitter.py +140 -0
  18. mindspore/_extends/graph_kernel/utils.py +28 -0
  19. mindspore/_extends/parallel_compile/__init__.py +19 -0
  20. mindspore/_extends/parallel_compile/akg_compiler/__init__.py +19 -0
  21. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +269 -0
  22. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +529 -0
  23. mindspore/_extends/parallel_compile/akg_compiler/compiler.py +56 -0
  24. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +96 -0
  25. mindspore/_extends/parallel_compile/akg_compiler/get_file_path.py +36 -0
  26. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +556 -0
  27. mindspore/_extends/parallel_compile/akg_compiler/util.py +159 -0
  28. mindspore/_extends/parse/__init__.py +49 -0
  29. mindspore/_extends/parse/compile_config.py +299 -0
  30. mindspore/_extends/parse/namespace.py +136 -0
  31. mindspore/_extends/parse/parser.py +1448 -0
  32. mindspore/_extends/parse/resources.py +213 -0
  33. mindspore/_extends/parse/standard_method.py +4475 -0
  34. mindspore/_extends/parse/trope.py +97 -0
  35. mindspore/_extends/pijit/__init__.py +23 -0
  36. mindspore/_extends/pijit/pijit_func_white_list.py +669 -0
  37. mindspore/_extends/remote/__init__.py +19 -0
  38. mindspore/_extends/remote/kernel_build_server.py +199 -0
  39. mindspore/_extends/remote/kernel_build_server_akg.py +55 -0
  40. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  41. mindspore/_extends/remote/kernel_build_server_ascend.py +75 -0
  42. mindspore/_extends/utils.py +68 -0
  43. mindspore/_install_custom.py +43 -0
  44. mindspore/_profiler.py +30 -0
  45. mindspore/amp.py +433 -0
  46. mindspore/boost/__init__.py +42 -0
  47. mindspore/boost/adasum.py +319 -0
  48. mindspore/boost/base.py +535 -0
  49. mindspore/boost/boost.py +400 -0
  50. mindspore/boost/boost_cell_wrapper.py +790 -0
  51. mindspore/boost/dim_reduce.py +323 -0
  52. mindspore/boost/grad_accumulation.py +79 -0
  53. mindspore/boost/grad_freeze.py +382 -0
  54. mindspore/boost/group_loss_scale_manager.py +166 -0
  55. mindspore/boost/less_batch_normalization.py +174 -0
  56. mindspore/common/__init__.py +86 -0
  57. mindspore/common/_auto_dynamic.py +68 -0
  58. mindspore/common/_decorator.py +50 -0
  59. mindspore/common/_jit_fallback_utils.py +110 -0
  60. mindspore/common/_monad.py +25 -0
  61. mindspore/common/_pijit_context.py +190 -0
  62. mindspore/common/_register_for_adapter.py +74 -0
  63. mindspore/common/_register_for_recompute.py +48 -0
  64. mindspore/common/_register_for_tensor.py +46 -0
  65. mindspore/common/_stub_tensor.py +210 -0
  66. mindspore/common/_tensor_overload.py +139 -0
  67. mindspore/common/_utils.py +122 -0
  68. mindspore/common/api.py +2064 -0
  69. mindspore/common/auto_dynamic_shape.py +507 -0
  70. mindspore/common/dtype.py +422 -0
  71. mindspore/common/dump.py +130 -0
  72. mindspore/common/file_system.py +48 -0
  73. mindspore/common/generator.py +254 -0
  74. mindspore/common/hook_handle.py +143 -0
  75. mindspore/common/initializer.py +880 -0
  76. mindspore/common/jit_config.py +98 -0
  77. mindspore/common/lazy_inline.py +240 -0
  78. mindspore/common/mindir_util.py +111 -0
  79. mindspore/common/mutable.py +234 -0
  80. mindspore/common/no_inline.py +54 -0
  81. mindspore/common/np_dtype.py +25 -0
  82. mindspore/common/parameter.py +1081 -0
  83. mindspore/common/recompute.py +292 -0
  84. mindspore/common/seed.py +260 -0
  85. mindspore/common/sparse_tensor.py +1175 -0
  86. mindspore/common/symbol.py +122 -0
  87. mindspore/common/tensor.py +5039 -0
  88. mindspore/communication/__init__.py +37 -0
  89. mindspore/communication/_comm_helper.py +501 -0
  90. mindspore/communication/_hccl_management.py +297 -0
  91. mindspore/communication/comm_func.py +1395 -0
  92. mindspore/communication/management.py +673 -0
  93. mindspore/config/op_info.config +533 -0
  94. mindspore/context.py +2077 -0
  95. mindspore/dataset/__init__.py +90 -0
  96. mindspore/dataset/audio/__init__.py +61 -0
  97. mindspore/dataset/audio/transforms.py +3690 -0
  98. mindspore/dataset/audio/utils.py +386 -0
  99. mindspore/dataset/audio/validators.py +1172 -0
  100. mindspore/dataset/callback/__init__.py +20 -0
  101. mindspore/dataset/callback/ds_callback.py +368 -0
  102. mindspore/dataset/callback/validators.py +32 -0
  103. mindspore/dataset/core/__init__.py +13 -0
  104. mindspore/dataset/core/config.py +1095 -0
  105. mindspore/dataset/core/datatypes.py +101 -0
  106. mindspore/dataset/core/py_util_helpers.py +65 -0
  107. mindspore/dataset/core/validator_helpers.py +781 -0
  108. mindspore/dataset/debug/__init__.py +21 -0
  109. mindspore/dataset/debug/debug_hook.py +97 -0
  110. mindspore/dataset/debug/pre_defined_hook.py +67 -0
  111. mindspore/dataset/engine/__init__.py +124 -0
  112. mindspore/dataset/engine/cache_admin.py +47 -0
  113. mindspore/dataset/engine/cache_client.py +129 -0
  114. mindspore/dataset/engine/datasets.py +4582 -0
  115. mindspore/dataset/engine/datasets_audio.py +911 -0
  116. mindspore/dataset/engine/datasets_standard_format.py +543 -0
  117. mindspore/dataset/engine/datasets_text.py +2161 -0
  118. mindspore/dataset/engine/datasets_user_defined.py +1184 -0
  119. mindspore/dataset/engine/datasets_vision.py +4816 -0
  120. mindspore/dataset/engine/iterators.py +371 -0
  121. mindspore/dataset/engine/obs/__init__.py +23 -0
  122. mindspore/dataset/engine/obs/config_loader.py +68 -0
  123. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +508 -0
  124. mindspore/dataset/engine/obs/util.py +482 -0
  125. mindspore/dataset/engine/offload.py +596 -0
  126. mindspore/dataset/engine/queue.py +304 -0
  127. mindspore/dataset/engine/samplers.py +895 -0
  128. mindspore/dataset/engine/serializer_deserializer.py +159 -0
  129. mindspore/dataset/engine/validators.py +2895 -0
  130. mindspore/dataset/text/__init__.py +51 -0
  131. mindspore/dataset/text/transforms.py +1703 -0
  132. mindspore/dataset/text/utils.py +715 -0
  133. mindspore/dataset/text/validators.py +642 -0
  134. mindspore/dataset/transforms/__init__.py +45 -0
  135. mindspore/dataset/transforms/c_transforms.py +638 -0
  136. mindspore/dataset/transforms/py_transforms.py +393 -0
  137. mindspore/dataset/transforms/py_transforms_util.py +255 -0
  138. mindspore/dataset/transforms/transforms.py +1260 -0
  139. mindspore/dataset/transforms/validators.py +410 -0
  140. mindspore/dataset/utils/__init__.py +19 -0
  141. mindspore/dataset/utils/browse_dataset.py +190 -0
  142. mindspore/dataset/utils/line_reader.py +126 -0
  143. mindspore/dataset/vision/__init__.py +65 -0
  144. mindspore/dataset/vision/c_transforms.py +2641 -0
  145. mindspore/dataset/vision/py_transforms.py +2120 -0
  146. mindspore/dataset/vision/py_transforms_util.py +1660 -0
  147. mindspore/dataset/vision/transforms.py +7295 -0
  148. mindspore/dataset/vision/utils.py +863 -0
  149. mindspore/dataset/vision/validators.py +1483 -0
  150. mindspore/default_config.py +2 -0
  151. mindspore/experimental/__init__.py +20 -0
  152. mindspore/experimental/es/__init__.py +22 -0
  153. mindspore/experimental/es/embedding_service.py +883 -0
  154. mindspore/experimental/es/embedding_service_layer.py +581 -0
  155. mindspore/experimental/llm_boost/__init__.py +21 -0
  156. mindspore/experimental/llm_boost/atb/__init__.py +23 -0
  157. mindspore/experimental/llm_boost/atb/boost_base.py +211 -0
  158. mindspore/experimental/llm_boost/atb/llama_boost.py +115 -0
  159. mindspore/experimental/llm_boost/atb/qwen_boost.py +101 -0
  160. mindspore/experimental/llm_boost/register.py +129 -0
  161. mindspore/experimental/llm_boost/utils.py +31 -0
  162. mindspore/experimental/map_parameter.py +309 -0
  163. mindspore/experimental/optim/__init__.py +40 -0
  164. mindspore/experimental/optim/adadelta.py +161 -0
  165. mindspore/experimental/optim/adagrad.py +168 -0
  166. mindspore/experimental/optim/adam.py +193 -0
  167. mindspore/experimental/optim/adamax.py +170 -0
  168. mindspore/experimental/optim/adamw.py +290 -0
  169. mindspore/experimental/optim/asgd.py +153 -0
  170. mindspore/experimental/optim/lr_scheduler.py +1371 -0
  171. mindspore/experimental/optim/nadam.py +157 -0
  172. mindspore/experimental/optim/optimizer.py +262 -0
  173. mindspore/experimental/optim/radam.py +194 -0
  174. mindspore/experimental/optim/rmsprop.py +154 -0
  175. mindspore/experimental/optim/rprop.py +164 -0
  176. mindspore/experimental/optim/sgd.py +156 -0
  177. mindspore/hal/__init__.py +40 -0
  178. mindspore/hal/_ascend.py +57 -0
  179. mindspore/hal/_base.py +57 -0
  180. mindspore/hal/_cpu.py +56 -0
  181. mindspore/hal/_gpu.py +57 -0
  182. mindspore/hal/contiguous_tensors_handle.py +175 -0
  183. mindspore/hal/device.py +356 -0
  184. mindspore/hal/event.py +179 -0
  185. mindspore/hal/memory.py +326 -0
  186. mindspore/hal/stream.py +357 -0
  187. mindspore/include/OWNERS +7 -0
  188. mindspore/include/api/allocator.h +97 -0
  189. mindspore/include/api/callback/callback.h +93 -0
  190. mindspore/include/api/callback/ckpt_saver.h +41 -0
  191. mindspore/include/api/callback/loss_monitor.h +33 -0
  192. mindspore/include/api/callback/lr_scheduler.h +51 -0
  193. mindspore/include/api/callback/time_monitor.h +34 -0
  194. mindspore/include/api/callback/train_accuracy.h +37 -0
  195. mindspore/include/api/cell.h +90 -0
  196. mindspore/include/api/cfg.h +82 -0
  197. mindspore/include/api/context.h +602 -0
  198. mindspore/include/api/data_type.h +47 -0
  199. mindspore/include/api/delegate.h +178 -0
  200. mindspore/include/api/delegate_api.h +75 -0
  201. mindspore/include/api/dual_abi_helper.h +208 -0
  202. mindspore/include/api/format.h +28 -0
  203. mindspore/include/api/graph.h +46 -0
  204. mindspore/include/api/kernel.h +58 -0
  205. mindspore/include/api/kernel_api.h +168 -0
  206. mindspore/include/api/metrics/accuracy.h +36 -0
  207. mindspore/include/api/metrics/metrics.h +41 -0
  208. mindspore/include/api/model.h +438 -0
  209. mindspore/include/api/model_group.h +91 -0
  210. mindspore/include/api/model_parallel_runner.h +168 -0
  211. mindspore/include/api/serialization.h +185 -0
  212. mindspore/include/api/status.h +192 -0
  213. mindspore/include/api/types.h +431 -0
  214. mindspore/include/api/visible.h +41 -0
  215. mindspore/include/c_api/context_c.h +179 -0
  216. mindspore/include/c_api/data_type_c.h +52 -0
  217. mindspore/include/c_api/format_c.h +46 -0
  218. mindspore/include/c_api/model_c.h +347 -0
  219. mindspore/include/c_api/status_c.h +79 -0
  220. mindspore/include/c_api/tensor_c.h +146 -0
  221. mindspore/include/c_api/types_c.h +67 -0
  222. mindspore/include/dataset/config.h +163 -0
  223. mindspore/include/dataset/constants.h +363 -0
  224. mindspore/include/dataset/execute.h +196 -0
  225. mindspore/include/dataset/text.h +1092 -0
  226. mindspore/include/dataset/transforms.h +638 -0
  227. mindspore/include/dataset/vision.h +2129 -0
  228. mindspore/include/dataset/vision_ascend.h +206 -0
  229. mindspore/include/dataset/vision_lite.h +625 -0
  230. mindspore/lib/libavcodec.59.dylib +0 -0
  231. mindspore/lib/libavdevice.59.dylib +0 -0
  232. mindspore/lib/libavfilter.8.dylib +0 -0
  233. mindspore/lib/libavformat.59.dylib +0 -0
  234. mindspore/lib/libavutil.57.dylib +0 -0
  235. mindspore/lib/libdnnl.2.dylib +0 -0
  236. mindspore/lib/libicudata.69.dylib +0 -0
  237. mindspore/lib/libicui18n.69.dylib +0 -0
  238. mindspore/lib/libicuuc.69.dylib +0 -0
  239. mindspore/lib/libmindspore_address_sorting.15.dylib +0 -0
  240. mindspore/lib/libmindspore_backend.dylib +0 -0
  241. mindspore/lib/libmindspore_common.dylib +0 -0
  242. mindspore/lib/libmindspore_core.dylib +0 -0
  243. mindspore/lib/libmindspore_glog.0.dylib +0 -0
  244. mindspore/lib/libmindspore_gpr.15.dylib +0 -0
  245. mindspore/lib/libmindspore_grpc++.1.dylib +0 -0
  246. mindspore/lib/libmindspore_grpc.15.dylib +0 -0
  247. mindspore/lib/libmindspore_np_dtype.dylib +0 -0
  248. mindspore/lib/libmindspore_ops.dylib +0 -0
  249. mindspore/lib/libmindspore_upb.15.dylib +0 -0
  250. mindspore/lib/libnnacl.dylib +0 -0
  251. mindspore/lib/libopencv_core.4.5.dylib +0 -0
  252. mindspore/lib/libopencv_imgcodecs.4.5.dylib +0 -0
  253. mindspore/lib/libopencv_imgproc.4.5.dylib +0 -0
  254. mindspore/lib/libps_cache.dylib +0 -0
  255. mindspore/lib/libswresample.4.dylib +0 -0
  256. mindspore/lib/libswscale.6.dylib +0 -0
  257. mindspore/lib/libtinyxml2.8.dylib +0 -0
  258. mindspore/log.py +633 -0
  259. mindspore/mindrecord/__init__.py +43 -0
  260. mindspore/mindrecord/common/__init__.py +17 -0
  261. mindspore/mindrecord/common/constant.py +20 -0
  262. mindspore/mindrecord/common/enums.py +44 -0
  263. mindspore/mindrecord/common/exceptions.py +311 -0
  264. mindspore/mindrecord/config.py +809 -0
  265. mindspore/mindrecord/filereader.py +174 -0
  266. mindspore/mindrecord/filewriter.py +722 -0
  267. mindspore/mindrecord/mindpage.py +210 -0
  268. mindspore/mindrecord/shardheader.py +141 -0
  269. mindspore/mindrecord/shardindexgenerator.py +74 -0
  270. mindspore/mindrecord/shardreader.py +117 -0
  271. mindspore/mindrecord/shardsegment.py +128 -0
  272. mindspore/mindrecord/shardutils.py +185 -0
  273. mindspore/mindrecord/shardwriter.py +237 -0
  274. mindspore/mindrecord/tools/__init__.py +17 -0
  275. mindspore/mindrecord/tools/cifar10.py +140 -0
  276. mindspore/mindrecord/tools/cifar100.py +153 -0
  277. mindspore/mindrecord/tools/cifar100_to_mr.py +185 -0
  278. mindspore/mindrecord/tools/cifar10_to_mr.py +177 -0
  279. mindspore/mindrecord/tools/csv_to_mr.py +200 -0
  280. mindspore/mindrecord/tools/imagenet_to_mr.py +206 -0
  281. mindspore/mindrecord/tools/mnist_to_mr.py +259 -0
  282. mindspore/mindrecord/tools/tfrecord_to_mr.py +360 -0
  283. mindspore/mint/__init__.py +1586 -0
  284. mindspore/mint/distributed/__init__.py +31 -0
  285. mindspore/mint/distributed/distributed.py +254 -0
  286. mindspore/mint/linalg/__init__.py +22 -0
  287. mindspore/mint/nn/__init__.py +757 -0
  288. mindspore/mint/nn/functional.py +679 -0
  289. mindspore/mint/nn/layer/__init__.py +39 -0
  290. mindspore/mint/nn/layer/activation.py +133 -0
  291. mindspore/mint/nn/layer/normalization.py +477 -0
  292. mindspore/mint/nn/layer/pooling.py +110 -0
  293. mindspore/mint/optim/__init__.py +24 -0
  294. mindspore/mint/optim/adamw.py +206 -0
  295. mindspore/mint/special/__init__.py +63 -0
  296. mindspore/multiprocessing/__init__.py +73 -0
  297. mindspore/nn/__init__.py +47 -0
  298. mindspore/nn/cell.py +2787 -0
  299. mindspore/nn/dynamic_lr.py +482 -0
  300. mindspore/nn/grad/__init__.py +21 -0
  301. mindspore/nn/grad/cell_grad.py +196 -0
  302. mindspore/nn/layer/__init__.py +63 -0
  303. mindspore/nn/layer/activation.py +1822 -0
  304. mindspore/nn/layer/basic.py +1629 -0
  305. mindspore/nn/layer/channel_shuffle.py +90 -0
  306. mindspore/nn/layer/combined.py +248 -0
  307. mindspore/nn/layer/container.py +734 -0
  308. mindspore/nn/layer/conv.py +1505 -0
  309. mindspore/nn/layer/dense.py +204 -0
  310. mindspore/nn/layer/embedding.py +869 -0
  311. mindspore/nn/layer/image.py +661 -0
  312. mindspore/nn/layer/math.py +1069 -0
  313. mindspore/nn/layer/normalization.py +1273 -0
  314. mindspore/nn/layer/padding.py +880 -0
  315. mindspore/nn/layer/pooling.py +2302 -0
  316. mindspore/nn/layer/rnn_cells.py +388 -0
  317. mindspore/nn/layer/rnns.py +849 -0
  318. mindspore/nn/layer/thor_layer.py +963 -0
  319. mindspore/nn/layer/timedistributed.py +155 -0
  320. mindspore/nn/layer/transformer.py +823 -0
  321. mindspore/nn/learning_rate_schedule.py +512 -0
  322. mindspore/nn/loss/__init__.py +36 -0
  323. mindspore/nn/loss/loss.py +2924 -0
  324. mindspore/nn/metrics.py +53 -0
  325. mindspore/nn/optim/__init__.py +45 -0
  326. mindspore/nn/optim/_dist_optimizer_registry.py +111 -0
  327. mindspore/nn/optim/ada_grad.py +217 -0
  328. mindspore/nn/optim/adadelta.py +206 -0
  329. mindspore/nn/optim/adafactor.py +448 -0
  330. mindspore/nn/optim/adam.py +1297 -0
  331. mindspore/nn/optim/adamax.py +220 -0
  332. mindspore/nn/optim/adasum.py +548 -0
  333. mindspore/nn/optim/asgd.py +216 -0
  334. mindspore/nn/optim/ftrl.py +401 -0
  335. mindspore/nn/optim/lamb.py +296 -0
  336. mindspore/nn/optim/lars.py +202 -0
  337. mindspore/nn/optim/lazyadam.py +533 -0
  338. mindspore/nn/optim/momentum.py +239 -0
  339. mindspore/nn/optim/optimizer.py +1034 -0
  340. mindspore/nn/optim/proximal_ada_grad.py +242 -0
  341. mindspore/nn/optim/rmsprop.py +264 -0
  342. mindspore/nn/optim/rprop.py +251 -0
  343. mindspore/nn/optim/sgd.py +237 -0
  344. mindspore/nn/optim/tft_wrapper.py +127 -0
  345. mindspore/nn/optim/thor.py +1310 -0
  346. mindspore/nn/probability/__init__.py +22 -0
  347. mindspore/nn/probability/bijector/__init__.py +35 -0
  348. mindspore/nn/probability/bijector/bijector.py +337 -0
  349. mindspore/nn/probability/bijector/exp.py +65 -0
  350. mindspore/nn/probability/bijector/gumbel_cdf.py +144 -0
  351. mindspore/nn/probability/bijector/invert.py +126 -0
  352. mindspore/nn/probability/bijector/power_transform.py +196 -0
  353. mindspore/nn/probability/bijector/scalar_affine.py +167 -0
  354. mindspore/nn/probability/bijector/softplus.py +189 -0
  355. mindspore/nn/probability/bnn_layers/__init__.py +29 -0
  356. mindspore/nn/probability/bnn_layers/_util.py +46 -0
  357. mindspore/nn/probability/bnn_layers/bnn_cell_wrapper.py +112 -0
  358. mindspore/nn/probability/bnn_layers/conv_variational.py +267 -0
  359. mindspore/nn/probability/bnn_layers/dense_variational.py +302 -0
  360. mindspore/nn/probability/bnn_layers/layer_distribution.py +123 -0
  361. mindspore/nn/probability/distribution/__init__.py +56 -0
  362. mindspore/nn/probability/distribution/_utils/__init__.py +34 -0
  363. mindspore/nn/probability/distribution/_utils/custom_ops.py +96 -0
  364. mindspore/nn/probability/distribution/_utils/utils.py +362 -0
  365. mindspore/nn/probability/distribution/bernoulli.py +334 -0
  366. mindspore/nn/probability/distribution/beta.py +391 -0
  367. mindspore/nn/probability/distribution/categorical.py +435 -0
  368. mindspore/nn/probability/distribution/cauchy.py +383 -0
  369. mindspore/nn/probability/distribution/distribution.py +827 -0
  370. mindspore/nn/probability/distribution/exponential.py +350 -0
  371. mindspore/nn/probability/distribution/gamma.py +391 -0
  372. mindspore/nn/probability/distribution/geometric.py +335 -0
  373. mindspore/nn/probability/distribution/gumbel.py +257 -0
  374. mindspore/nn/probability/distribution/half_normal.py +133 -0
  375. mindspore/nn/probability/distribution/laplace.py +128 -0
  376. mindspore/nn/probability/distribution/log_normal.py +272 -0
  377. mindspore/nn/probability/distribution/logistic.py +379 -0
  378. mindspore/nn/probability/distribution/normal.py +336 -0
  379. mindspore/nn/probability/distribution/poisson.py +288 -0
  380. mindspore/nn/probability/distribution/student_t.py +149 -0
  381. mindspore/nn/probability/distribution/transformed_distribution.py +235 -0
  382. mindspore/nn/probability/distribution/uniform.py +375 -0
  383. mindspore/nn/reinforcement/__init__.py +24 -0
  384. mindspore/nn/reinforcement/_batch_read_write.py +142 -0
  385. mindspore/nn/reinforcement/_tensors_queue.py +152 -0
  386. mindspore/nn/reinforcement/tensor_array.py +145 -0
  387. mindspore/nn/sparse/__init__.py +23 -0
  388. mindspore/nn/sparse/sparse.py +147 -0
  389. mindspore/nn/wrap/__init__.py +49 -0
  390. mindspore/nn/wrap/cell_wrapper.py +968 -0
  391. mindspore/nn/wrap/grad_reducer.py +608 -0
  392. mindspore/nn/wrap/loss_scale.py +694 -0
  393. mindspore/numpy/__init__.py +121 -0
  394. mindspore/numpy/array_creations.py +2731 -0
  395. mindspore/numpy/array_ops.py +2629 -0
  396. mindspore/numpy/dtypes.py +185 -0
  397. mindspore/numpy/fft.py +966 -0
  398. mindspore/numpy/logic_ops.py +936 -0
  399. mindspore/numpy/math_ops.py +5911 -0
  400. mindspore/numpy/utils.py +214 -0
  401. mindspore/numpy/utils_const.py +565 -0
  402. mindspore/ops/__init__.py +56 -0
  403. mindspore/ops/_constants.py +30 -0
  404. mindspore/ops/_grad_experimental/__init__.py +31 -0
  405. mindspore/ops/_grad_experimental/grad_array_ops.py +830 -0
  406. mindspore/ops/_grad_experimental/grad_base.py +143 -0
  407. mindspore/ops/_grad_experimental/grad_comm_ops.py +714 -0
  408. mindspore/ops/_grad_experimental/grad_debug_ops.py +31 -0
  409. mindspore/ops/_grad_experimental/grad_implementations.py +203 -0
  410. mindspore/ops/_grad_experimental/grad_inner_ops.py +79 -0
  411. mindspore/ops/_grad_experimental/grad_math_ops.py +802 -0
  412. mindspore/ops/_grad_experimental/grad_nn_ops.py +231 -0
  413. mindspore/ops/_grad_experimental/grad_quant_ops.py +238 -0
  414. mindspore/ops/_grad_experimental/grad_sparse.py +342 -0
  415. mindspore/ops/_grad_experimental/grad_sparse_ops.py +399 -0
  416. mindspore/ops/_grad_experimental/taylor_rule.py +220 -0
  417. mindspore/ops/_op_impl/__init__.py +23 -0
  418. mindspore/ops/_op_impl/_custom_op/__init__.py +39 -0
  419. mindspore/ops/_op_impl/_custom_op/_basic.py +158 -0
  420. mindspore/ops/_op_impl/_custom_op/batch_matmul_impl.py +279 -0
  421. mindspore/ops/_op_impl/_custom_op/batchnorm_fold.py +156 -0
  422. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2.py +109 -0
  423. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad.py +125 -0
  424. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad_reduce.py +105 -0
  425. mindspore/ops/_op_impl/_custom_op/batchnorm_fold_grad.py +124 -0
  426. mindspore/ops/_op_impl/_custom_op/cholesky_trsm_impl.py +116 -0
  427. mindspore/ops/_op_impl/_custom_op/correction_mul.py +89 -0
  428. mindspore/ops/_op_impl/_custom_op/correction_mul_grad.py +196 -0
  429. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +366 -0
  430. mindspore/ops/_op_impl/_custom_op/dsd_impl.py +162 -0
  431. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel.py +136 -0
  432. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad.py +206 -0
  433. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad_reduce.py +88 -0
  434. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer.py +128 -0
  435. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad.py +199 -0
  436. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad_reduce.py +88 -0
  437. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel.py +156 -0
  438. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel_grad.py +184 -0
  439. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer.py +143 -0
  440. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer_grad.py +169 -0
  441. mindspore/ops/_op_impl/_custom_op/fused_abs_max1_impl.py +548 -0
  442. mindspore/ops/_op_impl/_custom_op/img2col_impl.py +881 -0
  443. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +278 -0
  444. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_right_impl.py +200 -0
  445. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_left_cast_impl.py +334 -0
  446. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_right_mul_impl.py +255 -0
  447. mindspore/ops/_op_impl/_custom_op/matmul_cube_impl.py +222 -0
  448. mindspore/ops/_op_impl/_custom_op/matmul_dds_grad_impl.py +644 -0
  449. mindspore/ops/_op_impl/_custom_op/matmul_dds_impl.py +488 -0
  450. mindspore/ops/_op_impl/_custom_op/matrix_combine_impl.py +87 -0
  451. mindspore/ops/_op_impl/_custom_op/minmax_update_perchannel.py +129 -0
  452. mindspore/ops/_op_impl/_custom_op/minmax_update_perlayer.py +121 -0
  453. mindspore/ops/_op_impl/_custom_op/transpose02314_impl.py +352 -0
  454. mindspore/ops/_op_impl/aicpu/__init__.py +441 -0
  455. mindspore/ops/_op_impl/aicpu/abs.py +36 -0
  456. mindspore/ops/_op_impl/aicpu/acos.py +32 -0
  457. mindspore/ops/_op_impl/aicpu/acos_grad.py +33 -0
  458. mindspore/ops/_op_impl/aicpu/acosh.py +34 -0
  459. mindspore/ops/_op_impl/aicpu/acosh_grad.py +35 -0
  460. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d.py +34 -0
  461. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d_grad.py +34 -0
  462. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d.py +39 -0
  463. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d_grad.py +39 -0
  464. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d.py +37 -0
  465. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d_grad.py +37 -0
  466. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d.py +42 -0
  467. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d_grad.py +152 -0
  468. mindspore/ops/_op_impl/aicpu/add.py +43 -0
  469. mindspore/ops/_op_impl/aicpu/add_n.py +41 -0
  470. mindspore/ops/_op_impl/aicpu/add_v2.py +40 -0
  471. mindspore/ops/_op_impl/aicpu/addcdiv.py +41 -0
  472. mindspore/ops/_op_impl/aicpu/addcmul.py +47 -0
  473. mindspore/ops/_op_impl/aicpu/adjust_contrastv2.py +32 -0
  474. mindspore/ops/_op_impl/aicpu/adjust_hue.py +31 -0
  475. mindspore/ops/_op_impl/aicpu/adjust_saturation.py +32 -0
  476. mindspore/ops/_op_impl/aicpu/affine_grid.py +33 -0
  477. mindspore/ops/_op_impl/aicpu/affine_grid_grad.py +35 -0
  478. mindspore/ops/_op_impl/aicpu/angle.py +31 -0
  479. mindspore/ops/_op_impl/aicpu/arg_max.py +75 -0
  480. mindspore/ops/_op_impl/aicpu/arg_min.py +75 -0
  481. mindspore/ops/_op_impl/aicpu/argmax_with_value.py +43 -0
  482. mindspore/ops/_op_impl/aicpu/argmin_with_value.py +43 -0
  483. mindspore/ops/_op_impl/aicpu/asin.py +32 -0
  484. mindspore/ops/_op_impl/aicpu/asin_grad.py +33 -0
  485. mindspore/ops/_op_impl/aicpu/asinh.py +34 -0
  486. mindspore/ops/_op_impl/aicpu/asinh_grad.py +35 -0
  487. mindspore/ops/_op_impl/aicpu/atanh.py +34 -0
  488. mindspore/ops/_op_impl/aicpu/avgpool_grad_v1.py +37 -0
  489. mindspore/ops/_op_impl/aicpu/avgpool_v1.py +36 -0
  490. mindspore/ops/_op_impl/aicpu/bartlett_window.py +36 -0
  491. mindspore/ops/_op_impl/aicpu/batch_matmul.py +43 -0
  492. mindspore/ops/_op_impl/aicpu/batch_norm_grad_grad.py +49 -0
  493. mindspore/ops/_op_impl/aicpu/bernoulli.py +48 -0
  494. mindspore/ops/_op_impl/aicpu/bessel_i0.py +31 -0
  495. mindspore/ops/_op_impl/aicpu/betainc.py +31 -0
  496. mindspore/ops/_op_impl/aicpu/bias_add.py +44 -0
  497. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +42 -0
  498. mindspore/ops/_op_impl/aicpu/bincount.py +33 -0
  499. mindspore/ops/_op_impl/aicpu/blackman_window.py +36 -0
  500. mindspore/ops/_op_impl/aicpu/broadcast_to.py +58 -0
  501. mindspore/ops/_op_impl/aicpu/bucketize.py +34 -0
  502. mindspore/ops/_op_impl/aicpu/cache_swap_table.py +102 -0
  503. mindspore/ops/_op_impl/aicpu/cast.py +225 -0
  504. mindspore/ops/_op_impl/aicpu/cauchy.py +33 -0
  505. mindspore/ops/_op_impl/aicpu/channel_shuffle.py +40 -0
  506. mindspore/ops/_op_impl/aicpu/check_numerics.py +33 -0
  507. mindspore/ops/_op_impl/aicpu/cholesky.py +32 -0
  508. mindspore/ops/_op_impl/aicpu/cholesky_inverse.py +31 -0
  509. mindspore/ops/_op_impl/aicpu/cholesky_solve.py +33 -0
  510. mindspore/ops/_op_impl/aicpu/choleskygrad.py +32 -0
  511. mindspore/ops/_op_impl/aicpu/coalesce.py +37 -0
  512. mindspore/ops/_op_impl/aicpu/col2im.py +38 -0
  513. mindspore/ops/_op_impl/aicpu/combined_non_max_suppression.py +42 -0
  514. mindspore/ops/_op_impl/aicpu/compare_and_bitpack.py +37 -0
  515. mindspore/ops/_op_impl/aicpu/complex.py +32 -0
  516. mindspore/ops/_op_impl/aicpu/complex_abs.py +31 -0
  517. mindspore/ops/_op_impl/aicpu/compute_accidental_hits.py +44 -0
  518. mindspore/ops/_op_impl/aicpu/concat.py +57 -0
  519. mindspore/ops/_op_impl/aicpu/concat_offset.py +42 -0
  520. mindspore/ops/_op_impl/aicpu/concat_offset_v1.py +31 -0
  521. mindspore/ops/_op_impl/aicpu/conj.py +42 -0
  522. mindspore/ops/_op_impl/aicpu/conjugate_transpose.py +58 -0
  523. mindspore/ops/_op_impl/aicpu/cos.py +34 -0
  524. mindspore/ops/_op_impl/aicpu/cosh.py +34 -0
  525. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  526. mindspore/ops/_op_impl/aicpu/crop_and_resize.py +69 -0
  527. mindspore/ops/_op_impl/aicpu/crop_and_resize_grad_boxes.py +68 -0
  528. mindspore/ops/_op_impl/aicpu/crop_and_resize_grad_image.py +38 -0
  529. mindspore/ops/_op_impl/aicpu/cross.py +42 -0
  530. mindspore/ops/_op_impl/aicpu/csr_sparse_matrix_to_dense.py +48 -0
  531. mindspore/ops/_op_impl/aicpu/csr_sparse_matrix_to_sparse_tensor.py +51 -0
  532. mindspore/ops/_op_impl/aicpu/ctc_greedy_decoder.py +35 -0
  533. mindspore/ops/_op_impl/aicpu/ctc_loss_v2.py +43 -0
  534. mindspore/ops/_op_impl/aicpu/ctc_loss_v2_grad.py +45 -0
  535. mindspore/ops/_op_impl/aicpu/ctcloss.py +38 -0
  536. mindspore/ops/_op_impl/aicpu/cummax.py +41 -0
  537. mindspore/ops/_op_impl/aicpu/cumprod.py +58 -0
  538. mindspore/ops/_op_impl/aicpu/cumsum.py +58 -0
  539. mindspore/ops/_op_impl/aicpu/cumulative_logsumexp.py +36 -0
  540. mindspore/ops/_op_impl/aicpu/data_format_vec_permute.py +32 -0
  541. mindspore/ops/_op_impl/aicpu/deformable_offsets.py +38 -0
  542. mindspore/ops/_op_impl/aicpu/deformable_offsets_grad.py +43 -0
  543. mindspore/ops/_op_impl/aicpu/dense_to_csr_sparse_matrix.py +49 -0
  544. mindspore/ops/_op_impl/aicpu/dense_to_dense_set_operation.py +45 -0
  545. mindspore/ops/_op_impl/aicpu/dense_to_sparse_set_operation.py +48 -0
  546. mindspore/ops/_op_impl/aicpu/depth_to_space.py +44 -0
  547. mindspore/ops/_op_impl/aicpu/diag.py +36 -0
  548. mindspore/ops/_op_impl/aicpu/diag_part.py +36 -0
  549. mindspore/ops/_op_impl/aicpu/diagonal.py +35 -0
  550. mindspore/ops/_op_impl/aicpu/digamma.py +31 -0
  551. mindspore/ops/_op_impl/aicpu/div.py +41 -0
  552. mindspore/ops/_op_impl/aicpu/div_no_nan.py +35 -0
  553. mindspore/ops/_op_impl/aicpu/dropout2d.py +42 -0
  554. mindspore/ops/_op_impl/aicpu/dropout3d.py +42 -0
  555. mindspore/ops/_op_impl/aicpu/dropout_genmask.py +41 -0
  556. mindspore/ops/_op_impl/aicpu/dropout_genmask_v3.py +32 -0
  557. mindspore/ops/_op_impl/aicpu/dynamic_stitch.py +42 -0
  558. mindspore/ops/_op_impl/aicpu/edit_distance.py +56 -0
  559. mindspore/ops/_op_impl/aicpu/eig.py +35 -0
  560. mindspore/ops/_op_impl/aicpu/embedding_lookup.py +102 -0
  561. mindspore/ops/_op_impl/aicpu/end_of_sequence.py +30 -0
  562. mindspore/ops/_op_impl/aicpu/environ_create.py +28 -0
  563. mindspore/ops/_op_impl/aicpu/environ_destroy_all.py +28 -0
  564. mindspore/ops/_op_impl/aicpu/environ_get.py +41 -0
  565. mindspore/ops/_op_impl/aicpu/environ_set.py +40 -0
  566. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  567. mindspore/ops/_op_impl/aicpu/equal.py +41 -0
  568. mindspore/ops/_op_impl/aicpu/exp.py +37 -0
  569. mindspore/ops/_op_impl/aicpu/expand.py +45 -0
  570. mindspore/ops/_op_impl/aicpu/expand_dims.py +42 -0
  571. mindspore/ops/_op_impl/aicpu/expm1.py +34 -0
  572. mindspore/ops/_op_impl/aicpu/extract_glimpse.py +35 -0
  573. mindspore/ops/_op_impl/aicpu/eye.py +44 -0
  574. mindspore/ops/_op_impl/aicpu/fft_with_size.py +47 -0
  575. mindspore/ops/_op_impl/aicpu/fill_diagonal.py +39 -0
  576. mindspore/ops/_op_impl/aicpu/fill_v2.py +58 -0
  577. mindspore/ops/_op_impl/aicpu/flatten.py +43 -0
  578. mindspore/ops/_op_impl/aicpu/floor_div.py +38 -0
  579. mindspore/ops/_op_impl/aicpu/fmax.py +36 -0
  580. mindspore/ops/_op_impl/aicpu/fmin.py +37 -0
  581. mindspore/ops/_op_impl/aicpu/fractional_avg_pool.py +41 -0
  582. mindspore/ops/_op_impl/aicpu/fractional_avg_pool_grad.py +41 -0
  583. mindspore/ops/_op_impl/aicpu/fractional_max_pool.py +41 -0
  584. mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_grad_with_fixed_ksize.py +43 -0
  585. mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_with_fixed_ksize.py +65 -0
  586. mindspore/ops/_op_impl/aicpu/fractional_max_pool_grad.py +42 -0
  587. mindspore/ops/_op_impl/aicpu/fractional_max_pool_grad_with_fixed_ksize.py +42 -0
  588. mindspore/ops/_op_impl/aicpu/fractional_max_pool_with_fixed_ksize.py +49 -0
  589. mindspore/ops/_op_impl/aicpu/fse_decode.py +43 -0
  590. mindspore/ops/_op_impl/aicpu/fused_sparse_adam.py +46 -0
  591. mindspore/ops/_op_impl/aicpu/fused_sparse_ftrl.py +41 -0
  592. mindspore/ops/_op_impl/aicpu/fused_sparse_lazy_adam.py +46 -0
  593. mindspore/ops/_op_impl/aicpu/fused_sparse_proximal_adagrad.py +39 -0
  594. mindspore/ops/_op_impl/aicpu/gamma.py +38 -0
  595. mindspore/ops/_op_impl/aicpu/gather.py +46 -0
  596. mindspore/ops/_op_impl/aicpu/gather_d.py +79 -0
  597. mindspore/ops/_op_impl/aicpu/gather_d_grad_v2.py +79 -0
  598. mindspore/ops/_op_impl/aicpu/gather_grad.py +54 -0
  599. mindspore/ops/_op_impl/aicpu/gather_nd.py +56 -0
  600. mindspore/ops/_op_impl/aicpu/gcd.py +32 -0
  601. mindspore/ops/_op_impl/aicpu/generate_eod_mask.py +38 -0
  602. mindspore/ops/_op_impl/aicpu/geqrf.py +32 -0
  603. mindspore/ops/_op_impl/aicpu/get_next.py +39 -0
  604. mindspore/ops/_op_impl/aicpu/glu.py +33 -0
  605. mindspore/ops/_op_impl/aicpu/glu_grad.py +34 -0
  606. mindspore/ops/_op_impl/aicpu/greater.py +41 -0
  607. mindspore/ops/_op_impl/aicpu/greater_equal.py +41 -0
  608. mindspore/ops/_op_impl/aicpu/grid_sampler_2d.py +35 -0
  609. mindspore/ops/_op_impl/aicpu/grid_sampler_2d_grad.py +38 -0
  610. mindspore/ops/_op_impl/aicpu/grid_sampler_3d.py +34 -0
  611. mindspore/ops/_op_impl/aicpu/grid_sampler_3d_grad.py +38 -0
  612. mindspore/ops/_op_impl/aicpu/hamming_window.py +57 -0
  613. mindspore/ops/_op_impl/aicpu/hard_sigmoid.py +32 -0
  614. mindspore/ops/_op_impl/aicpu/hard_sigmoid_grad.py +33 -0
  615. mindspore/ops/_op_impl/aicpu/heaviside.py +40 -0
  616. mindspore/ops/_op_impl/aicpu/histogram.py +35 -0
  617. mindspore/ops/_op_impl/aicpu/hsv_to_rgb.py +32 -0
  618. mindspore/ops/_op_impl/aicpu/hypot.py +32 -0
  619. mindspore/ops/_op_impl/aicpu/identity.py +42 -0
  620. mindspore/ops/_op_impl/aicpu/identity_n.py +41 -0
  621. mindspore/ops/_op_impl/aicpu/igamma.py +30 -0
  622. mindspore/ops/_op_impl/aicpu/igammac.py +30 -0
  623. mindspore/ops/_op_impl/aicpu/igammagrada.py +30 -0
  624. mindspore/ops/_op_impl/aicpu/im2col.py +43 -0
  625. mindspore/ops/_op_impl/aicpu/imag.py +31 -0
  626. mindspore/ops/_op_impl/aicpu/index_fill.py +54 -0
  627. mindspore/ops/_op_impl/aicpu/index_put.py +50 -0
  628. mindspore/ops/_op_impl/aicpu/init_data_set_queue.py +27 -0
  629. mindspore/ops/_op_impl/aicpu/inplace_index_add.py +39 -0
  630. mindspore/ops/_op_impl/aicpu/instance_norm_v2.py +41 -0
  631. mindspore/ops/_op_impl/aicpu/instance_norm_v2_grad.py +44 -0
  632. mindspore/ops/_op_impl/aicpu/is_finite.py +40 -0
  633. mindspore/ops/_op_impl/aicpu/is_inf.py +31 -0
  634. mindspore/ops/_op_impl/aicpu/is_nan.py +31 -0
  635. mindspore/ops/_op_impl/aicpu/kldivloss.py +34 -0
  636. mindspore/ops/_op_impl/aicpu/kldivlossgrad.py +35 -0
  637. mindspore/ops/_op_impl/aicpu/layer_norm_grad_grad.py +47 -0
  638. mindspore/ops/_op_impl/aicpu/lcm.py +32 -0
  639. mindspore/ops/_op_impl/aicpu/left_shift.py +38 -0
  640. mindspore/ops/_op_impl/aicpu/less.py +41 -0
  641. mindspore/ops/_op_impl/aicpu/less_equal.py +41 -0
  642. mindspore/ops/_op_impl/aicpu/lgamma.py +33 -0
  643. mindspore/ops/_op_impl/aicpu/linear_sum_assignment.py +57 -0
  644. mindspore/ops/_op_impl/aicpu/linspace.py +33 -0
  645. mindspore/ops/_op_impl/aicpu/list_diff.py +50 -0
  646. mindspore/ops/_op_impl/aicpu/log.py +37 -0
  647. mindspore/ops/_op_impl/aicpu/log1p.py +34 -0
  648. mindspore/ops/_op_impl/aicpu/log_matrix_determinant.py +31 -0
  649. mindspore/ops/_op_impl/aicpu/log_normal_reverse.py +33 -0
  650. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +37 -0
  651. mindspore/ops/_op_impl/aicpu/logical_xor.py +30 -0
  652. mindspore/ops/_op_impl/aicpu/logit.py +33 -0
  653. mindspore/ops/_op_impl/aicpu/logit_grad.py +34 -0
  654. mindspore/ops/_op_impl/aicpu/logspace.py +36 -0
  655. mindspore/ops/_op_impl/aicpu/lower_bound.py +47 -0
  656. mindspore/ops/_op_impl/aicpu/lstsq.py +34 -0
  657. mindspore/ops/_op_impl/aicpu/lu.py +39 -0
  658. mindspore/ops/_op_impl/aicpu/lu_solve.py +32 -0
  659. mindspore/ops/_op_impl/aicpu/lu_unpack.py +114 -0
  660. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +49 -0
  661. mindspore/ops/_op_impl/aicpu/masked_fill.py +42 -0
  662. mindspore/ops/_op_impl/aicpu/masked_scatter.py +40 -0
  663. mindspore/ops/_op_impl/aicpu/masked_select.py +31 -0
  664. mindspore/ops/_op_impl/aicpu/masked_select_grad.py +35 -0
  665. mindspore/ops/_op_impl/aicpu/matmul.py +39 -0
  666. mindspore/ops/_op_impl/aicpu/matrix_band_part.py +59 -0
  667. mindspore/ops/_op_impl/aicpu/matrix_determinant.py +30 -0
  668. mindspore/ops/_op_impl/aicpu/matrix_diag_part_v3.py +54 -0
  669. mindspore/ops/_op_impl/aicpu/matrix_diag_v3.py +56 -0
  670. mindspore/ops/_op_impl/aicpu/matrix_exp.py +34 -0
  671. mindspore/ops/_op_impl/aicpu/matrix_inverse.py +31 -0
  672. mindspore/ops/_op_impl/aicpu/matrix_logarithm.py +31 -0
  673. mindspore/ops/_op_impl/aicpu/matrix_power.py +37 -0
  674. mindspore/ops/_op_impl/aicpu/matrix_set_diag_v3.py +54 -0
  675. mindspore/ops/_op_impl/aicpu/matrix_solve.py +35 -0
  676. mindspore/ops/_op_impl/aicpu/matrix_solve_ls.py +36 -0
  677. mindspore/ops/_op_impl/aicpu/matrix_triangular_solve.py +36 -0
  678. mindspore/ops/_op_impl/aicpu/max_pool3d_grad_with_argmax.py +60 -0
  679. mindspore/ops/_op_impl/aicpu/max_pool3d_with_argmax.py +59 -0
  680. mindspore/ops/_op_impl/aicpu/max_unpool2d.py +57 -0
  681. mindspore/ops/_op_impl/aicpu/max_unpool2d_grad.py +58 -0
  682. mindspore/ops/_op_impl/aicpu/max_unpool3d.py +57 -0
  683. mindspore/ops/_op_impl/aicpu/max_unpool3d_grad.py +58 -0
  684. mindspore/ops/_op_impl/aicpu/maximum_grad_grad.py +40 -0
  685. mindspore/ops/_op_impl/aicpu/maxpool_grad_v1.py +46 -0
  686. mindspore/ops/_op_impl/aicpu/maxpool_v1.py +42 -0
  687. mindspore/ops/_op_impl/aicpu/median.py +39 -0
  688. mindspore/ops/_op_impl/aicpu/median_grad.py +45 -0
  689. mindspore/ops/_op_impl/aicpu/meshgrid.py +41 -0
  690. mindspore/ops/_op_impl/aicpu/minimum_grad_grad.py +40 -0
  691. mindspore/ops/_op_impl/aicpu/mirror_pad.py +50 -0
  692. mindspore/ops/_op_impl/aicpu/mirror_pad_grad.py +48 -0
  693. mindspore/ops/_op_impl/aicpu/mul.py +43 -0
  694. mindspore/ops/_op_impl/aicpu/mul_no_nan.py +42 -0
  695. mindspore/ops/_op_impl/aicpu/multi_margin_loss.py +37 -0
  696. mindspore/ops/_op_impl/aicpu/multi_margin_loss_grad.py +41 -0
  697. mindspore/ops/_op_impl/aicpu/multilabel_margin_loss_grad.py +37 -0
  698. mindspore/ops/_op_impl/aicpu/multinomial.py +47 -0
  699. mindspore/ops/_op_impl/aicpu/multinomial_with_replacement.py +35 -0
  700. mindspore/ops/_op_impl/aicpu/mvlgamma.py +32 -0
  701. mindspore/ops/_op_impl/aicpu/mvlgamma_grad.py +33 -0
  702. mindspore/ops/_op_impl/aicpu/nan_to_num.py +34 -0
  703. mindspore/ops/_op_impl/aicpu/neg.py +36 -0
  704. mindspore/ops/_op_impl/aicpu/nextafter.py +32 -0
  705. mindspore/ops/_op_impl/aicpu/nllloss.py +38 -0
  706. mindspore/ops/_op_impl/aicpu/nllloss_grad.py +39 -0
  707. mindspore/ops/_op_impl/aicpu/no_repeat_ngram.py +34 -0
  708. mindspore/ops/_op_impl/aicpu/non_deterministic_ints.py +33 -0
  709. mindspore/ops/_op_impl/aicpu/non_max_suppression.py +36 -0
  710. mindspore/ops/_op_impl/aicpu/non_max_suppression_with_overlaps.py +35 -0
  711. mindspore/ops/_op_impl/aicpu/non_zero.py +43 -0
  712. mindspore/ops/_op_impl/aicpu/not_equal.py +39 -0
  713. mindspore/ops/_op_impl/aicpu/nth_element.py +39 -0
  714. mindspore/ops/_op_impl/aicpu/nuclear_norm.py +33 -0
  715. mindspore/ops/_op_impl/aicpu/one_hot.py +116 -0
  716. mindspore/ops/_op_impl/aicpu/ones_like.py +39 -0
  717. mindspore/ops/_op_impl/aicpu/orgqr.py +34 -0
  718. mindspore/ops/_op_impl/aicpu/pad_and_shift.py +33 -0
  719. mindspore/ops/_op_impl/aicpu/pad_v3.py +61 -0
  720. mindspore/ops/_op_impl/aicpu/pad_v3_grad.py +59 -0
  721. mindspore/ops/_op_impl/aicpu/padding.py +41 -0
  722. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +54 -0
  723. mindspore/ops/_op_impl/aicpu/pdist_grad.py +33 -0
  724. mindspore/ops/_op_impl/aicpu/poisson.py +37 -0
  725. mindspore/ops/_op_impl/aicpu/polar.py +32 -0
  726. mindspore/ops/_op_impl/aicpu/polygamma.py +34 -0
  727. mindspore/ops/_op_impl/aicpu/pow.py +39 -0
  728. mindspore/ops/_op_impl/aicpu/print_tensor.py +39 -0
  729. mindspore/ops/_op_impl/aicpu/priority_replay_buffer.py +113 -0
  730. mindspore/ops/_op_impl/aicpu/qr.py +36 -0
  731. mindspore/ops/_op_impl/aicpu/quant_dtype_cast.py +40 -0
  732. mindspore/ops/_op_impl/aicpu/quantile.py +35 -0
  733. mindspore/ops/_op_impl/aicpu/ragged_range.py +49 -0
  734. mindspore/ops/_op_impl/aicpu/ragged_tensor_to_sparse.py +73 -0
  735. mindspore/ops/_op_impl/aicpu/ragged_tensor_to_tensor.py +74 -0
  736. mindspore/ops/_op_impl/aicpu/random_categorical.py +68 -0
  737. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +36 -0
  738. mindspore/ops/_op_impl/aicpu/random_gamma.py +38 -0
  739. mindspore/ops/_op_impl/aicpu/random_poisson.py +134 -0
  740. mindspore/ops/_op_impl/aicpu/random_shuffle.py +47 -0
  741. mindspore/ops/_op_impl/aicpu/randperm.py +38 -0
  742. mindspore/ops/_op_impl/aicpu/randperm_v2.py +41 -0
  743. mindspore/ops/_op_impl/aicpu/range.py +36 -0
  744. mindspore/ops/_op_impl/aicpu/range_v2.py +35 -0
  745. mindspore/ops/_op_impl/aicpu/real.py +31 -0
  746. mindspore/ops/_op_impl/aicpu/real_div.py +40 -0
  747. mindspore/ops/_op_impl/aicpu/reciprocal.py +34 -0
  748. mindspore/ops/_op_impl/aicpu/reciprocal_grad.py +35 -0
  749. mindspore/ops/_op_impl/aicpu/reduce_mean.py +57 -0
  750. mindspore/ops/_op_impl/aicpu/reduce_prod.py +57 -0
  751. mindspore/ops/_op_impl/aicpu/reduce_sum.py +57 -0
  752. mindspore/ops/_op_impl/aicpu/relu_grad_v3.py +41 -0
  753. mindspore/ops/_op_impl/aicpu/relu_v3.py +38 -0
  754. mindspore/ops/_op_impl/aicpu/reservoir_replay_buffer.py +96 -0
  755. mindspore/ops/_op_impl/aicpu/reshape.py +42 -0
  756. mindspore/ops/_op_impl/aicpu/resize_area.py +40 -0
  757. mindspore/ops/_op_impl/aicpu/resize_bicubic.py +20 -0
  758. mindspore/ops/_op_impl/aicpu/resize_bicubic_grad.py +19 -0
  759. mindspore/ops/_op_impl/aicpu/resize_bilinear.py +32 -0
  760. mindspore/ops/_op_impl/aicpu/resize_bilinear_grad.py +32 -0
  761. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2.py +36 -0
  762. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2_grad.py +35 -0
  763. mindspore/ops/_op_impl/aicpu/resize_v2.py +68 -0
  764. mindspore/ops/_op_impl/aicpu/resize_v2_grad.py +68 -0
  765. mindspore/ops/_op_impl/aicpu/reverse_sequence.py +55 -0
  766. mindspore/ops/_op_impl/aicpu/reversev2.py +54 -0
  767. mindspore/ops/_op_impl/aicpu/rgb_to_hsv.py +32 -0
  768. mindspore/ops/_op_impl/aicpu/right_shift.py +38 -0
  769. mindspore/ops/_op_impl/aicpu/rnnt_loss.py +35 -0
  770. mindspore/ops/_op_impl/aicpu/round.py +34 -0
  771. mindspore/ops/_op_impl/aicpu/rsqrt.py +33 -0
  772. mindspore/ops/_op_impl/aicpu/rsqrt_grad.py +36 -0
  773. mindspore/ops/_op_impl/aicpu/sample_distorted_bounding_box_v2.py +49 -0
  774. mindspore/ops/_op_impl/aicpu/scale_and_translate.py +52 -0
  775. mindspore/ops/_op_impl/aicpu/scale_and_translate_grad.py +36 -0
  776. mindspore/ops/_op_impl/aicpu/scatter.py +79 -0
  777. mindspore/ops/_op_impl/aicpu/scatter_add_with_axis.py +53 -0
  778. mindspore/ops/_op_impl/aicpu/scatter_elements.py +39 -0
  779. mindspore/ops/_op_impl/aicpu/scatter_nd.py +59 -0
  780. mindspore/ops/_op_impl/aicpu/scatter_nd_max.py +54 -0
  781. mindspore/ops/_op_impl/aicpu/scatter_nd_min.py +54 -0
  782. mindspore/ops/_op_impl/aicpu/scatter_nd_update.py +59 -0
  783. mindspore/ops/_op_impl/aicpu/search_sorted.py +44 -0
  784. mindspore/ops/_op_impl/aicpu/segment_max.py +52 -0
  785. mindspore/ops/_op_impl/aicpu/segment_mean.py +56 -0
  786. mindspore/ops/_op_impl/aicpu/segment_min.py +52 -0
  787. mindspore/ops/_op_impl/aicpu/segment_prod.py +56 -0
  788. mindspore/ops/_op_impl/aicpu/segment_sum.py +56 -0
  789. mindspore/ops/_op_impl/aicpu/select.py +45 -0
  790. mindspore/ops/_op_impl/aicpu/self_adjoint_eig.py +34 -0
  791. mindspore/ops/_op_impl/aicpu/sequence_add.py +34 -0
  792. mindspore/ops/_op_impl/aicpu/sequence_add_offset.py +34 -0
  793. mindspore/ops/_op_impl/aicpu/sequence_addn.py +38 -0
  794. mindspore/ops/_op_impl/aicpu/sequence_concat.py +40 -0
  795. mindspore/ops/_op_impl/aicpu/sequence_stack.py +40 -0
  796. mindspore/ops/_op_impl/aicpu/set_size.py +38 -0
  797. mindspore/ops/_op_impl/aicpu/sign.py +36 -0
  798. mindspore/ops/_op_impl/aicpu/sin.py +34 -0
  799. mindspore/ops/_op_impl/aicpu/sinc.py +43 -0
  800. mindspore/ops/_op_impl/aicpu/sinh.py +34 -0
  801. mindspore/ops/_op_impl/aicpu/slice.py +59 -0
  802. mindspore/ops/_op_impl/aicpu/slice_grad.py +76 -0
  803. mindspore/ops/_op_impl/aicpu/smooth_l1_loss.py +35 -0
  804. mindspore/ops/_op_impl/aicpu/smooth_l1_loss_grad.py +37 -0
  805. mindspore/ops/_op_impl/aicpu/sort.py +39 -0
  806. mindspore/ops/_op_impl/aicpu/space_to_depth.py +44 -0
  807. mindspore/ops/_op_impl/aicpu/sparse_addmm.py +87 -0
  808. mindspore/ops/_op_impl/aicpu/sparse_apply_adagrad_da.py +80 -0
  809. mindspore/ops/_op_impl/aicpu/sparse_apply_centered_rms_prop.py +105 -0
  810. mindspore/ops/_op_impl/aicpu/sparse_apply_momentum.py +80 -0
  811. mindspore/ops/_op_impl/aicpu/sparse_apply_proximal_gradient_descent.py +79 -0
  812. mindspore/ops/_op_impl/aicpu/sparse_concat.py +59 -0
  813. mindspore/ops/_op_impl/aicpu/sparse_cross.py +42 -0
  814. mindspore/ops/_op_impl/aicpu/sparse_dense_cwise_add.py +58 -0
  815. mindspore/ops/_op_impl/aicpu/sparse_dense_cwise_div.py +58 -0
  816. mindspore/ops/_op_impl/aicpu/sparse_dense_cwise_mul.py +58 -0
  817. mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows.py +63 -0
  818. mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows_grad.py +45 -0
  819. mindspore/ops/_op_impl/aicpu/sparse_matrix_mat_mul.py +56 -0
  820. mindspore/ops/_op_impl/aicpu/sparse_matrix_nnz.py +81 -0
  821. mindspore/ops/_op_impl/aicpu/sparse_matrix_transpose.py +116 -0
  822. mindspore/ops/_op_impl/aicpu/sparse_reorder.py +56 -0
  823. mindspore/ops/_op_impl/aicpu/sparse_reshape.py +34 -0
  824. mindspore/ops/_op_impl/aicpu/sparse_segment_mean_grad.py +36 -0
  825. mindspore/ops/_op_impl/aicpu/sparse_segment_mean_with_num_segments.py +44 -0
  826. mindspore/ops/_op_impl/aicpu/sparse_segment_sqrt_n.py +43 -0
  827. mindspore/ops/_op_impl/aicpu/sparse_segment_sqrt_n_grad.py +38 -0
  828. mindspore/ops/_op_impl/aicpu/sparse_segment_sqrt_n_with_num_segments.py +44 -0
  829. mindspore/ops/_op_impl/aicpu/sparse_segment_sum.py +49 -0
  830. mindspore/ops/_op_impl/aicpu/sparse_segment_sum_with_num_segments.py +68 -0
  831. mindspore/ops/_op_impl/aicpu/sparse_slice.py +63 -0
  832. mindspore/ops/_op_impl/aicpu/sparse_slice_grad.py +61 -0
  833. mindspore/ops/_op_impl/aicpu/sparse_softmax.py +33 -0
  834. mindspore/ops/_op_impl/aicpu/sparse_softmax_cross_entropy_with_logits_v2.py +35 -0
  835. mindspore/ops/_op_impl/aicpu/sparse_sparse_maximum.py +53 -0
  836. mindspore/ops/_op_impl/aicpu/sparse_sparse_minimum.py +53 -0
  837. mindspore/ops/_op_impl/aicpu/sparse_tensor_dense_add.py +84 -0
  838. mindspore/ops/_op_impl/aicpu/sparse_tensor_dense_mat_mul.py +190 -0
  839. mindspore/ops/_op_impl/aicpu/sparse_tensor_to_csr_sparse_matrix.py +51 -0
  840. mindspore/ops/_op_impl/aicpu/sparse_to_dense_v2.py +73 -0
  841. mindspore/ops/_op_impl/aicpu/split.py +45 -0
  842. mindspore/ops/_op_impl/aicpu/sqrt.py +34 -0
  843. mindspore/ops/_op_impl/aicpu/sqrt_grad.py +35 -0
  844. mindspore/ops/_op_impl/aicpu/square.py +35 -0
  845. mindspore/ops/_op_impl/aicpu/squared_difference.py +37 -0
  846. mindspore/ops/_op_impl/aicpu/squeeze.py +42 -0
  847. mindspore/ops/_op_impl/aicpu/sspaddmm.py +97 -0
  848. mindspore/ops/_op_impl/aicpu/stack.py +45 -0
  849. mindspore/ops/_op_impl/aicpu/stack_push_pop.py +87 -0
  850. mindspore/ops/_op_impl/aicpu/standard_laplace.py +34 -0
  851. mindspore/ops/_op_impl/aicpu/standard_normal.py +34 -0
  852. mindspore/ops/_op_impl/aicpu/stateless_dropout_genmask.py +37 -0
  853. mindspore/ops/_op_impl/aicpu/stft.py +70 -0
  854. mindspore/ops/_op_impl/aicpu/strided_slice.py +43 -0
  855. mindspore/ops/_op_impl/aicpu/strided_slice_grad.py +50 -0
  856. mindspore/ops/_op_impl/aicpu/sub.py +41 -0
  857. mindspore/ops/_op_impl/aicpu/sub_and_filter.py +36 -0
  858. mindspore/ops/_op_impl/aicpu/tan.py +34 -0
  859. mindspore/ops/_op_impl/aicpu/tanh.py +34 -0
  860. mindspore/ops/_op_impl/aicpu/tanh_grad.py +35 -0
  861. mindspore/ops/_op_impl/aicpu/tensor_scatter_update.py +59 -0
  862. mindspore/ops/_op_impl/aicpu/tile.py +56 -0
  863. mindspore/ops/_op_impl/aicpu/topk.py +34 -0
  864. mindspore/ops/_op_impl/aicpu/trace.py +40 -0
  865. mindspore/ops/_op_impl/aicpu/tracegrad.py +41 -0
  866. mindspore/ops/_op_impl/aicpu/trans_data.py +35 -0
  867. mindspore/ops/_op_impl/aicpu/transpose.py +58 -0
  868. mindspore/ops/_op_impl/aicpu/tridiagonal_matmul.py +42 -0
  869. mindspore/ops/_op_impl/aicpu/tridiagonal_solve.py +35 -0
  870. mindspore/ops/_op_impl/aicpu/tril.py +42 -0
  871. mindspore/ops/_op_impl/aicpu/tril_indices.py +34 -0
  872. mindspore/ops/_op_impl/aicpu/triplet_margin_loss.py +62 -0
  873. mindspore/ops/_op_impl/aicpu/triu.py +43 -0
  874. mindspore/ops/_op_impl/aicpu/triu_indices.py +34 -0
  875. mindspore/ops/_op_impl/aicpu/truncated_normal.py +39 -0
  876. mindspore/ops/_op_impl/aicpu/uniform.py +36 -0
  877. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +41 -0
  878. mindspore/ops/_op_impl/aicpu/uniform_int.py +36 -0
  879. mindspore/ops/_op_impl/aicpu/uniform_real.py +33 -0
  880. mindspore/ops/_op_impl/aicpu/unique.py +31 -0
  881. mindspore/ops/_op_impl/aicpu/unique_consecutive.py +47 -0
  882. mindspore/ops/_op_impl/aicpu/unique_with_pad.py +32 -0
  883. mindspore/ops/_op_impl/aicpu/unravel_index.py +32 -0
  884. mindspore/ops/_op_impl/aicpu/unsorted_segment_prod.py +53 -0
  885. mindspore/ops/_op_impl/aicpu/unsorted_segment_sum.py +57 -0
  886. mindspore/ops/_op_impl/aicpu/unstack.py +45 -0
  887. mindspore/ops/_op_impl/aicpu/update_cache.py +44 -0
  888. mindspore/ops/_op_impl/aicpu/upper_bound.py +47 -0
  889. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d.py +42 -0
  890. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d_grad.py +49 -0
  891. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d.py +40 -0
  892. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d_grad.py +50 -0
  893. mindspore/ops/_op_impl/aicpu/xdivy.py +35 -0
  894. mindspore/ops/_op_impl/aicpu/xlogy.py +33 -0
  895. mindspore/ops/_op_impl/aicpu/zeros_like.py +42 -0
  896. mindspore/ops/_op_impl/aicpu/zeta.py +31 -0
  897. mindspore/ops/_op_impl/akg/__init__.py +19 -0
  898. mindspore/ops/_op_impl/akg/ascend/__init__.py +48 -0
  899. mindspore/ops/_op_impl/akg/ascend/abs.py +35 -0
  900. mindspore/ops/_op_impl/akg/ascend/add.py +42 -0
  901. mindspore/ops/_op_impl/akg/ascend/add_n.py +37 -0
  902. mindspore/ops/_op_impl/akg/ascend/batchmatmul.py +33 -0
  903. mindspore/ops/_op_impl/akg/ascend/cast.py +46 -0
  904. mindspore/ops/_op_impl/akg/ascend/equal.py +35 -0
  905. mindspore/ops/_op_impl/akg/ascend/exp.py +35 -0
  906. mindspore/ops/_op_impl/akg/ascend/expand_dims.py +33 -0
  907. mindspore/ops/_op_impl/akg/ascend/greater.py +34 -0
  908. mindspore/ops/_op_impl/akg/ascend/greater_equal.py +35 -0
  909. mindspore/ops/_op_impl/akg/ascend/less.py +31 -0
  910. mindspore/ops/_op_impl/akg/ascend/less_equal.py +35 -0
  911. mindspore/ops/_op_impl/akg/ascend/load_im2col.py +33 -0
  912. mindspore/ops/_op_impl/akg/ascend/log.py +34 -0
  913. mindspore/ops/_op_impl/akg/ascend/maximum.py +36 -0
  914. mindspore/ops/_op_impl/akg/ascend/minimum.py +39 -0
  915. mindspore/ops/_op_impl/akg/ascend/mul.py +41 -0
  916. mindspore/ops/_op_impl/akg/ascend/neg.py +37 -0
  917. mindspore/ops/_op_impl/akg/ascend/pow.py +35 -0
  918. mindspore/ops/_op_impl/akg/ascend/prod_force_se_a.py +33 -0
  919. mindspore/ops/_op_impl/akg/ascend/real_div.py +36 -0
  920. mindspore/ops/_op_impl/akg/ascend/reciprocal.py +32 -0
  921. mindspore/ops/_op_impl/akg/ascend/reduce_max.py +32 -0
  922. mindspore/ops/_op_impl/akg/ascend/reduce_min.py +32 -0
  923. mindspore/ops/_op_impl/akg/ascend/reduce_sum.py +37 -0
  924. mindspore/ops/_op_impl/akg/ascend/rsqrt.py +35 -0
  925. mindspore/ops/_op_impl/akg/ascend/select.py +37 -0
  926. mindspore/ops/_op_impl/akg/ascend/sqrt.py +35 -0
  927. mindspore/ops/_op_impl/akg/ascend/square.py +35 -0
  928. mindspore/ops/_op_impl/akg/ascend/sub.py +42 -0
  929. mindspore/ops/_op_impl/akg/cpu/__init__.py +23 -0
  930. mindspore/ops/_op_impl/akg/cpu/coo2csr.py +29 -0
  931. mindspore/ops/_op_impl/akg/cpu/csr2coo.py +29 -0
  932. mindspore/ops/_op_impl/akg/cpu/csr_gather.py +33 -0
  933. mindspore/ops/_op_impl/akg/cpu/csr_mm.py +34 -0
  934. mindspore/ops/_op_impl/akg/cpu/csr_mul.py +33 -0
  935. mindspore/ops/_op_impl/akg/cpu/csr_mv.py +33 -0
  936. mindspore/ops/_op_impl/akg/cpu/csr_reduce_sum.py +31 -0
  937. mindspore/ops/_op_impl/akg/gpu/__init__.py +24 -0
  938. mindspore/ops/_op_impl/akg/gpu/coo2csr.py +29 -0
  939. mindspore/ops/_op_impl/akg/gpu/csr2coo.py +29 -0
  940. mindspore/ops/_op_impl/akg/gpu/csr_div.py +36 -0
  941. mindspore/ops/_op_impl/akg/gpu/csr_gather.py +33 -0
  942. mindspore/ops/_op_impl/akg/gpu/csr_mm.py +37 -0
  943. mindspore/ops/_op_impl/akg/gpu/csr_mul.py +36 -0
  944. mindspore/ops/_op_impl/akg/gpu/csr_mv.py +36 -0
  945. mindspore/ops/_op_impl/akg/gpu/csr_reduce_sum.py +33 -0
  946. mindspore/ops/_op_impl/cpu/__init__.py +78 -0
  947. mindspore/ops/_op_impl/cpu/adam.py +49 -0
  948. mindspore/ops/_op_impl/cpu/adam_weight_decay.py +47 -0
  949. mindspore/ops/_op_impl/cpu/arg_max.py +30 -0
  950. mindspore/ops/_op_impl/cpu/arg_max_with_value.py +31 -0
  951. mindspore/ops/_op_impl/cpu/arg_min_with_value.py +31 -0
  952. mindspore/ops/_op_impl/cpu/buffer_append.py +28 -0
  953. mindspore/ops/_op_impl/cpu/buffer_get.py +28 -0
  954. mindspore/ops/_op_impl/cpu/buffer_sample.py +28 -0
  955. mindspore/ops/_op_impl/cpu/cast.py +171 -0
  956. mindspore/ops/_op_impl/cpu/concat_offset.py +38 -0
  957. mindspore/ops/_op_impl/cpu/conv2d.py +30 -0
  958. mindspore/ops/_op_impl/cpu/conv3d.py +30 -0
  959. mindspore/ops/_op_impl/cpu/div.py +32 -0
  960. mindspore/ops/_op_impl/cpu/dropout.py +31 -0
  961. mindspore/ops/_op_impl/cpu/dropout_grad.py +30 -0
  962. mindspore/ops/_op_impl/cpu/dynamic_shape.py +42 -0
  963. mindspore/ops/_op_impl/cpu/dynamic_stitch.py +41 -0
  964. mindspore/ops/_op_impl/cpu/equal_count.py +30 -0
  965. mindspore/ops/_op_impl/cpu/gather_d.py +49 -0
  966. mindspore/ops/_op_impl/cpu/gather_d_grad.py +38 -0
  967. mindspore/ops/_op_impl/cpu/gather_d_grad_v2.py +40 -0
  968. mindspore/ops/_op_impl/cpu/gather_v2.py +40 -0
  969. mindspore/ops/_op_impl/cpu/hsigmoid.py +33 -0
  970. mindspore/ops/_op_impl/cpu/hsigmoid_grad.py +34 -0
  971. mindspore/ops/_op_impl/cpu/hswish.py +32 -0
  972. mindspore/ops/_op_impl/cpu/hswish_grad.py +33 -0
  973. mindspore/ops/_op_impl/cpu/identity_n.py +40 -0
  974. mindspore/ops/_op_impl/cpu/is_finite.py +39 -0
  975. mindspore/ops/_op_impl/cpu/l2loss.py +30 -0
  976. mindspore/ops/_op_impl/cpu/layer_norm.py +36 -0
  977. mindspore/ops/_op_impl/cpu/layer_norm_grad.py +38 -0
  978. mindspore/ops/_op_impl/cpu/maximum.py +35 -0
  979. mindspore/ops/_op_impl/cpu/maximum_grad.py +47 -0
  980. mindspore/ops/_op_impl/cpu/minimum.py +40 -0
  981. mindspore/ops/_op_impl/cpu/minimum_grad.py +51 -0
  982. mindspore/ops/_op_impl/cpu/mirror_pad.py +36 -0
  983. mindspore/ops/_op_impl/cpu/mirror_pad_grad.py +36 -0
  984. mindspore/ops/_op_impl/cpu/mul.py +32 -0
  985. mindspore/ops/_op_impl/cpu/one_hot.py +31 -0
  986. mindspore/ops/_op_impl/cpu/pad.py +32 -0
  987. mindspore/ops/_op_impl/cpu/pow.py +32 -0
  988. mindspore/ops/_op_impl/cpu/priority_replay_buffer.py +42 -0
  989. mindspore/ops/_op_impl/cpu/pyexecute.py +29 -0
  990. mindspore/ops/_op_impl/cpu/pyfunc.py +29 -0
  991. mindspore/ops/_op_impl/cpu/range.py +34 -0
  992. mindspore/ops/_op_impl/cpu/real_div.py +33 -0
  993. mindspore/ops/_op_impl/cpu/reduce_all.py +29 -0
  994. mindspore/ops/_op_impl/cpu/reduce_any.py +29 -0
  995. mindspore/ops/_op_impl/cpu/reduce_max.py +32 -0
  996. mindspore/ops/_op_impl/cpu/reduce_mean.py +40 -0
  997. mindspore/ops/_op_impl/cpu/reduce_min.py +32 -0
  998. mindspore/ops/_op_impl/cpu/reduce_prod.py +40 -0
  999. mindspore/ops/_op_impl/cpu/reduce_std.py +31 -0
  1000. mindspore/ops/_op_impl/cpu/reduce_sum.py +41 -0
  1001. mindspore/ops/_op_impl/cpu/space_to_batch_nd.py +38 -0
  1002. mindspore/ops/_op_impl/cpu/sparse_slice.py +62 -0
  1003. mindspore/ops/_op_impl/cpu/sparse_slice_grad.py +60 -0
  1004. mindspore/ops/_op_impl/cpu/split.py +34 -0
  1005. mindspore/ops/_op_impl/cpu/sspaddmm.py +95 -0
  1006. mindspore/ops/_op_impl/cpu/stack.py +38 -0
  1007. mindspore/ops/_op_impl/cpu/sub.py +32 -0
  1008. mindspore/ops/_op_impl/cpu/tensor_copy_slices.py +41 -0
  1009. mindspore/ops/_op_impl/cpu/tile.py +37 -0
  1010. mindspore/ops/_op_impl/cpu/top_k.py +31 -0
  1011. mindspore/ops/_op_impl/cpu/transpose.py +39 -0
  1012. mindspore/ops/_primitive_cache.py +90 -0
  1013. mindspore/ops/_register_for_op.py +73 -0
  1014. mindspore/ops/_utils/__init__.py +20 -0
  1015. mindspore/ops/_utils/utils.py +147 -0
  1016. mindspore/ops/_vmap/__init__.py +25 -0
  1017. mindspore/ops/_vmap/vmap_array_ops.py +2149 -0
  1018. mindspore/ops/_vmap/vmap_base.py +533 -0
  1019. mindspore/ops/_vmap/vmap_convolution_ops.py +441 -0
  1020. mindspore/ops/_vmap/vmap_debug_ops.py +50 -0
  1021. mindspore/ops/_vmap/vmap_grad_math_ops.py +274 -0
  1022. mindspore/ops/_vmap/vmap_grad_nn_ops.py +806 -0
  1023. mindspore/ops/_vmap/vmap_image_ops.py +194 -0
  1024. mindspore/ops/_vmap/vmap_math_ops.py +993 -0
  1025. mindspore/ops/_vmap/vmap_nn_ops.py +2250 -0
  1026. mindspore/ops/_vmap/vmap_other_ops.py +105 -0
  1027. mindspore/ops/_vmap/vmap_random_ops.py +122 -0
  1028. mindspore/ops/_vmap/vmap_sparse_ops.py +89 -0
  1029. mindspore/ops/auto_generate/__init__.py +31 -0
  1030. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +309 -0
  1031. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +252 -0
  1032. mindspore/ops/auto_generate/gen_arg_handler.py +197 -0
  1033. mindspore/ops/auto_generate/gen_extend_func.py +1701 -0
  1034. mindspore/ops/auto_generate/gen_ops_def.py +8482 -0
  1035. mindspore/ops/auto_generate/gen_ops_prim.py +16704 -0
  1036. mindspore/ops/auto_generate/pyboost_inner_prim.py +549 -0
  1037. mindspore/ops/composite/__init__.py +71 -0
  1038. mindspore/ops/composite/base.py +1318 -0
  1039. mindspore/ops/composite/env_ops.py +41 -0
  1040. mindspore/ops/composite/math_ops.py +125 -0
  1041. mindspore/ops/composite/multitype_ops/__init__.py +77 -0
  1042. mindspore/ops/composite/multitype_ops/_compile_utils.py +1459 -0
  1043. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +897 -0
  1044. mindspore/ops/composite/multitype_ops/add_impl.py +606 -0
  1045. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +56 -0
  1046. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +56 -0
  1047. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +56 -0
  1048. mindspore/ops/composite/multitype_ops/div_impl.py +189 -0
  1049. mindspore/ops/composite/multitype_ops/equal_impl.py +335 -0
  1050. mindspore/ops/composite/multitype_ops/floordiv_impl.py +88 -0
  1051. mindspore/ops/composite/multitype_ops/getitem_impl.py +400 -0
  1052. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +109 -0
  1053. mindspore/ops/composite/multitype_ops/greater_impl.py +110 -0
  1054. mindspore/ops/composite/multitype_ops/in_impl.py +196 -0
  1055. mindspore/ops/composite/multitype_ops/left_shift_impl.py +37 -0
  1056. mindspore/ops/composite/multitype_ops/less_equal_impl.py +111 -0
  1057. mindspore/ops/composite/multitype_ops/less_impl.py +112 -0
  1058. mindspore/ops/composite/multitype_ops/logic_not_impl.py +113 -0
  1059. mindspore/ops/composite/multitype_ops/logical_and_impl.py +60 -0
  1060. mindspore/ops/composite/multitype_ops/logical_or_impl.py +61 -0
  1061. mindspore/ops/composite/multitype_ops/mod_impl.py +86 -0
  1062. mindspore/ops/composite/multitype_ops/mul_impl.py +294 -0
  1063. mindspore/ops/composite/multitype_ops/negative_impl.py +79 -0
  1064. mindspore/ops/composite/multitype_ops/not_equal_impl.py +290 -0
  1065. mindspore/ops/composite/multitype_ops/not_in_impl.py +196 -0
  1066. mindspore/ops/composite/multitype_ops/ones_like_impl.py +96 -0
  1067. mindspore/ops/composite/multitype_ops/pow_impl.py +87 -0
  1068. mindspore/ops/composite/multitype_ops/right_shift_impl.py +37 -0
  1069. mindspore/ops/composite/multitype_ops/setitem_impl.py +884 -0
  1070. mindspore/ops/composite/multitype_ops/sub_impl.py +116 -0
  1071. mindspore/ops/composite/multitype_ops/uadd_impl.py +29 -0
  1072. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +228 -0
  1073. mindspore/ops/deprecated.py +315 -0
  1074. mindspore/ops/function/__init__.py +782 -0
  1075. mindspore/ops/function/array_func.py +7226 -0
  1076. mindspore/ops/function/clip_func.py +384 -0
  1077. mindspore/ops/function/debug_func.py +181 -0
  1078. mindspore/ops/function/fft_func.py +44 -0
  1079. mindspore/ops/function/grad/__init__.py +34 -0
  1080. mindspore/ops/function/grad/grad_func.py +1425 -0
  1081. mindspore/ops/function/image_func.py +292 -0
  1082. mindspore/ops/function/linalg_func.py +416 -0
  1083. mindspore/ops/function/math_func.py +12228 -0
  1084. mindspore/ops/function/nn_func.py +8609 -0
  1085. mindspore/ops/function/other_func.py +115 -0
  1086. mindspore/ops/function/parameter_func.py +134 -0
  1087. mindspore/ops/function/random_func.py +1715 -0
  1088. mindspore/ops/function/reshard_func.py +104 -0
  1089. mindspore/ops/function/sparse_func.py +884 -0
  1090. mindspore/ops/function/sparse_unary_func.py +2422 -0
  1091. mindspore/ops/function/spectral_func.py +150 -0
  1092. mindspore/ops/function/vmap_func.py +117 -0
  1093. mindspore/ops/functional.py +464 -0
  1094. mindspore/ops/op_info_register.py +1572 -0
  1095. mindspore/ops/operations/__init__.py +722 -0
  1096. mindspore/ops/operations/_csr_ops.py +403 -0
  1097. mindspore/ops/operations/_custom_grad.py +181 -0
  1098. mindspore/ops/operations/_embedding_cache_ops.py +307 -0
  1099. mindspore/ops/operations/_grad_ops.py +2978 -0
  1100. mindspore/ops/operations/_infer_ops.py +19 -0
  1101. mindspore/ops/operations/_inner_ops.py +2544 -0
  1102. mindspore/ops/operations/_map_tensor_ops.py +112 -0
  1103. mindspore/ops/operations/_ms_kernel.py +601 -0
  1104. mindspore/ops/operations/_ocr_ops.py +379 -0
  1105. mindspore/ops/operations/_opaque_predicate_registry.py +41 -0
  1106. mindspore/ops/operations/_pyfunc_registry.py +58 -0
  1107. mindspore/ops/operations/_quant_ops.py +1844 -0
  1108. mindspore/ops/operations/_rl_inner_ops.py +1231 -0
  1109. mindspore/ops/operations/_scalar_ops.py +106 -0
  1110. mindspore/ops/operations/_sequence_ops.py +1155 -0
  1111. mindspore/ops/operations/_sparse_grad_ops.py +56 -0
  1112. mindspore/ops/operations/_tensor_array.py +359 -0
  1113. mindspore/ops/operations/_thor_ops.py +807 -0
  1114. mindspore/ops/operations/array_ops.py +6124 -0
  1115. mindspore/ops/operations/comm_ops.py +1985 -0
  1116. mindspore/ops/operations/control_ops.py +127 -0
  1117. mindspore/ops/operations/custom_ops.py +1129 -0
  1118. mindspore/ops/operations/debug_ops.py +678 -0
  1119. mindspore/ops/operations/image_ops.py +1041 -0
  1120. mindspore/ops/operations/inner_ops.py +697 -0
  1121. mindspore/ops/operations/linalg_ops.py +95 -0
  1122. mindspore/ops/operations/manually_defined/__init__.py +24 -0
  1123. mindspore/ops/operations/manually_defined/_inner.py +73 -0
  1124. mindspore/ops/operations/manually_defined/ops_def.py +2271 -0
  1125. mindspore/ops/operations/math_ops.py +5095 -0
  1126. mindspore/ops/operations/nn_ops.py +9575 -0
  1127. mindspore/ops/operations/other_ops.py +874 -0
  1128. mindspore/ops/operations/random_ops.py +1288 -0
  1129. mindspore/ops/operations/reshard_ops.py +53 -0
  1130. mindspore/ops/operations/rl_ops.py +288 -0
  1131. mindspore/ops/operations/sparse_ops.py +2753 -0
  1132. mindspore/ops/operations/spectral_ops.py +111 -0
  1133. mindspore/ops/primitive.py +1046 -0
  1134. mindspore/ops/signature.py +54 -0
  1135. mindspore/ops/vm_impl_registry.py +91 -0
  1136. mindspore/ops_generate/__init__.py +27 -0
  1137. mindspore/ops_generate/arg_dtype_cast.py +252 -0
  1138. mindspore/ops_generate/arg_handler.py +197 -0
  1139. mindspore/ops_generate/gen_aclnn_implement.py +263 -0
  1140. mindspore/ops_generate/gen_constants.py +36 -0
  1141. mindspore/ops_generate/gen_ops.py +1099 -0
  1142. mindspore/ops_generate/gen_ops_inner_prim.py +131 -0
  1143. mindspore/ops_generate/gen_pyboost_func.py +1052 -0
  1144. mindspore/ops_generate/gen_utils.py +209 -0
  1145. mindspore/ops_generate/op_proto.py +145 -0
  1146. mindspore/ops_generate/pyboost_utils.py +367 -0
  1147. mindspore/ops_generate/template.py +261 -0
  1148. mindspore/parallel/__init__.py +30 -0
  1149. mindspore/parallel/_auto_parallel_context.py +1486 -0
  1150. mindspore/parallel/_cell_wrapper.py +174 -0
  1151. mindspore/parallel/_cost_model_context.py +700 -0
  1152. mindspore/parallel/_dp_allreduce_fusion.py +159 -0
  1153. mindspore/parallel/_offload_context.py +275 -0
  1154. mindspore/parallel/_parallel_serialization.py +561 -0
  1155. mindspore/parallel/_ps_context.py +242 -0
  1156. mindspore/parallel/_recovery_context.py +110 -0
  1157. mindspore/parallel/_tensor.py +730 -0
  1158. mindspore/parallel/_transformer/__init__.py +35 -0
  1159. mindspore/parallel/_transformer/layers.py +765 -0
  1160. mindspore/parallel/_transformer/loss.py +251 -0
  1161. mindspore/parallel/_transformer/moe.py +693 -0
  1162. mindspore/parallel/_transformer/op_parallel_config.py +222 -0
  1163. mindspore/parallel/_transformer/transformer.py +3119 -0
  1164. mindspore/parallel/_utils.py +612 -0
  1165. mindspore/parallel/algo_parameter_config.py +400 -0
  1166. mindspore/parallel/checkpoint_transform.py +650 -0
  1167. mindspore/parallel/cluster/__init__.py +15 -0
  1168. mindspore/parallel/cluster/process_entity/__init__.py +18 -0
  1169. mindspore/parallel/cluster/process_entity/_api.py +352 -0
  1170. mindspore/parallel/cluster/process_entity/_utils.py +101 -0
  1171. mindspore/parallel/cluster/run.py +136 -0
  1172. mindspore/parallel/mpi/__init__.py +14 -0
  1173. mindspore/parallel/mpi/_mpi_config.py +116 -0
  1174. mindspore/parallel/parameter_broadcast.py +151 -0
  1175. mindspore/parallel/shard.py +481 -0
  1176. mindspore/parallel/transform_safetensors.py +993 -0
  1177. mindspore/profiler/__init__.py +28 -0
  1178. mindspore/profiler/common/__init__.py +14 -0
  1179. mindspore/profiler/common/constant.py +29 -0
  1180. mindspore/profiler/common/exceptions/__init__.py +14 -0
  1181. mindspore/profiler/common/exceptions/error_code.py +83 -0
  1182. mindspore/profiler/common/exceptions/exceptions.py +286 -0
  1183. mindspore/profiler/common/process_pool.py +41 -0
  1184. mindspore/profiler/common/registry.py +47 -0
  1185. mindspore/profiler/common/singleton.py +28 -0
  1186. mindspore/profiler/common/struct_type.py +118 -0
  1187. mindspore/profiler/common/util.py +472 -0
  1188. mindspore/profiler/common/validator/__init__.py +14 -0
  1189. mindspore/profiler/common/validator/validate_path.py +84 -0
  1190. mindspore/profiler/dynamic_profiler.py +694 -0
  1191. mindspore/profiler/envprofiling.py +254 -0
  1192. mindspore/profiler/parser/__init__.py +14 -0
  1193. mindspore/profiler/parser/aicpu_data_parser.py +272 -0
  1194. mindspore/profiler/parser/ascend_analysis/__init__.py +14 -0
  1195. mindspore/profiler/parser/ascend_analysis/constant.py +71 -0
  1196. mindspore/profiler/parser/ascend_analysis/file_manager.py +180 -0
  1197. mindspore/profiler/parser/ascend_analysis/function_event.py +185 -0
  1198. mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +136 -0
  1199. mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +131 -0
  1200. mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +104 -0
  1201. mindspore/profiler/parser/ascend_analysis/path_manager.py +313 -0
  1202. mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +123 -0
  1203. mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +86 -0
  1204. mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +75 -0
  1205. mindspore/profiler/parser/ascend_cluster_generator.py +116 -0
  1206. mindspore/profiler/parser/ascend_communicate_generator.py +314 -0
  1207. mindspore/profiler/parser/ascend_flops_generator.py +116 -0
  1208. mindspore/profiler/parser/ascend_fpbp_generator.py +82 -0
  1209. mindspore/profiler/parser/ascend_hccl_generator.py +271 -0
  1210. mindspore/profiler/parser/ascend_integrate_generator.py +42 -0
  1211. mindspore/profiler/parser/ascend_memory_generator.py +185 -0
  1212. mindspore/profiler/parser/ascend_msprof_exporter.py +282 -0
  1213. mindspore/profiler/parser/ascend_msprof_generator.py +187 -0
  1214. mindspore/profiler/parser/ascend_op_generator.py +334 -0
  1215. mindspore/profiler/parser/ascend_steptrace_generator.py +94 -0
  1216. mindspore/profiler/parser/ascend_timeline_generator.py +545 -0
  1217. mindspore/profiler/parser/base_timeline_generator.py +483 -0
  1218. mindspore/profiler/parser/container.py +229 -0
  1219. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +697 -0
  1220. mindspore/profiler/parser/flops_parser.py +531 -0
  1221. mindspore/profiler/parser/framework_enum.py +111 -0
  1222. mindspore/profiler/parser/framework_parser.py +464 -0
  1223. mindspore/profiler/parser/framework_struct.py +61 -0
  1224. mindspore/profiler/parser/gpu_analysis/__init__.py +14 -0
  1225. mindspore/profiler/parser/gpu_analysis/function_event.py +44 -0
  1226. mindspore/profiler/parser/gpu_analysis/fwk_file_parser.py +89 -0
  1227. mindspore/profiler/parser/gpu_analysis/profiler_info_parser.py +72 -0
  1228. mindspore/profiler/parser/hccl_parser.py +573 -0
  1229. mindspore/profiler/parser/hwts_log_parser.py +122 -0
  1230. mindspore/profiler/parser/integrator.py +526 -0
  1231. mindspore/profiler/parser/memory_usage_parser.py +277 -0
  1232. mindspore/profiler/parser/minddata_analyzer.py +800 -0
  1233. mindspore/profiler/parser/minddata_parser.py +186 -0
  1234. mindspore/profiler/parser/minddata_pipeline_parser.py +299 -0
  1235. mindspore/profiler/parser/op_intermediate_parser.py +149 -0
  1236. mindspore/profiler/parser/optime_parser.py +250 -0
  1237. mindspore/profiler/parser/profiler_info.py +213 -0
  1238. mindspore/profiler/parser/step_trace_parser.py +666 -0
  1239. mindspore/profiler/profiler.py +153 -0
  1240. mindspore/profiler/profiling.py +1922 -0
  1241. mindspore/rewrite/__init__.py +28 -0
  1242. mindspore/rewrite/api/__init__.py +17 -0
  1243. mindspore/rewrite/api/node.py +519 -0
  1244. mindspore/rewrite/api/node_type.py +53 -0
  1245. mindspore/rewrite/api/pattern_engine.py +490 -0
  1246. mindspore/rewrite/api/scoped_value.py +181 -0
  1247. mindspore/rewrite/api/symbol_tree.py +497 -0
  1248. mindspore/rewrite/ast_helpers/__init__.py +25 -0
  1249. mindspore/rewrite/ast_helpers/ast_converter.py +143 -0
  1250. mindspore/rewrite/ast_helpers/ast_finder.py +404 -0
  1251. mindspore/rewrite/ast_helpers/ast_flattener.py +268 -0
  1252. mindspore/rewrite/ast_helpers/ast_modifier.py +605 -0
  1253. mindspore/rewrite/ast_helpers/ast_replacer.py +79 -0
  1254. mindspore/rewrite/common/__init__.py +19 -0
  1255. mindspore/rewrite/common/config.py +24 -0
  1256. mindspore/rewrite/common/error_log.py +39 -0
  1257. mindspore/rewrite/common/event.py +28 -0
  1258. mindspore/rewrite/common/namer.py +271 -0
  1259. mindspore/rewrite/common/namespace.py +118 -0
  1260. mindspore/rewrite/common/observable.py +44 -0
  1261. mindspore/rewrite/common/observer.py +54 -0
  1262. mindspore/rewrite/node/__init__.py +22 -0
  1263. mindspore/rewrite/node/call_function.py +95 -0
  1264. mindspore/rewrite/node/cell_container.py +139 -0
  1265. mindspore/rewrite/node/control_flow.py +113 -0
  1266. mindspore/rewrite/node/node.py +1428 -0
  1267. mindspore/rewrite/node/node_manager.py +283 -0
  1268. mindspore/rewrite/node/node_topological_manager.py +223 -0
  1269. mindspore/rewrite/parsers/__init__.py +29 -0
  1270. mindspore/rewrite/parsers/arguments_parser.py +63 -0
  1271. mindspore/rewrite/parsers/assign_parser.py +852 -0
  1272. mindspore/rewrite/parsers/attribute_parser.py +57 -0
  1273. mindspore/rewrite/parsers/class_def_parser.py +289 -0
  1274. mindspore/rewrite/parsers/constant_parser.py +104 -0
  1275. mindspore/rewrite/parsers/container_parser.py +88 -0
  1276. mindspore/rewrite/parsers/expr_parser.py +55 -0
  1277. mindspore/rewrite/parsers/for_parser.py +61 -0
  1278. mindspore/rewrite/parsers/function_def_parser.py +84 -0
  1279. mindspore/rewrite/parsers/if_parser.py +85 -0
  1280. mindspore/rewrite/parsers/module_parser.py +117 -0
  1281. mindspore/rewrite/parsers/parser.py +43 -0
  1282. mindspore/rewrite/parsers/parser_register.py +86 -0
  1283. mindspore/rewrite/parsers/return_parser.py +37 -0
  1284. mindspore/rewrite/parsers/while_parser.py +59 -0
  1285. mindspore/rewrite/sparsify/__init__.py +0 -0
  1286. mindspore/rewrite/sparsify/sparse_transformer.py +457 -0
  1287. mindspore/rewrite/sparsify/sparsify.py +112 -0
  1288. mindspore/rewrite/sparsify/utils.py +179 -0
  1289. mindspore/rewrite/symbol_tree/__init__.py +20 -0
  1290. mindspore/rewrite/symbol_tree/symbol_tree.py +1819 -0
  1291. mindspore/rewrite/symbol_tree/symbol_tree_builder.py +76 -0
  1292. mindspore/rewrite/symbol_tree/symbol_tree_dumper.py +142 -0
  1293. mindspore/run_check/__init__.py +20 -0
  1294. mindspore/run_check/_check_version.py +507 -0
  1295. mindspore/run_check/run_check.py +66 -0
  1296. mindspore/safeguard/__init__.py +18 -0
  1297. mindspore/safeguard/rewrite_obfuscation.py +875 -0
  1298. mindspore/scipy/__init__.py +18 -0
  1299. mindspore/scipy/fft.py +264 -0
  1300. mindspore/scipy/linalg.py +919 -0
  1301. mindspore/scipy/ops.py +165 -0
  1302. mindspore/scipy/ops_grad.py +115 -0
  1303. mindspore/scipy/ops_wrapper.py +74 -0
  1304. mindspore/scipy/optimize/__init__.py +20 -0
  1305. mindspore/scipy/optimize/_bfgs.py +230 -0
  1306. mindspore/scipy/optimize/_lagrange.py +201 -0
  1307. mindspore/scipy/optimize/_lbfgs.py +146 -0
  1308. mindspore/scipy/optimize/gradient_optimization_algorithm.py +168 -0
  1309. mindspore/scipy/optimize/line_search.py +370 -0
  1310. mindspore/scipy/optimize/linear_sum_assignment.py +78 -0
  1311. mindspore/scipy/optimize/minimize.py +200 -0
  1312. mindspore/scipy/utils.py +156 -0
  1313. mindspore/scipy/utils_const.py +246 -0
  1314. mindspore/train/__init__.py +48 -0
  1315. mindspore/train/_utils.py +465 -0
  1316. mindspore/train/amp.py +935 -0
  1317. mindspore/train/anf_ir_pb2.py +1517 -0
  1318. mindspore/train/callback/__init__.py +44 -0
  1319. mindspore/train/callback/_backup_and_restore.py +117 -0
  1320. mindspore/train/callback/_callback.py +613 -0
  1321. mindspore/train/callback/_checkpoint.py +814 -0
  1322. mindspore/train/callback/_cluster_monitor.py +201 -0
  1323. mindspore/train/callback/_dataset_graph.py +150 -0
  1324. mindspore/train/callback/_early_stop.py +239 -0
  1325. mindspore/train/callback/_flops_collector.py +239 -0
  1326. mindspore/train/callback/_history.py +92 -0
  1327. mindspore/train/callback/_lambda_callback.py +80 -0
  1328. mindspore/train/callback/_landscape.py +1049 -0
  1329. mindspore/train/callback/_loss_monitor.py +107 -0
  1330. mindspore/train/callback/_lr_scheduler_callback.py +76 -0
  1331. mindspore/train/callback/_on_request_exit.py +298 -0
  1332. mindspore/train/callback/_reduce_lr_on_plateau.py +226 -0
  1333. mindspore/train/callback/_summary_collector.py +1184 -0
  1334. mindspore/train/callback/_tft_register.py +352 -0
  1335. mindspore/train/callback/_time_monitor.py +141 -0
  1336. mindspore/train/checkpoint_pb2.py +233 -0
  1337. mindspore/train/data_sink.py +219 -0
  1338. mindspore/train/dataset_helper.py +692 -0
  1339. mindspore/train/lineage_pb2.py +1260 -0
  1340. mindspore/train/loss_scale_manager.py +213 -0
  1341. mindspore/train/memory_profiling_pb2.py +298 -0
  1342. mindspore/train/metrics/__init__.py +175 -0
  1343. mindspore/train/metrics/accuracy.py +133 -0
  1344. mindspore/train/metrics/auc.py +129 -0
  1345. mindspore/train/metrics/bleu_score.py +170 -0
  1346. mindspore/train/metrics/confusion_matrix.py +700 -0
  1347. mindspore/train/metrics/cosine_similarity.py +109 -0
  1348. mindspore/train/metrics/dice.py +116 -0
  1349. mindspore/train/metrics/error.py +175 -0
  1350. mindspore/train/metrics/fbeta.py +167 -0
  1351. mindspore/train/metrics/hausdorff_distance.py +333 -0
  1352. mindspore/train/metrics/loss.py +97 -0
  1353. mindspore/train/metrics/mean_surface_distance.py +189 -0
  1354. mindspore/train/metrics/metric.py +373 -0
  1355. mindspore/train/metrics/occlusion_sensitivity.py +225 -0
  1356. mindspore/train/metrics/perplexity.py +133 -0
  1357. mindspore/train/metrics/precision.py +160 -0
  1358. mindspore/train/metrics/recall.py +159 -0
  1359. mindspore/train/metrics/roc.py +223 -0
  1360. mindspore/train/metrics/root_mean_square_surface_distance.py +191 -0
  1361. mindspore/train/metrics/topk.py +167 -0
  1362. mindspore/train/mind_ir_pb2.py +1908 -0
  1363. mindspore/train/model.py +2252 -0
  1364. mindspore/train/node_strategy_pb2.py +653 -0
  1365. mindspore/train/print_pb2.py +184 -0
  1366. mindspore/train/profiling_parallel_pb2.py +151 -0
  1367. mindspore/train/serialization.py +3325 -0
  1368. mindspore/train/summary/__init__.py +23 -0
  1369. mindspore/train/summary/_lineage_adapter.py +41 -0
  1370. mindspore/train/summary/_summary_adapter.py +496 -0
  1371. mindspore/train/summary/_writer_pool.py +207 -0
  1372. mindspore/train/summary/enums.py +56 -0
  1373. mindspore/train/summary/summary_record.py +581 -0
  1374. mindspore/train/summary/writer.py +167 -0
  1375. mindspore/train/summary_pb2.py +1165 -0
  1376. mindspore/train/train_thor/__init__.py +20 -0
  1377. mindspore/train/train_thor/convert_utils.py +268 -0
  1378. mindspore/train/train_thor/dataset_helper.py +192 -0
  1379. mindspore/train/train_thor/model_thor.py +257 -0
  1380. mindspore/utils/__init__.py +21 -0
  1381. mindspore/utils/utils.py +60 -0
  1382. mindspore/version.py +1 -0
  1383. mindspore-2.4.0.dist-info/METADATA +352 -0
  1384. mindspore-2.4.0.dist-info/RECORD +1387 -0
  1385. mindspore-2.4.0.dist-info/WHEEL +5 -0
  1386. mindspore-2.4.0.dist-info/entry_points.txt +3 -0
  1387. mindspore-2.4.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,2641 @@
1
+ # Copyright 2019-2022 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ==============================================================================
15
+ """
16
+ The module vision.c_transforms is inherited from _c_dataengine
17
+ and is implemented based on OpenCV in C++. It's a high performance module to
18
+ process images. Users can apply suitable augmentations on image data
19
+ to improve their training models.
20
+
21
+ .. Note::
22
+ A constructor's arguments for every class in this module must be saved into the
23
+ class attributes (self.xxx) to support save() and load().
24
+
25
+ Examples:
26
+ >>> from mindspore.dataset.vision import Border, Inter
27
+ >>> image_folder_dataset_dir = "/path/to/image_folder_dataset_directory"
28
+ >>> # create a dataset that reads all files in dataset_dir with 8 threads
29
+ >>> image_folder_dataset = ds.ImageFolderDataset(image_folder_dataset_dir,
30
+ ... num_parallel_workers=8)
31
+ >>> # create a list of transformations to be applied to the image data
32
+ >>> transforms_list = [c_vision.Decode(),
33
+ ... c_vision.Resize((256, 256), interpolation=Inter.LINEAR),
34
+ ... c_vision.RandomCrop(200, padding_mode=Border.EDGE),
35
+ ... c_vision.RandomRotation((0, 15)),
36
+ ... c_vision.Normalize((100, 115.0, 121.0), (71.0, 68.0, 70.0)),
37
+ ... c_vision.HWC2CHW()]
38
+ >>> onehot_op = c_transforms.OneHot(num_classes=10)
39
+ >>> # apply the transformation to the dataset through data1.map()
40
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
41
+ ... input_columns="image")
42
+ >>> image_folder_dataset = image_folder_dataset.map(operations=onehot_op,
43
+ ... input_columns="label")
44
+ """
45
+ import numbers
46
+ import numpy as np
47
+ from PIL import Image
48
+
49
+ import mindspore._c_dataengine as cde
50
+ from .utils import Inter, Border, ImageBatchFormat, ConvertMode, SliceMode, AutoAugmentPolicy, parse_padding
51
+ from .validators import check_adjust_gamma, check_alpha, check_auto_augment, check_auto_contrast, \
52
+ check_bounding_box_augment_cpp, check_center_crop, check_convert_color, check_crop, check_cut_mix_batch_c, \
53
+ check_cutout, check_gaussian_blur, check_mix_up_batch_c, check_normalize_c, check_normalizepad_c, check_pad, \
54
+ check_positive_degrees, check_prob, check_random_adjust_sharpness, check_random_affine, \
55
+ check_random_auto_contrast, check_random_color_adjust, check_random_crop, check_random_posterize, \
56
+ check_random_resize_crop, check_random_rotation, check_random_select_subpolicy_op, check_random_solarize, \
57
+ check_range, check_rescale, check_resize, check_resize_interpolation, check_rotate, check_slice_patches, \
58
+ check_uniform_augment_cpp, deprecated_c_vision, FLOAT_MAX_INTEGER
59
+
60
+
61
+
62
+ class ImageTensorOperation:
63
+ """
64
+ Base class of Image Tensor Ops
65
+ """
66
+
67
+ def __call__(self, *input_tensor_list):
68
+ for tensor in input_tensor_list:
69
+ if not isinstance(tensor, (np.ndarray, Image.Image)):
70
+ raise TypeError(
71
+ "Input should be NumPy or PIL image, got {}.".format(type(tensor)))
72
+ tensor_row = []
73
+ for tensor in input_tensor_list:
74
+ try:
75
+ tensor_row.append(cde.Tensor(np.asarray(tensor)))
76
+ except RuntimeError:
77
+ raise TypeError("Invalid user input. Got {}: {}, cannot be converted into tensor." \
78
+ .format(type(tensor), tensor))
79
+ callable_op = cde.Execute(self.parse())
80
+ output_tensor_list = callable_op(tensor_row)
81
+ for i, element in enumerate(output_tensor_list):
82
+ arr = element.as_array()
83
+ if arr.dtype.char == 'S':
84
+ output_tensor_list[i] = np.char.decode(arr)
85
+ else:
86
+ output_tensor_list[i] = arr
87
+ return output_tensor_list[0] if len(output_tensor_list) == 1 else tuple(output_tensor_list)
88
+
89
+ def parse(self):
90
+ # Note: subclasses must implement `def parse(self)` so do not make ImageTensorOperation's parse a staticmethod.
91
+ raise NotImplementedError("ImageTensorOperation has to implement parse() method.")
92
+
93
+
94
+ DE_C_AUTO_AUGMENT_POLICY = {AutoAugmentPolicy.IMAGENET: cde.AutoAugmentPolicy.DE_AUTO_AUGMENT_POLICY_IMAGENET,
95
+ AutoAugmentPolicy.CIFAR10: cde.AutoAugmentPolicy.DE_AUTO_AUGMENT_POLICY_CIFAR10,
96
+ AutoAugmentPolicy.SVHN: cde.AutoAugmentPolicy.DE_AUTO_AUGMENT_POLICY_SVHN}
97
+
98
+ DE_C_BORDER_TYPE = {Border.CONSTANT: cde.BorderType.DE_BORDER_CONSTANT,
99
+ Border.EDGE: cde.BorderType.DE_BORDER_EDGE,
100
+ Border.REFLECT: cde.BorderType.DE_BORDER_REFLECT,
101
+ Border.SYMMETRIC: cde.BorderType.DE_BORDER_SYMMETRIC}
102
+
103
+ DE_C_IMAGE_BATCH_FORMAT = {ImageBatchFormat.NHWC: cde.ImageBatchFormat.DE_IMAGE_BATCH_FORMAT_NHWC,
104
+ ImageBatchFormat.NCHW: cde.ImageBatchFormat.DE_IMAGE_BATCH_FORMAT_NCHW}
105
+
106
+ DE_C_INTER_MODE = {Inter.NEAREST: cde.InterpolationMode.DE_INTER_NEAREST_NEIGHBOUR,
107
+ Inter.LINEAR: cde.InterpolationMode.DE_INTER_LINEAR,
108
+ Inter.CUBIC: cde.InterpolationMode.DE_INTER_CUBIC,
109
+ Inter.AREA: cde.InterpolationMode.DE_INTER_AREA,
110
+ Inter.PILCUBIC: cde.InterpolationMode.DE_INTER_PILCUBIC}
111
+
112
+ DE_C_SLICE_MODE = {SliceMode.PAD: cde.SliceMode.DE_SLICE_PAD,
113
+ SliceMode.DROP: cde.SliceMode.DE_SLICE_DROP}
114
+
115
+ DE_C_CONVERT_COLOR_MODE = {ConvertMode.COLOR_BGR2BGRA: cde.ConvertMode.DE_COLOR_BGR2BGRA,
116
+ ConvertMode.COLOR_RGB2RGBA: cde.ConvertMode.DE_COLOR_RGB2RGBA,
117
+ ConvertMode.COLOR_BGRA2BGR: cde.ConvertMode.DE_COLOR_BGRA2BGR,
118
+ ConvertMode.COLOR_RGBA2RGB: cde.ConvertMode.DE_COLOR_RGBA2RGB,
119
+ ConvertMode.COLOR_BGR2RGBA: cde.ConvertMode.DE_COLOR_BGR2RGBA,
120
+ ConvertMode.COLOR_RGB2BGRA: cde.ConvertMode.DE_COLOR_RGB2BGRA,
121
+ ConvertMode.COLOR_RGBA2BGR: cde.ConvertMode.DE_COLOR_RGBA2BGR,
122
+ ConvertMode.COLOR_BGRA2RGB: cde.ConvertMode.DE_COLOR_BGRA2RGB,
123
+ ConvertMode.COLOR_BGR2RGB: cde.ConvertMode.DE_COLOR_BGR2RGB,
124
+ ConvertMode.COLOR_RGB2BGR: cde.ConvertMode.DE_COLOR_RGB2BGR,
125
+ ConvertMode.COLOR_BGRA2RGBA: cde.ConvertMode.DE_COLOR_BGRA2RGBA,
126
+ ConvertMode.COLOR_RGBA2BGRA: cde.ConvertMode.DE_COLOR_RGBA2BGRA,
127
+ ConvertMode.COLOR_BGR2GRAY: cde.ConvertMode.DE_COLOR_BGR2GRAY,
128
+ ConvertMode.COLOR_RGB2GRAY: cde.ConvertMode.DE_COLOR_RGB2GRAY,
129
+ ConvertMode.COLOR_GRAY2BGR: cde.ConvertMode.DE_COLOR_GRAY2BGR,
130
+ ConvertMode.COLOR_GRAY2RGB: cde.ConvertMode.DE_COLOR_GRAY2RGB,
131
+ ConvertMode.COLOR_GRAY2BGRA: cde.ConvertMode.DE_COLOR_GRAY2BGRA,
132
+ ConvertMode.COLOR_GRAY2RGBA: cde.ConvertMode.DE_COLOR_GRAY2RGBA,
133
+ ConvertMode.COLOR_BGRA2GRAY: cde.ConvertMode.DE_COLOR_BGRA2GRAY,
134
+ ConvertMode.COLOR_RGBA2GRAY: cde.ConvertMode.DE_COLOR_RGBA2GRAY,
135
+ }
136
+
137
+
138
+ class AdjustGamma(ImageTensorOperation):
139
+ r"""
140
+ Apply gamma correction on input image. Input image is expected to be in [..., H, W, C] or [H, W] format.
141
+
142
+ .. math::
143
+ I_{\text{out}} = 255 \times \text{gain} \times \left(\frac{I_{\text{in}}}{255}\right)^{\gamma}
144
+
145
+ See `Gamma Correction`_ for more details.
146
+
147
+ .. _Gamma Correction: https://en.wikipedia.org/wiki/Gamma_correction
148
+
149
+ Args:
150
+ gamma (float): Non negative real number.
151
+ The output image pixel value is exponentially related to the input image pixel value.
152
+ gamma larger than 1 make the shadows darker,
153
+ while gamma smaller than 1 make dark regions lighter.
154
+ gain (float, optional): The constant multiplier. Default: ``1.0``.
155
+
156
+ Raises:
157
+ TypeError: If `gain` is not of type float.
158
+ TypeError: If `gamma` is not of type float.
159
+ ValueError: If `gamma` is less than 0.
160
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
161
+
162
+ Supported Platforms:
163
+ ``CPU``
164
+
165
+ Examples:
166
+ >>> transforms_list = [c_vision.Decode(), c_vision.AdjustGamma(gamma=10.0, gain=1.0)]
167
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
168
+ ... input_columns=["image"])
169
+ """
170
+
171
+ @deprecated_c_vision()
172
+ @check_adjust_gamma
173
+ def __init__(self, gamma, gain=1):
174
+ self.gamma = gamma
175
+ self.gain = gain
176
+
177
+ def parse(self):
178
+ return cde.AdjustGammaOperation(self.gamma, self.gain)
179
+
180
+
181
+ class AutoAugment(ImageTensorOperation):
182
+ """
183
+ Apply AutoAugment data augmentation method based on
184
+ `AutoAugment: Learning Augmentation Strategies from Data <https://arxiv.org/pdf/1805.09501.pdf>`_ .
185
+ This operation works only with 3-channel RGB images.
186
+
187
+ Args:
188
+ policy (AutoAugmentPolicy, optional): AutoAugment policies learned on different datasets.
189
+ Default: ``AutoAugmentPolicy.IMAGENET``.
190
+ It can be any of [AutoAugmentPolicy.IMAGENET, AutoAugmentPolicy.CIFAR10, AutoAugmentPolicy.SVHN].
191
+ Randomly apply 2 operations from a candidate set. See auto augmentation details in AutoAugmentPolicy.
192
+
193
+ - AutoAugmentPolicy.IMAGENET, means to apply AutoAugment learned on ImageNet dataset.
194
+
195
+ - AutoAugmentPolicy.CIFAR10, means to apply AutoAugment learned on Cifar10 dataset.
196
+
197
+ - AutoAugmentPolicy.SVHN, means to apply AutoAugment learned on SVHN dataset.
198
+
199
+ interpolation (Inter, optional): Image interpolation mode for Resize operation. Default: ``Inter.NEAREST``.
200
+ It can be ``Inter.NEAREST``, ``Inter.BILINEAR``, ``Inter.BICUBIC``, ``Inter.AREA``.
201
+
202
+ - ``Inter.NEAREST`` : means interpolation method is nearest-neighbor interpolation.
203
+
204
+ - ``Inter.BILINEA`` : means interpolation method is bilinear interpolation.
205
+
206
+ - ``Inter.BICUBIC`` : means the interpolation method is bicubic interpolation.
207
+
208
+ - ``Inter.AREA`` : means the interpolation method is pixel area interpolation.
209
+
210
+ fill_value (Union[int, tuple], optional): Pixel fill value for the area outside the transformed image.
211
+ It can be an int or a 3-tuple. If it is a 3-tuple, it is used to fill R, G, B channels respectively.
212
+ If it is an integer, it is used for all RGB channels. The `fill_value` values must be in range [0, 255].
213
+ Default: ``0``.
214
+
215
+ Raises:
216
+ TypeError: If `policy` is not of type AutoAugmentPolicy.
217
+ TypeError: If `interpolation` is not of type Inter.
218
+ TypeError: If `fill_value` is not an integer or a tuple of length 3.
219
+ RuntimeError: If given tensor shape is not <H, W, C>.
220
+
221
+ Supported Platforms:
222
+ ``CPU``
223
+
224
+ Examples:
225
+ >>> from mindspore.dataset.vision import AutoAugmentPolicy, Inter
226
+ >>> transforms_list = [c_vision.Decode(), c_vision.AutoAugment(policy=AutoAugmentPolicy.IMAGENET,
227
+ ... interpolation=Inter.NEAREST,
228
+ ... fill_value=0)]
229
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
230
+ ... input_columns=["image"])
231
+ """
232
+
233
+ @deprecated_c_vision()
234
+ @check_auto_augment
235
+ def __init__(self, policy=AutoAugmentPolicy.IMAGENET, interpolation=Inter.NEAREST, fill_value=0):
236
+ self.policy = policy
237
+ self.interpolation = interpolation
238
+ if isinstance(fill_value, int):
239
+ fill_value = tuple([fill_value] * 3)
240
+ self.fill_value = fill_value
241
+
242
+ def parse(self):
243
+ return cde.AutoAugmentOperation(DE_C_AUTO_AUGMENT_POLICY.get(self.policy),
244
+ DE_C_INTER_MODE.get(self.interpolation),
245
+ self.fill_value)
246
+
247
+
248
+ class AutoContrast(ImageTensorOperation):
249
+ """
250
+ Apply automatic contrast on input image. This operation calculates histogram of image, reassign cutoff percent
251
+ of the lightest pixels from histogram to 255, and reassign cutoff percent of the darkest pixels from histogram to 0.
252
+
253
+ Args:
254
+ cutoff (float, optional): Percent of lightest and darkest pixels to cut off from
255
+ the histogram of input image. The value must be in the range [0.0, 50.0). Default: ``0.0``.
256
+ ignore (Union[int, sequence], optional): The background pixel values to ignore,
257
+ The ignore values must be in range [0, 255]. Default: ``None``.
258
+
259
+ Raises:
260
+ TypeError: If `cutoff` is not of type float.
261
+ TypeError: If `ignore` is not of type int or sequence.
262
+ ValueError: If `cutoff` is not in range [0, 50.0).
263
+ ValueError: If `ignore` is not in range [0, 255].
264
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
265
+
266
+ Supported Platforms:
267
+ ``CPU``
268
+
269
+ Examples:
270
+ >>> transforms_list = [c_vision.Decode(), c_vision.AutoContrast(cutoff=10.0, ignore=[10, 20])]
271
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
272
+ ... input_columns=["image"])
273
+ """
274
+
275
+ @deprecated_c_vision()
276
+ @check_auto_contrast
277
+ def __init__(self, cutoff=0.0, ignore=None):
278
+ if ignore is None:
279
+ ignore = []
280
+ if isinstance(ignore, int):
281
+ ignore = [ignore]
282
+ self.cutoff = cutoff
283
+ self.ignore = ignore
284
+
285
+ def parse(self):
286
+ return cde.AutoContrastOperation(self.cutoff, self.ignore, "CPU")
287
+
288
+
289
+ class BoundingBoxAugment(ImageTensorOperation):
290
+ """
291
+ Apply a given image processing operation on a random selection of bounding box regions of a given image.
292
+
293
+ Args:
294
+ transform (TensorOperation): C++ transformation operation to be applied on random selection
295
+ of bounding box regions of a given image.
296
+ ratio (float, optional): Ratio of bounding boxes to apply augmentation on.
297
+ Range: [0.0, 1.0]. Default: ``0.3``.
298
+
299
+ Raises:
300
+ TypeError: If `transform` is not an image processing operation
301
+ in :class:`mindspore.dataset.vision.c_transforms` .
302
+ TypeError: If `ratio` is not of type float.
303
+ ValueError: If `ratio` is not in range [0.0, 1.0].
304
+ RuntimeError: If given bounding box is invalid.
305
+
306
+ Supported Platforms:
307
+ ``CPU``
308
+
309
+ Examples:
310
+ >>> # set bounding box operation with ratio of 1 to apply rotation on all bounding boxes
311
+ >>> bbox_aug_op = c_vision.BoundingBoxAugment(c_vision.RandomRotation(90), 1)
312
+ >>> # map to apply ops
313
+ >>> image_folder_dataset = image_folder_dataset.map(operations=[bbox_aug_op],
314
+ ... input_columns=["image", "bbox"],
315
+ ... output_columns=["image", "bbox"])
316
+ """
317
+
318
+ @deprecated_c_vision()
319
+ @check_bounding_box_augment_cpp
320
+ def __init__(self, transform, ratio=0.3):
321
+ self.ratio = ratio
322
+ self.transform = transform
323
+
324
+ def parse(self):
325
+ if self.transform and getattr(self.transform, 'parse', None):
326
+ transform = self.transform.parse()
327
+ else:
328
+ transform = self.transform
329
+ return cde.BoundingBoxAugmentOperation(transform, self.ratio)
330
+
331
+
332
+ class CenterCrop(ImageTensorOperation):
333
+ """
334
+ Crop the input image at the center to the given size. If input image size is smaller than output size,
335
+ input image will be padded with 0 before cropping.
336
+
337
+ Args:
338
+ size (Union[int, sequence]): The output size of the cropped image.
339
+ If size is an integer, a square crop of size (size, size) is returned.
340
+ If size is a sequence of length 2, an image of size (height, width) will be cropped.
341
+ The size value(s) must be larger than 0.
342
+
343
+ Raises:
344
+ TypeError: If `size` is not of type int or sequence.
345
+ ValueError: If `size` is less than or equal to 0.
346
+ RuntimeError: If given tensor shape is not <H, W> or <..., H, W, C>.
347
+
348
+ Supported Platforms:
349
+ ``CPU``
350
+
351
+ Examples:
352
+ >>> # crop image to a square
353
+ >>> transforms_list1 = [c_vision.Decode(), c_vision.CenterCrop(50)]
354
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list1,
355
+ ... input_columns=["image"])
356
+ >>> # crop image to portrait style
357
+ >>> transforms_list2 = [c_vision.Decode(), c_vision.CenterCrop((60, 40))]
358
+ >>> image_folder_dataset_1 = image_folder_dataset_1.map(operations=transforms_list2,
359
+ ... input_columns=["image"])
360
+ """
361
+
362
+ @deprecated_c_vision()
363
+ @check_center_crop
364
+ def __init__(self, size):
365
+ if isinstance(size, int):
366
+ size = (size, size)
367
+ self.size = size
368
+
369
+ def parse(self):
370
+ return cde.CenterCropOperation(self.size)
371
+
372
+
373
+ class ConvertColor(ImageTensorOperation):
374
+ """
375
+ Change the color space of the image.
376
+
377
+ Args:
378
+ convert_mode (ConvertMode): The mode of image channel conversion.
379
+
380
+ - ConvertMode.COLOR_BGR2BGRA, Convert BGR image to BGRA image.
381
+
382
+ - ConvertMode.COLOR_RGB2RGBA, Convert RGB image to RGBA image.
383
+
384
+ - ConvertMode.COLOR_BGRA2BGR, Convert BGRA image to BGR image.
385
+
386
+ - ConvertMode.COLOR_RGBA2RGB, Convert RGBA image to RGB image.
387
+
388
+ - ConvertMode.COLOR_BGR2RGBA, Convert BGR image to RGBA image.
389
+
390
+ - ConvertMode.COLOR_RGB2BGRA, Convert RGB image to BGRA image.
391
+
392
+ - ConvertMode.COLOR_RGBA2BGR, Convert RGBA image to BGR image.
393
+
394
+ - ConvertMode.COLOR_BGRA2RGB, Convert BGRA image to RGB image.
395
+
396
+ - ConvertMode.COLOR_BGR2RGB, Convert BGR image to RGB image.
397
+
398
+ - ConvertMode.COLOR_RGB2BGR, Convert RGB image to BGR image.
399
+
400
+ - ConvertMode.COLOR_BGRA2RGBA, Convert BGRA image to RGBA image.
401
+
402
+ - ConvertMode.COLOR_RGBA2BGRA, Convert RGBA image to BGRA image.
403
+
404
+ - ConvertMode.COLOR_BGR2GRAY, Convert BGR image to GRAY image.
405
+
406
+ - ConvertMode.COLOR_RGB2GRAY, Convert RGB image to GRAY image.
407
+
408
+ - ConvertMode.COLOR_GRAY2BGR, Convert GRAY image to BGR image.
409
+
410
+ - ConvertMode.COLOR_GRAY2RGB, Convert GRAY image to RGB image.
411
+
412
+ - ConvertMode.COLOR_GRAY2BGRA, Convert GRAY image to BGRA image.
413
+
414
+ - ConvertMode.COLOR_GRAY2RGBA, Convert GRAY image to RGBA image.
415
+
416
+ - ConvertMode.COLOR_BGRA2GRAY, Convert BGRA image to GRAY image.
417
+
418
+ - ConvertMode.COLOR_RGBA2GRAY, Convert RGBA image to GRAY image.
419
+
420
+ Raises:
421
+ TypeError: If `convert_mode` is not of type :class:`mindspore.dataset.vision.c_transforms.ConvertMode` .
422
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
423
+
424
+ Supported Platforms:
425
+ ``CPU``
426
+
427
+ Examples:
428
+ >>> import mindspore.dataset.vision.utils as mode
429
+ >>> # Convert RGB images to GRAY images
430
+ >>> convert_op = c_vision.ConvertColor(mode.ConvertMode.COLOR_RGB2GRAY)
431
+ >>> image_folder_dataset = image_folder_dataset.map(operations=convert_op,
432
+ ... input_columns=["image"])
433
+ >>> # Convert RGB images to BGR images
434
+ >>> convert_op = c_vision.ConvertColor(mode.ConvertMode.COLOR_RGB2BGR)
435
+ >>> image_folder_dataset_1 = image_folder_dataset_1.map(operations=convert_op,
436
+ ... input_columns=["image"])
437
+ """
438
+
439
+ @deprecated_c_vision()
440
+ @check_convert_color
441
+ def __init__(self, convert_mode):
442
+ self.convert_mode = convert_mode
443
+
444
+ def parse(self):
445
+ return cde.ConvertColorOperation(DE_C_CONVERT_COLOR_MODE.get(self.convert_mode), "CPU")
446
+
447
+
448
+ class Crop(ImageTensorOperation):
449
+ """
450
+ Crop the input image at a specific location.
451
+
452
+ Args:
453
+ coordinates(sequence): Coordinates of the upper left corner of the cropping image. Must be a sequence of two
454
+ values, in the form of (top, left).
455
+ size (Union[int, sequence]): The output size of the cropped image.
456
+ If size is an integer, a square crop of size (size, size) is returned.
457
+ If size is a sequence of length 2, an image of size (height, width) will be cropped.
458
+ The size value(s) must be larger than 0.
459
+
460
+ Raises:
461
+ TypeError: If `coordinates` is not of type sequence.
462
+ TypeError: If `size` is not of type int or sequence.
463
+ ValueError: If `coordinates` is less than 0.
464
+ ValueError: If `size` is less than or equal to 0.
465
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
466
+
467
+ Supported Platforms:
468
+ ``CPU``
469
+
470
+ Examples:
471
+ >>> decode_op = c_vision.Decode()
472
+ >>> crop_op = c_vision.Crop((0, 0), 32)
473
+ >>> transforms_list = [decode_op, crop_op]
474
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
475
+ ... input_columns=["image"])
476
+ """
477
+
478
+ @deprecated_c_vision()
479
+ @check_crop
480
+ def __init__(self, coordinates, size):
481
+ if isinstance(size, int):
482
+ size = (size, size)
483
+ self.coordinates = coordinates
484
+ self.size = size
485
+
486
+ def parse(self):
487
+ return cde.CropOperation(self.coordinates, self.size, "CPU")
488
+
489
+
490
+ class CutMixBatch(ImageTensorOperation):
491
+ """
492
+ Apply CutMix transformation on input batch of images and labels.
493
+ Note that you need to make labels into one-hot format and batched before calling this operation.
494
+
495
+ Args:
496
+ image_batch_format (ImageBatchFormat): The method of padding. Can be
497
+ ``ImageBatchFormat.NHWC``, ``ImageBatchFormat.NCHW``.
498
+ alpha (float, optional): Hyperparameter of beta distribution, must be larger than 0. Default: ``1.0``.
499
+ prob (float, optional): The probability by which CutMix is applied to each image, range: [0, 1].
500
+ Default: ``1.0``.
501
+
502
+ Raises:
503
+ TypeError: If `image_batch_format` is not of type :class:`mindspore.dataset.vision.ImageBatchFormat` .
504
+ TypeError: If `alpha` is not of type float.
505
+ TypeError: If `prob` is not of type float.
506
+ ValueError: If `alpha` is less than or equal 0.
507
+ ValueError: If `prob` is not in range [0, 1].
508
+ RuntimeError: If given tensor shape is not <H, W, C>.
509
+
510
+ Supported Platforms:
511
+ ``CPU``
512
+
513
+ Examples:
514
+ >>> from mindspore.dataset.vision import ImageBatchFormat
515
+ >>> onehot_op = c_transforms.OneHot(num_classes=10)
516
+ >>> image_folder_dataset= image_folder_dataset.map(operations=onehot_op,
517
+ ... input_columns=["label"])
518
+ >>> cutmix_batch_op = c_vision.CutMixBatch(ImageBatchFormat.NHWC, 1.0, 0.5)
519
+ >>> image_folder_dataset = image_folder_dataset.batch(5)
520
+ >>> image_folder_dataset = image_folder_dataset.map(operations=cutmix_batch_op,
521
+ ... input_columns=["image", "label"])
522
+ """
523
+
524
+ @deprecated_c_vision()
525
+ @check_cut_mix_batch_c
526
+ def __init__(self, image_batch_format, alpha=1.0, prob=1.0):
527
+ self.image_batch_format = image_batch_format.value
528
+ self.alpha = alpha
529
+ self.prob = prob
530
+
531
+ def parse(self):
532
+ return cde.CutMixBatchOperation(DE_C_IMAGE_BATCH_FORMAT.get(self.image_batch_format), self.alpha, self.prob)
533
+
534
+
535
+ class CutOut(ImageTensorOperation):
536
+ """
537
+ Randomly cut (mask) out a given number of square patches from the input image array.
538
+
539
+ Args:
540
+ length (int): The side length of each square patch, must be larger than 0.
541
+ num_patches (int, optional): Number of patches to be cut out of an image, must be larger than 0.
542
+ Default: ``1``.
543
+
544
+ Raises:
545
+ TypeError: If `length` is not of type int.
546
+ TypeError: If `num_patches` is not of type int.
547
+ ValueError: If `length` is less than or equal 0.
548
+ ValueError: If `num_patches` is less than or equal 0.
549
+ RuntimeError: If given tensor shape is not <H, W, C>.
550
+
551
+ Supported Platforms:
552
+ ``CPU``
553
+
554
+ Examples:
555
+ >>> transforms_list = [c_vision.Decode(), c_vision.CutOut(80, num_patches=10)]
556
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
557
+ ... input_columns=["image"])
558
+ """
559
+
560
+ @deprecated_c_vision()
561
+ @check_cutout
562
+ def __init__(self, length, num_patches=1):
563
+ self.length = length
564
+ self.num_patches = num_patches
565
+
566
+ def parse(self):
567
+ return cde.CutOutOperation(self.length, self.num_patches, True)
568
+
569
+
570
+ class Decode(ImageTensorOperation):
571
+ """
572
+ Decode the input image.
573
+
574
+ Args:
575
+ rgb (bool, optional): Mode of decoding input image. Default: ``True``.
576
+ If ``True`` means format of decoded image is RGB else BGR (deprecated).
577
+
578
+ Raises:
579
+ RuntimeError: If `rgb` is ``False``, since this option is deprecated.
580
+ RuntimeError: If given tensor is not a 1D sequence.
581
+
582
+ Supported Platforms:
583
+ ``CPU``
584
+
585
+ Examples:
586
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomHorizontalFlip()]
587
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
588
+ ... input_columns=["image"])
589
+ """
590
+
591
+ @deprecated_c_vision()
592
+ def __init__(self, rgb=True):
593
+ self.rgb = rgb
594
+
595
+ def __call__(self, img):
596
+ """
597
+ Call method.
598
+
599
+ Args:
600
+ img (NumPy): Image to be decoded.
601
+
602
+ Returns:
603
+ img (NumPy), Decoded image.
604
+ """
605
+ if isinstance(img, bytes):
606
+ img = np.frombuffer(img, np.uint8)
607
+ elif not isinstance(img, np.ndarray) or img.ndim != 1 or img.dtype.type is np.str_:
608
+ raise TypeError(
609
+ "Input should be an encoded image in 1-D NumPy format, got {}.".format(type(img)))
610
+ return super().__call__(img)
611
+
612
+ def parse(self):
613
+ # deprecated api just support cpu device target
614
+ return cde.DecodeOperation(self.rgb, "CPU")
615
+
616
+
617
+ class Equalize(ImageTensorOperation):
618
+ """
619
+ Apply histogram equalization on input image.
620
+
621
+ Raises:
622
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
623
+
624
+ Supported Platforms:
625
+ ``CPU``
626
+
627
+ Examples:
628
+ >>> transforms_list = [c_vision.Decode(), c_vision.Equalize()]
629
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
630
+ ... input_columns=["image"])
631
+ """
632
+
633
+ @deprecated_c_vision()
634
+ def __init__(self):
635
+ super().__init__()
636
+
637
+ def parse(self):
638
+ return cde.EqualizeOperation("CPU")
639
+
640
+
641
+ class GaussianBlur(ImageTensorOperation):
642
+ """
643
+ Blur input image with the specified Gaussian kernel.
644
+
645
+ Args:
646
+ kernel_size (Union[int, Sequence[int]]): Size of the Gaussian kernel to use. The value must be positive and odd.
647
+ If only an integer is provided, the kernel size will be (kernel_size, kernel_size). If a sequence of integer
648
+ is provided, it must be a sequence of 2 values which represents (width, height).
649
+ sigma (Union[float, Sequence[float]], optional): Standard deviation of the Gaussian kernel to use.
650
+ Default: ``None``. The value must be positive. If only a float is provided,
651
+ the sigma will be (sigma, sigma).
652
+ If a sequence of float is provided, it must be a sequence of 2 values which represents (width, height).
653
+ If ``None`` is provided, the sigma will be calculated as ((kernel_size - 1) * 0.5 - 1) * 0.3 + 0.8.
654
+
655
+ Raises:
656
+ TypeError: If `kernel_size` is not of type int or Sequence[int].
657
+ TypeError: If `sigma` is not of type float or Sequence[float].
658
+ ValueError: If `kernel_size` is not positive and odd.
659
+ ValueError: If `sigma` is not positive.
660
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
661
+
662
+ Supported Platforms:
663
+ ``CPU``
664
+
665
+ Examples:
666
+ >>> transforms_list = [c_vision.Decode(), c_vision.GaussianBlur(3, 3)]
667
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
668
+ ... input_columns=["image"])
669
+ """
670
+
671
+ @deprecated_c_vision()
672
+ @check_gaussian_blur
673
+ def __init__(self, kernel_size, sigma=None):
674
+ if isinstance(kernel_size, int):
675
+ kernel_size = (kernel_size,)
676
+ if sigma is None:
677
+ sigma = (0,)
678
+ elif isinstance(sigma, (int, float)):
679
+ sigma = (float(sigma),)
680
+ self.kernel_size = kernel_size
681
+ self.sigma = sigma
682
+
683
+ def parse(self):
684
+ return cde.GaussianBlurOperation(self.kernel_size, self.sigma, "CPU")
685
+
686
+
687
+ class HorizontalFlip(ImageTensorOperation):
688
+ """
689
+ Flip the input image horizontally.
690
+
691
+ Raises:
692
+ RuntimeError: If given tensor shape is not <H, W> or <..., H, W, C>.
693
+
694
+ Supported Platforms:
695
+ ``CPU``
696
+
697
+ Examples:
698
+ >>> transforms_list = [c_vision.Decode(), c_vision.HorizontalFlip()]
699
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
700
+ ... input_columns=["image"])
701
+ """
702
+
703
+ @deprecated_c_vision()
704
+ def __init__(self):
705
+ super().__init__()
706
+
707
+ def parse(self):
708
+ return cde.HorizontalFlipOperation("CPU")
709
+
710
+
711
+ class HWC2CHW(ImageTensorOperation):
712
+ """
713
+ Transpose the input image from shape (H, W, C) to (C, H, W).
714
+ If the input image is of shape <H, W>, it will remain unchanged.
715
+
716
+ Note:
717
+ This operation supports running on Ascend or GPU platforms by Offload.
718
+
719
+ Raises:
720
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
721
+
722
+ Supported Platforms:
723
+ ``Ascend`` ``GPU`` ``CPU``
724
+
725
+ Examples:
726
+ >>> transforms_list = [c_vision.Decode(),
727
+ ... c_vision.RandomHorizontalFlip(0.75),
728
+ ... c_vision.RandomCrop(512),
729
+ ... c_vision.HWC2CHW()]
730
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
731
+ ... input_columns=["image"])
732
+ """
733
+
734
+ @deprecated_c_vision()
735
+ def __init__(self):
736
+ super().__init__()
737
+
738
+ def parse(self):
739
+ return cde.HwcToChwOperation()
740
+
741
+
742
+ class Invert(ImageTensorOperation):
743
+ """
744
+ Apply invert on input image in RGB mode. This operation will reassign every pixel to (255 - pixel).
745
+
746
+ Raises:
747
+ RuntimeError: If given tensor shape is not <H, W, C>.
748
+
749
+ Supported Platforms:
750
+ ``CPU``
751
+
752
+ Examples:
753
+ >>> transforms_list = [c_vision.Decode(), c_vision.Invert()]
754
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
755
+ ... input_columns=["image"])
756
+ """
757
+
758
+ @deprecated_c_vision()
759
+ def __init__(self):
760
+ super().__init__()
761
+
762
+ def parse(self):
763
+ return cde.InvertOperation("CPU")
764
+
765
+
766
+ class MixUpBatch(ImageTensorOperation):
767
+ """
768
+ Apply MixUp transformation on input batch of images and labels. Each image is
769
+ multiplied by a random weight (lambda) and then added to a randomly selected image from the batch
770
+ multiplied by (1 - lambda). The same formula is also applied to the one-hot labels.
771
+
772
+ The lambda is generated based on the specified alpha value. Two coefficients x1, x2 are randomly generated
773
+ in the range [alpha, 1], and lambda = (x1 / (x1 + x2)).
774
+
775
+ Note that you need to make labels into one-hot format and batched before calling this operation.
776
+
777
+ Args:
778
+ alpha (float, optional): Hyperparameter of beta distribution. The value must be positive. Default: ``1.0``.
779
+
780
+ Raises:
781
+ TypeError: If `alpha` is not of type float.
782
+ ValueError: If `alpha` is not positive.
783
+ RuntimeError: If given tensor shape is not <N, H, W, C> or <N, C, H, W>.
784
+
785
+ Supported Platforms:
786
+ ``CPU``
787
+
788
+ Examples:
789
+ >>> onehot_op = c_transforms.OneHot(num_classes=10)
790
+ >>> image_folder_dataset= image_folder_dataset.map(operations=onehot_op,
791
+ ... input_columns=["label"])
792
+ >>> mixup_batch_op = c_vision.MixUpBatch(alpha=0.9)
793
+ >>> image_folder_dataset = image_folder_dataset.batch(5)
794
+ >>> image_folder_dataset = image_folder_dataset.map(operations=mixup_batch_op,
795
+ ... input_columns=["image", "label"])
796
+ """
797
+
798
+ @deprecated_c_vision()
799
+ @check_mix_up_batch_c
800
+ def __init__(self, alpha=1.0):
801
+ self.alpha = alpha
802
+
803
+ def parse(self):
804
+ return cde.MixUpBatchOperation(self.alpha)
805
+
806
+
807
+ class Normalize(ImageTensorOperation):
808
+ """
809
+ Normalize the input image with respect to mean and standard deviation. This operation will normalize
810
+ the input image with: output[channel] = (input[channel] - mean[channel]) / std[channel], where channel >= 1.
811
+
812
+ Note:
813
+ This operation supports running on Ascend or GPU platforms by Offload.
814
+
815
+ Args:
816
+ mean (sequence): List or tuple of mean values for each channel, with respect to channel order.
817
+ The mean values must be in range [0.0, 255.0].
818
+ std (sequence): List or tuple of standard deviations for each channel, with respect to channel order.
819
+ The standard deviation values must be in range (0.0, 255.0].
820
+
821
+ Raises:
822
+ TypeError: If `mean` is not of type sequence.
823
+ TypeError: If `std` is not of type sequence.
824
+ ValueError: If `mean` is not in range [0.0, 255.0].
825
+ ValueError: If `std` is not in range (0.0, 255.0].
826
+ RuntimeError: If given tensor shape is not <H, W> or <...,H, W, C>.
827
+
828
+ Supported Platforms:
829
+ ``Ascend`` ``GPU`` ``CPU``
830
+
831
+ Examples:
832
+ >>> decode_op = c_vision.Decode()
833
+ >>> normalize_op = c_vision.Normalize(mean=[121.0, 115.0, 100.0], std=[70.0, 68.0, 71.0])
834
+ >>> transforms_list = [decode_op, normalize_op]
835
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
836
+ ... input_columns=["image"])
837
+ """
838
+
839
+ @deprecated_c_vision()
840
+ @check_normalize_c
841
+ def __init__(self, mean, std):
842
+ self.mean = mean
843
+ self.std = std
844
+
845
+ def parse(self):
846
+ # deprecated api just support cpu device target
847
+ return cde.NormalizeOperation(self.mean, self.std, True, "CPU")
848
+
849
+
850
+ class NormalizePad(ImageTensorOperation):
851
+ """
852
+ Normalize the input image with respect to mean and standard deviation then pad an extra channel with value zero.
853
+
854
+ Args:
855
+ mean (sequence): List or tuple of mean values for each channel, with respect to channel order.
856
+ The mean values must be in range (0.0, 255.0].
857
+ std (sequence): List or tuple of standard deviations for each channel, with respect to channel order.
858
+ The standard deviation values must be in range (0.0, 255.0].
859
+ dtype (str, optional): Set the dtype of the output image. Default: ``"float32"``.
860
+
861
+ Raises:
862
+ TypeError: If `mean` is not of type sequence.
863
+ TypeError: If `std` is not of type sequence.
864
+ TypeError: If `dtype` is not of type str.
865
+ ValueError: If `mean` is not in range [0.0, 255.0].
866
+ ValueError: If `std` is not in range (0.0, 255.0].
867
+ RuntimeError: If given tensor shape is not <H, W>, <H, W, C> or <C, H, W>.
868
+
869
+ Supported Platforms:
870
+ ``CPU``
871
+
872
+ Examples:
873
+ >>> decode_op = c_vision.Decode()
874
+ >>> normalize_pad_op = c_vision.NormalizePad(mean=[121.0, 115.0, 100.0],
875
+ ... std=[70.0, 68.0, 71.0],
876
+ ... dtype="float32")
877
+ >>> transforms_list = [decode_op, normalize_pad_op]
878
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
879
+ ... input_columns=["image"])
880
+ """
881
+
882
+ @deprecated_c_vision()
883
+ @check_normalizepad_c
884
+ def __init__(self, mean, std, dtype="float32"):
885
+ self.mean = mean
886
+ self.std = std
887
+ self.dtype = dtype
888
+
889
+ def parse(self):
890
+ return cde.NormalizePadOperation(self.mean, self.std, self.dtype, True)
891
+
892
+
893
+ class Pad(ImageTensorOperation):
894
+ """
895
+ Pad the image.
896
+
897
+ Args:
898
+ padding (Union[int, Sequence[tuple]]): The number of pixels to pad each border of the image.
899
+ If a single number is provided, it pads all borders with this value.
900
+ If a tuple or lists of 2 values are provided, it pads the (left and top)
901
+ with the first value and (right and bottom) with the second value.
902
+ If 4 values are provided as a list or tuple, it pads the left, top, right and bottom respectively.
903
+ The pad values must be non-negative.
904
+ fill_value (Union[int, tuple[int]], optional): The pixel intensity of the borders, only valid for
905
+ `padding_mode` ``Border.CONSTANT``. If it is a 3-tuple, it is used to fill R, G, B
906
+ channels respectively. If it is an integer, it is used for all RGB channels.
907
+ The `fill_value` values must be in range [0, 255]. Default: ``0``.
908
+ padding_mode (Border, optional): The method of padding. Default: ``Border.CONSTANT``. Can be
909
+ ``Border.CONSTANT``, ``Border.EDGE``, ``Border.REFLECT``, ``Border.SYMMETRIC``.
910
+
911
+ - ``Border.CONSTANT`` , means it fills the border with constant values.
912
+
913
+ - ``Border.EDGE`` , means it pads with the last value on the edge.
914
+
915
+ - ``Border.REFLECT`` , means it reflects the values on the edge omitting the last
916
+ value of edge.
917
+
918
+ - ``Border.SYMMETRIC`` , means it reflects the values on the edge repeating the last
919
+ value of edge.
920
+
921
+ Note:
922
+ The behavior when `padding` is a sequence of length 2 will change from padding left/top with
923
+ the first value and right/bottom with the second, to padding left/right with the first one
924
+ and top/bottom with the second in the future. Or you can pass in a 4-element sequence to specify
925
+ left, top, right and bottom respectively.
926
+
927
+ Raises:
928
+ TypeError: If `padding` is not of type int or Sequence[int].
929
+ TypeError: If `fill_value` is not of type int or tuple[int].
930
+ TypeError: If `padding_mode` is not of type :class:`mindspore.dataset.vision.Border` .
931
+ ValueError: If `padding` is negative.
932
+ ValueError: If `fill_value` is not in range [0, 255].
933
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
934
+
935
+ Supported Platforms:
936
+ ``CPU``
937
+
938
+ Examples:
939
+ >>> transforms_list = [c_vision.Decode(), c_vision.Pad([100, 100, 100, 100])]
940
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
941
+ ... input_columns=["image"])
942
+ """
943
+
944
+ @deprecated_c_vision()
945
+ @check_pad
946
+ def __init__(self, padding, fill_value=0, padding_mode=Border.CONSTANT):
947
+ padding = parse_padding(padding)
948
+ if isinstance(fill_value, int):
949
+ fill_value = tuple([fill_value] * 3)
950
+ self.padding = padding
951
+ self.fill_value = fill_value
952
+ self.padding_mode = padding_mode
953
+
954
+ def parse(self):
955
+ return cde.PadOperation(self.padding, self.fill_value, DE_C_BORDER_TYPE.get(self.padding_mode), "CPU")
956
+
957
+
958
+ class RandomAdjustSharpness(ImageTensorOperation):
959
+ """
960
+ Randomly adjust the sharpness of the input image with a given probability.
961
+
962
+ Args:
963
+ degree (float): Sharpness adjustment degree, which must be non negative.
964
+ Degree of ``0.0`` gives a blurred image, degree of ``1.0`` gives the original image,
965
+ and degree of ``2.0`` increases the sharpness by a factor of 2.
966
+ prob (float, optional): Probability of the image being sharpness adjusted, which
967
+ must be in range of [0, 1]. Default: ``0.5``.
968
+
969
+ Raises:
970
+ TypeError: If `degree` is not of type float.
971
+ TypeError: If `prob` is not of type float.
972
+ ValueError: If `degree` is negative.
973
+ ValueError: If `prob` is not in range [0, 1].
974
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
975
+
976
+ Supported Platforms:
977
+ ``CPU``
978
+
979
+ Examples:
980
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomAdjustSharpness(2.0, 0.5)]
981
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
982
+ ... input_columns=["image"])
983
+ """
984
+
985
+ @deprecated_c_vision()
986
+ @check_random_adjust_sharpness
987
+ def __init__(self, degree, prob=0.5):
988
+ self.prob = prob
989
+ self.degree = degree
990
+
991
+ def parse(self):
992
+ return cde.RandomAdjustSharpnessOperation(self.degree, self.prob)
993
+
994
+
995
+ class RandomAffine(ImageTensorOperation):
996
+ """
997
+ Apply Random affine transformation to the input image.
998
+
999
+ Args:
1000
+ degrees (Union[int, float, sequence]): Range of the rotation degrees.
1001
+ If `degrees` is a number, the range will be (-degrees, degrees).
1002
+ If `degrees` is a sequence, it should be (min, max).
1003
+ translate (sequence, optional): Sequence (tx_min, tx_max, ty_min, ty_max) of minimum/maximum translation in
1004
+ x(horizontal) and y(vertical) directions, range [-1.0, 1.0]. Default: ``None``.
1005
+ The horizontal and vertical shift is selected randomly from the range:
1006
+ (tx_min*width, tx_max*width) and (ty_min*height, ty_max*height), respectively.
1007
+ If a tuple or list of size 2, then a translate parallel to the X axis in the range of
1008
+ (translate[0], translate[1]) is applied.
1009
+ If a tuple or list of size 4, then a translate parallel to the X axis in the range of
1010
+ (translate[0], translate[1]) and a translate parallel to the Y axis in the range of
1011
+ (translate[2], translate[3]) are applied.
1012
+ If ``None``, no translation is applied.
1013
+ scale (sequence, optional): Scaling factor interval, which must be non negative.
1014
+ Default: ``None``, original scale is used.
1015
+ shear (Union[int, float, sequence], optional): Range of shear factor, which must be positive.
1016
+ Default: ``None``.
1017
+ If a number, then a shear parallel to the X axis in the range of (-shear, +shear) is applied.
1018
+ If a tuple or list of size 2, then a shear parallel to the X axis in the range of (shear[0], shear[1])
1019
+ is applied.
1020
+ If a tuple or list of size 4, then a shear parallel to X axis in the range of (shear[0], shear[1])
1021
+ and a shear parallel to Y axis in the range of (shear[2], shear[3]) is applied.
1022
+ If None, no shear is applied.
1023
+ resample (Inter, optional): An optional resampling filter. Default: ``Inter.NEAREST``.
1024
+ It can be ``Inter.BILINEAR``, ``Inter.NEAREST``, ``Inter.BICUBIC``, ``Inter.AREA``.
1025
+
1026
+ - ``Inter.BILINEA`` , means resample method is bilinear interpolation.
1027
+
1028
+ - ``Inter.NEAREST`` , means resample method is nearest-neighbor interpolation.
1029
+
1030
+ - ``Inter.BICUBIC`` , means resample method is bicubic interpolation.
1031
+
1032
+ - ``Inter.AREA`` :, means resample method is pixel area interpolation.
1033
+
1034
+ fill_value (Union[int, tuple[int]], optional): Optional fill_value to fill the area outside the transform
1035
+ in the output image. There must be three elements in tuple and the value of single element is [0, 255].
1036
+ Default: ``0``, filling is performed.
1037
+
1038
+ Raises:
1039
+ TypeError: If `degrees` is not of type int, float or sequence.
1040
+ TypeError: If `translate` is not of type sequence.
1041
+ TypeError: If `scale` is not of type sequence.
1042
+ TypeError: If `shear` is not of type int, float or sequence.
1043
+ TypeError: If `resample` is not of type :class:`mindspore.dataset.vision.Inter` .
1044
+ TypeError: If `fill_value` is not of type int or tuple[int].
1045
+ ValueError: If `degrees` is negative.
1046
+ ValueError: If `translate` is not in range [-1.0, 1.0].
1047
+ ValueError: If `scale` is negative.
1048
+ ValueError: If `shear` is not positive.
1049
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
1050
+
1051
+ Supported Platforms:
1052
+ ``CPU``
1053
+
1054
+ Examples:
1055
+ >>> from mindspore.dataset.vision import Inter
1056
+ >>> decode_op = c_vision.Decode()
1057
+ >>> random_affine_op = c_vision.RandomAffine(degrees=15,
1058
+ ... translate=(-0.1, 0.1, 0, 0),
1059
+ ... scale=(0.9, 1.1),
1060
+ ... resample=Inter.NEAREST)
1061
+ >>> transforms_list = [decode_op, random_affine_op]
1062
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1063
+ ... input_columns=["image"])
1064
+ """
1065
+
1066
+ @deprecated_c_vision()
1067
+ @check_random_affine
1068
+ def __init__(self, degrees, translate=None, scale=None, shear=None, resample=Inter.NEAREST, fill_value=0):
1069
+ # Parameter checking
1070
+ if shear is not None:
1071
+ if isinstance(shear, numbers.Number):
1072
+ shear = (-1 * shear, shear, 0., 0.)
1073
+ else:
1074
+ if len(shear) == 2:
1075
+ shear = [shear[0], shear[1], 0., 0.]
1076
+ elif len(shear) == 4:
1077
+ shear = [s for s in shear]
1078
+
1079
+ if isinstance(degrees, numbers.Number):
1080
+ degrees = (-1 * degrees, degrees)
1081
+
1082
+ if isinstance(fill_value, numbers.Number):
1083
+ fill_value = (fill_value, fill_value, fill_value)
1084
+
1085
+ # translation
1086
+ if translate is None:
1087
+ translate = (0.0, 0.0, 0.0, 0.0)
1088
+
1089
+ # scale
1090
+ if scale is None:
1091
+ scale = (1.0, 1.0)
1092
+
1093
+ # shear
1094
+ if shear is None:
1095
+ shear = (0.0, 0.0, 0.0, 0.0)
1096
+
1097
+ self.degrees = degrees
1098
+ self.translate = translate
1099
+ self.scale_ = scale
1100
+ self.shear = shear
1101
+ self.resample = DE_C_INTER_MODE.get(resample)
1102
+ self.fill_value = fill_value
1103
+
1104
+ def parse(self):
1105
+ return cde.RandomAffineOperation(self.degrees, self.translate, self.scale_, self.shear, self.resample,
1106
+ self.fill_value)
1107
+
1108
+
1109
+ class RandomAutoContrast(ImageTensorOperation):
1110
+ """
1111
+ Automatically adjust the contrast of the image with a given probability.
1112
+
1113
+ Args:
1114
+ cutoff (float, optional): Percent of the lightest and darkest pixels to be cut off from
1115
+ the histogram of the input image. The value must be in range of [0.0, 50.0). Default: ``0.0``.
1116
+ ignore (Union[int, sequence], optional): The background pixel values to be ignored, each of
1117
+ which must be in range of [0, 255]. Default: ``None``.
1118
+ prob (float, optional): Probability of the image being automatically contrasted, which
1119
+ must be in range of [0, 1]. Default: ``0.5``.
1120
+
1121
+ Raises:
1122
+ TypeError: If `cutoff` is not of type float.
1123
+ TypeError: If `ignore` is not of type int or sequence of int.
1124
+ TypeError: If `prob` is not of type float.
1125
+ ValueError: If `cutoff` is not in range [0.0, 50.0).
1126
+ ValueError: If `ignore` is not in range [0, 255].
1127
+ ValueError: If `prob` is not in range [0, 1].
1128
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
1129
+
1130
+ Supported Platforms:
1131
+ ``CPU``
1132
+
1133
+ Examples:
1134
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomAutoContrast(cutoff=0.0, ignore=None, prob=0.5)]
1135
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1136
+ ... input_columns=["image"])
1137
+ """
1138
+
1139
+ @deprecated_c_vision()
1140
+ @check_random_auto_contrast
1141
+ def __init__(self, cutoff=0.0, ignore=None, prob=0.5):
1142
+ if ignore is None:
1143
+ ignore = []
1144
+ if isinstance(ignore, int):
1145
+ ignore = [ignore]
1146
+ self.cutoff = cutoff
1147
+ self.ignore = ignore
1148
+ self.prob = prob
1149
+
1150
+ def parse(self):
1151
+ return cde.RandomAutoContrastOperation(self.cutoff, self.ignore, self.prob)
1152
+
1153
+
1154
+ class RandomColor(ImageTensorOperation):
1155
+ """
1156
+ Adjust the color of the input image by a fixed or random degree.
1157
+ This operation works only with 3-channel RGB images.
1158
+
1159
+ Args:
1160
+ degrees (Sequence[float], optional): Range of random color adjustment degrees, which must be non-negative.
1161
+ It should be in (min, max) format. If min=max, then it is a
1162
+ single fixed magnitude operation. Default: ``(0.1, 1.9)``.
1163
+
1164
+ Raises:
1165
+ TypeError: If `degrees` is not of type Sequence[float].
1166
+ ValueError: If `degrees` is negative.
1167
+ RuntimeError: If given tensor shape is not <H, W, C>.
1168
+
1169
+ Supported Platforms:
1170
+ ``CPU``
1171
+
1172
+ Examples:
1173
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomColor((0.5, 2.0))]
1174
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1175
+ ... input_columns=["image"])
1176
+ """
1177
+
1178
+ @deprecated_c_vision()
1179
+ @check_positive_degrees
1180
+ def __init__(self, degrees=(0.1, 1.9)):
1181
+ self.degrees = degrees
1182
+
1183
+ def parse(self):
1184
+ return cde.RandomColorOperation(*self.degrees)
1185
+
1186
+
1187
+ class RandomColorAdjust(ImageTensorOperation):
1188
+ """
1189
+ Randomly adjust the brightness, contrast, saturation, and hue of the input image.
1190
+
1191
+ Note:
1192
+ This operation supports running on Ascend or GPU platforms by Offload.
1193
+
1194
+ Args:
1195
+ brightness (Union[float, Sequence[float]], optional): Brightness adjustment factor. Default: ``(1, 1)``.
1196
+ Cannot be negative.
1197
+ If it is a float, the factor is uniformly chosen from the range [max(0, 1-brightness), 1+brightness].
1198
+ If it is a sequence, it should be [min, max] for the range.
1199
+ contrast (Union[float, Sequence[float]], optional): Contrast adjustment factor. Default: ``(1, 1)``.
1200
+ Cannot be negative.
1201
+ If it is a float, the factor is uniformly chosen from the range [max(0, 1-contrast), 1+contrast].
1202
+ If it is a sequence, it should be [min, max] for the range.
1203
+ saturation (Union[float, Sequence[float]], optional): Saturation adjustment factor. Default: ``(1, 1)``.
1204
+ Cannot be negative.
1205
+ If it is a float, the factor is uniformly chosen from the range [max(0, 1-saturation), 1+saturation].
1206
+ If it is a sequence, it should be [min, max] for the range.
1207
+ hue (Union[float, Sequence[float]], optional): Hue adjustment factor. Default: ``(0, 0)``.
1208
+ If it is a float, the range will be [-hue, hue]. Value should be 0 <= hue <= 0.5.
1209
+ If it is a sequence, it should be [min, max] where -0.5 <= min <= max <= 0.5.
1210
+
1211
+ Raises:
1212
+ TypeError: If `brightness` is not of type float or Sequence[float].
1213
+ TypeError: If `contrast` is not of type float or Sequence[float].
1214
+ TypeError: If `saturation` is not of type float or Sequence[float].
1215
+ TypeError: If `hue` is not of type float or Sequence[float].
1216
+ ValueError: If `brightness` is negative.
1217
+ ValueError: If `contrast` is negative.
1218
+ ValueError: If `saturation` is negative.
1219
+ ValueError: If `hue` is not in range [-0.5, 0.5].
1220
+ RuntimeError: If given tensor shape is not <H, W, C>.
1221
+
1222
+ Supported Platforms:
1223
+ ``Ascend`` ``GPU`` ``CPU``
1224
+
1225
+ Examples:
1226
+ >>> decode_op = c_vision.Decode()
1227
+ >>> transform_op = c_vision.RandomColorAdjust(brightness=(0.5, 1),
1228
+ ... contrast=(0.4, 1),
1229
+ ... saturation=(0.3, 1))
1230
+ >>> transforms_list = [decode_op, transform_op]
1231
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1232
+ ... input_columns=["image"])
1233
+ """
1234
+
1235
+ @deprecated_c_vision()
1236
+ @check_random_color_adjust
1237
+ def __init__(self, brightness=(1, 1), contrast=(1, 1), saturation=(1, 1), hue=(0, 0)):
1238
+ brightness = self.__expand_values(brightness)
1239
+ contrast = self.__expand_values(contrast)
1240
+ saturation = self.__expand_values(saturation)
1241
+ hue = self.__expand_values(
1242
+ hue, center=0, bound=(-0.5, 0.5), non_negative=False)
1243
+
1244
+ self.brightness = brightness
1245
+ self.contrast = contrast
1246
+ self.saturation = saturation
1247
+ self.hue = hue
1248
+
1249
+ def parse(self):
1250
+ return cde.RandomColorAdjustOperation(self.brightness, self.contrast, self.saturation, self.hue)
1251
+
1252
+ def __expand_values(self, value, center=1, bound=(0, FLOAT_MAX_INTEGER), non_negative=True):
1253
+ """Expand input value for vision adjustment factor."""
1254
+ if isinstance(value, numbers.Number):
1255
+ value = [center - value, center + value]
1256
+ if non_negative:
1257
+ value[0] = max(0, value[0])
1258
+ check_range(value, bound)
1259
+ return (value[0], value[1])
1260
+
1261
+
1262
+ class RandomCrop(ImageTensorOperation):
1263
+ """
1264
+ Crop the input image at a random location. If input image size is smaller than output size,
1265
+ input image will be padded before cropping.
1266
+
1267
+ Note:
1268
+ If the input image is more than one, then make sure that the image size is the same.
1269
+
1270
+ Args:
1271
+ size (Union[int, Sequence[int]]): The output size of the cropped image. The size value(s) must be positive.
1272
+ If size is an integer, a square crop of size (size, size) is returned.
1273
+ If size is a sequence of length 2, an image of size (height, width) will be cropped.
1274
+ padding (Union[int, Sequence[int]], optional): The number of pixels to pad each border of the image.
1275
+ The padding value(s) must be non-negative. Default: ``None``.
1276
+ If `padding` is not ``None``, pad image first with padding values.
1277
+ If a single number is provided, pad all borders with this value.
1278
+ If a tuple or lists of 2 values are provided, pad the (left and top)
1279
+ with the first value and (right and bottom) with the second value.
1280
+ If 4 values are provided as a list or tuple,
1281
+ pad the left, top, right and bottom respectively.
1282
+ pad_if_needed (bool, optional): Pad the image if either side is smaller than
1283
+ the given output size. Default: ``False``.
1284
+ fill_value (Union[int, tuple[int]], optional): The pixel intensity of the borders, only valid for
1285
+ `padding_mode` ``Border.CONSTANT``. If it is a 3-tuple, it is used to fill R, G, B channels respectively.
1286
+ If it is an integer, it is used for all RGB channels.
1287
+ The fill_value values must be in range [0, 255]. Default: ``0``.
1288
+ padding_mode (Border, optional): The method of padding. Default: ``Border.CONSTANT``. It can be
1289
+ ``Border.CONSTANT``, ``Border.EDGE``, ``Border.REFLECT``, ``Border.SYMMETRIC``.
1290
+
1291
+ - ``Border.CONSTANT`` , means it fills the border with constant values.
1292
+
1293
+ - ``Border.EDGE`` , means it pads with the last value on the edge.
1294
+
1295
+ - ``Border.REFLECT`` , means it reflects the values on the edge omitting the last
1296
+ value of edge.
1297
+
1298
+ - ``Border.SYMMETRIC`` , means it reflects the values on the edge repeating the last
1299
+ value of edge.
1300
+
1301
+ Note:
1302
+ The behavior when `padding` is a sequence of length 2 will change from padding left/top with
1303
+ the first value and right/bottom with the second, to padding left/right with the first one
1304
+ and top/bottom with the second in the future. Or you can pass in a 4-element sequence to specify
1305
+ left, top, right and bottom respectively.
1306
+
1307
+ Raises:
1308
+ TypeError: If `size` is not of type int or Sequence[int].
1309
+ TypeError: If `padding` is not of type int or Sequence[int].
1310
+ TypeError: If `pad_if_needed` is not of type boolean.
1311
+ TypeError: If `fill_value` is not of type int or tuple[int].
1312
+ TypeError: If `padding_mode` is not of type :class:`mindspore.dataset.vision.Border` .
1313
+ ValueError: If `size` is not positive.
1314
+ ValueError: If `padding` is negative.
1315
+ ValueError: If `fill_value` is not in range [0, 255].
1316
+ RuntimeError: If given tensor shape is not <H, W> or <..., H, W, C>.
1317
+
1318
+ Supported Platforms:
1319
+ ``CPU``
1320
+
1321
+ Examples:
1322
+ >>> from mindspore.dataset.vision import Border
1323
+ >>> decode_op = c_vision.Decode()
1324
+ >>> random_crop_op = c_vision.RandomCrop(512, [200, 200, 200, 200], padding_mode=Border.EDGE)
1325
+ >>> transforms_list = [decode_op, random_crop_op]
1326
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1327
+ ... input_columns=["image"])
1328
+ """
1329
+
1330
+ @deprecated_c_vision()
1331
+ @check_random_crop
1332
+ def __init__(self, size, padding=None, pad_if_needed=False, fill_value=0, padding_mode=Border.CONSTANT):
1333
+ if isinstance(size, int):
1334
+ size = (size, size)
1335
+ if padding is None:
1336
+ padding = (0, 0, 0, 0)
1337
+ else:
1338
+ padding = parse_padding(padding)
1339
+ if isinstance(fill_value, int):
1340
+ fill_value = tuple([fill_value] * 3)
1341
+
1342
+ self.size = size
1343
+ self.padding = padding
1344
+ self.pad_if_needed = pad_if_needed
1345
+ self.fill_value = fill_value
1346
+ self.padding_mode = padding_mode
1347
+
1348
+ def parse(self):
1349
+ border_type = DE_C_BORDER_TYPE.get(self.padding_mode)
1350
+ return cde.RandomCropOperation(self.size, self.padding, self.pad_if_needed, self.fill_value, border_type)
1351
+
1352
+
1353
+ class RandomCropDecodeResize(ImageTensorOperation):
1354
+ """
1355
+ A combination of `Crop` , `Decode` and `Resize` . It will get better performance for JPEG images. This operation
1356
+ will crop the input image at a random location, decode the cropped image in RGB mode, and resize the decoded image.
1357
+
1358
+ Args:
1359
+ size (Union[int, Sequence[int]]): The output size of the resized image. The size value(s) must be positive.
1360
+ If size is an integer, a square crop of size (size, size) is returned.
1361
+ If size is a sequence of length 2, an image of size (height, width) will be cropped.
1362
+ scale (Union[list, tuple], optional): Range [min, max) of respective size of the
1363
+ original size to be cropped, which must be non-negative. Default: ``(0.08, 1.0)``.
1364
+ ratio (Union[list, tuple], optional): Range [min, max) of aspect ratio to be
1365
+ cropped, which must be non-negative. Default: ``(3. / 4., 4. / 3.)``.
1366
+ interpolation (Inter, optional): Image interpolation mode for resize operation. Default: ``Inter.BILINEAR``.
1367
+ It can be ``Inter.BILINEAR``, ``Inter.NEAREST``, ``Inter.BICUBIC``, ``Inter.AREA``, ``Inter.PILCUBIC``.
1368
+
1369
+ - ``Inter.BILINEA`` , means interpolation method is bilinear interpolation.
1370
+
1371
+ - ``Inter.NEAREST`` , means interpolation method is nearest-neighbor interpolation.
1372
+
1373
+ - ``Inter.BICUBIC`` , means interpolation method is bicubic interpolation.
1374
+
1375
+ - ``Inter.AREA`` :, means interpolation method is pixel area interpolation.
1376
+
1377
+ - ``Inter.PILCUBIC`` , means interpolation method is bicubic interpolation like implemented in pillow, input
1378
+ should be in 3 channels format.
1379
+
1380
+ max_attempts (int, optional): The maximum number of attempts to propose a valid crop_area. Default: ``10``.
1381
+ If exceeded, fall back to use center_crop instead. The `max_attempts` value must be positive.
1382
+
1383
+ Raises:
1384
+ TypeError: If `size` is not of type int or Sequence[int].
1385
+ TypeError: If `scale` is not of type tuple or list.
1386
+ TypeError: If `ratio` is not of type tuple or list.
1387
+ TypeError: If `interpolation` is not of type :class:`mindspore.dataset.vision.Inter` .
1388
+ TypeError: If `max_attempts` is not of type int.
1389
+ ValueError: If `size` is not positive.
1390
+ ValueError: If `scale` is negative.
1391
+ ValueError: If `ratio` is negative.
1392
+ ValueError: If `max_attempts` is not positive.
1393
+ RuntimeError: If given tensor is not a 1D sequence.
1394
+
1395
+ Supported Platforms:
1396
+ ``CPU``
1397
+
1398
+ Examples:
1399
+ >>> from mindspore.dataset.vision import Inter
1400
+ >>> resize_crop_decode_op = c_vision.RandomCropDecodeResize(size=(50, 75),
1401
+ ... scale=(0.25, 0.5),
1402
+ ... interpolation=Inter.NEAREST,
1403
+ ... max_attempts=5)
1404
+ >>> transforms_list = [resize_crop_decode_op]
1405
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1406
+ ... input_columns=["image"])
1407
+ """
1408
+
1409
+ @deprecated_c_vision()
1410
+ @check_random_resize_crop
1411
+ def __init__(self, size, scale=(0.08, 1.0), ratio=(3. / 4., 4. / 3.),
1412
+ interpolation=Inter.BILINEAR, max_attempts=10):
1413
+ if isinstance(size, int):
1414
+ size = (size, size)
1415
+ self.size = size
1416
+ self.scale = scale
1417
+ self.ratio = ratio
1418
+ self.interpolation = interpolation
1419
+ self.max_attempts = max_attempts
1420
+
1421
+ def __call__(self, img):
1422
+ if not isinstance(img, np.ndarray):
1423
+ raise TypeError(
1424
+ "Input should be an encoded image in 1-D NumPy format, got {}.".format(type(img)))
1425
+ if img.ndim != 1 or img.dtype.type is not np.uint8:
1426
+ raise TypeError("Input should be an encoded image with uint8 type in 1-D NumPy format, " +
1427
+ "got format:{}, dtype:{}.".format(type(img), img.dtype.type))
1428
+ return super().__call__(img)
1429
+
1430
+ def parse(self):
1431
+ return cde.RandomCropDecodeResizeOperation(self.size, self.scale, self.ratio,
1432
+ DE_C_INTER_MODE.get(self.interpolation),
1433
+ self.max_attempts)
1434
+
1435
+
1436
+ class RandomCropWithBBox(ImageTensorOperation):
1437
+ """
1438
+ Crop the input image at a random location and adjust bounding boxes accordingly.
1439
+
1440
+ Args:
1441
+ size (Union[int, Sequence[int]]): The output size of the cropped image. The size value(s) must be positive.
1442
+ If size is an integer, a square crop of size (size, size) is returned.
1443
+ If size is a sequence of length 2, an image of size (height, width) will be cropped.
1444
+ padding (Union[int, Sequence[int]], optional): The number of pixels to pad the image
1445
+ The padding value(s) must be non-negative. Default: ``None``.
1446
+ If `padding` is not ``None``, first pad image with padding values.
1447
+ If a single number is provided, pad all borders with this value.
1448
+ If a tuple or lists of 2 values are provided, pad the (left and top)
1449
+ with the first value and (right and bottom) with the second value.
1450
+ If 4 values are provided as a list or tuple, pad the left, top, right and bottom respectively.
1451
+ pad_if_needed (bool, optional): Pad the image if either side is smaller than
1452
+ the given output size. Default: ``False``.
1453
+ fill_value (Union[int, tuple[int]], optional): The pixel intensity of the borders, only valid for
1454
+ `padding_mode` ``Border.CONSTANT``. If it is a 3-tuple, it is used to fill R, G, B channels respectively.
1455
+ If it is an integer, it is used for all RGB channels.
1456
+ The fill_value values must be in range [0, 255]. Default: ``0``.
1457
+ padding_mode (Border, optional): The method of padding. Default: ``Border.CONSTANT``. It can be any of
1458
+ ``Border.CONSTANT``, ``Border.EDGE``, ``Border.REFLECT``, ``Border.SYMMETRIC``.
1459
+
1460
+ - ``Border.CONSTANT`` , means it fills the border with constant values.
1461
+
1462
+ - ``Border.EDGE`` , means it pads with the last value on the edge.
1463
+
1464
+ - ``Border.REFLECT`` , means it reflects the values on the edge omitting the last
1465
+ value of edge.
1466
+
1467
+ - ``Border.SYMMETRIC`` , means it reflects the values on the edge repeating the last
1468
+ value of edge.
1469
+
1470
+ Note:
1471
+ The behavior when `padding` is a sequence of length 2 will change from padding left/top with
1472
+ the first value and right/bottom with the second, to padding left/right with the first one
1473
+ and top/bottom with the second in the future. Or you can pass in a 4-element sequence to specify
1474
+ left, top, right and bottom respectively.
1475
+
1476
+ Raises:
1477
+ TypeError: If `size` is not of type int or Sequence[int].
1478
+ TypeError: If `padding` is not of type int or Sequence[int].
1479
+ TypeError: If `pad_if_needed` is not of type boolean.
1480
+ TypeError: If `fill_value` is not of type int or tuple[int].
1481
+ TypeError: If `padding_mode` is not of type :class:`mindspore.dataset.vision.Border` .
1482
+ ValueError: If `size` is not positive.
1483
+ ValueError: If `padding` is negative.
1484
+ ValueError: If `fill_value` is not in range [0, 255].
1485
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
1486
+
1487
+ Supported Platforms:
1488
+ ``CPU``
1489
+
1490
+ Examples:
1491
+ >>> decode_op = c_vision.Decode()
1492
+ >>> random_crop_with_bbox_op = c_vision.RandomCropWithBBox([512, 512], [200, 200, 200, 200])
1493
+ >>> transforms_list = [decode_op, random_crop_with_bbox_op]
1494
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1495
+ ... input_columns=["image"])
1496
+ """
1497
+
1498
+ @deprecated_c_vision()
1499
+ @check_random_crop
1500
+ def __init__(self, size, padding=None, pad_if_needed=False, fill_value=0, padding_mode=Border.CONSTANT):
1501
+ if isinstance(size, int):
1502
+ size = (size, size)
1503
+ if padding is None:
1504
+ padding = (0, 0, 0, 0)
1505
+ else:
1506
+ padding = parse_padding(padding)
1507
+
1508
+ if isinstance(fill_value, int):
1509
+ fill_value = tuple([fill_value] * 3)
1510
+
1511
+ self.size = size
1512
+ self.padding = padding
1513
+ self.pad_if_needed = pad_if_needed
1514
+ self.fill_value = fill_value
1515
+ self.padding_mode = padding_mode
1516
+
1517
+ def parse(self):
1518
+ border_type = DE_C_BORDER_TYPE.get(self.padding_mode)
1519
+ return cde.RandomCropWithBBoxOperation(self.size, self.padding, self.pad_if_needed, self.fill_value,
1520
+ border_type)
1521
+
1522
+
1523
+ class RandomEqualize(ImageTensorOperation):
1524
+ """
1525
+ Apply histogram equalization on the input image with a given probability.
1526
+
1527
+ Args:
1528
+ prob (float, optional): Probability of the image being equalized, which
1529
+ must be in range of [0, 1]. Default: ``0.5``.
1530
+
1531
+ Raises:
1532
+ TypeError: If `prob` is not of type float.
1533
+ ValueError: If `prob` is not in range [0, 1].
1534
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
1535
+
1536
+ Supported Platforms:
1537
+ ``CPU``
1538
+
1539
+ Examples:
1540
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomEqualize(0.5)]
1541
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1542
+ ... input_columns=["image"])
1543
+ """
1544
+
1545
+ @deprecated_c_vision()
1546
+ @check_prob
1547
+ def __init__(self, prob=0.5):
1548
+ self.prob = prob
1549
+
1550
+ def parse(self):
1551
+ return cde.RandomEqualizeOperation(self.prob)
1552
+
1553
+
1554
+ class RandomHorizontalFlip(ImageTensorOperation):
1555
+ """
1556
+ Randomly flip the input image horizontally with a given probability.
1557
+
1558
+ Note:
1559
+ This operation supports running on Ascend or GPU platforms by Offload.
1560
+
1561
+ Args:
1562
+ prob (float, optional): Probability of the image being flipped, which must be in range of [0, 1].
1563
+ Default: ``0.5``.
1564
+
1565
+ Raises:
1566
+ TypeError: If `prob` is not of type float.
1567
+ ValueError: If `prob` is not in range [0, 1].
1568
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
1569
+
1570
+ Supported Platforms:
1571
+ ``Ascend`` ``GPU`` ``CPU``
1572
+
1573
+ Examples:
1574
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomHorizontalFlip(0.75)]
1575
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1576
+ ... input_columns=["image"])
1577
+ """
1578
+
1579
+ @deprecated_c_vision()
1580
+ @check_prob
1581
+ def __init__(self, prob=0.5):
1582
+ self.prob = prob
1583
+
1584
+ def parse(self):
1585
+ return cde.RandomHorizontalFlipOperation(self.prob)
1586
+
1587
+
1588
+ class RandomHorizontalFlipWithBBox(ImageTensorOperation):
1589
+ """
1590
+ Flip the input image horizontally randomly with a given probability and adjust bounding boxes accordingly.
1591
+
1592
+ Args:
1593
+ prob (float, optional): Probability of the image being flipped, which must be in range of [0, 1].
1594
+ Default: ``0.5``.
1595
+
1596
+ Raises:
1597
+ TypeError: If `prob` is not of type float.
1598
+ ValueError: If `prob` is not in range [0, 1].
1599
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
1600
+
1601
+ Supported Platforms:
1602
+ ``CPU``
1603
+
1604
+ Examples:
1605
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomHorizontalFlipWithBBox(0.70)]
1606
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1607
+ ... input_columns=["image"])
1608
+ """
1609
+
1610
+ @deprecated_c_vision()
1611
+ @check_prob
1612
+ def __init__(self, prob=0.5):
1613
+ self.prob = prob
1614
+
1615
+ def parse(self):
1616
+ return cde.RandomHorizontalFlipWithBBoxOperation(self.prob)
1617
+
1618
+
1619
+ class RandomInvert(ImageTensorOperation):
1620
+ """
1621
+ Randomly invert the colors of image with a given probability.
1622
+
1623
+ Args:
1624
+ prob (float, optional): Probability of the image being inverted, which must be in range of [0, 1].
1625
+ Default: ``0.5``.
1626
+
1627
+ Raises:
1628
+ TypeError: If `prob` is not of type float.
1629
+ ValueError: If `prob` is not in range [0, 1].
1630
+ RuntimeError: If given tensor shape is not <H, W, C>.
1631
+
1632
+ Supported Platforms:
1633
+ ``CPU``
1634
+
1635
+ Examples:
1636
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomInvert(0.5)]
1637
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1638
+ ... input_columns=["image"])
1639
+ """
1640
+
1641
+ @deprecated_c_vision()
1642
+ @check_prob
1643
+ def __init__(self, prob=0.5):
1644
+ self.prob = prob
1645
+
1646
+ def parse(self):
1647
+ return cde.RandomInvertOperation(self.prob)
1648
+
1649
+
1650
+ class RandomLighting(ImageTensorOperation):
1651
+ """
1652
+ Add AlexNet-style PCA-based noise to an image. The eigenvalue and eigenvectors for Alexnet's PCA noise is
1653
+ calculated from the imagenet dataset.
1654
+
1655
+ Args:
1656
+ alpha (float, optional): Intensity of the image, which must be non-negative. Default: ``0.05``.
1657
+
1658
+ Raises:
1659
+ TypeError: If `alpha` is not of type float.
1660
+ ValueError: If `alpha` is negative.
1661
+ RuntimeError: If given tensor shape is not <H, W, C>.
1662
+
1663
+ Supported Platforms:
1664
+ ``CPU``
1665
+
1666
+ Examples:
1667
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomLighting(0.1)]
1668
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1669
+ ... input_columns=["image"])
1670
+ """
1671
+
1672
+ @deprecated_c_vision()
1673
+ @check_alpha
1674
+ def __init__(self, alpha=0.05):
1675
+ self.alpha = alpha
1676
+
1677
+ def parse(self):
1678
+ return cde.RandomLightingOperation(self.alpha)
1679
+
1680
+
1681
+ class RandomPosterize(ImageTensorOperation):
1682
+ """
1683
+ Reduce the number of bits for each color channel to posterize the input image randomly with a given probability.
1684
+
1685
+ Args:
1686
+ bits (Union[int, Sequence[int]], optional): Range of random posterize to compress image.
1687
+ Bits values must be in range of [1,8], and include at
1688
+ least one integer value in the given range. It must be in
1689
+ (min, max) or integer format. If min=max, then it is a single fixed
1690
+ magnitude operation. Default: ``(8, 8)``.
1691
+
1692
+ Raises:
1693
+ TypeError: If `bits` is not of type int or sequence of int.
1694
+ ValueError: If `bits` is not in range [1, 8].
1695
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
1696
+
1697
+ Supported Platforms:
1698
+ ``CPU``
1699
+
1700
+ Examples:
1701
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomPosterize((6, 8))]
1702
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1703
+ ... input_columns=["image"])
1704
+ """
1705
+
1706
+ @deprecated_c_vision()
1707
+ @check_random_posterize
1708
+ def __init__(self, bits=(8, 8)):
1709
+ self.bits = bits
1710
+
1711
+ def parse(self):
1712
+ bits = self.bits
1713
+ if isinstance(bits, int):
1714
+ bits = (bits, bits)
1715
+ return cde.RandomPosterizeOperation(bits)
1716
+
1717
+
1718
+ class RandomResizedCrop(ImageTensorOperation):
1719
+ """
1720
+ This operation will crop the input image randomly, and resize the cropped image using a selected interpolation mode.
1721
+
1722
+ Note:
1723
+ If the input image is more than one, then make sure that the image size is the same.
1724
+
1725
+ Args:
1726
+ size (Union[int, Sequence[int]]): The output size of the resized image. The size value(s) must be positive.
1727
+ If size is an integer, a square of size (size, size) will be cropped with this value.
1728
+ If size is a sequence of length 2, an image of size (height, width) will be cropped.
1729
+ scale (Union[list, tuple], optional): Range [min, max) of respective size of the original
1730
+ size to be cropped, which must be non-negative. Default: ``(0.08, 1.0)``.
1731
+ ratio (Union[list, tuple], optional): Range [min, max) of aspect ratio to be
1732
+ cropped, which must be non-negative. Default: ``(3. / 4., 4. / 3.)``.
1733
+ interpolation (Inter, optional): Method of interpolation. Default: ``Inter.BILINEAR``.
1734
+ It can be ``Inter.BILINEAR``, ``Inter.NEAREST``, ``Inter.BICUBIC``, ``Inter.AREA``, ``Inter.PILCUBIC``.
1735
+
1736
+ - ``Inter.BILINEA`` , means interpolation method is bilinear interpolation.
1737
+
1738
+ - ``Inter.NEAREST`` , means interpolation method is nearest-neighbor interpolation.
1739
+
1740
+ - ``Inter.BICUBIC`` , means interpolation method is bicubic interpolation.
1741
+
1742
+ - ``Inter.AREA`` :, means interpolation method is pixel area interpolation.
1743
+
1744
+ - ``Inter.PILCUBIC`` , means interpolation method is bicubic interpolation like implemented in pillow,
1745
+ input should be in 3 channels format.
1746
+
1747
+ max_attempts (int, optional): The maximum number of attempts to propose a valid
1748
+ crop_area. Default: ``10``. If exceeded, fall back to use center_crop instead.
1749
+
1750
+ Raises:
1751
+ TypeError: If `size` is not of type int or Sequence[int].
1752
+ TypeError: If `scale` is not of type tuple or list.
1753
+ TypeError: If `ratio` is not of type tuple or list.
1754
+ TypeError: If `interpolation` is not of type :class:`mindspore.dataset.vision.Inter` .
1755
+ TypeError: If `max_attempts` is not of type int.
1756
+ ValueError: If `size` is not positive.
1757
+ ValueError: If `scale` is negative.
1758
+ ValueError: If `ratio` is negative.
1759
+ ValueError: If `max_attempts` is not positive.
1760
+ RuntimeError: If given tensor shape is not <H, W> or <..., H, W, C>.
1761
+
1762
+ Supported Platforms:
1763
+ ``CPU``
1764
+
1765
+ Examples:
1766
+ >>> from mindspore.dataset.vision import Inter
1767
+ >>> decode_op = c_vision.Decode()
1768
+ >>> resize_crop_op = c_vision.RandomResizedCrop(size=(50, 75), scale=(0.25, 0.5),
1769
+ ... interpolation=Inter.BILINEAR)
1770
+ >>> transforms_list = [decode_op, resize_crop_op]
1771
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1772
+ ... input_columns=["image"])
1773
+ """
1774
+
1775
+ @deprecated_c_vision()
1776
+ @check_random_resize_crop
1777
+ def __init__(self, size, scale=(0.08, 1.0), ratio=(3. / 4., 4. / 3.),
1778
+ interpolation=Inter.BILINEAR, max_attempts=10):
1779
+ if isinstance(size, int):
1780
+ size = (size, size)
1781
+ self.size = size
1782
+ self.scale = scale
1783
+ self.ratio = ratio
1784
+ self.interpolation = interpolation
1785
+ self.max_attempts = max_attempts
1786
+
1787
+ def parse(self):
1788
+ return cde.RandomResizedCropOperation(self.size, self.scale, self.ratio,
1789
+ DE_C_INTER_MODE.get(self.interpolation), self.max_attempts)
1790
+
1791
+
1792
+ class RandomResizedCropWithBBox(ImageTensorOperation):
1793
+ """
1794
+ Crop the input image to a random size and aspect ratio and adjust bounding boxes accordingly.
1795
+
1796
+ Args:
1797
+ size (Union[int, Sequence[int]]): The size of the output image. The size value(s) must be positive.
1798
+ If size is an integer, a square of size (size, size) will be cropped with this value.
1799
+ If size is a sequence of length 2, an image of size (height, width) will be cropped.
1800
+ scale (Union[list, tuple], optional): Range (min, max) of respective size of the original
1801
+ size to be cropped, which must be non-negative. Default: ``(0.08, 1.0)``.
1802
+ ratio (Union[list, tuple], optional): Range (min, max) of aspect ratio to be
1803
+ cropped, which must be non-negative. Default: ``(3. / 4., 4. / 3.)``.
1804
+ interpolation (Inter mode, optional): Method of interpolation. Default: ``Inter.BILINEAR``.
1805
+ It can be ``Inter.BILINEAR``, ``Inter.NEAREST``, ``Inter.BICUBIC`` .
1806
+
1807
+ - ``Inter.BILINEA`` , means interpolation method is bilinear interpolation.
1808
+
1809
+ - ``Inter.NEAREST`` , means interpolation method is nearest-neighbor interpolation.
1810
+
1811
+ - ``Inter.BICUBIC`` , means interpolation method is bicubic interpolation.
1812
+
1813
+ max_attempts (int, optional): The maximum number of attempts to propose a valid
1814
+ crop area. Default: ``10``. If exceeded, fall back to use center crop instead.
1815
+
1816
+ Raises:
1817
+ TypeError: If `size` is not of type int or Sequence[int].
1818
+ TypeError: If `scale` is not of type tuple or list.
1819
+ TypeError: If `ratio` is not of type tuple or list.
1820
+ TypeError: If `interpolation` is not of type :class:`mindspore.dataset.vision.Inter` .
1821
+ TypeError: If `max_attempts` is not of type int.
1822
+ ValueError: If `size` is not positive.
1823
+ ValueError: If `scale` is negative.
1824
+ ValueError: If `ratio` is negative.
1825
+ ValueError: If `max_attempts` is not positive.
1826
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
1827
+
1828
+ Supported Platforms:
1829
+ ``CPU``
1830
+
1831
+ Examples:
1832
+ >>> from mindspore.dataset.vision import Inter
1833
+ >>> decode_op = c_vision.Decode()
1834
+ >>> bbox_op = c_vision.RandomResizedCropWithBBox(size=50, interpolation=Inter.NEAREST)
1835
+ >>> transforms_list = [decode_op, bbox_op]
1836
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1837
+ ... input_columns=["image"])
1838
+ """
1839
+
1840
+ @deprecated_c_vision()
1841
+ @check_random_resize_crop
1842
+ def __init__(self, size, scale=(0.08, 1.0), ratio=(3. / 4., 4. / 3.),
1843
+ interpolation=Inter.BILINEAR, max_attempts=10):
1844
+ if isinstance(size, int):
1845
+ size = (size, size)
1846
+ self.size = size
1847
+ self.scale = scale
1848
+ self.ratio = ratio
1849
+ self.interpolation = interpolation
1850
+ self.max_attempts = max_attempts
1851
+
1852
+ def parse(self):
1853
+ return cde.RandomResizedCropWithBBoxOperation(self.size, self.scale, self.ratio,
1854
+ DE_C_INTER_MODE.get(self.interpolation), self.max_attempts)
1855
+
1856
+
1857
+ class RandomResize(ImageTensorOperation):
1858
+ """
1859
+ Resize the input image using a randomly selected interpolation mode.
1860
+
1861
+ Args:
1862
+ size (Union[int, Sequence[int]]): The output size of the resized image. The size value(s) must be positive.
1863
+ If size is an integer, a square of size (size, size) will be cropped with this value.
1864
+ If size is a sequence of length 2, an image of size (height, width) will be cropped.
1865
+
1866
+ Raises:
1867
+ TypeError: If `size` is not of type int or Sequence[int].
1868
+ ValueError: If `size` is not positive.
1869
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
1870
+
1871
+ Supported Platforms:
1872
+ ``CPU``
1873
+
1874
+ Examples:
1875
+ >>> # randomly resize image, keeping aspect ratio
1876
+ >>> transforms_list1 = [c_vision.Decode(), c_vision.RandomResize(50)]
1877
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list1,
1878
+ ... input_columns=["image"])
1879
+ >>> # randomly resize image to landscape style
1880
+ >>> transforms_list2 = [c_vision.Decode(), c_vision.RandomResize((40, 60))]
1881
+ >>> image_folder_dataset_1 = image_folder_dataset_1.map(operations=transforms_list2,
1882
+ ... input_columns=["image"])
1883
+ """
1884
+
1885
+ @deprecated_c_vision()
1886
+ @check_resize
1887
+ def __init__(self, size):
1888
+ self.size = size
1889
+
1890
+ def parse(self):
1891
+ size = self.size
1892
+ if isinstance(size, int):
1893
+ size = (size,)
1894
+ return cde.RandomResizeOperation(size)
1895
+
1896
+
1897
+ class RandomResizeWithBBox(ImageTensorOperation):
1898
+ """
1899
+ Tensor operation to resize the input image using a randomly selected interpolation mode and adjust
1900
+ bounding boxes accordingly.
1901
+
1902
+ Args:
1903
+ size (Union[int, Sequence[int]]): The output size of the resized image. The size value(s) must be positive.
1904
+ If size is an integer, a square of size (size, size) will be cropped with this value.
1905
+ If size is a sequence of length 2, an image of size (height, width) will be cropped.
1906
+
1907
+ Raises:
1908
+ TypeError: If `size` is not of type int or Sequence[int].
1909
+ ValueError: If `size` is not positive.
1910
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
1911
+
1912
+ Supported Platforms:
1913
+ ``CPU``
1914
+
1915
+ Examples:
1916
+ >>> # randomly resize image with bounding boxes, keeping aspect ratio
1917
+ >>> transforms_list1 = [c_vision.Decode(), c_vision.RandomResizeWithBBox(60)]
1918
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list1,
1919
+ ... input_columns=["image"])
1920
+ >>> # randomly resize image with bounding boxes to portrait style
1921
+ >>> transforms_list2 = [c_vision.Decode(), c_vision.RandomResizeWithBBox((80, 60))]
1922
+ >>> image_folder_dataset_1 = image_folder_dataset_1.map(operations=transforms_list2,
1923
+ ... input_columns=["image"])
1924
+ """
1925
+
1926
+ @deprecated_c_vision()
1927
+ @check_resize
1928
+ def __init__(self, size):
1929
+ self.size = size
1930
+
1931
+ def parse(self):
1932
+ size = self.size
1933
+ if isinstance(size, int):
1934
+ size = (size,)
1935
+ return cde.RandomResizeWithBBoxOperation(size)
1936
+
1937
+
1938
+ class RandomRotation(ImageTensorOperation):
1939
+ """
1940
+ Rotate the input image randomly within a specified range of degrees.
1941
+
1942
+ Args:
1943
+ degrees (Union[int, float, sequence]): Range of random rotation degrees.
1944
+ If `degrees` is a number, the range will be converted to (-degrees, degrees).
1945
+ If `degrees` is a sequence, it should be (min, max).
1946
+ resample (Inter, optional): An optional resampling filter. Default: ``Inter.NEAREST``.
1947
+ It can be ``Inter.BILINEAR``, ``Inter.NEAREST``, ``Inter.BICUBIC``, ``Inter.AREA``.
1948
+
1949
+ - ``Inter.BILINEA`` , means resample method is bilinear interpolation.
1950
+
1951
+ - ``Inter.NEAREST`` , means resample method is nearest-neighbor interpolation.
1952
+
1953
+ - ``Inter.BICUBIC`` , means resample method is bicubic interpolation.
1954
+
1955
+ - ``Inter.AREA`` : means the interpolation method is pixel area interpolation.
1956
+
1957
+ expand (bool, optional): Optional expansion flag. Default: ``False``. If set to ``True``, expand the output
1958
+ image to make it large enough to hold the entire rotated image.
1959
+ If set to ``False`` or omitted, make the output image the same size as the input.
1960
+ Note that the expand flag assumes rotation around the center and no translation.
1961
+ center (tuple, optional): Optional center of rotation (a 2-tuple). Default: ``None``.
1962
+ Origin is the top left corner. ``None`` sets to the center of the image.
1963
+ fill_value (Union[int, tuple[int]], optional): Optional fill color for the area outside the rotated image.
1964
+ If it is a 3-tuple, it is used to fill R, G, B channels respectively.
1965
+ If it is an integer, it is used for all RGB channels.
1966
+ The fill_value values must be in range [0, 255]. Default: ``0``.
1967
+
1968
+ Raises:
1969
+ TypeError: If `degrees` is not of type int, float or sequence.
1970
+ TypeError: If `resample` is not of type :class:`mindspore.dataset.vision.Inter` .
1971
+ TypeError: If `expand` is not of type boolean.
1972
+ TypeError: If `center` is not of type tuple.
1973
+ TypeError: If `fill_value` is not of type int or tuple[int].
1974
+ ValueError: If `fill_value` is not in range [0, 255].
1975
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
1976
+
1977
+ Supported Platforms:
1978
+ ``CPU``
1979
+
1980
+ Examples:
1981
+ >>> from mindspore.dataset.vision import Inter
1982
+ >>> transforms_list = [c_vision.Decode(),
1983
+ ... c_vision.RandomRotation(degrees=5.0,
1984
+ ... resample=Inter.NEAREST,
1985
+ ... expand=True)]
1986
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
1987
+ ... input_columns=["image"])
1988
+ """
1989
+
1990
+ @deprecated_c_vision()
1991
+ @check_random_rotation
1992
+ def __init__(self, degrees, resample=Inter.NEAREST, expand=False, center=None, fill_value=0):
1993
+ if isinstance(degrees, (int, float)):
1994
+ degrees = degrees % 360
1995
+ degrees = [-degrees, degrees]
1996
+ elif isinstance(degrees, (list, tuple)):
1997
+ if degrees[1] - degrees[0] >= 360:
1998
+ degrees = [-180, 180]
1999
+ else:
2000
+ degrees = [degrees[0] % 360, degrees[1] % 360]
2001
+ if degrees[0] > degrees[1]:
2002
+ degrees[1] += 360
2003
+ if center is None:
2004
+ center = ()
2005
+ if isinstance(fill_value, int):
2006
+ fill_value = tuple([fill_value] * 3)
2007
+ self.degrees = degrees
2008
+ self.resample = resample
2009
+ self.expand = expand
2010
+ self.center = center
2011
+ self.fill_value = fill_value
2012
+
2013
+ def parse(self):
2014
+ return cde.RandomRotationOperation(self.degrees, DE_C_INTER_MODE.get(self.resample), self.expand, self.center,
2015
+ self.fill_value)
2016
+
2017
+
2018
+ class RandomSelectSubpolicy(ImageTensorOperation):
2019
+ """
2020
+ Choose a random sub-policy from a policy list to be applied on the input image.
2021
+
2022
+ Args:
2023
+ policy (list[list[tuple[TensorOperation, float]]]): List of sub-policies to choose from.
2024
+ A sub-policy is a list of tuple[operation, prob], where operation is a data processing operation and prob
2025
+ is the probability that this operation will be applied, and the prob values must be in range [0, 1].
2026
+ Once a sub-policy is selected, each operation within the sub-policy with be applied in sequence according
2027
+ to its probability.
2028
+
2029
+ Raises:
2030
+ TypeError: If `policy` contains invalid data processing operations.
2031
+
2032
+ Supported Platforms:
2033
+ ``CPU``
2034
+
2035
+ Examples:
2036
+ >>> policy = [[(c_vision.RandomRotation((45, 45)), 0.5),
2037
+ ... (c_vision.RandomVerticalFlip(), 1),
2038
+ ... (c_vision.RandomColorAdjust(), 0.8)],
2039
+ ... [(c_vision.RandomRotation((90, 90)), 1),
2040
+ ... (c_vision.RandomColorAdjust(), 0.2)]]
2041
+ >>> image_folder_dataset = image_folder_dataset.map(operations=c_vision.RandomSelectSubpolicy(policy),
2042
+ ... input_columns=["image"])
2043
+ """
2044
+
2045
+ @deprecated_c_vision()
2046
+ @check_random_select_subpolicy_op
2047
+ def __init__(self, policy):
2048
+ self.policy = policy
2049
+
2050
+ def parse(self):
2051
+ policy = []
2052
+ for list_one in self.policy:
2053
+ policy_one = []
2054
+ for list_two in list_one:
2055
+ if list_two[0] and getattr(list_two[0], 'parse', None):
2056
+ policy_one.append((list_two[0].parse(), list_two[1]))
2057
+ else:
2058
+ policy_one.append((list_two[0], list_two[1]))
2059
+ policy.append(policy_one)
2060
+ return cde.RandomSelectSubpolicyOperation(policy)
2061
+
2062
+
2063
+ class RandomSharpness(ImageTensorOperation):
2064
+ """
2065
+ Adjust the sharpness of the input image by a fixed or random degree. Degree of 0.0 gives a blurred image,
2066
+ degree of 1.0 gives the original image, and degree of 2.0 gives a sharpened image.
2067
+
2068
+ Note:
2069
+ This operation supports running on Ascend or GPU platforms by Offload.
2070
+
2071
+ Args:
2072
+ degrees (Union[list, tuple], optional): Range of random sharpness adjustment degrees,
2073
+ which must be non-negative. It should be in (min, max) format. If min=max, then
2074
+ it is a single fixed magnitude operation. Default: ``(0.1, 1.9)``.
2075
+
2076
+ Raises:
2077
+ TypeError : If `degrees` is not of type list or tuple.
2078
+ ValueError: If `degrees` is negative.
2079
+ ValueError: If `degrees` is in (max, min) format instead of (min, max).
2080
+
2081
+ Supported Platforms:
2082
+ ``Ascend`` ``GPU`` ``CPU``
2083
+
2084
+ Examples:
2085
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomSharpness(degrees=(0.2, 1.9))]
2086
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
2087
+ ... input_columns=["image"])
2088
+ """
2089
+
2090
+ @deprecated_c_vision()
2091
+ @check_positive_degrees
2092
+ def __init__(self, degrees=(0.1, 1.9)):
2093
+ self.degrees = degrees
2094
+
2095
+ def parse(self):
2096
+ return cde.RandomSharpnessOperation(self.degrees)
2097
+
2098
+
2099
+ class RandomSolarize(ImageTensorOperation):
2100
+ """
2101
+ Randomly selects a subrange within the specified threshold range and sets the pixel value within
2102
+ the subrange to (255 - pixel).
2103
+
2104
+ Args:
2105
+ threshold (tuple, optional): Range of random solarize threshold. Default: ``(0, 255)``.
2106
+ Threshold values should always be in (min, max) format,
2107
+ where min and max are integers in the range [0, 255], and min <= max.
2108
+ If min=max, then invert all pixel values above min(max).
2109
+
2110
+ Raises:
2111
+ TypeError : If `threshold` is not of type tuple.
2112
+ ValueError: If `threshold` is not in range of [0, 255].
2113
+
2114
+ Supported Platforms:
2115
+ ``CPU``
2116
+
2117
+ Examples:
2118
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomSolarize(threshold=(10,100))]
2119
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
2120
+ ... input_columns=["image"])
2121
+ """
2122
+
2123
+ @deprecated_c_vision()
2124
+ @check_random_solarize
2125
+ def __init__(self, threshold=(0, 255)):
2126
+ self.threshold = threshold
2127
+
2128
+ def parse(self):
2129
+ return cde.RandomSolarizeOperation(self.threshold)
2130
+
2131
+
2132
+ class RandomVerticalFlip(ImageTensorOperation):
2133
+ """
2134
+ Randomly flip the input image vertically with a given probability.
2135
+
2136
+ Note:
2137
+ This operation supports running on Ascend or GPU platforms by Offload.
2138
+
2139
+ Args:
2140
+ prob (float, optional): Probability of the image being flipped. Default: ``0.5``.
2141
+
2142
+ Raises:
2143
+ TypeError: If `prob` is not of type float.
2144
+ ValueError: If `prob` is not in range [0, 1].
2145
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
2146
+
2147
+ Supported Platforms:
2148
+ ``Ascend`` ``GPU`` ``CPU``
2149
+
2150
+ Examples:
2151
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomVerticalFlip(0.25)]
2152
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
2153
+ ... input_columns=["image"])
2154
+ """
2155
+
2156
+ @deprecated_c_vision()
2157
+ @check_prob
2158
+ def __init__(self, prob=0.5):
2159
+ self.prob = prob
2160
+
2161
+ def parse(self):
2162
+ return cde.RandomVerticalFlipOperation(self.prob)
2163
+
2164
+
2165
+ class RandomVerticalFlipWithBBox(ImageTensorOperation):
2166
+ """
2167
+ Flip the input image vertically, randomly with a given probability and adjust bounding boxes accordingly.
2168
+
2169
+ Args:
2170
+ prob (float, optional): Probability of the image being flipped. Default: ``0.5``.
2171
+
2172
+ Raises:
2173
+ TypeError: If `prob` is not of type float.
2174
+ ValueError: If `prob` is not in range [0, 1].
2175
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
2176
+
2177
+ Supported Platforms:
2178
+ ``CPU``
2179
+
2180
+ Examples:
2181
+ >>> transforms_list = [c_vision.Decode(), c_vision.RandomVerticalFlipWithBBox(0.20)]
2182
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
2183
+ ... input_columns=["image"])
2184
+ """
2185
+
2186
+ @deprecated_c_vision()
2187
+ @check_prob
2188
+ def __init__(self, prob=0.5):
2189
+ self.prob = prob
2190
+
2191
+ def parse(self):
2192
+ return cde.RandomVerticalFlipWithBBoxOperation(self.prob)
2193
+
2194
+
2195
+ class Rescale(ImageTensorOperation):
2196
+ """
2197
+ Rescale the input image with the given rescale and shift. This operation will rescale the input image
2198
+ with: output = image * rescale + shift.
2199
+
2200
+ Note:
2201
+ This operation supports running on Ascend or GPU platforms by Offload.
2202
+
2203
+ Args:
2204
+ rescale (float): Rescale factor.
2205
+ shift (float): Shift factor.
2206
+
2207
+ Raises:
2208
+ TypeError: If `rescale` is not of type float.
2209
+ TypeError: If `shift` is not of type float.
2210
+
2211
+ Supported Platforms:
2212
+ ``Ascend`` ``GPU`` ``CPU``
2213
+
2214
+ Examples:
2215
+ >>> transforms_list = [c_vision.Decode(), c_vision.Rescale(1.0 / 255.0, -1.0)]
2216
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
2217
+ ... input_columns=["image"])
2218
+ """
2219
+
2220
+ @deprecated_c_vision()
2221
+ @check_rescale
2222
+ def __init__(self, rescale, shift):
2223
+ self.rescale = rescale
2224
+ self.shift = shift
2225
+
2226
+ def parse(self):
2227
+ return cde.RescaleOperation(self.rescale, self.shift)
2228
+
2229
+
2230
+ class Resize(ImageTensorOperation):
2231
+ """
2232
+ Resize the input image to the given size with a given interpolation mode.
2233
+
2234
+ Args:
2235
+ size (Union[int, Sequence[int]]): The output size of the resized image. The size value(s) must be positive.
2236
+ If size is an integer, the smaller edge of the image will be resized to this value with
2237
+ the same image aspect ratio.
2238
+ If size is a sequence of length 2, it should be (height, width).
2239
+ interpolation (Inter, optional): Image interpolation mode. Default: ``Inter.LINEAR``.
2240
+ It can be ``Inter.LINEAR``, ``Inter.NEAREST``, ``Inter.BICUBIC``, ``Inter.AREA``, ``Inter.PILCUBIC``.
2241
+
2242
+ - ``Inter.LINEAR`` , means interpolation method is bilinear interpolation.
2243
+
2244
+ - ``Inter.NEAREST`` , means interpolation method is nearest-neighbor interpolation.
2245
+
2246
+ - ``Inter.BICUBIC`` , means interpolation method is bicubic interpolation.
2247
+
2248
+ - ``Inter.AREA`` :, means interpolation method is pixel area interpolation.
2249
+
2250
+ - ``Inter.PILCUBIC`` , means interpolation method is bicubic interpolation like implemented in pillow, input
2251
+ should be in 3 channels format.
2252
+
2253
+ Raises:
2254
+ TypeError: If `size` is not of type int or Sequence[int].
2255
+ TypeError: If `interpolation` is not of type :class:`mindspore.dataset.vision.Inter` .
2256
+ ValueError: If `size` is not positive.
2257
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
2258
+
2259
+ Supported Platforms:
2260
+ ``CPU``
2261
+
2262
+ Examples:
2263
+ >>> from mindspore.dataset.vision import Inter
2264
+ >>> decode_op = c_vision.Decode()
2265
+ >>> resize_op = c_vision.Resize([100, 75], Inter.BICUBIC)
2266
+ >>> transforms_list = [decode_op, resize_op]
2267
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
2268
+ ... input_columns=["image"])
2269
+ """
2270
+
2271
+ @deprecated_c_vision()
2272
+ @check_resize_interpolation
2273
+ def __init__(self, size, interpolation=Inter.LINEAR):
2274
+ if isinstance(size, int):
2275
+ size = (size,)
2276
+ self.size = size
2277
+ self.interpolation = interpolation
2278
+
2279
+ def parse(self):
2280
+ # deprecated api just support cpu device target
2281
+ return cde.ResizeOperation(self.size, DE_C_INTER_MODE.get(self.interpolation), "CPU")
2282
+
2283
+
2284
+ class ResizeWithBBox(ImageTensorOperation):
2285
+ """
2286
+ Resize the input image to the given size and adjust bounding boxes accordingly.
2287
+
2288
+ Args:
2289
+ size (Union[int, Sequence[int]]): The output size of the resized image.
2290
+ If size is an integer, smaller edge of the image will be resized to this value with
2291
+ the same image aspect ratio.
2292
+ If size is a sequence of length 2, it should be (height, width).
2293
+ interpolation (Inter, optional): Image interpolation mode. Default: ``Inter.LINEAR``.
2294
+ It can be ``Inter.LINEAR``, ``Inter.NEAREST``, ``Inter.BICUBIC``.
2295
+
2296
+ - ``Inter.LINEAR`` , means interpolation method is bilinear interpolation.
2297
+
2298
+ - ``Inter.NEAREST`` , means interpolation method is nearest-neighbor interpolation.
2299
+
2300
+ - ``Inter.BICUBIC`` , means interpolation method is bicubic interpolation.
2301
+
2302
+ Raises:
2303
+ TypeError: If `size` is not of type int or Sequence[int].
2304
+ TypeError: If `interpolation` is not of type :class:`mindspore.dataset.vision.Inter` .
2305
+ ValueError: If `size` is not positive.
2306
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
2307
+
2308
+ Supported Platforms:
2309
+ ``CPU``
2310
+
2311
+ Examples:
2312
+ >>> from mindspore.dataset.vision import Inter
2313
+ >>> decode_op = c_vision.Decode()
2314
+ >>> bbox_op = c_vision.ResizeWithBBox(50, Inter.NEAREST)
2315
+ >>> transforms_list = [decode_op, bbox_op]
2316
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
2317
+ ... input_columns=["image"])
2318
+ """
2319
+
2320
+ @deprecated_c_vision()
2321
+ @check_resize_interpolation
2322
+ def __init__(self, size, interpolation=Inter.LINEAR):
2323
+ self.size = size
2324
+ self.interpolation = interpolation
2325
+
2326
+ def parse(self):
2327
+ size = self.size
2328
+ if isinstance(size, int):
2329
+ size = (size,)
2330
+ return cde.ResizeWithBBoxOperation(size, DE_C_INTER_MODE.get(self.interpolation))
2331
+
2332
+
2333
+ class RgbToBgr(ImageTensorOperation):
2334
+ """
2335
+ Convert RGB image to BGR.
2336
+
2337
+ Raises:
2338
+ RuntimeError: If given tensor shape is not <H, W, C>.
2339
+
2340
+ Supported Platforms:
2341
+ ``CPU``
2342
+
2343
+ Examples:
2344
+ >>> from mindspore.dataset.vision import Inter
2345
+ >>>
2346
+ >>> decode_op = c_vision.Decode()
2347
+ >>> rgb2bgr_op = c_vision.RgbToBgr()
2348
+ >>> transforms_list = [decode_op, rgb2bgr_op]
2349
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
2350
+ ... input_columns=["image"])
2351
+ """
2352
+
2353
+ @deprecated_c_vision("ConvertColor")
2354
+ def __init__(self):
2355
+ super().__init__()
2356
+
2357
+ def parse(self):
2358
+ return cde.RgbToBgrOperation()
2359
+
2360
+
2361
+ class Rotate(ImageTensorOperation):
2362
+ """
2363
+ Rotate the input image by specified degrees.
2364
+
2365
+ Args:
2366
+ degrees (Union[int, float]): Rotation degrees.
2367
+
2368
+ resample (Inter, optional): An optional resampling filter. Default: ``Inter.NEAREST``.
2369
+ It can be ``Inter.BILINEAR``, ``Inter.NEAREST``, ``Inter.BICUBIC``.
2370
+
2371
+ - ``Inter.BILINEA`` , means resample method is bilinear interpolation.
2372
+ - ``Inter.NEAREST`` , means resample method is nearest-neighbor interpolation.
2373
+ - ``Inter.BICUBIC`` , means resample method is bicubic interpolation.
2374
+
2375
+ expand (bool, optional): Optional expansion flag. Default: ``False``. If set to ``True``,
2376
+ expand the output image to make it large enough to hold the entire rotated image.
2377
+ If set to ``False`` or omitted, make the output image the same size as the input.
2378
+ Note that the expand flag assumes rotation around the center and no translation.
2379
+ center (tuple, optional): Optional center of rotation (a 2-tuple). Default: ``None``.
2380
+ Origin is the top left corner. ``None`` sets to the center of the image.
2381
+ fill_value (Union[int, tuple[int]], optional): Optional fill color for the area outside the rotated image.
2382
+ If it is a 3-tuple, it is used to fill R, G, B channels respectively.
2383
+ If it is an integer, it is used for all RGB channels.
2384
+ The fill_value values must be in range [0, 255]. Default: ``0``.
2385
+
2386
+ Raises:
2387
+ TypeError: If `degrees` is not of type int or float.
2388
+ TypeError: If `resample` is not of type :class:`mindspore.dataset.vision.Inter` .
2389
+ TypeError: If `expand` is not of type bool.
2390
+ TypeError: If `center` is not of type tuple.
2391
+ TypeError: If `fill_value` is not of type int or tuple[int].
2392
+ ValueError: If `fill_value` is not in range [0, 255].
2393
+ RuntimeError: If given tensor shape is not <H, W> or <..., H, W, C>.
2394
+
2395
+ Supported Platforms:
2396
+ ``CPU``
2397
+
2398
+ Examples:
2399
+ >>> from mindspore.dataset.vision import Inter
2400
+ >>> transforms_list = [c_vision.Decode(),
2401
+ ... c_vision.Rotate(degrees=30.0,
2402
+ ... resample=Inter.NEAREST,
2403
+ ... expand=True)]
2404
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
2405
+ ... input_columns=["image"])
2406
+ """
2407
+
2408
+ @deprecated_c_vision()
2409
+ @check_rotate
2410
+ def __init__(self, degrees, resample=Inter.NEAREST, expand=False, center=None, fill_value=0):
2411
+ if isinstance(degrees, (int, float)):
2412
+ degrees = degrees % 360
2413
+ if center is None:
2414
+ center = ()
2415
+ if isinstance(fill_value, int):
2416
+ fill_value = tuple([fill_value] * 3)
2417
+ self.degrees = degrees
2418
+ self.resample = resample
2419
+ self.expand = expand
2420
+ self.center = center
2421
+ self.fill_value = fill_value
2422
+
2423
+ def parse(self):
2424
+ return cde.RotateOperation(self.degrees, DE_C_INTER_MODE.get(self.resample), self.expand, self.center,
2425
+ self.fill_value, "CPU")
2426
+
2427
+
2428
+ class SlicePatches(ImageTensorOperation):
2429
+ """
2430
+ Slice Tensor to multiple patches in horizontal and vertical directions.
2431
+
2432
+ The usage scenario is suitable to large height and width Tensor. The Tensor
2433
+ will keep the same if set both num_height and num_width to 1. And the
2434
+ number of output tensors is equal to num_height*num_width.
2435
+
2436
+ Args:
2437
+ num_height (int, optional): The number of patches in vertical direction, which must be positive.
2438
+ Default: ``1``.
2439
+ num_width (int, optional): The number of patches in horizontal direction, which must be positive.
2440
+ Default: ``1``.
2441
+ slice_mode (Inter, optional): A mode represents pad or drop. Default: ``SliceMode.PAD``.
2442
+ It can be ``SliceMode.PAD``, ``SliceMode.DROP``.
2443
+ fill_value (int, optional): The border width in number of pixels in
2444
+ right and bottom direction if `slice_mode` is set to be ``SliceMode.PAD``.
2445
+ The fill_value must be in range [0, 255]. Default: ``0``.
2446
+
2447
+ Raises:
2448
+ TypeError: If `num_height` is not of type int.
2449
+ TypeError: If `num_width` is not of type int.
2450
+ TypeError: If `slice_mode` is not of type :class:`mindspore.dataset.vision.Inter` .
2451
+ TypeError: If `fill_value` is not of type int.
2452
+ ValueError: If `num_height` is not positive.
2453
+ ValueError: If `num_width` is not positive.
2454
+ ValueError: If `fill_value` is not in range [0, 255].
2455
+ RuntimeError: If given tensor shape is not <H, W> or <H, W, C>.
2456
+
2457
+ Supported Platforms:
2458
+ ``CPU``
2459
+
2460
+ Examples:
2461
+ >>> # default padding mode
2462
+ >>> decode_op = c_vision.Decode()
2463
+ >>> num_h, num_w = (1, 4)
2464
+ >>> slice_patches_op = c_vision.SlicePatches(num_h, num_w)
2465
+ >>> transforms_list = [decode_op, slice_patches_op]
2466
+ >>> cols = ['img' + str(x) for x in range(num_h*num_w)]
2467
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
2468
+ ... input_columns=["image"],
2469
+ ... output_columns=cols)
2470
+ """
2471
+
2472
+ @deprecated_c_vision()
2473
+ @check_slice_patches
2474
+ def __init__(self, num_height=1, num_width=1, slice_mode=SliceMode.PAD, fill_value=0):
2475
+ self.num_height = num_height
2476
+ self.num_width = num_width
2477
+ self.slice_mode = slice_mode
2478
+ self.fill_value = fill_value
2479
+
2480
+ def parse(self):
2481
+ return cde.SlicePatchesOperation(self.num_height, self.num_width,
2482
+ DE_C_SLICE_MODE.get(self.slice_mode), self.fill_value)
2483
+
2484
+
2485
+ class SoftDvppDecodeRandomCropResizeJpeg(ImageTensorOperation):
2486
+ """
2487
+ A combination of `Crop` , `Decode` and `Resize` using the simulation algorithm of Ascend series chip DVPP module.
2488
+
2489
+ The usage scenario is consistent with SoftDvppDecodeResizeJpeg.
2490
+ The input image size should be in range [32*32, 8192*8192].
2491
+ The zoom-out and zoom-in multiples of the image length and width should in the range [1/32, 16].
2492
+ Only images with an even resolution can be output. The output of odd resolution is not supported.
2493
+
2494
+ Note:
2495
+ SoftDvppDecodeRandomCropResizeJpeg is not supported as of 1.8 version.
2496
+ Please use RandomCropDecodeResize instead.
2497
+
2498
+ Args:
2499
+ size (Union[int, Sequence[int]]): The size of the output image. The size value(s) must be positive.
2500
+ If size is an integer, a square crop of size (size, size) is returned.
2501
+ If size is a sequence of length 2, an image of size (height, width) will be cropped.
2502
+ scale (Union[list, tuple], optional): Range [min, max) of respective size of the
2503
+ original size to be cropped, which must be non-negative. Default: ``(0.08, 1.0)``.
2504
+ ratio (Union[list, tuple], optional): Range [min, max) of aspect ratio to be
2505
+ cropped, which must be non-negative. Default: ``(3. / 4., 4. / 3.)``.
2506
+ max_attempts (int, optional): The maximum number of attempts to propose a valid crop_area. Default: ``10``.
2507
+ If exceeded, fall back to use center_crop instead. The `max_attempts` value must be positive.
2508
+
2509
+ Raises:
2510
+ TypeError: If `size` is not of type int or Sequence[int].
2511
+ TypeError: If `scale` is not of type tuple or list.
2512
+ TypeError: If `ratio` is not of type tuple or list.
2513
+ TypeError: If `max_attempts` is not of type int.
2514
+ ValueError: If `size` is not positive.
2515
+ ValueError: If `scale` is negative.
2516
+ ValueError: If `ratio` is negative.
2517
+ ValueError: If `max_attempts` is not positive.
2518
+ RuntimeError: If given tensor is not a 1D sequence.
2519
+
2520
+ Supported Platforms:
2521
+ ``CPU``
2522
+ """
2523
+
2524
+ def __init__(self, size, scale=(0.08, 1.0), ratio=(3. / 4., 4. / 3.), max_attempts=10):
2525
+ raise NotImplementedError("SoftDvppDecodeRandomCropResizeJpeg is not supported as of 1.8 version. "
2526
+ "Please use RandomCropDecodeResize instead.")
2527
+
2528
+ def parse(self):
2529
+ raise NotImplementedError("SoftDvppDecodeRandomCropResizeJpeg is not supported as of 1.8 version. "
2530
+ "Please use RandomCropDecodeResize instead.")
2531
+
2532
+
2533
+ class SoftDvppDecodeResizeJpeg(ImageTensorOperation):
2534
+ """
2535
+ Decode and resize JPEG image using the simulation algorithm of Ascend series chip DVPP module.
2536
+
2537
+ It is recommended to use this algorithm in the following scenarios:
2538
+ When training, the DVPP of the Ascend chip is not used,
2539
+ and the DVPP of the Ascend chip is used during inference,
2540
+ and the accuracy of inference is lower than the accuracy of training;
2541
+ and the input image size should be in range [32*32, 8192*8192].
2542
+ The zoom-out and zoom-in multiples of the image length and width should in the range [1/32, 16].
2543
+ Only images with an even resolution can be output. The output of odd resolution is not supported.
2544
+
2545
+ Note:
2546
+ SoftDvppDecodeResizeJpeg is not supported as of 1.8 version. Please use Decode and Resize instead.
2547
+
2548
+ Args:
2549
+ size (Union[int, Sequence[int]]): The output size of the resized image. The size value(s) must be positive.
2550
+ If size is an integer, smaller edge of the image will be resized to this value with
2551
+ the same image aspect ratio.
2552
+ If size is a sequence of length 2, an image of size (height, width) will be cropped.
2553
+
2554
+ Raises:
2555
+ TypeError: If `size` is not of type int or Sequence[int].
2556
+ ValueError: If `size` is not positive.
2557
+ RuntimeError: If given tensor is not a 1D sequence.
2558
+
2559
+ Supported Platforms:
2560
+ ``CPU``
2561
+ """
2562
+
2563
+ def __init__(self, size):
2564
+ raise NotImplementedError("SoftDvppDecodeResizeJpeg is not supported as of 1.8 version. "
2565
+ "Please use Decode and Resize instead.")
2566
+
2567
+ def parse(self):
2568
+ raise NotImplementedError("SoftDvppDecodeResizeJpeg is not supported as of 1.8 version. "
2569
+ "Please use Decode and Resize instead.")
2570
+
2571
+
2572
+ class UniformAugment(ImageTensorOperation):
2573
+ """
2574
+ Perform randomly selected augmentation on input image.
2575
+
2576
+ Args:
2577
+ transforms (TensorOperation): C++ transformation operation to be applied on random selection
2578
+ of bounding box regions of a given image (Python operations are not accepted).
2579
+ num_ops (int, optional): Number of operations to be selected and applied, which must be positive. Default: 2.
2580
+
2581
+ Raises:
2582
+ TypeError: If `transform` is not an image processing operation
2583
+ in :class:`mindspore.dataset.vision.c_transforms` .
2584
+ TypeError: If `num_ops` is not of type int.
2585
+ ValueError: If `num_ops` is not positive.
2586
+
2587
+ Supported Platforms:
2588
+ ``CPU``
2589
+
2590
+ Examples:
2591
+ >>> import mindspore.dataset.vision.py_transforms as py_vision
2592
+ >>> transforms_list = [c_vision.RandomHorizontalFlip(),
2593
+ ... c_vision.RandomVerticalFlip(),
2594
+ ... c_vision.RandomColorAdjust(),
2595
+ ... c_vision.RandomRotation(degrees=45)]
2596
+ >>> uni_aug_op = c_vision.UniformAugment(transforms=transforms_list, num_ops=2)
2597
+ >>> transforms_all = [c_vision.Decode(), c_vision.Resize(size=[224, 224]),
2598
+ ... uni_aug_op]
2599
+ >>> image_folder_dataset_1 = image_folder_dataset.map(operations=transforms_all,
2600
+ ... input_columns="image",
2601
+ ... num_parallel_workers=1)
2602
+ """
2603
+
2604
+ @deprecated_c_vision()
2605
+ @check_uniform_augment_cpp
2606
+ def __init__(self, transforms, num_ops=2):
2607
+ self.transforms = transforms
2608
+ self.num_ops = num_ops
2609
+
2610
+ def parse(self):
2611
+ transforms = []
2612
+ for op in self.transforms:
2613
+ if op and getattr(op, 'parse', None):
2614
+ transforms.append(op.parse())
2615
+ else:
2616
+ transforms.append(op)
2617
+ return cde.UniformAugOperation(transforms, self.num_ops)
2618
+
2619
+
2620
+ class VerticalFlip(ImageTensorOperation):
2621
+ """
2622
+ Flip the input image vertically.
2623
+
2624
+ Raises:
2625
+ RuntimeError: If given tensor shape is not <H, W> or <..., H, W, C>.
2626
+
2627
+ Supported Platforms:
2628
+ ``CPU``
2629
+
2630
+ Examples:
2631
+ >>> transforms_list = [c_vision.Decode(), c_vision.VerticalFlip()]
2632
+ >>> image_folder_dataset = image_folder_dataset.map(operations=transforms_list,
2633
+ ... input_columns=["image"])
2634
+ """
2635
+
2636
+ @deprecated_c_vision()
2637
+ def __init__(self):
2638
+ super().__init__()
2639
+
2640
+ def parse(self):
2641
+ return cde.VerticalFlipOperation("CPU")