mindspore 2.3.0__cp310-cp310-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1400) hide show
  1. mindspore/.commit_id +1 -0
  2. mindspore/ConcurrencyCheck.dll +0 -0
  3. mindspore/CppBuildInsights.dll +0 -0
  4. mindspore/CppCoreCheck.dll +0 -0
  5. mindspore/EnumIndex.dll +0 -0
  6. mindspore/EspXEngine.dll +0 -0
  7. mindspore/HResultCheck.dll +0 -0
  8. mindspore/KernelTraceControl.dll +0 -0
  9. mindspore/LocalESPC.dll +0 -0
  10. mindspore/Microsoft.Diagnostics.Tracing.EventSource.dll +0 -0
  11. mindspore/Microsoft.VisualStudio.RemoteControl.dll +0 -0
  12. mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
  13. mindspore/Microsoft.VisualStudio.Utilities.Internal.dll +0 -0
  14. mindspore/Newtonsoft.Json.dll +0 -0
  15. mindspore/System.Runtime.CompilerServices.Unsafe.dll +0 -0
  16. mindspore/VariantClear.dll +0 -0
  17. mindspore/__init__.py +51 -0
  18. mindspore/_c_dataengine.cp310-win_amd64.pyd +0 -0
  19. mindspore/_c_expression.cp310-win_amd64.pyd +0 -0
  20. mindspore/_c_mindrecord.cp310-win_amd64.pyd +0 -0
  21. mindspore/_check_jit_forbidden_api.py +106 -0
  22. mindspore/_checkparam.py +1378 -0
  23. mindspore/_extends/__init__.py +23 -0
  24. mindspore/_extends/builtin_operations.py +224 -0
  25. mindspore/_extends/graph_kernel/__init__.py +17 -0
  26. mindspore/_extends/graph_kernel/model/__init__.py +19 -0
  27. mindspore/_extends/graph_kernel/model/graph_parallel.py +311 -0
  28. mindspore/_extends/graph_kernel/model/graph_split.py +1348 -0
  29. mindspore/_extends/graph_kernel/model/model.py +553 -0
  30. mindspore/_extends/graph_kernel/model/model_builder.py +216 -0
  31. mindspore/_extends/graph_kernel/parallel_estimate.py +60 -0
  32. mindspore/_extends/graph_kernel/splitter.py +140 -0
  33. mindspore/_extends/graph_kernel/utils.py +28 -0
  34. mindspore/_extends/parallel_compile/__init__.py +19 -0
  35. mindspore/_extends/parallel_compile/akg_compiler/__init__.py +19 -0
  36. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +269 -0
  37. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +529 -0
  38. mindspore/_extends/parallel_compile/akg_compiler/compiler.py +56 -0
  39. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +96 -0
  40. mindspore/_extends/parallel_compile/akg_compiler/get_file_path.py +36 -0
  41. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +556 -0
  42. mindspore/_extends/parallel_compile/akg_compiler/util.py +159 -0
  43. mindspore/_extends/parse/__init__.py +49 -0
  44. mindspore/_extends/parse/compile_config.py +258 -0
  45. mindspore/_extends/parse/namespace.py +136 -0
  46. mindspore/_extends/parse/parser.py +1446 -0
  47. mindspore/_extends/parse/resources.py +213 -0
  48. mindspore/_extends/parse/standard_method.py +4437 -0
  49. mindspore/_extends/parse/trope.py +97 -0
  50. mindspore/_extends/pijit/__init__.py +23 -0
  51. mindspore/_extends/pijit/pijit_func_white_list.py +343 -0
  52. mindspore/_extends/remote/__init__.py +19 -0
  53. mindspore/_extends/remote/kernel_build_server.py +199 -0
  54. mindspore/_extends/remote/kernel_build_server_akg.py +55 -0
  55. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  56. mindspore/_extends/remote/kernel_build_server_ascend.py +75 -0
  57. mindspore/_extends/utils.py +68 -0
  58. mindspore/_install_custom.py +43 -0
  59. mindspore/_profiler.py +30 -0
  60. mindspore/amp.py +419 -0
  61. mindspore/atlprov.dll +0 -0
  62. mindspore/avcodec-59.dll +0 -0
  63. mindspore/avdevice-59.dll +0 -0
  64. mindspore/avfilter-8.dll +0 -0
  65. mindspore/avformat-59.dll +0 -0
  66. mindspore/avutil-57.dll +0 -0
  67. mindspore/boost/__init__.py +42 -0
  68. mindspore/boost/adasum.py +319 -0
  69. mindspore/boost/base.py +535 -0
  70. mindspore/boost/boost.py +400 -0
  71. mindspore/boost/boost_cell_wrapper.py +790 -0
  72. mindspore/boost/dim_reduce.py +323 -0
  73. mindspore/boost/grad_accumulation.py +79 -0
  74. mindspore/boost/grad_freeze.py +382 -0
  75. mindspore/boost/group_loss_scale_manager.py +166 -0
  76. mindspore/boost/less_batch_normalization.py +174 -0
  77. mindspore/c1.dll +0 -0
  78. mindspore/c1xx.dll +0 -0
  79. mindspore/c2.dll +0 -0
  80. mindspore/cfgpersist.dll +0 -0
  81. mindspore/clang_rt.asan_dbg_dynamic-x86_64.dll +0 -0
  82. mindspore/clang_rt.asan_dynamic-x86_64.dll +0 -0
  83. mindspore/common/__init__.py +84 -0
  84. mindspore/common/_auto_dynamic.py +68 -0
  85. mindspore/common/_decorator.py +50 -0
  86. mindspore/common/_jit_fallback_utils.py +110 -0
  87. mindspore/common/_monad.py +25 -0
  88. mindspore/common/_register_for_adapter.py +74 -0
  89. mindspore/common/_register_for_recompute.py +48 -0
  90. mindspore/common/_register_for_tensor.py +45 -0
  91. mindspore/common/_stub_tensor.py +210 -0
  92. mindspore/common/_utils.py +122 -0
  93. mindspore/common/api.py +2049 -0
  94. mindspore/common/auto_dynamic_shape.py +507 -0
  95. mindspore/common/dtype.py +422 -0
  96. mindspore/common/dump.py +131 -0
  97. mindspore/common/file_system.py +48 -0
  98. mindspore/common/generator.py +260 -0
  99. mindspore/common/hook_handle.py +155 -0
  100. mindspore/common/initializer.py +880 -0
  101. mindspore/common/jit_config.py +98 -0
  102. mindspore/common/lazy_inline.py +240 -0
  103. mindspore/common/mindir_util.py +111 -0
  104. mindspore/common/mutable.py +234 -0
  105. mindspore/common/no_inline.py +54 -0
  106. mindspore/common/np_dtype.py +25 -0
  107. mindspore/common/parameter.py +1048 -0
  108. mindspore/common/recompute.py +262 -0
  109. mindspore/common/seed.py +260 -0
  110. mindspore/common/sparse_tensor.py +1171 -0
  111. mindspore/common/symbol.py +122 -0
  112. mindspore/common/tensor.py +4859 -0
  113. mindspore/communication/__init__.py +37 -0
  114. mindspore/communication/_comm_helper.py +466 -0
  115. mindspore/communication/_hccl_management.py +297 -0
  116. mindspore/communication/comm_func.py +1140 -0
  117. mindspore/communication/management.py +673 -0
  118. mindspore/config/op_info.config +533 -0
  119. mindspore/context.py +1976 -0
  120. mindspore/d3dcompiler_47.dll +0 -0
  121. mindspore/dataset/__init__.py +90 -0
  122. mindspore/dataset/audio/__init__.py +61 -0
  123. mindspore/dataset/audio/transforms.py +3690 -0
  124. mindspore/dataset/audio/utils.py +386 -0
  125. mindspore/dataset/audio/validators.py +1172 -0
  126. mindspore/dataset/callback/__init__.py +20 -0
  127. mindspore/dataset/callback/ds_callback.py +368 -0
  128. mindspore/dataset/callback/validators.py +32 -0
  129. mindspore/dataset/core/__init__.py +13 -0
  130. mindspore/dataset/core/config.py +1088 -0
  131. mindspore/dataset/core/datatypes.py +101 -0
  132. mindspore/dataset/core/py_util_helpers.py +65 -0
  133. mindspore/dataset/core/validator_helpers.py +774 -0
  134. mindspore/dataset/debug/__init__.py +21 -0
  135. mindspore/dataset/debug/debug_hook.py +97 -0
  136. mindspore/dataset/debug/pre_defined_hook.py +67 -0
  137. mindspore/dataset/engine/__init__.py +124 -0
  138. mindspore/dataset/engine/cache_admin.py +47 -0
  139. mindspore/dataset/engine/cache_client.py +129 -0
  140. mindspore/dataset/engine/datasets.py +4554 -0
  141. mindspore/dataset/engine/datasets_audio.py +911 -0
  142. mindspore/dataset/engine/datasets_standard_format.py +493 -0
  143. mindspore/dataset/engine/datasets_text.py +2161 -0
  144. mindspore/dataset/engine/datasets_user_defined.py +1114 -0
  145. mindspore/dataset/engine/datasets_vision.py +4816 -0
  146. mindspore/dataset/engine/iterators.py +342 -0
  147. mindspore/dataset/engine/obs/__init__.py +23 -0
  148. mindspore/dataset/engine/obs/config_loader.py +68 -0
  149. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +508 -0
  150. mindspore/dataset/engine/obs/util.py +475 -0
  151. mindspore/dataset/engine/offload.py +596 -0
  152. mindspore/dataset/engine/queue.py +250 -0
  153. mindspore/dataset/engine/samplers.py +895 -0
  154. mindspore/dataset/engine/serializer_deserializer.py +159 -0
  155. mindspore/dataset/engine/validators.py +2875 -0
  156. mindspore/dataset/text/__init__.py +54 -0
  157. mindspore/dataset/text/transforms.py +1703 -0
  158. mindspore/dataset/text/utils.py +715 -0
  159. mindspore/dataset/text/validators.py +642 -0
  160. mindspore/dataset/transforms/__init__.py +48 -0
  161. mindspore/dataset/transforms/c_transforms.py +638 -0
  162. mindspore/dataset/transforms/py_transforms.py +393 -0
  163. mindspore/dataset/transforms/py_transforms_util.py +255 -0
  164. mindspore/dataset/transforms/transforms.py +1260 -0
  165. mindspore/dataset/transforms/validators.py +410 -0
  166. mindspore/dataset/utils/__init__.py +19 -0
  167. mindspore/dataset/utils/browse_dataset.py +190 -0
  168. mindspore/dataset/utils/line_reader.py +124 -0
  169. mindspore/dataset/vision/__init__.py +68 -0
  170. mindspore/dataset/vision/c_transforms.py +2641 -0
  171. mindspore/dataset/vision/py_transforms.py +2120 -0
  172. mindspore/dataset/vision/py_transforms_util.py +1660 -0
  173. mindspore/dataset/vision/transforms.py +7295 -0
  174. mindspore/dataset/vision/utils.py +863 -0
  175. mindspore/dataset/vision/validators.py +1482 -0
  176. mindspore/default_config.py +2 -0
  177. mindspore/dnnl.dll +0 -0
  178. mindspore/dpcmi.dll +0 -0
  179. mindspore/experimental/__init__.py +20 -0
  180. mindspore/experimental/map_parameter.py +309 -0
  181. mindspore/experimental/optim/__init__.py +40 -0
  182. mindspore/experimental/optim/adadelta.py +161 -0
  183. mindspore/experimental/optim/adagrad.py +168 -0
  184. mindspore/experimental/optim/adam.py +193 -0
  185. mindspore/experimental/optim/adamax.py +170 -0
  186. mindspore/experimental/optim/adamw.py +205 -0
  187. mindspore/experimental/optim/asgd.py +153 -0
  188. mindspore/experimental/optim/lr_scheduler.py +1371 -0
  189. mindspore/experimental/optim/nadam.py +157 -0
  190. mindspore/experimental/optim/optimizer.py +259 -0
  191. mindspore/experimental/optim/radam.py +194 -0
  192. mindspore/experimental/optim/rmsprop.py +154 -0
  193. mindspore/experimental/optim/rprop.py +164 -0
  194. mindspore/experimental/optim/sgd.py +156 -0
  195. mindspore/hal/__init__.py +40 -0
  196. mindspore/hal/_ascend.py +57 -0
  197. mindspore/hal/_base.py +57 -0
  198. mindspore/hal/_cpu.py +56 -0
  199. mindspore/hal/_gpu.py +57 -0
  200. mindspore/hal/device.py +356 -0
  201. mindspore/hal/event.py +179 -0
  202. mindspore/hal/memory.py +326 -0
  203. mindspore/hal/stream.py +339 -0
  204. mindspore/include/OWNERS +7 -0
  205. mindspore/include/api/allocator.h +97 -0
  206. mindspore/include/api/callback/callback.h +93 -0
  207. mindspore/include/api/callback/ckpt_saver.h +41 -0
  208. mindspore/include/api/callback/loss_monitor.h +33 -0
  209. mindspore/include/api/callback/lr_scheduler.h +51 -0
  210. mindspore/include/api/callback/time_monitor.h +34 -0
  211. mindspore/include/api/callback/train_accuracy.h +37 -0
  212. mindspore/include/api/cell.h +90 -0
  213. mindspore/include/api/cfg.h +82 -0
  214. mindspore/include/api/context.h +602 -0
  215. mindspore/include/api/data_type.h +47 -0
  216. mindspore/include/api/delegate.h +178 -0
  217. mindspore/include/api/delegate_api.h +75 -0
  218. mindspore/include/api/dual_abi_helper.h +208 -0
  219. mindspore/include/api/format.h +28 -0
  220. mindspore/include/api/graph.h +46 -0
  221. mindspore/include/api/kernel.h +58 -0
  222. mindspore/include/api/kernel_api.h +168 -0
  223. mindspore/include/api/metrics/accuracy.h +36 -0
  224. mindspore/include/api/metrics/metrics.h +41 -0
  225. mindspore/include/api/model.h +438 -0
  226. mindspore/include/api/model_group.h +79 -0
  227. mindspore/include/api/model_parallel_runner.h +168 -0
  228. mindspore/include/api/serialization.h +185 -0
  229. mindspore/include/api/status.h +192 -0
  230. mindspore/include/api/types.h +431 -0
  231. mindspore/include/api/visible.h +41 -0
  232. mindspore/include/c_api/context_c.h +179 -0
  233. mindspore/include/c_api/data_type_c.h +52 -0
  234. mindspore/include/c_api/format_c.h +46 -0
  235. mindspore/include/c_api/model_c.h +347 -0
  236. mindspore/include/c_api/ms/abstract.h +67 -0
  237. mindspore/include/c_api/ms/attribute.h +197 -0
  238. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  239. mindspore/include/c_api/ms/base/macros.h +32 -0
  240. mindspore/include/c_api/ms/base/status.h +33 -0
  241. mindspore/include/c_api/ms/base/types.h +283 -0
  242. mindspore/include/c_api/ms/context.h +102 -0
  243. mindspore/include/c_api/ms/graph.h +160 -0
  244. mindspore/include/c_api/ms/node.h +606 -0
  245. mindspore/include/c_api/ms/tensor.h +161 -0
  246. mindspore/include/c_api/ms/value.h +84 -0
  247. mindspore/include/c_api/status_c.h +79 -0
  248. mindspore/include/c_api/tensor_c.h +146 -0
  249. mindspore/include/c_api/types_c.h +67 -0
  250. mindspore/include/dataset/config.h +163 -0
  251. mindspore/include/dataset/constants.h +363 -0
  252. mindspore/include/dataset/execute.h +196 -0
  253. mindspore/include/dataset/text.h +1092 -0
  254. mindspore/include/dataset/transforms.h +638 -0
  255. mindspore/include/dataset/vision.h +2125 -0
  256. mindspore/include/dataset/vision_ascend.h +206 -0
  257. mindspore/include/dataset/vision_lite.h +625 -0
  258. mindspore/jpeg62.dll +0 -0
  259. mindspore/log.py +633 -0
  260. mindspore/mindrecord/__init__.py +43 -0
  261. mindspore/mindrecord/common/__init__.py +17 -0
  262. mindspore/mindrecord/common/constant.py +20 -0
  263. mindspore/mindrecord/common/enums.py +44 -0
  264. mindspore/mindrecord/common/exceptions.py +311 -0
  265. mindspore/mindrecord/config.py +809 -0
  266. mindspore/mindrecord/filereader.py +174 -0
  267. mindspore/mindrecord/filewriter.py +705 -0
  268. mindspore/mindrecord/mindpage.py +210 -0
  269. mindspore/mindrecord/shardheader.py +141 -0
  270. mindspore/mindrecord/shardindexgenerator.py +74 -0
  271. mindspore/mindrecord/shardreader.py +117 -0
  272. mindspore/mindrecord/shardsegment.py +128 -0
  273. mindspore/mindrecord/shardutils.py +185 -0
  274. mindspore/mindrecord/shardwriter.py +237 -0
  275. mindspore/mindrecord/tools/__init__.py +17 -0
  276. mindspore/mindrecord/tools/cifar10.py +140 -0
  277. mindspore/mindrecord/tools/cifar100.py +153 -0
  278. mindspore/mindrecord/tools/cifar100_to_mr.py +185 -0
  279. mindspore/mindrecord/tools/cifar10_to_mr.py +177 -0
  280. mindspore/mindrecord/tools/csv_to_mr.py +200 -0
  281. mindspore/mindrecord/tools/imagenet_to_mr.py +206 -0
  282. mindspore/mindrecord/tools/mnist_to_mr.py +259 -0
  283. mindspore/mindrecord/tools/tfrecord_to_mr.py +360 -0
  284. mindspore/mindspore_backend.dll +0 -0
  285. mindspore/mindspore_common.dll +0 -0
  286. mindspore/mindspore_core.dll +0 -0
  287. mindspore/mindspore_glog.dll +0 -0
  288. mindspore/mindspore_np_dtype.dll +0 -0
  289. mindspore/mindspore_shared_lib.dll +0 -0
  290. mindspore/mint/__init__.py +1137 -0
  291. mindspore/mint/linalg/__init__.py +22 -0
  292. mindspore/mint/nn/__init__.py +512 -0
  293. mindspore/mint/nn/functional.py +573 -0
  294. mindspore/mint/optim/__init__.py +24 -0
  295. mindspore/mint/optim/adamw.py +185 -0
  296. mindspore/msobj140.dll +0 -0
  297. mindspore/mspdb140.dll +0 -0
  298. mindspore/mspdbcore.dll +0 -0
  299. mindspore/mspdbst.dll +0 -0
  300. mindspore/mspft140.dll +0 -0
  301. mindspore/msvcdis140.dll +0 -0
  302. mindspore/msvcp140.dll +0 -0
  303. mindspore/msvcp140_1.dll +0 -0
  304. mindspore/msvcp140_2.dll +0 -0
  305. mindspore/msvcp140_atomic_wait.dll +0 -0
  306. mindspore/msvcp140_codecvt_ids.dll +0 -0
  307. mindspore/multiprocessing/__init__.py +72 -0
  308. mindspore/nn/__init__.py +48 -0
  309. mindspore/nn/cell.py +2605 -0
  310. mindspore/nn/dynamic_lr.py +482 -0
  311. mindspore/nn/extend/__init__.py +29 -0
  312. mindspore/nn/extend/basic.py +140 -0
  313. mindspore/nn/extend/embedding.py +143 -0
  314. mindspore/nn/extend/layer/__init__.py +27 -0
  315. mindspore/nn/extend/layer/normalization.py +109 -0
  316. mindspore/nn/extend/pooling.py +117 -0
  317. mindspore/nn/grad/__init__.py +21 -0
  318. mindspore/nn/grad/cell_grad.py +196 -0
  319. mindspore/nn/layer/__init__.py +63 -0
  320. mindspore/nn/layer/activation.py +1655 -0
  321. mindspore/nn/layer/basic.py +1519 -0
  322. mindspore/nn/layer/channel_shuffle.py +90 -0
  323. mindspore/nn/layer/combined.py +248 -0
  324. mindspore/nn/layer/container.py +734 -0
  325. mindspore/nn/layer/conv.py +1505 -0
  326. mindspore/nn/layer/dense.py +204 -0
  327. mindspore/nn/layer/embedding.py +751 -0
  328. mindspore/nn/layer/embedding_service.py +531 -0
  329. mindspore/nn/layer/embedding_service_layer.py +393 -0
  330. mindspore/nn/layer/image.py +661 -0
  331. mindspore/nn/layer/math.py +1069 -0
  332. mindspore/nn/layer/normalization.py +1177 -0
  333. mindspore/nn/layer/padding.py +894 -0
  334. mindspore/nn/layer/pooling.py +2148 -0
  335. mindspore/nn/layer/rnn_cells.py +388 -0
  336. mindspore/nn/layer/rnns.py +849 -0
  337. mindspore/nn/layer/thor_layer.py +963 -0
  338. mindspore/nn/layer/timedistributed.py +155 -0
  339. mindspore/nn/layer/transformer.py +823 -0
  340. mindspore/nn/learning_rate_schedule.py +512 -0
  341. mindspore/nn/loss/__init__.py +36 -0
  342. mindspore/nn/loss/loss.py +2846 -0
  343. mindspore/nn/metrics.py +53 -0
  344. mindspore/nn/optim/__init__.py +44 -0
  345. mindspore/nn/optim/_dist_optimizer_registry.py +111 -0
  346. mindspore/nn/optim/ada_grad.py +217 -0
  347. mindspore/nn/optim/adadelta.py +206 -0
  348. mindspore/nn/optim/adafactor.py +448 -0
  349. mindspore/nn/optim/adam.py +1297 -0
  350. mindspore/nn/optim/adamax.py +220 -0
  351. mindspore/nn/optim/adasum.py +548 -0
  352. mindspore/nn/optim/asgd.py +216 -0
  353. mindspore/nn/optim/ftrl.py +401 -0
  354. mindspore/nn/optim/lamb.py +296 -0
  355. mindspore/nn/optim/lars.py +202 -0
  356. mindspore/nn/optim/lazyadam.py +533 -0
  357. mindspore/nn/optim/momentum.py +239 -0
  358. mindspore/nn/optim/optimizer.py +1034 -0
  359. mindspore/nn/optim/proximal_ada_grad.py +242 -0
  360. mindspore/nn/optim/rmsprop.py +264 -0
  361. mindspore/nn/optim/rprop.py +251 -0
  362. mindspore/nn/optim/sgd.py +237 -0
  363. mindspore/nn/optim/thor.py +1310 -0
  364. mindspore/nn/probability/__init__.py +22 -0
  365. mindspore/nn/probability/bijector/__init__.py +35 -0
  366. mindspore/nn/probability/bijector/bijector.py +337 -0
  367. mindspore/nn/probability/bijector/exp.py +65 -0
  368. mindspore/nn/probability/bijector/gumbel_cdf.py +144 -0
  369. mindspore/nn/probability/bijector/invert.py +126 -0
  370. mindspore/nn/probability/bijector/power_transform.py +196 -0
  371. mindspore/nn/probability/bijector/scalar_affine.py +167 -0
  372. mindspore/nn/probability/bijector/softplus.py +189 -0
  373. mindspore/nn/probability/bnn_layers/__init__.py +29 -0
  374. mindspore/nn/probability/bnn_layers/_util.py +46 -0
  375. mindspore/nn/probability/bnn_layers/bnn_cell_wrapper.py +112 -0
  376. mindspore/nn/probability/bnn_layers/conv_variational.py +267 -0
  377. mindspore/nn/probability/bnn_layers/dense_variational.py +302 -0
  378. mindspore/nn/probability/bnn_layers/layer_distribution.py +123 -0
  379. mindspore/nn/probability/distribution/__init__.py +56 -0
  380. mindspore/nn/probability/distribution/_utils/__init__.py +34 -0
  381. mindspore/nn/probability/distribution/_utils/custom_ops.py +96 -0
  382. mindspore/nn/probability/distribution/_utils/utils.py +362 -0
  383. mindspore/nn/probability/distribution/bernoulli.py +334 -0
  384. mindspore/nn/probability/distribution/beta.py +391 -0
  385. mindspore/nn/probability/distribution/categorical.py +435 -0
  386. mindspore/nn/probability/distribution/cauchy.py +383 -0
  387. mindspore/nn/probability/distribution/distribution.py +827 -0
  388. mindspore/nn/probability/distribution/exponential.py +350 -0
  389. mindspore/nn/probability/distribution/gamma.py +391 -0
  390. mindspore/nn/probability/distribution/geometric.py +335 -0
  391. mindspore/nn/probability/distribution/gumbel.py +257 -0
  392. mindspore/nn/probability/distribution/half_normal.py +133 -0
  393. mindspore/nn/probability/distribution/laplace.py +128 -0
  394. mindspore/nn/probability/distribution/log_normal.py +272 -0
  395. mindspore/nn/probability/distribution/logistic.py +379 -0
  396. mindspore/nn/probability/distribution/normal.py +336 -0
  397. mindspore/nn/probability/distribution/poisson.py +288 -0
  398. mindspore/nn/probability/distribution/student_t.py +149 -0
  399. mindspore/nn/probability/distribution/transformed_distribution.py +235 -0
  400. mindspore/nn/probability/distribution/uniform.py +375 -0
  401. mindspore/nn/reinforcement/__init__.py +24 -0
  402. mindspore/nn/reinforcement/_batch_read_write.py +142 -0
  403. mindspore/nn/reinforcement/_tensors_queue.py +152 -0
  404. mindspore/nn/reinforcement/tensor_array.py +145 -0
  405. mindspore/nn/sparse/__init__.py +23 -0
  406. mindspore/nn/sparse/sparse.py +147 -0
  407. mindspore/nn/wrap/__init__.py +49 -0
  408. mindspore/nn/wrap/cell_wrapper.py +979 -0
  409. mindspore/nn/wrap/grad_reducer.py +608 -0
  410. mindspore/nn/wrap/loss_scale.py +680 -0
  411. mindspore/numpy/__init__.py +121 -0
  412. mindspore/numpy/array_creations.py +2734 -0
  413. mindspore/numpy/array_ops.py +2625 -0
  414. mindspore/numpy/dtypes.py +185 -0
  415. mindspore/numpy/fft.py +431 -0
  416. mindspore/numpy/logic_ops.py +935 -0
  417. mindspore/numpy/math_ops.py +5910 -0
  418. mindspore/numpy/utils.py +214 -0
  419. mindspore/numpy/utils_const.py +565 -0
  420. mindspore/opencv_core452.dll +0 -0
  421. mindspore/opencv_imgcodecs452.dll +0 -0
  422. mindspore/opencv_imgproc452.dll +0 -0
  423. mindspore/ops/__init__.py +54 -0
  424. mindspore/ops/_constants.py +30 -0
  425. mindspore/ops/_grad_experimental/__init__.py +31 -0
  426. mindspore/ops/_grad_experimental/grad_array_ops.py +830 -0
  427. mindspore/ops/_grad_experimental/grad_base.py +143 -0
  428. mindspore/ops/_grad_experimental/grad_comm_ops.py +670 -0
  429. mindspore/ops/_grad_experimental/grad_debug_ops.py +31 -0
  430. mindspore/ops/_grad_experimental/grad_implementations.py +203 -0
  431. mindspore/ops/_grad_experimental/grad_inner_ops.py +79 -0
  432. mindspore/ops/_grad_experimental/grad_math_ops.py +824 -0
  433. mindspore/ops/_grad_experimental/grad_nn_ops.py +231 -0
  434. mindspore/ops/_grad_experimental/grad_quant_ops.py +238 -0
  435. mindspore/ops/_grad_experimental/grad_sparse.py +342 -0
  436. mindspore/ops/_grad_experimental/grad_sparse_ops.py +399 -0
  437. mindspore/ops/_grad_experimental/taylor_rule.py +220 -0
  438. mindspore/ops/_op_impl/__init__.py +23 -0
  439. mindspore/ops/_op_impl/_custom_op/__init__.py +39 -0
  440. mindspore/ops/_op_impl/_custom_op/_basic.py +158 -0
  441. mindspore/ops/_op_impl/_custom_op/batch_matmul_impl.py +279 -0
  442. mindspore/ops/_op_impl/_custom_op/batchnorm_fold.py +156 -0
  443. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2.py +109 -0
  444. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad.py +125 -0
  445. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad_reduce.py +105 -0
  446. mindspore/ops/_op_impl/_custom_op/batchnorm_fold_grad.py +124 -0
  447. mindspore/ops/_op_impl/_custom_op/cholesky_trsm_impl.py +116 -0
  448. mindspore/ops/_op_impl/_custom_op/correction_mul.py +89 -0
  449. mindspore/ops/_op_impl/_custom_op/correction_mul_grad.py +196 -0
  450. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +366 -0
  451. mindspore/ops/_op_impl/_custom_op/dsd_impl.py +162 -0
  452. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel.py +136 -0
  453. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad.py +206 -0
  454. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad_reduce.py +88 -0
  455. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer.py +128 -0
  456. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad.py +199 -0
  457. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad_reduce.py +88 -0
  458. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel.py +156 -0
  459. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel_grad.py +184 -0
  460. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer.py +143 -0
  461. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer_grad.py +169 -0
  462. mindspore/ops/_op_impl/_custom_op/fused_abs_max1_impl.py +548 -0
  463. mindspore/ops/_op_impl/_custom_op/img2col_impl.py +881 -0
  464. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +278 -0
  465. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_right_impl.py +200 -0
  466. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_left_cast_impl.py +334 -0
  467. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_right_mul_impl.py +255 -0
  468. mindspore/ops/_op_impl/_custom_op/matmul_cube_impl.py +222 -0
  469. mindspore/ops/_op_impl/_custom_op/matmul_dds_grad_impl.py +644 -0
  470. mindspore/ops/_op_impl/_custom_op/matmul_dds_impl.py +488 -0
  471. mindspore/ops/_op_impl/_custom_op/matrix_combine_impl.py +87 -0
  472. mindspore/ops/_op_impl/_custom_op/minmax_update_perchannel.py +129 -0
  473. mindspore/ops/_op_impl/_custom_op/minmax_update_perlayer.py +121 -0
  474. mindspore/ops/_op_impl/_custom_op/transpose02314_impl.py +352 -0
  475. mindspore/ops/_op_impl/aicpu/__init__.py +441 -0
  476. mindspore/ops/_op_impl/aicpu/abs.py +36 -0
  477. mindspore/ops/_op_impl/aicpu/acos.py +32 -0
  478. mindspore/ops/_op_impl/aicpu/acos_grad.py +33 -0
  479. mindspore/ops/_op_impl/aicpu/acosh.py +34 -0
  480. mindspore/ops/_op_impl/aicpu/acosh_grad.py +35 -0
  481. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d.py +34 -0
  482. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d_grad.py +34 -0
  483. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d.py +39 -0
  484. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d_grad.py +39 -0
  485. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d.py +37 -0
  486. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d_grad.py +37 -0
  487. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d.py +42 -0
  488. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d_grad.py +152 -0
  489. mindspore/ops/_op_impl/aicpu/add.py +43 -0
  490. mindspore/ops/_op_impl/aicpu/add_n.py +41 -0
  491. mindspore/ops/_op_impl/aicpu/add_v2.py +40 -0
  492. mindspore/ops/_op_impl/aicpu/addcdiv.py +41 -0
  493. mindspore/ops/_op_impl/aicpu/addcmul.py +47 -0
  494. mindspore/ops/_op_impl/aicpu/adjust_contrastv2.py +32 -0
  495. mindspore/ops/_op_impl/aicpu/adjust_hue.py +31 -0
  496. mindspore/ops/_op_impl/aicpu/adjust_saturation.py +32 -0
  497. mindspore/ops/_op_impl/aicpu/affine_grid.py +33 -0
  498. mindspore/ops/_op_impl/aicpu/affine_grid_grad.py +35 -0
  499. mindspore/ops/_op_impl/aicpu/angle.py +31 -0
  500. mindspore/ops/_op_impl/aicpu/arg_max.py +75 -0
  501. mindspore/ops/_op_impl/aicpu/arg_min.py +75 -0
  502. mindspore/ops/_op_impl/aicpu/argmax_with_value.py +43 -0
  503. mindspore/ops/_op_impl/aicpu/argmin_with_value.py +43 -0
  504. mindspore/ops/_op_impl/aicpu/asin.py +32 -0
  505. mindspore/ops/_op_impl/aicpu/asin_grad.py +33 -0
  506. mindspore/ops/_op_impl/aicpu/asinh.py +34 -0
  507. mindspore/ops/_op_impl/aicpu/asinh_grad.py +35 -0
  508. mindspore/ops/_op_impl/aicpu/atanh.py +34 -0
  509. mindspore/ops/_op_impl/aicpu/avgpool_grad_v1.py +37 -0
  510. mindspore/ops/_op_impl/aicpu/avgpool_v1.py +36 -0
  511. mindspore/ops/_op_impl/aicpu/bartlett_window.py +36 -0
  512. mindspore/ops/_op_impl/aicpu/batch_matmul.py +43 -0
  513. mindspore/ops/_op_impl/aicpu/batch_norm_grad_grad.py +49 -0
  514. mindspore/ops/_op_impl/aicpu/bernoulli.py +48 -0
  515. mindspore/ops/_op_impl/aicpu/bessel_i0.py +31 -0
  516. mindspore/ops/_op_impl/aicpu/betainc.py +31 -0
  517. mindspore/ops/_op_impl/aicpu/bias_add.py +44 -0
  518. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +42 -0
  519. mindspore/ops/_op_impl/aicpu/bincount.py +33 -0
  520. mindspore/ops/_op_impl/aicpu/blackman_window.py +36 -0
  521. mindspore/ops/_op_impl/aicpu/broadcast_to.py +58 -0
  522. mindspore/ops/_op_impl/aicpu/bucketize.py +34 -0
  523. mindspore/ops/_op_impl/aicpu/cache_swap_table.py +102 -0
  524. mindspore/ops/_op_impl/aicpu/cast.py +225 -0
  525. mindspore/ops/_op_impl/aicpu/cauchy.py +33 -0
  526. mindspore/ops/_op_impl/aicpu/channel_shuffle.py +40 -0
  527. mindspore/ops/_op_impl/aicpu/check_numerics.py +33 -0
  528. mindspore/ops/_op_impl/aicpu/cholesky.py +32 -0
  529. mindspore/ops/_op_impl/aicpu/cholesky_inverse.py +31 -0
  530. mindspore/ops/_op_impl/aicpu/cholesky_solve.py +33 -0
  531. mindspore/ops/_op_impl/aicpu/choleskygrad.py +32 -0
  532. mindspore/ops/_op_impl/aicpu/coalesce.py +37 -0
  533. mindspore/ops/_op_impl/aicpu/col2im.py +38 -0
  534. mindspore/ops/_op_impl/aicpu/combined_non_max_suppression.py +42 -0
  535. mindspore/ops/_op_impl/aicpu/compare_and_bitpack.py +37 -0
  536. mindspore/ops/_op_impl/aicpu/complex.py +32 -0
  537. mindspore/ops/_op_impl/aicpu/complex_abs.py +31 -0
  538. mindspore/ops/_op_impl/aicpu/compute_accidental_hits.py +44 -0
  539. mindspore/ops/_op_impl/aicpu/concat.py +57 -0
  540. mindspore/ops/_op_impl/aicpu/concat_offset.py +42 -0
  541. mindspore/ops/_op_impl/aicpu/concat_offset_v1.py +31 -0
  542. mindspore/ops/_op_impl/aicpu/conj.py +42 -0
  543. mindspore/ops/_op_impl/aicpu/conjugate_transpose.py +58 -0
  544. mindspore/ops/_op_impl/aicpu/cos.py +34 -0
  545. mindspore/ops/_op_impl/aicpu/cosh.py +34 -0
  546. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  547. mindspore/ops/_op_impl/aicpu/crop_and_resize.py +69 -0
  548. mindspore/ops/_op_impl/aicpu/crop_and_resize_grad_boxes.py +68 -0
  549. mindspore/ops/_op_impl/aicpu/crop_and_resize_grad_image.py +38 -0
  550. mindspore/ops/_op_impl/aicpu/cross.py +42 -0
  551. mindspore/ops/_op_impl/aicpu/csr_sparse_matrix_to_dense.py +48 -0
  552. mindspore/ops/_op_impl/aicpu/csr_sparse_matrix_to_sparse_tensor.py +51 -0
  553. mindspore/ops/_op_impl/aicpu/ctc_greedy_decoder.py +35 -0
  554. mindspore/ops/_op_impl/aicpu/ctc_loss_v2.py +43 -0
  555. mindspore/ops/_op_impl/aicpu/ctc_loss_v2_grad.py +45 -0
  556. mindspore/ops/_op_impl/aicpu/ctcloss.py +38 -0
  557. mindspore/ops/_op_impl/aicpu/cummax.py +41 -0
  558. mindspore/ops/_op_impl/aicpu/cumprod.py +58 -0
  559. mindspore/ops/_op_impl/aicpu/cumsum.py +58 -0
  560. mindspore/ops/_op_impl/aicpu/cumulative_logsumexp.py +36 -0
  561. mindspore/ops/_op_impl/aicpu/data_format_vec_permute.py +32 -0
  562. mindspore/ops/_op_impl/aicpu/deformable_offsets.py +38 -0
  563. mindspore/ops/_op_impl/aicpu/deformable_offsets_grad.py +43 -0
  564. mindspore/ops/_op_impl/aicpu/dense_to_csr_sparse_matrix.py +49 -0
  565. mindspore/ops/_op_impl/aicpu/dense_to_dense_set_operation.py +45 -0
  566. mindspore/ops/_op_impl/aicpu/dense_to_sparse_set_operation.py +48 -0
  567. mindspore/ops/_op_impl/aicpu/depth_to_space.py +44 -0
  568. mindspore/ops/_op_impl/aicpu/diag.py +36 -0
  569. mindspore/ops/_op_impl/aicpu/diag_part.py +36 -0
  570. mindspore/ops/_op_impl/aicpu/diagonal.py +35 -0
  571. mindspore/ops/_op_impl/aicpu/digamma.py +31 -0
  572. mindspore/ops/_op_impl/aicpu/div.py +41 -0
  573. mindspore/ops/_op_impl/aicpu/div_no_nan.py +35 -0
  574. mindspore/ops/_op_impl/aicpu/dropout2d.py +42 -0
  575. mindspore/ops/_op_impl/aicpu/dropout3d.py +42 -0
  576. mindspore/ops/_op_impl/aicpu/dropout_genmask.py +41 -0
  577. mindspore/ops/_op_impl/aicpu/dropout_genmask_v3.py +32 -0
  578. mindspore/ops/_op_impl/aicpu/dynamic_stitch.py +42 -0
  579. mindspore/ops/_op_impl/aicpu/edit_distance.py +56 -0
  580. mindspore/ops/_op_impl/aicpu/eig.py +35 -0
  581. mindspore/ops/_op_impl/aicpu/embedding_lookup.py +102 -0
  582. mindspore/ops/_op_impl/aicpu/end_of_sequence.py +30 -0
  583. mindspore/ops/_op_impl/aicpu/environ_create.py +28 -0
  584. mindspore/ops/_op_impl/aicpu/environ_destroy_all.py +28 -0
  585. mindspore/ops/_op_impl/aicpu/environ_get.py +41 -0
  586. mindspore/ops/_op_impl/aicpu/environ_set.py +40 -0
  587. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  588. mindspore/ops/_op_impl/aicpu/equal.py +41 -0
  589. mindspore/ops/_op_impl/aicpu/exp.py +37 -0
  590. mindspore/ops/_op_impl/aicpu/expand.py +45 -0
  591. mindspore/ops/_op_impl/aicpu/expand_dims.py +42 -0
  592. mindspore/ops/_op_impl/aicpu/expm1.py +34 -0
  593. mindspore/ops/_op_impl/aicpu/extract_glimpse.py +35 -0
  594. mindspore/ops/_op_impl/aicpu/eye.py +44 -0
  595. mindspore/ops/_op_impl/aicpu/fft_with_size.py +47 -0
  596. mindspore/ops/_op_impl/aicpu/fill_diagonal.py +39 -0
  597. mindspore/ops/_op_impl/aicpu/fill_v2.py +58 -0
  598. mindspore/ops/_op_impl/aicpu/flatten.py +43 -0
  599. mindspore/ops/_op_impl/aicpu/floor_div.py +38 -0
  600. mindspore/ops/_op_impl/aicpu/fmax.py +36 -0
  601. mindspore/ops/_op_impl/aicpu/fmin.py +37 -0
  602. mindspore/ops/_op_impl/aicpu/fractional_avg_pool.py +41 -0
  603. mindspore/ops/_op_impl/aicpu/fractional_avg_pool_grad.py +41 -0
  604. mindspore/ops/_op_impl/aicpu/fractional_max_pool.py +41 -0
  605. mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_grad_with_fixed_ksize.py +43 -0
  606. mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_with_fixed_ksize.py +65 -0
  607. mindspore/ops/_op_impl/aicpu/fractional_max_pool_grad.py +42 -0
  608. mindspore/ops/_op_impl/aicpu/fractional_max_pool_grad_with_fixed_ksize.py +42 -0
  609. mindspore/ops/_op_impl/aicpu/fractional_max_pool_with_fixed_ksize.py +49 -0
  610. mindspore/ops/_op_impl/aicpu/fse_decode.py +43 -0
  611. mindspore/ops/_op_impl/aicpu/fused_sparse_adam.py +46 -0
  612. mindspore/ops/_op_impl/aicpu/fused_sparse_ftrl.py +41 -0
  613. mindspore/ops/_op_impl/aicpu/fused_sparse_lazy_adam.py +46 -0
  614. mindspore/ops/_op_impl/aicpu/fused_sparse_proximal_adagrad.py +39 -0
  615. mindspore/ops/_op_impl/aicpu/gamma.py +38 -0
  616. mindspore/ops/_op_impl/aicpu/gather.py +46 -0
  617. mindspore/ops/_op_impl/aicpu/gather_d.py +79 -0
  618. mindspore/ops/_op_impl/aicpu/gather_d_grad_v2.py +79 -0
  619. mindspore/ops/_op_impl/aicpu/gather_grad.py +54 -0
  620. mindspore/ops/_op_impl/aicpu/gather_nd.py +56 -0
  621. mindspore/ops/_op_impl/aicpu/gcd.py +32 -0
  622. mindspore/ops/_op_impl/aicpu/generate_eod_mask.py +38 -0
  623. mindspore/ops/_op_impl/aicpu/geqrf.py +32 -0
  624. mindspore/ops/_op_impl/aicpu/get_next.py +39 -0
  625. mindspore/ops/_op_impl/aicpu/glu.py +33 -0
  626. mindspore/ops/_op_impl/aicpu/glu_grad.py +34 -0
  627. mindspore/ops/_op_impl/aicpu/greater.py +41 -0
  628. mindspore/ops/_op_impl/aicpu/greater_equal.py +41 -0
  629. mindspore/ops/_op_impl/aicpu/grid_sampler_2d.py +35 -0
  630. mindspore/ops/_op_impl/aicpu/grid_sampler_2d_grad.py +38 -0
  631. mindspore/ops/_op_impl/aicpu/grid_sampler_3d.py +34 -0
  632. mindspore/ops/_op_impl/aicpu/grid_sampler_3d_grad.py +38 -0
  633. mindspore/ops/_op_impl/aicpu/hamming_window.py +57 -0
  634. mindspore/ops/_op_impl/aicpu/hard_sigmoid.py +32 -0
  635. mindspore/ops/_op_impl/aicpu/hard_sigmoid_grad.py +33 -0
  636. mindspore/ops/_op_impl/aicpu/heaviside.py +40 -0
  637. mindspore/ops/_op_impl/aicpu/histogram.py +35 -0
  638. mindspore/ops/_op_impl/aicpu/hsv_to_rgb.py +32 -0
  639. mindspore/ops/_op_impl/aicpu/hypot.py +32 -0
  640. mindspore/ops/_op_impl/aicpu/identity.py +42 -0
  641. mindspore/ops/_op_impl/aicpu/identity_n.py +41 -0
  642. mindspore/ops/_op_impl/aicpu/igamma.py +30 -0
  643. mindspore/ops/_op_impl/aicpu/igammac.py +30 -0
  644. mindspore/ops/_op_impl/aicpu/igammagrada.py +30 -0
  645. mindspore/ops/_op_impl/aicpu/im2col.py +43 -0
  646. mindspore/ops/_op_impl/aicpu/imag.py +31 -0
  647. mindspore/ops/_op_impl/aicpu/index_fill.py +54 -0
  648. mindspore/ops/_op_impl/aicpu/index_put.py +50 -0
  649. mindspore/ops/_op_impl/aicpu/init_data_set_queue.py +27 -0
  650. mindspore/ops/_op_impl/aicpu/inplace_index_add.py +39 -0
  651. mindspore/ops/_op_impl/aicpu/instance_norm_v2.py +41 -0
  652. mindspore/ops/_op_impl/aicpu/instance_norm_v2_grad.py +44 -0
  653. mindspore/ops/_op_impl/aicpu/is_finite.py +40 -0
  654. mindspore/ops/_op_impl/aicpu/is_inf.py +31 -0
  655. mindspore/ops/_op_impl/aicpu/is_nan.py +31 -0
  656. mindspore/ops/_op_impl/aicpu/kldivloss.py +34 -0
  657. mindspore/ops/_op_impl/aicpu/kldivlossgrad.py +35 -0
  658. mindspore/ops/_op_impl/aicpu/layer_norm_grad_grad.py +47 -0
  659. mindspore/ops/_op_impl/aicpu/lcm.py +32 -0
  660. mindspore/ops/_op_impl/aicpu/left_shift.py +38 -0
  661. mindspore/ops/_op_impl/aicpu/less.py +41 -0
  662. mindspore/ops/_op_impl/aicpu/less_equal.py +41 -0
  663. mindspore/ops/_op_impl/aicpu/lgamma.py +33 -0
  664. mindspore/ops/_op_impl/aicpu/linear_sum_assignment.py +57 -0
  665. mindspore/ops/_op_impl/aicpu/linspace.py +33 -0
  666. mindspore/ops/_op_impl/aicpu/list_diff.py +50 -0
  667. mindspore/ops/_op_impl/aicpu/log.py +37 -0
  668. mindspore/ops/_op_impl/aicpu/log1p.py +34 -0
  669. mindspore/ops/_op_impl/aicpu/log_matrix_determinant.py +31 -0
  670. mindspore/ops/_op_impl/aicpu/log_normal_reverse.py +33 -0
  671. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +37 -0
  672. mindspore/ops/_op_impl/aicpu/logical_xor.py +30 -0
  673. mindspore/ops/_op_impl/aicpu/logit.py +33 -0
  674. mindspore/ops/_op_impl/aicpu/logit_grad.py +34 -0
  675. mindspore/ops/_op_impl/aicpu/logspace.py +36 -0
  676. mindspore/ops/_op_impl/aicpu/lower_bound.py +47 -0
  677. mindspore/ops/_op_impl/aicpu/lstsq.py +34 -0
  678. mindspore/ops/_op_impl/aicpu/lu.py +39 -0
  679. mindspore/ops/_op_impl/aicpu/lu_solve.py +32 -0
  680. mindspore/ops/_op_impl/aicpu/lu_unpack.py +114 -0
  681. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +49 -0
  682. mindspore/ops/_op_impl/aicpu/masked_fill.py +42 -0
  683. mindspore/ops/_op_impl/aicpu/masked_scatter.py +40 -0
  684. mindspore/ops/_op_impl/aicpu/masked_select.py +31 -0
  685. mindspore/ops/_op_impl/aicpu/masked_select_grad.py +35 -0
  686. mindspore/ops/_op_impl/aicpu/matmul.py +39 -0
  687. mindspore/ops/_op_impl/aicpu/matrix_band_part.py +59 -0
  688. mindspore/ops/_op_impl/aicpu/matrix_determinant.py +30 -0
  689. mindspore/ops/_op_impl/aicpu/matrix_diag_part_v3.py +54 -0
  690. mindspore/ops/_op_impl/aicpu/matrix_diag_v3.py +56 -0
  691. mindspore/ops/_op_impl/aicpu/matrix_exp.py +34 -0
  692. mindspore/ops/_op_impl/aicpu/matrix_inverse.py +31 -0
  693. mindspore/ops/_op_impl/aicpu/matrix_logarithm.py +31 -0
  694. mindspore/ops/_op_impl/aicpu/matrix_power.py +37 -0
  695. mindspore/ops/_op_impl/aicpu/matrix_set_diag_v3.py +54 -0
  696. mindspore/ops/_op_impl/aicpu/matrix_solve.py +35 -0
  697. mindspore/ops/_op_impl/aicpu/matrix_solve_ls.py +36 -0
  698. mindspore/ops/_op_impl/aicpu/matrix_triangular_solve.py +36 -0
  699. mindspore/ops/_op_impl/aicpu/max_pool3d_grad_with_argmax.py +60 -0
  700. mindspore/ops/_op_impl/aicpu/max_pool3d_with_argmax.py +59 -0
  701. mindspore/ops/_op_impl/aicpu/max_unpool2d.py +57 -0
  702. mindspore/ops/_op_impl/aicpu/max_unpool2d_grad.py +58 -0
  703. mindspore/ops/_op_impl/aicpu/max_unpool3d.py +57 -0
  704. mindspore/ops/_op_impl/aicpu/max_unpool3d_grad.py +58 -0
  705. mindspore/ops/_op_impl/aicpu/maximum_grad_grad.py +40 -0
  706. mindspore/ops/_op_impl/aicpu/maxpool_grad_v1.py +46 -0
  707. mindspore/ops/_op_impl/aicpu/maxpool_v1.py +42 -0
  708. mindspore/ops/_op_impl/aicpu/median.py +39 -0
  709. mindspore/ops/_op_impl/aicpu/median_grad.py +45 -0
  710. mindspore/ops/_op_impl/aicpu/meshgrid.py +41 -0
  711. mindspore/ops/_op_impl/aicpu/minimum_grad_grad.py +40 -0
  712. mindspore/ops/_op_impl/aicpu/mirror_pad.py +50 -0
  713. mindspore/ops/_op_impl/aicpu/mirror_pad_grad.py +48 -0
  714. mindspore/ops/_op_impl/aicpu/mul.py +43 -0
  715. mindspore/ops/_op_impl/aicpu/mul_no_nan.py +42 -0
  716. mindspore/ops/_op_impl/aicpu/multi_margin_loss.py +37 -0
  717. mindspore/ops/_op_impl/aicpu/multi_margin_loss_grad.py +41 -0
  718. mindspore/ops/_op_impl/aicpu/multilabel_margin_loss_grad.py +37 -0
  719. mindspore/ops/_op_impl/aicpu/multinomial.py +47 -0
  720. mindspore/ops/_op_impl/aicpu/multinomial_with_replacement.py +35 -0
  721. mindspore/ops/_op_impl/aicpu/mvlgamma.py +32 -0
  722. mindspore/ops/_op_impl/aicpu/mvlgamma_grad.py +33 -0
  723. mindspore/ops/_op_impl/aicpu/nan_to_num.py +34 -0
  724. mindspore/ops/_op_impl/aicpu/neg.py +36 -0
  725. mindspore/ops/_op_impl/aicpu/nextafter.py +32 -0
  726. mindspore/ops/_op_impl/aicpu/nllloss.py +38 -0
  727. mindspore/ops/_op_impl/aicpu/nllloss_grad.py +39 -0
  728. mindspore/ops/_op_impl/aicpu/no_repeat_ngram.py +34 -0
  729. mindspore/ops/_op_impl/aicpu/non_deterministic_ints.py +33 -0
  730. mindspore/ops/_op_impl/aicpu/non_max_suppression.py +36 -0
  731. mindspore/ops/_op_impl/aicpu/non_max_suppression_with_overlaps.py +35 -0
  732. mindspore/ops/_op_impl/aicpu/non_zero.py +43 -0
  733. mindspore/ops/_op_impl/aicpu/not_equal.py +39 -0
  734. mindspore/ops/_op_impl/aicpu/nth_element.py +39 -0
  735. mindspore/ops/_op_impl/aicpu/nuclear_norm.py +33 -0
  736. mindspore/ops/_op_impl/aicpu/one_hot.py +116 -0
  737. mindspore/ops/_op_impl/aicpu/ones_like.py +39 -0
  738. mindspore/ops/_op_impl/aicpu/orgqr.py +34 -0
  739. mindspore/ops/_op_impl/aicpu/pad_and_shift.py +33 -0
  740. mindspore/ops/_op_impl/aicpu/pad_v3.py +61 -0
  741. mindspore/ops/_op_impl/aicpu/pad_v3_grad.py +59 -0
  742. mindspore/ops/_op_impl/aicpu/padding.py +41 -0
  743. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +54 -0
  744. mindspore/ops/_op_impl/aicpu/pdist_grad.py +33 -0
  745. mindspore/ops/_op_impl/aicpu/poisson.py +37 -0
  746. mindspore/ops/_op_impl/aicpu/polar.py +32 -0
  747. mindspore/ops/_op_impl/aicpu/polygamma.py +34 -0
  748. mindspore/ops/_op_impl/aicpu/pow.py +39 -0
  749. mindspore/ops/_op_impl/aicpu/print_tensor.py +39 -0
  750. mindspore/ops/_op_impl/aicpu/priority_replay_buffer.py +113 -0
  751. mindspore/ops/_op_impl/aicpu/qr.py +36 -0
  752. mindspore/ops/_op_impl/aicpu/quant_dtype_cast.py +40 -0
  753. mindspore/ops/_op_impl/aicpu/quantile.py +35 -0
  754. mindspore/ops/_op_impl/aicpu/ragged_range.py +49 -0
  755. mindspore/ops/_op_impl/aicpu/ragged_tensor_to_sparse.py +73 -0
  756. mindspore/ops/_op_impl/aicpu/ragged_tensor_to_tensor.py +74 -0
  757. mindspore/ops/_op_impl/aicpu/random_categorical.py +68 -0
  758. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +36 -0
  759. mindspore/ops/_op_impl/aicpu/random_gamma.py +38 -0
  760. mindspore/ops/_op_impl/aicpu/random_poisson.py +134 -0
  761. mindspore/ops/_op_impl/aicpu/random_shuffle.py +47 -0
  762. mindspore/ops/_op_impl/aicpu/randperm.py +38 -0
  763. mindspore/ops/_op_impl/aicpu/randperm_v2.py +41 -0
  764. mindspore/ops/_op_impl/aicpu/range.py +36 -0
  765. mindspore/ops/_op_impl/aicpu/range_v2.py +35 -0
  766. mindspore/ops/_op_impl/aicpu/real.py +31 -0
  767. mindspore/ops/_op_impl/aicpu/real_div.py +40 -0
  768. mindspore/ops/_op_impl/aicpu/reciprocal.py +34 -0
  769. mindspore/ops/_op_impl/aicpu/reciprocal_grad.py +35 -0
  770. mindspore/ops/_op_impl/aicpu/reduce_mean.py +57 -0
  771. mindspore/ops/_op_impl/aicpu/reduce_prod.py +57 -0
  772. mindspore/ops/_op_impl/aicpu/reduce_sum.py +57 -0
  773. mindspore/ops/_op_impl/aicpu/relu_grad_v3.py +41 -0
  774. mindspore/ops/_op_impl/aicpu/relu_v3.py +38 -0
  775. mindspore/ops/_op_impl/aicpu/reservoir_replay_buffer.py +96 -0
  776. mindspore/ops/_op_impl/aicpu/reshape.py +42 -0
  777. mindspore/ops/_op_impl/aicpu/resize_area.py +40 -0
  778. mindspore/ops/_op_impl/aicpu/resize_bicubic.py +20 -0
  779. mindspore/ops/_op_impl/aicpu/resize_bicubic_grad.py +19 -0
  780. mindspore/ops/_op_impl/aicpu/resize_bilinear.py +32 -0
  781. mindspore/ops/_op_impl/aicpu/resize_bilinear_grad.py +32 -0
  782. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2.py +36 -0
  783. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2_grad.py +35 -0
  784. mindspore/ops/_op_impl/aicpu/resize_v2.py +68 -0
  785. mindspore/ops/_op_impl/aicpu/resize_v2_grad.py +68 -0
  786. mindspore/ops/_op_impl/aicpu/reverse_sequence.py +55 -0
  787. mindspore/ops/_op_impl/aicpu/reversev2.py +54 -0
  788. mindspore/ops/_op_impl/aicpu/rgb_to_hsv.py +32 -0
  789. mindspore/ops/_op_impl/aicpu/right_shift.py +38 -0
  790. mindspore/ops/_op_impl/aicpu/rnnt_loss.py +35 -0
  791. mindspore/ops/_op_impl/aicpu/round.py +34 -0
  792. mindspore/ops/_op_impl/aicpu/rsqrt.py +33 -0
  793. mindspore/ops/_op_impl/aicpu/rsqrt_grad.py +36 -0
  794. mindspore/ops/_op_impl/aicpu/sample_distorted_bounding_box_v2.py +49 -0
  795. mindspore/ops/_op_impl/aicpu/scale_and_translate.py +52 -0
  796. mindspore/ops/_op_impl/aicpu/scale_and_translate_grad.py +36 -0
  797. mindspore/ops/_op_impl/aicpu/scatter.py +79 -0
  798. mindspore/ops/_op_impl/aicpu/scatter_add_with_axis.py +53 -0
  799. mindspore/ops/_op_impl/aicpu/scatter_elements.py +39 -0
  800. mindspore/ops/_op_impl/aicpu/scatter_nd.py +59 -0
  801. mindspore/ops/_op_impl/aicpu/scatter_nd_max.py +54 -0
  802. mindspore/ops/_op_impl/aicpu/scatter_nd_min.py +54 -0
  803. mindspore/ops/_op_impl/aicpu/scatter_nd_update.py +59 -0
  804. mindspore/ops/_op_impl/aicpu/search_sorted.py +44 -0
  805. mindspore/ops/_op_impl/aicpu/segment_max.py +52 -0
  806. mindspore/ops/_op_impl/aicpu/segment_mean.py +56 -0
  807. mindspore/ops/_op_impl/aicpu/segment_min.py +52 -0
  808. mindspore/ops/_op_impl/aicpu/segment_prod.py +56 -0
  809. mindspore/ops/_op_impl/aicpu/segment_sum.py +56 -0
  810. mindspore/ops/_op_impl/aicpu/select.py +45 -0
  811. mindspore/ops/_op_impl/aicpu/self_adjoint_eig.py +34 -0
  812. mindspore/ops/_op_impl/aicpu/sequence_add.py +34 -0
  813. mindspore/ops/_op_impl/aicpu/sequence_add_offset.py +34 -0
  814. mindspore/ops/_op_impl/aicpu/sequence_addn.py +38 -0
  815. mindspore/ops/_op_impl/aicpu/sequence_concat.py +40 -0
  816. mindspore/ops/_op_impl/aicpu/sequence_stack.py +40 -0
  817. mindspore/ops/_op_impl/aicpu/set_size.py +38 -0
  818. mindspore/ops/_op_impl/aicpu/sign.py +36 -0
  819. mindspore/ops/_op_impl/aicpu/sin.py +34 -0
  820. mindspore/ops/_op_impl/aicpu/sinc.py +43 -0
  821. mindspore/ops/_op_impl/aicpu/sinh.py +34 -0
  822. mindspore/ops/_op_impl/aicpu/slice.py +59 -0
  823. mindspore/ops/_op_impl/aicpu/slice_grad.py +76 -0
  824. mindspore/ops/_op_impl/aicpu/smooth_l1_loss.py +35 -0
  825. mindspore/ops/_op_impl/aicpu/smooth_l1_loss_grad.py +37 -0
  826. mindspore/ops/_op_impl/aicpu/sort.py +39 -0
  827. mindspore/ops/_op_impl/aicpu/space_to_depth.py +44 -0
  828. mindspore/ops/_op_impl/aicpu/sparse_addmm.py +87 -0
  829. mindspore/ops/_op_impl/aicpu/sparse_apply_adagrad_da.py +80 -0
  830. mindspore/ops/_op_impl/aicpu/sparse_apply_centered_rms_prop.py +105 -0
  831. mindspore/ops/_op_impl/aicpu/sparse_apply_momentum.py +80 -0
  832. mindspore/ops/_op_impl/aicpu/sparse_apply_proximal_gradient_descent.py +79 -0
  833. mindspore/ops/_op_impl/aicpu/sparse_concat.py +59 -0
  834. mindspore/ops/_op_impl/aicpu/sparse_cross.py +42 -0
  835. mindspore/ops/_op_impl/aicpu/sparse_dense_cwise_add.py +58 -0
  836. mindspore/ops/_op_impl/aicpu/sparse_dense_cwise_div.py +58 -0
  837. mindspore/ops/_op_impl/aicpu/sparse_dense_cwise_mul.py +58 -0
  838. mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows.py +63 -0
  839. mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows_grad.py +45 -0
  840. mindspore/ops/_op_impl/aicpu/sparse_matrix_mat_mul.py +56 -0
  841. mindspore/ops/_op_impl/aicpu/sparse_matrix_nnz.py +81 -0
  842. mindspore/ops/_op_impl/aicpu/sparse_matrix_transpose.py +116 -0
  843. mindspore/ops/_op_impl/aicpu/sparse_reorder.py +56 -0
  844. mindspore/ops/_op_impl/aicpu/sparse_reshape.py +34 -0
  845. mindspore/ops/_op_impl/aicpu/sparse_segment_mean_grad.py +36 -0
  846. mindspore/ops/_op_impl/aicpu/sparse_segment_mean_with_num_segments.py +44 -0
  847. mindspore/ops/_op_impl/aicpu/sparse_segment_sqrt_n.py +43 -0
  848. mindspore/ops/_op_impl/aicpu/sparse_segment_sqrt_n_grad.py +38 -0
  849. mindspore/ops/_op_impl/aicpu/sparse_segment_sqrt_n_with_num_segments.py +44 -0
  850. mindspore/ops/_op_impl/aicpu/sparse_segment_sum.py +49 -0
  851. mindspore/ops/_op_impl/aicpu/sparse_segment_sum_with_num_segments.py +68 -0
  852. mindspore/ops/_op_impl/aicpu/sparse_slice.py +63 -0
  853. mindspore/ops/_op_impl/aicpu/sparse_slice_grad.py +61 -0
  854. mindspore/ops/_op_impl/aicpu/sparse_softmax.py +33 -0
  855. mindspore/ops/_op_impl/aicpu/sparse_softmax_cross_entropy_with_logits_v2.py +35 -0
  856. mindspore/ops/_op_impl/aicpu/sparse_sparse_maximum.py +53 -0
  857. mindspore/ops/_op_impl/aicpu/sparse_sparse_minimum.py +53 -0
  858. mindspore/ops/_op_impl/aicpu/sparse_tensor_dense_add.py +84 -0
  859. mindspore/ops/_op_impl/aicpu/sparse_tensor_dense_mat_mul.py +190 -0
  860. mindspore/ops/_op_impl/aicpu/sparse_tensor_to_csr_sparse_matrix.py +51 -0
  861. mindspore/ops/_op_impl/aicpu/sparse_to_dense_v2.py +73 -0
  862. mindspore/ops/_op_impl/aicpu/split.py +45 -0
  863. mindspore/ops/_op_impl/aicpu/sqrt.py +34 -0
  864. mindspore/ops/_op_impl/aicpu/sqrt_grad.py +35 -0
  865. mindspore/ops/_op_impl/aicpu/square.py +35 -0
  866. mindspore/ops/_op_impl/aicpu/squared_difference.py +37 -0
  867. mindspore/ops/_op_impl/aicpu/squeeze.py +42 -0
  868. mindspore/ops/_op_impl/aicpu/sspaddmm.py +97 -0
  869. mindspore/ops/_op_impl/aicpu/stack.py +45 -0
  870. mindspore/ops/_op_impl/aicpu/stack_push_pop.py +87 -0
  871. mindspore/ops/_op_impl/aicpu/standard_laplace.py +34 -0
  872. mindspore/ops/_op_impl/aicpu/standard_normal.py +34 -0
  873. mindspore/ops/_op_impl/aicpu/stateless_dropout_genmask.py +37 -0
  874. mindspore/ops/_op_impl/aicpu/stft.py +70 -0
  875. mindspore/ops/_op_impl/aicpu/strided_slice.py +43 -0
  876. mindspore/ops/_op_impl/aicpu/strided_slice_grad.py +50 -0
  877. mindspore/ops/_op_impl/aicpu/strided_slice_v2.py +93 -0
  878. mindspore/ops/_op_impl/aicpu/strided_slice_v2_grad.py +66 -0
  879. mindspore/ops/_op_impl/aicpu/sub.py +41 -0
  880. mindspore/ops/_op_impl/aicpu/sub_and_filter.py +36 -0
  881. mindspore/ops/_op_impl/aicpu/tan.py +34 -0
  882. mindspore/ops/_op_impl/aicpu/tanh.py +34 -0
  883. mindspore/ops/_op_impl/aicpu/tanh_grad.py +35 -0
  884. mindspore/ops/_op_impl/aicpu/tensor_scatter_update.py +59 -0
  885. mindspore/ops/_op_impl/aicpu/tile.py +56 -0
  886. mindspore/ops/_op_impl/aicpu/topk.py +34 -0
  887. mindspore/ops/_op_impl/aicpu/trace.py +40 -0
  888. mindspore/ops/_op_impl/aicpu/tracegrad.py +41 -0
  889. mindspore/ops/_op_impl/aicpu/trans_data.py +35 -0
  890. mindspore/ops/_op_impl/aicpu/transpose.py +58 -0
  891. mindspore/ops/_op_impl/aicpu/tridiagonal_matmul.py +42 -0
  892. mindspore/ops/_op_impl/aicpu/tridiagonal_solve.py +35 -0
  893. mindspore/ops/_op_impl/aicpu/tril.py +42 -0
  894. mindspore/ops/_op_impl/aicpu/tril_indices.py +34 -0
  895. mindspore/ops/_op_impl/aicpu/triplet_margin_loss.py +62 -0
  896. mindspore/ops/_op_impl/aicpu/triu.py +43 -0
  897. mindspore/ops/_op_impl/aicpu/triu_indices.py +34 -0
  898. mindspore/ops/_op_impl/aicpu/truncated_normal.py +39 -0
  899. mindspore/ops/_op_impl/aicpu/uniform.py +36 -0
  900. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +41 -0
  901. mindspore/ops/_op_impl/aicpu/uniform_int.py +36 -0
  902. mindspore/ops/_op_impl/aicpu/uniform_real.py +33 -0
  903. mindspore/ops/_op_impl/aicpu/unique.py +31 -0
  904. mindspore/ops/_op_impl/aicpu/unique_consecutive.py +47 -0
  905. mindspore/ops/_op_impl/aicpu/unique_with_pad.py +32 -0
  906. mindspore/ops/_op_impl/aicpu/unravel_index.py +32 -0
  907. mindspore/ops/_op_impl/aicpu/unsorted_segment_prod.py +53 -0
  908. mindspore/ops/_op_impl/aicpu/unsorted_segment_sum.py +57 -0
  909. mindspore/ops/_op_impl/aicpu/unstack.py +45 -0
  910. mindspore/ops/_op_impl/aicpu/update_cache.py +44 -0
  911. mindspore/ops/_op_impl/aicpu/upper_bound.py +47 -0
  912. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d.py +42 -0
  913. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d_grad.py +49 -0
  914. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d.py +40 -0
  915. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d_grad.py +50 -0
  916. mindspore/ops/_op_impl/aicpu/xdivy.py +35 -0
  917. mindspore/ops/_op_impl/aicpu/xlogy.py +33 -0
  918. mindspore/ops/_op_impl/aicpu/zeros_like.py +42 -0
  919. mindspore/ops/_op_impl/aicpu/zeta.py +31 -0
  920. mindspore/ops/_op_impl/akg/__init__.py +19 -0
  921. mindspore/ops/_op_impl/akg/ascend/__init__.py +48 -0
  922. mindspore/ops/_op_impl/akg/ascend/abs.py +35 -0
  923. mindspore/ops/_op_impl/akg/ascend/add.py +42 -0
  924. mindspore/ops/_op_impl/akg/ascend/add_n.py +37 -0
  925. mindspore/ops/_op_impl/akg/ascend/batchmatmul.py +33 -0
  926. mindspore/ops/_op_impl/akg/ascend/cast.py +46 -0
  927. mindspore/ops/_op_impl/akg/ascend/equal.py +35 -0
  928. mindspore/ops/_op_impl/akg/ascend/exp.py +35 -0
  929. mindspore/ops/_op_impl/akg/ascend/expand_dims.py +33 -0
  930. mindspore/ops/_op_impl/akg/ascend/greater.py +34 -0
  931. mindspore/ops/_op_impl/akg/ascend/greater_equal.py +35 -0
  932. mindspore/ops/_op_impl/akg/ascend/less.py +31 -0
  933. mindspore/ops/_op_impl/akg/ascend/less_equal.py +35 -0
  934. mindspore/ops/_op_impl/akg/ascend/load_im2col.py +33 -0
  935. mindspore/ops/_op_impl/akg/ascend/log.py +34 -0
  936. mindspore/ops/_op_impl/akg/ascend/maximum.py +36 -0
  937. mindspore/ops/_op_impl/akg/ascend/minimum.py +39 -0
  938. mindspore/ops/_op_impl/akg/ascend/mul.py +41 -0
  939. mindspore/ops/_op_impl/akg/ascend/neg.py +37 -0
  940. mindspore/ops/_op_impl/akg/ascend/pow.py +35 -0
  941. mindspore/ops/_op_impl/akg/ascend/prod_force_se_a.py +33 -0
  942. mindspore/ops/_op_impl/akg/ascend/real_div.py +36 -0
  943. mindspore/ops/_op_impl/akg/ascend/reciprocal.py +32 -0
  944. mindspore/ops/_op_impl/akg/ascend/reduce_max.py +32 -0
  945. mindspore/ops/_op_impl/akg/ascend/reduce_min.py +32 -0
  946. mindspore/ops/_op_impl/akg/ascend/reduce_sum.py +37 -0
  947. mindspore/ops/_op_impl/akg/ascend/rsqrt.py +35 -0
  948. mindspore/ops/_op_impl/akg/ascend/select.py +37 -0
  949. mindspore/ops/_op_impl/akg/ascend/sqrt.py +35 -0
  950. mindspore/ops/_op_impl/akg/ascend/square.py +35 -0
  951. mindspore/ops/_op_impl/akg/ascend/sub.py +42 -0
  952. mindspore/ops/_op_impl/akg/cpu/__init__.py +23 -0
  953. mindspore/ops/_op_impl/akg/cpu/coo2csr.py +29 -0
  954. mindspore/ops/_op_impl/akg/cpu/csr2coo.py +29 -0
  955. mindspore/ops/_op_impl/akg/cpu/csr_gather.py +33 -0
  956. mindspore/ops/_op_impl/akg/cpu/csr_mm.py +34 -0
  957. mindspore/ops/_op_impl/akg/cpu/csr_mul.py +33 -0
  958. mindspore/ops/_op_impl/akg/cpu/csr_mv.py +33 -0
  959. mindspore/ops/_op_impl/akg/cpu/csr_reduce_sum.py +31 -0
  960. mindspore/ops/_op_impl/akg/gpu/__init__.py +24 -0
  961. mindspore/ops/_op_impl/akg/gpu/coo2csr.py +29 -0
  962. mindspore/ops/_op_impl/akg/gpu/csr2coo.py +29 -0
  963. mindspore/ops/_op_impl/akg/gpu/csr_div.py +36 -0
  964. mindspore/ops/_op_impl/akg/gpu/csr_gather.py +33 -0
  965. mindspore/ops/_op_impl/akg/gpu/csr_mm.py +37 -0
  966. mindspore/ops/_op_impl/akg/gpu/csr_mul.py +36 -0
  967. mindspore/ops/_op_impl/akg/gpu/csr_mv.py +36 -0
  968. mindspore/ops/_op_impl/akg/gpu/csr_reduce_sum.py +33 -0
  969. mindspore/ops/_op_impl/cpu/__init__.py +78 -0
  970. mindspore/ops/_op_impl/cpu/adam.py +49 -0
  971. mindspore/ops/_op_impl/cpu/adam_weight_decay.py +47 -0
  972. mindspore/ops/_op_impl/cpu/arg_max.py +30 -0
  973. mindspore/ops/_op_impl/cpu/arg_max_with_value.py +31 -0
  974. mindspore/ops/_op_impl/cpu/arg_min_with_value.py +31 -0
  975. mindspore/ops/_op_impl/cpu/buffer_append.py +28 -0
  976. mindspore/ops/_op_impl/cpu/buffer_get.py +28 -0
  977. mindspore/ops/_op_impl/cpu/buffer_sample.py +28 -0
  978. mindspore/ops/_op_impl/cpu/cast.py +171 -0
  979. mindspore/ops/_op_impl/cpu/concat_offset.py +38 -0
  980. mindspore/ops/_op_impl/cpu/conv2d.py +30 -0
  981. mindspore/ops/_op_impl/cpu/conv3d.py +30 -0
  982. mindspore/ops/_op_impl/cpu/div.py +32 -0
  983. mindspore/ops/_op_impl/cpu/dropout.py +31 -0
  984. mindspore/ops/_op_impl/cpu/dropout_grad.py +30 -0
  985. mindspore/ops/_op_impl/cpu/dynamic_shape.py +42 -0
  986. mindspore/ops/_op_impl/cpu/dynamic_stitch.py +41 -0
  987. mindspore/ops/_op_impl/cpu/equal_count.py +30 -0
  988. mindspore/ops/_op_impl/cpu/gather_d.py +49 -0
  989. mindspore/ops/_op_impl/cpu/gather_d_grad.py +38 -0
  990. mindspore/ops/_op_impl/cpu/gather_d_grad_v2.py +40 -0
  991. mindspore/ops/_op_impl/cpu/gather_v2.py +40 -0
  992. mindspore/ops/_op_impl/cpu/hsigmoid.py +33 -0
  993. mindspore/ops/_op_impl/cpu/hsigmoid_grad.py +34 -0
  994. mindspore/ops/_op_impl/cpu/hswish.py +32 -0
  995. mindspore/ops/_op_impl/cpu/hswish_grad.py +33 -0
  996. mindspore/ops/_op_impl/cpu/identity_n.py +40 -0
  997. mindspore/ops/_op_impl/cpu/is_finite.py +39 -0
  998. mindspore/ops/_op_impl/cpu/l2loss.py +30 -0
  999. mindspore/ops/_op_impl/cpu/layer_norm.py +36 -0
  1000. mindspore/ops/_op_impl/cpu/layer_norm_grad.py +38 -0
  1001. mindspore/ops/_op_impl/cpu/maximum.py +35 -0
  1002. mindspore/ops/_op_impl/cpu/maximum_grad.py +47 -0
  1003. mindspore/ops/_op_impl/cpu/minimum.py +40 -0
  1004. mindspore/ops/_op_impl/cpu/minimum_grad.py +51 -0
  1005. mindspore/ops/_op_impl/cpu/mirror_pad.py +36 -0
  1006. mindspore/ops/_op_impl/cpu/mirror_pad_grad.py +36 -0
  1007. mindspore/ops/_op_impl/cpu/mul.py +32 -0
  1008. mindspore/ops/_op_impl/cpu/one_hot.py +31 -0
  1009. mindspore/ops/_op_impl/cpu/pad.py +32 -0
  1010. mindspore/ops/_op_impl/cpu/pow.py +32 -0
  1011. mindspore/ops/_op_impl/cpu/priority_replay_buffer.py +42 -0
  1012. mindspore/ops/_op_impl/cpu/pyexecute.py +29 -0
  1013. mindspore/ops/_op_impl/cpu/pyfunc.py +29 -0
  1014. mindspore/ops/_op_impl/cpu/range.py +34 -0
  1015. mindspore/ops/_op_impl/cpu/real_div.py +33 -0
  1016. mindspore/ops/_op_impl/cpu/reduce_all.py +29 -0
  1017. mindspore/ops/_op_impl/cpu/reduce_any.py +29 -0
  1018. mindspore/ops/_op_impl/cpu/reduce_max.py +32 -0
  1019. mindspore/ops/_op_impl/cpu/reduce_mean.py +40 -0
  1020. mindspore/ops/_op_impl/cpu/reduce_min.py +32 -0
  1021. mindspore/ops/_op_impl/cpu/reduce_prod.py +40 -0
  1022. mindspore/ops/_op_impl/cpu/reduce_std.py +31 -0
  1023. mindspore/ops/_op_impl/cpu/reduce_sum.py +41 -0
  1024. mindspore/ops/_op_impl/cpu/space_to_batch_nd.py +38 -0
  1025. mindspore/ops/_op_impl/cpu/sparse_slice.py +62 -0
  1026. mindspore/ops/_op_impl/cpu/sparse_slice_grad.py +60 -0
  1027. mindspore/ops/_op_impl/cpu/split.py +34 -0
  1028. mindspore/ops/_op_impl/cpu/sspaddmm.py +95 -0
  1029. mindspore/ops/_op_impl/cpu/stack.py +38 -0
  1030. mindspore/ops/_op_impl/cpu/sub.py +32 -0
  1031. mindspore/ops/_op_impl/cpu/tensor_copy_slices.py +41 -0
  1032. mindspore/ops/_op_impl/cpu/tile.py +37 -0
  1033. mindspore/ops/_op_impl/cpu/top_k.py +31 -0
  1034. mindspore/ops/_op_impl/cpu/transpose.py +39 -0
  1035. mindspore/ops/_primitive_cache.py +90 -0
  1036. mindspore/ops/_register_for_op.py +73 -0
  1037. mindspore/ops/_utils/__init__.py +20 -0
  1038. mindspore/ops/_utils/utils.py +147 -0
  1039. mindspore/ops/_vmap/__init__.py +25 -0
  1040. mindspore/ops/_vmap/vmap_array_ops.py +2151 -0
  1041. mindspore/ops/_vmap/vmap_base.py +533 -0
  1042. mindspore/ops/_vmap/vmap_convolution_ops.py +441 -0
  1043. mindspore/ops/_vmap/vmap_debug_ops.py +50 -0
  1044. mindspore/ops/_vmap/vmap_grad_math_ops.py +274 -0
  1045. mindspore/ops/_vmap/vmap_grad_nn_ops.py +806 -0
  1046. mindspore/ops/_vmap/vmap_image_ops.py +194 -0
  1047. mindspore/ops/_vmap/vmap_math_ops.py +977 -0
  1048. mindspore/ops/_vmap/vmap_nn_ops.py +2209 -0
  1049. mindspore/ops/_vmap/vmap_other_ops.py +105 -0
  1050. mindspore/ops/_vmap/vmap_random_ops.py +122 -0
  1051. mindspore/ops/_vmap/vmap_sparse_ops.py +89 -0
  1052. mindspore/ops/auto_generate/__init__.py +31 -0
  1053. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +231 -0
  1054. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +250 -0
  1055. mindspore/ops/auto_generate/gen_arg_handler.py +197 -0
  1056. mindspore/ops/auto_generate/gen_extend_func.py +980 -0
  1057. mindspore/ops/auto_generate/gen_ops_def.py +6443 -0
  1058. mindspore/ops/auto_generate/gen_ops_prim.py +13167 -0
  1059. mindspore/ops/auto_generate/pyboost_inner_prim.py +429 -0
  1060. mindspore/ops/composite/__init__.py +71 -0
  1061. mindspore/ops/composite/base.py +1281 -0
  1062. mindspore/ops/composite/env_ops.py +41 -0
  1063. mindspore/ops/composite/math_ops.py +125 -0
  1064. mindspore/ops/composite/multitype_ops/__init__.py +77 -0
  1065. mindspore/ops/composite/multitype_ops/_compile_utils.py +1458 -0
  1066. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +897 -0
  1067. mindspore/ops/composite/multitype_ops/add_impl.py +606 -0
  1068. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +56 -0
  1069. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +56 -0
  1070. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +56 -0
  1071. mindspore/ops/composite/multitype_ops/div_impl.py +189 -0
  1072. mindspore/ops/composite/multitype_ops/equal_impl.py +335 -0
  1073. mindspore/ops/composite/multitype_ops/floordiv_impl.py +88 -0
  1074. mindspore/ops/composite/multitype_ops/getitem_impl.py +400 -0
  1075. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +109 -0
  1076. mindspore/ops/composite/multitype_ops/greater_impl.py +110 -0
  1077. mindspore/ops/composite/multitype_ops/in_impl.py +196 -0
  1078. mindspore/ops/composite/multitype_ops/left_shift_impl.py +37 -0
  1079. mindspore/ops/composite/multitype_ops/less_equal_impl.py +111 -0
  1080. mindspore/ops/composite/multitype_ops/less_impl.py +112 -0
  1081. mindspore/ops/composite/multitype_ops/logic_not_impl.py +113 -0
  1082. mindspore/ops/composite/multitype_ops/logical_and_impl.py +60 -0
  1083. mindspore/ops/composite/multitype_ops/logical_or_impl.py +61 -0
  1084. mindspore/ops/composite/multitype_ops/mod_impl.py +86 -0
  1085. mindspore/ops/composite/multitype_ops/mul_impl.py +294 -0
  1086. mindspore/ops/composite/multitype_ops/negative_impl.py +79 -0
  1087. mindspore/ops/composite/multitype_ops/not_equal_impl.py +290 -0
  1088. mindspore/ops/composite/multitype_ops/not_in_impl.py +196 -0
  1089. mindspore/ops/composite/multitype_ops/ones_like_impl.py +96 -0
  1090. mindspore/ops/composite/multitype_ops/pow_impl.py +87 -0
  1091. mindspore/ops/composite/multitype_ops/right_shift_impl.py +37 -0
  1092. mindspore/ops/composite/multitype_ops/setitem_impl.py +884 -0
  1093. mindspore/ops/composite/multitype_ops/sub_impl.py +116 -0
  1094. mindspore/ops/composite/multitype_ops/uadd_impl.py +29 -0
  1095. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +228 -0
  1096. mindspore/ops/deprecated.py +315 -0
  1097. mindspore/ops/extend/__init__.py +53 -0
  1098. mindspore/ops/extend/array_func.py +218 -0
  1099. mindspore/ops/extend/math_func.py +76 -0
  1100. mindspore/ops/extend/nn_func.py +308 -0
  1101. mindspore/ops/function/__init__.py +760 -0
  1102. mindspore/ops/function/array_func.py +6889 -0
  1103. mindspore/ops/function/clip_func.py +384 -0
  1104. mindspore/ops/function/debug_func.py +69 -0
  1105. mindspore/ops/function/fft_func.py +31 -0
  1106. mindspore/ops/function/grad/__init__.py +34 -0
  1107. mindspore/ops/function/grad/grad_func.py +1424 -0
  1108. mindspore/ops/function/image_func.py +292 -0
  1109. mindspore/ops/function/linalg_func.py +416 -0
  1110. mindspore/ops/function/math_func.py +11877 -0
  1111. mindspore/ops/function/nn_func.py +8175 -0
  1112. mindspore/ops/function/other_func.py +114 -0
  1113. mindspore/ops/function/parameter_func.py +134 -0
  1114. mindspore/ops/function/random_func.py +1539 -0
  1115. mindspore/ops/function/reshard_func.py +102 -0
  1116. mindspore/ops/function/sparse_func.py +884 -0
  1117. mindspore/ops/function/sparse_unary_func.py +2422 -0
  1118. mindspore/ops/function/spectral_func.py +150 -0
  1119. mindspore/ops/function/vmap_func.py +116 -0
  1120. mindspore/ops/functional.py +454 -0
  1121. mindspore/ops/op_info_register.py +1572 -0
  1122. mindspore/ops/operations/__init__.py +717 -0
  1123. mindspore/ops/operations/_csr_ops.py +403 -0
  1124. mindspore/ops/operations/_custom_grad.py +181 -0
  1125. mindspore/ops/operations/_embedding_cache_ops.py +307 -0
  1126. mindspore/ops/operations/_grad_ops.py +3052 -0
  1127. mindspore/ops/operations/_infer_ops.py +19 -0
  1128. mindspore/ops/operations/_inner_ops.py +2567 -0
  1129. mindspore/ops/operations/_map_tensor_ops.py +112 -0
  1130. mindspore/ops/operations/_ms_kernel.py +601 -0
  1131. mindspore/ops/operations/_ocr_ops.py +379 -0
  1132. mindspore/ops/operations/_opaque_predicate_registry.py +41 -0
  1133. mindspore/ops/operations/_pyfunc_registry.py +58 -0
  1134. mindspore/ops/operations/_quant_ops.py +1844 -0
  1135. mindspore/ops/operations/_rl_inner_ops.py +1231 -0
  1136. mindspore/ops/operations/_scalar_ops.py +106 -0
  1137. mindspore/ops/operations/_sequence_ops.py +1155 -0
  1138. mindspore/ops/operations/_sparse_grad_ops.py +56 -0
  1139. mindspore/ops/operations/_tensor_array.py +359 -0
  1140. mindspore/ops/operations/_thor_ops.py +807 -0
  1141. mindspore/ops/operations/array_ops.py +6258 -0
  1142. mindspore/ops/operations/comm_ops.py +1996 -0
  1143. mindspore/ops/operations/control_ops.py +127 -0
  1144. mindspore/ops/operations/custom_ops.py +1065 -0
  1145. mindspore/ops/operations/debug_ops.py +646 -0
  1146. mindspore/ops/operations/image_ops.py +1041 -0
  1147. mindspore/ops/operations/inner_ops.py +697 -0
  1148. mindspore/ops/operations/linalg_ops.py +95 -0
  1149. mindspore/ops/operations/manually_defined/__init__.py +24 -0
  1150. mindspore/ops/operations/manually_defined/_inner.py +61 -0
  1151. mindspore/ops/operations/manually_defined/ops_def.py +2016 -0
  1152. mindspore/ops/operations/math_ops.py +5306 -0
  1153. mindspore/ops/operations/nn_ops.py +9669 -0
  1154. mindspore/ops/operations/other_ops.py +871 -0
  1155. mindspore/ops/operations/random_ops.py +1243 -0
  1156. mindspore/ops/operations/reshard_ops.py +53 -0
  1157. mindspore/ops/operations/rl_ops.py +288 -0
  1158. mindspore/ops/operations/sparse_ops.py +2753 -0
  1159. mindspore/ops/operations/spectral_ops.py +111 -0
  1160. mindspore/ops/primitive.py +1034 -0
  1161. mindspore/ops/signature.py +54 -0
  1162. mindspore/ops/silent_check.py +162 -0
  1163. mindspore/ops/vm_impl_registry.py +91 -0
  1164. mindspore/ops_generate/__init__.py +27 -0
  1165. mindspore/ops_generate/arg_dtype_cast.py +250 -0
  1166. mindspore/ops_generate/arg_handler.py +197 -0
  1167. mindspore/ops_generate/gen_aclnn_implement.py +263 -0
  1168. mindspore/ops_generate/gen_ops.py +1084 -0
  1169. mindspore/ops_generate/gen_ops_inner_prim.py +131 -0
  1170. mindspore/ops_generate/gen_pyboost_func.py +968 -0
  1171. mindspore/ops_generate/gen_utils.py +209 -0
  1172. mindspore/ops_generate/op_proto.py +138 -0
  1173. mindspore/ops_generate/pyboost_utils.py +354 -0
  1174. mindspore/ops_generate/template.py +239 -0
  1175. mindspore/parallel/__init__.py +28 -0
  1176. mindspore/parallel/_auto_parallel_context.py +1466 -0
  1177. mindspore/parallel/_cell_wrapper.py +91 -0
  1178. mindspore/parallel/_cost_model_context.py +700 -0
  1179. mindspore/parallel/_dp_allreduce_fusion.py +159 -0
  1180. mindspore/parallel/_offload_context.py +275 -0
  1181. mindspore/parallel/_parallel_serialization.py +533 -0
  1182. mindspore/parallel/_ps_context.py +242 -0
  1183. mindspore/parallel/_recovery_context.py +110 -0
  1184. mindspore/parallel/_tensor.py +660 -0
  1185. mindspore/parallel/_transformer/__init__.py +35 -0
  1186. mindspore/parallel/_transformer/layers.py +765 -0
  1187. mindspore/parallel/_transformer/loss.py +251 -0
  1188. mindspore/parallel/_transformer/moe.py +693 -0
  1189. mindspore/parallel/_transformer/op_parallel_config.py +222 -0
  1190. mindspore/parallel/_transformer/transformer.py +3119 -0
  1191. mindspore/parallel/_utils.py +600 -0
  1192. mindspore/parallel/algo_parameter_config.py +400 -0
  1193. mindspore/parallel/checkpoint_transform.py +643 -0
  1194. mindspore/parallel/cluster/__init__.py +15 -0
  1195. mindspore/parallel/cluster/process_entity/__init__.py +18 -0
  1196. mindspore/parallel/cluster/process_entity/_api.py +344 -0
  1197. mindspore/parallel/cluster/process_entity/_utils.py +126 -0
  1198. mindspore/parallel/cluster/run.py +136 -0
  1199. mindspore/parallel/mpi/__init__.py +14 -0
  1200. mindspore/parallel/mpi/_mpi_config.py +116 -0
  1201. mindspore/parallel/parameter_broadcast.py +152 -0
  1202. mindspore/parallel/shard.py +350 -0
  1203. mindspore/perf_msvcbuildinsights.dll +0 -0
  1204. mindspore/pgodb140.dll +0 -0
  1205. mindspore/pgort140.dll +0 -0
  1206. mindspore/profiler/__init__.py +27 -0
  1207. mindspore/profiler/common/__init__.py +14 -0
  1208. mindspore/profiler/common/exceptions/__init__.py +14 -0
  1209. mindspore/profiler/common/exceptions/error_code.py +83 -0
  1210. mindspore/profiler/common/exceptions/exceptions.py +286 -0
  1211. mindspore/profiler/common/process_pool.py +41 -0
  1212. mindspore/profiler/common/singleton.py +28 -0
  1213. mindspore/profiler/common/struct_type.py +118 -0
  1214. mindspore/profiler/common/util.py +444 -0
  1215. mindspore/profiler/common/validator/__init__.py +14 -0
  1216. mindspore/profiler/common/validator/validate_path.py +84 -0
  1217. mindspore/profiler/envprofiling.py +256 -0
  1218. mindspore/profiler/parser/__init__.py +14 -0
  1219. mindspore/profiler/parser/aicpu_data_parser.py +272 -0
  1220. mindspore/profiler/parser/ascend_analysis/__init__.py +14 -0
  1221. mindspore/profiler/parser/ascend_analysis/constant.py +53 -0
  1222. mindspore/profiler/parser/ascend_analysis/file_manager.py +159 -0
  1223. mindspore/profiler/parser/ascend_analysis/function_event.py +161 -0
  1224. mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +131 -0
  1225. mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +85 -0
  1226. mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +57 -0
  1227. mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +116 -0
  1228. mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +86 -0
  1229. mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +68 -0
  1230. mindspore/profiler/parser/ascend_cluster_generator.py +116 -0
  1231. mindspore/profiler/parser/ascend_communicate_generator.py +314 -0
  1232. mindspore/profiler/parser/ascend_flops_generator.py +116 -0
  1233. mindspore/profiler/parser/ascend_fpbp_generator.py +82 -0
  1234. mindspore/profiler/parser/ascend_hccl_generator.py +271 -0
  1235. mindspore/profiler/parser/ascend_integrate_generator.py +42 -0
  1236. mindspore/profiler/parser/ascend_memory_generator.py +185 -0
  1237. mindspore/profiler/parser/ascend_msprof_exporter.py +281 -0
  1238. mindspore/profiler/parser/ascend_msprof_generator.py +187 -0
  1239. mindspore/profiler/parser/ascend_op_generator.py +334 -0
  1240. mindspore/profiler/parser/ascend_steptrace_generator.py +94 -0
  1241. mindspore/profiler/parser/ascend_timeline_generator.py +543 -0
  1242. mindspore/profiler/parser/base_timeline_generator.py +489 -0
  1243. mindspore/profiler/parser/container.py +229 -0
  1244. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +684 -0
  1245. mindspore/profiler/parser/flops_parser.py +531 -0
  1246. mindspore/profiler/parser/framework_enum.py +111 -0
  1247. mindspore/profiler/parser/framework_parser.py +854 -0
  1248. mindspore/profiler/parser/framework_struct.py +61 -0
  1249. mindspore/profiler/parser/hccl_parser.py +573 -0
  1250. mindspore/profiler/parser/hwts_log_parser.py +122 -0
  1251. mindspore/profiler/parser/integrator.py +526 -0
  1252. mindspore/profiler/parser/memory_usage_parser.py +431 -0
  1253. mindspore/profiler/parser/minddata_analyzer.py +800 -0
  1254. mindspore/profiler/parser/minddata_parser.py +186 -0
  1255. mindspore/profiler/parser/minddata_pipeline_parser.py +299 -0
  1256. mindspore/profiler/parser/msadvisor_analyzer.py +82 -0
  1257. mindspore/profiler/parser/msadvisor_parser.py +240 -0
  1258. mindspore/profiler/parser/op_intermediate_parser.py +149 -0
  1259. mindspore/profiler/parser/optime_parser.py +250 -0
  1260. mindspore/profiler/parser/profiler_info.py +141 -0
  1261. mindspore/profiler/parser/step_trace_parser.py +666 -0
  1262. mindspore/profiler/profiling.py +2054 -0
  1263. mindspore/rewrite/__init__.py +29 -0
  1264. mindspore/rewrite/api/__init__.py +17 -0
  1265. mindspore/rewrite/api/node.py +519 -0
  1266. mindspore/rewrite/api/node_type.py +53 -0
  1267. mindspore/rewrite/api/pattern_engine.py +490 -0
  1268. mindspore/rewrite/api/scoped_value.py +181 -0
  1269. mindspore/rewrite/api/symbol_tree.py +497 -0
  1270. mindspore/rewrite/ast_helpers/__init__.py +25 -0
  1271. mindspore/rewrite/ast_helpers/ast_converter.py +143 -0
  1272. mindspore/rewrite/ast_helpers/ast_finder.py +404 -0
  1273. mindspore/rewrite/ast_helpers/ast_flattener.py +268 -0
  1274. mindspore/rewrite/ast_helpers/ast_modifier.py +605 -0
  1275. mindspore/rewrite/ast_helpers/ast_replacer.py +79 -0
  1276. mindspore/rewrite/common/__init__.py +19 -0
  1277. mindspore/rewrite/common/config.py +24 -0
  1278. mindspore/rewrite/common/error_log.py +39 -0
  1279. mindspore/rewrite/common/event.py +28 -0
  1280. mindspore/rewrite/common/namer.py +271 -0
  1281. mindspore/rewrite/common/namespace.py +118 -0
  1282. mindspore/rewrite/common/observable.py +44 -0
  1283. mindspore/rewrite/common/observer.py +54 -0
  1284. mindspore/rewrite/node/__init__.py +22 -0
  1285. mindspore/rewrite/node/call_function.py +95 -0
  1286. mindspore/rewrite/node/cell_container.py +139 -0
  1287. mindspore/rewrite/node/control_flow.py +113 -0
  1288. mindspore/rewrite/node/node.py +1428 -0
  1289. mindspore/rewrite/node/node_manager.py +283 -0
  1290. mindspore/rewrite/node/node_topological_manager.py +223 -0
  1291. mindspore/rewrite/parsers/__init__.py +29 -0
  1292. mindspore/rewrite/parsers/arguments_parser.py +63 -0
  1293. mindspore/rewrite/parsers/assign_parser.py +852 -0
  1294. mindspore/rewrite/parsers/attribute_parser.py +57 -0
  1295. mindspore/rewrite/parsers/class_def_parser.py +289 -0
  1296. mindspore/rewrite/parsers/constant_parser.py +104 -0
  1297. mindspore/rewrite/parsers/container_parser.py +88 -0
  1298. mindspore/rewrite/parsers/expr_parser.py +55 -0
  1299. mindspore/rewrite/parsers/for_parser.py +61 -0
  1300. mindspore/rewrite/parsers/function_def_parser.py +84 -0
  1301. mindspore/rewrite/parsers/if_parser.py +85 -0
  1302. mindspore/rewrite/parsers/module_parser.py +117 -0
  1303. mindspore/rewrite/parsers/parser.py +43 -0
  1304. mindspore/rewrite/parsers/parser_register.py +86 -0
  1305. mindspore/rewrite/parsers/return_parser.py +37 -0
  1306. mindspore/rewrite/parsers/while_parser.py +59 -0
  1307. mindspore/rewrite/sparsify/__init__.py +0 -0
  1308. mindspore/rewrite/sparsify/sparse_transformer.py +457 -0
  1309. mindspore/rewrite/sparsify/sparsify.py +112 -0
  1310. mindspore/rewrite/sparsify/utils.py +179 -0
  1311. mindspore/rewrite/symbol_tree/__init__.py +20 -0
  1312. mindspore/rewrite/symbol_tree/symbol_tree.py +1819 -0
  1313. mindspore/rewrite/symbol_tree/symbol_tree_builder.py +76 -0
  1314. mindspore/rewrite/symbol_tree/symbol_tree_dumper.py +142 -0
  1315. mindspore/run_check/__init__.py +20 -0
  1316. mindspore/run_check/_check_version.py +574 -0
  1317. mindspore/run_check/run_check.py +66 -0
  1318. mindspore/safeguard/__init__.py +18 -0
  1319. mindspore/safeguard/rewrite_obfuscation.py +531 -0
  1320. mindspore/swresample-4.dll +0 -0
  1321. mindspore/swscale-6.dll +0 -0
  1322. mindspore/tbbmalloc.dll +0 -0
  1323. mindspore/tinyxml2.dll +0 -0
  1324. mindspore/train/__init__.py +47 -0
  1325. mindspore/train/_utils.py +439 -0
  1326. mindspore/train/amp.py +817 -0
  1327. mindspore/train/anf_ir_pb2.py +1517 -0
  1328. mindspore/train/callback/__init__.py +44 -0
  1329. mindspore/train/callback/_backup_and_restore.py +117 -0
  1330. mindspore/train/callback/_callback.py +613 -0
  1331. mindspore/train/callback/_checkpoint.py +751 -0
  1332. mindspore/train/callback/_cluster_monitor.py +201 -0
  1333. mindspore/train/callback/_dataset_graph.py +150 -0
  1334. mindspore/train/callback/_early_stop.py +239 -0
  1335. mindspore/train/callback/_flops_collector.py +238 -0
  1336. mindspore/train/callback/_history.py +92 -0
  1337. mindspore/train/callback/_lambda_callback.py +80 -0
  1338. mindspore/train/callback/_landscape.py +1049 -0
  1339. mindspore/train/callback/_loss_monitor.py +107 -0
  1340. mindspore/train/callback/_lr_scheduler_callback.py +76 -0
  1341. mindspore/train/callback/_mindio_ttp.py +443 -0
  1342. mindspore/train/callback/_on_request_exit.py +195 -0
  1343. mindspore/train/callback/_reduce_lr_on_plateau.py +226 -0
  1344. mindspore/train/callback/_summary_collector.py +1184 -0
  1345. mindspore/train/callback/_time_monitor.py +141 -0
  1346. mindspore/train/checkpoint_pb2.py +233 -0
  1347. mindspore/train/data_sink.py +219 -0
  1348. mindspore/train/dataset_helper.py +688 -0
  1349. mindspore/train/lineage_pb2.py +1260 -0
  1350. mindspore/train/loss_scale_manager.py +213 -0
  1351. mindspore/train/memory_profiling_pb2.py +298 -0
  1352. mindspore/train/metrics/__init__.py +175 -0
  1353. mindspore/train/metrics/accuracy.py +133 -0
  1354. mindspore/train/metrics/auc.py +129 -0
  1355. mindspore/train/metrics/bleu_score.py +170 -0
  1356. mindspore/train/metrics/confusion_matrix.py +700 -0
  1357. mindspore/train/metrics/cosine_similarity.py +109 -0
  1358. mindspore/train/metrics/dice.py +116 -0
  1359. mindspore/train/metrics/error.py +175 -0
  1360. mindspore/train/metrics/fbeta.py +167 -0
  1361. mindspore/train/metrics/hausdorff_distance.py +333 -0
  1362. mindspore/train/metrics/loss.py +97 -0
  1363. mindspore/train/metrics/mean_surface_distance.py +189 -0
  1364. mindspore/train/metrics/metric.py +373 -0
  1365. mindspore/train/metrics/occlusion_sensitivity.py +225 -0
  1366. mindspore/train/metrics/perplexity.py +133 -0
  1367. mindspore/train/metrics/precision.py +160 -0
  1368. mindspore/train/metrics/recall.py +159 -0
  1369. mindspore/train/metrics/roc.py +223 -0
  1370. mindspore/train/metrics/root_mean_square_surface_distance.py +191 -0
  1371. mindspore/train/metrics/topk.py +167 -0
  1372. mindspore/train/mind_ir_pb2.py +1903 -0
  1373. mindspore/train/model.py +2176 -0
  1374. mindspore/train/node_strategy_pb2.py +653 -0
  1375. mindspore/train/print_pb2.py +184 -0
  1376. mindspore/train/profiling_parallel_pb2.py +151 -0
  1377. mindspore/train/serialization.py +3101 -0
  1378. mindspore/train/summary/__init__.py +23 -0
  1379. mindspore/train/summary/_lineage_adapter.py +41 -0
  1380. mindspore/train/summary/_summary_adapter.py +496 -0
  1381. mindspore/train/summary/_writer_pool.py +207 -0
  1382. mindspore/train/summary/enums.py +56 -0
  1383. mindspore/train/summary/summary_record.py +581 -0
  1384. mindspore/train/summary/writer.py +167 -0
  1385. mindspore/train/summary_pb2.py +1165 -0
  1386. mindspore/train/train_thor/__init__.py +20 -0
  1387. mindspore/train/train_thor/convert_utils.py +268 -0
  1388. mindspore/train/train_thor/dataset_helper.py +192 -0
  1389. mindspore/train/train_thor/model_thor.py +257 -0
  1390. mindspore/turbojpeg.dll +0 -0
  1391. mindspore/vcmeta.dll +0 -0
  1392. mindspore/vcomp140.dll +0 -0
  1393. mindspore/vcruntime140.dll +0 -0
  1394. mindspore/vcruntime140_1.dll +0 -0
  1395. mindspore/version.py +1 -0
  1396. mindspore-2.3.0.dist-info/METADATA +351 -0
  1397. mindspore-2.3.0.dist-info/RECORD +1400 -0
  1398. mindspore-2.3.0.dist-info/WHEEL +5 -0
  1399. mindspore-2.3.0.dist-info/entry_points.txt +4 -0
  1400. mindspore-2.3.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,2148 @@
1
+ # Copyright 2020-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
+ """pooling"""
16
+ from __future__ import absolute_import
17
+
18
+ from mindspore.ops import operations as P
19
+ from mindspore.ops import functional as F
20
+ import mindspore.ops as ops
21
+ from mindspore._checkparam import _check_3d_int_or_tuple
22
+ from mindspore import _checkparam as validator
23
+ from mindspore.ops.primitive import constexpr, _primexpr
24
+ from mindspore.common.tensor import Tensor
25
+ import mindspore.context as context
26
+ from mindspore.common import dtype as mstype
27
+ from mindspore.ops.operations.nn_ops import AdaptiveMaxPool2D
28
+ from mindspore.ops.operations.nn_ops import AdaptiveMaxPool3D, AdaptiveAvgPool3D
29
+ from mindspore.nn.cell import Cell
30
+ from mindspore._c_expression import MSContext
31
+
32
+ __all__ = ['AvgPool3d', 'MaxPool3d', 'AvgPool2d', 'MaxPool2d', 'AvgPool1d', 'MaxPool1d', 'FractionalMaxPool2d',
33
+ 'FractionalMaxPool3d', 'AdaptiveAvgPool1d', 'AdaptiveMaxPool1d', 'AdaptiveMaxPool2d', 'AdaptiveMaxPool3d',
34
+ 'AdaptiveAvgPool2d', 'AdaptiveAvgPool3d', 'MaxUnpool1d', 'MaxUnpool2d', 'MaxUnpool3d', 'LPPool1d',
35
+ 'LPPool2d']
36
+
37
+
38
+ class _PoolNd(Cell):
39
+ """N-D AvgPool"""
40
+
41
+ def __init__(self, kernel_size, stride, pad_mode, data_format="NCHW"):
42
+ """Initialize _PoolNd."""
43
+ super(_PoolNd, self).__init__()
44
+ validator.check_value_type('pad_mode', pad_mode, [str], self.cls_name)
45
+ self.pad_mode = validator.check_string(pad_mode.upper(), ['VALID', 'SAME', 'PAD'], 'pad_mode', self.cls_name)
46
+ self.format = validator.check_string(data_format, ['NCHW', 'NHWC'], 'format', self.cls_name)
47
+ if context.get_context("device_target") != "GPU" and self.format == "NHWC":
48
+ raise ValueError(f"For '{self.cls_name}, the 'NHWC' format only support in GPU target, but got device "
49
+ f"target {context.get_context('device_target')}.")
50
+
51
+ def _check_int_or_tuple(arg_name, arg_value):
52
+ validator.check_value_type(arg_name, arg_value, [int, tuple], self.cls_name)
53
+ error_msg = f"For '{self.cls_name}', the '{arg_name}' must be an positive int number or " \
54
+ f"a tuple, but got {arg_value}"
55
+ if isinstance(arg_value, int):
56
+ if arg_value <= 0:
57
+ raise ValueError(error_msg)
58
+ else:
59
+ for item in arg_value:
60
+ if isinstance(item, int) and item > 0:
61
+ continue
62
+ raise ValueError(error_msg)
63
+ if len(arg_value) == 1:
64
+ return arg_value[0]
65
+ return arg_value
66
+
67
+ self.kernel_size = _check_int_or_tuple('kernel_size', kernel_size)
68
+ self.stride = _check_int_or_tuple('stride', stride)
69
+
70
+ def construct(self, *inputs):
71
+ pass
72
+
73
+ def extend_repr(self):
74
+ return 'kernel_size={kernel_size}, stride={stride}, pad_mode={pad_mode}'.format(**self.__dict__)
75
+
76
+
77
+ @_primexpr
78
+ def _shape_check(in_shape, prim_name=None):
79
+ msg_prefix = f"For '{prim_name}', the" if prim_name else "The"
80
+
81
+ def _check():
82
+ if len(in_shape) != 3:
83
+ raise ValueError(f"{msg_prefix} input must has 3 dim, but got {len(in_shape)}")
84
+
85
+ _check()
86
+
87
+
88
+ class LPPool1d(Cell):
89
+ r"""
90
+ Applying 1D LPPooling operation on an input Tensor can be regarded as forming a 1D input plane.
91
+
92
+ Typically the input is of shape :math:`(N_{in}, C_{in}, L_{in})` or :math:`(C_{in}, L_{in})``, the output is of
93
+ shape :math:`(N_{out}, C_{out}, L_{out})` or :math:`(C_{out}, L_{out})`, with the same shape as input,
94
+ the operation is as follows.
95
+
96
+ .. math::
97
+ f(X) = \sqrt[p]{\sum_{x \in X} x^{p}}
98
+
99
+ Args:
100
+ norm_type (Union[int, float]): Type of normalization, represents :math:`p` in the formula, can not be 0.
101
+
102
+ - if p = 1, the result is the sum of the elements within the pooling kernel(proportional to average
103
+ pooling).
104
+ - if p = :math:`\infty`, the result is the result of maximum pooling.
105
+
106
+ kernel_size (int): The size of kernel window.
107
+ stride (int): The distance of kernel moving, an int number that represents the width of movement is stride,
108
+ if the value is None, the default value `kernel_size` is used. Default: ``None`` .
109
+ ceil_mode (bool): If ``True``, use ceil to calculate output shape.
110
+ If ``False``, use ceil to calculate output shape. Default: ``False`` .
111
+
112
+ Inputs:
113
+ - **x** (Tensor) - Tensor of shape :math:`(N_{in}, C_{in}, L_{in})` or :math:`(C_{in}, L_{in})`.
114
+
115
+ Outputs:
116
+ - **output** (Tensor) - LPPool1d result, with shape :math:`(N_{out}, C_{out}, L_{out})` or
117
+ :math:`(C_{out}, L_{out})`, it has the same data type as `x`, where
118
+
119
+ .. math::
120
+ L_{out} = \left\lfloor\frac{L_{in} - \text{kernel_size}}{\text{stride}} + 1\right\rfloor
121
+
122
+
123
+ Raises:
124
+ TypeError: If `x` is not a Tensor.
125
+ TypeError: If `kernel_size` or `stride` is not an int.
126
+ TypeError: If `ceil_mode` is not a bool.
127
+ TypeError: If `norm_type` is neither float nor int.
128
+ ValueError: If `norm_type` is equal to 0.
129
+ ValueError: If `kernel_size` or `stride` is less than 1.
130
+ ValueError: If length of shape of `x` is not equal to 2 or 3.
131
+
132
+ Supported Platforms:
133
+ ``Ascend`` ``GPU`` ``CPU``
134
+
135
+ Examples:
136
+ >>> import mindspore as ms
137
+ >>> import numpy as np
138
+ >>> a = ms.Tensor(np.arange(2 * 3 * 4).reshape((2, 3, 4)), dtype=ms.float32)
139
+ >>> net = ms.nn.LPPool1d(norm_type=1, kernel_size=3, stride=1)
140
+ >>> out = net(a)
141
+ >>> print(out)
142
+ [[[ 3. 6.]
143
+ [15. 18.]
144
+ [27. 30.]]
145
+ [[39. 42.]
146
+ [51. 54.]
147
+ [63. 66.]]]
148
+ """
149
+
150
+ def __init__(self, norm_type, kernel_size, stride=None, ceil_mode=False):
151
+ super(LPPool1d, self).__init__()
152
+ self.norm_type = norm_type
153
+ self.kernel_size = kernel_size
154
+ self.stride = stride
155
+ self.ceil_mode = ceil_mode
156
+
157
+ def construct(self, x):
158
+ return ops.lp_pool1d(x, self.norm_type, self.kernel_size,
159
+ self.stride, self.ceil_mode)
160
+
161
+
162
+ class LPPool2d(Cell):
163
+ r"""
164
+ Applying 2D LPPooling operation on an input Tensor can be regarded as forming a 1D input plane.
165
+
166
+ Typically the input is of shape :math:`(N, C, H_{in}, W_{in})`, the output is of shape
167
+ :math:`(N, C, H_{in}, W_{in})`, with the same shape as input, the operation is as follows.
168
+
169
+ .. math::
170
+ f(X) = \sqrt[p]{\sum_{x \in X} x^{p}}
171
+
172
+ Args:
173
+ norm_type(Union[int, float]): Type of normalization, represents :math:`p` in the formula, can not be 0.
174
+
175
+ - if p = 1, the result is the sum of the elements within the pooling kernel(proportional to average
176
+ pooling).
177
+ - if p = :math:`\infty`, the result is the result of maximum pooling.
178
+
179
+ kernel_size(Union[int, tuple[int]]): The size of kernel window.
180
+ The data type of kernel_size must be int and the value represents the height and width,
181
+ or a tuple of two int numbers that represent height and width respectively.
182
+ stride(Union[int, tuple[int]]): The distance of kernel moving, an int number that represents
183
+ the height and width of movement are both stride, or a tuple of two int numbers that
184
+ represent height and width of movement respectively, if the value is ``None``,
185
+ the default value `kernel_size` is used. Default: ``None`` .
186
+ ceil_mode(bool): Whether to use ceil or floor to calculate output shape. Default: ``False`` .
187
+
188
+ Inputs:
189
+ - **x** (Tensor) - Tensor of shape :math:`(N, C, H_{in}, W_{in})`.
190
+
191
+ Outputs:
192
+ - **output** (Tensor) - LPPool2d result, with shape :math:`(N, C, H_{in}, W_{in})`,
193
+ It has the same data type as `x`, where
194
+
195
+ .. math::
196
+ H_{out} = \left\lfloor\frac{H_{in} - \text{kernel_size}[0]}{\text{stride}[0]} + 1\right\rfloor
197
+
198
+ .. math::
199
+ W_{out} = \left\lfloor\frac{W_{in} - \text{kernel_size}[1]}{\text{stride}[1]} + 1\right\rfloor
200
+
201
+ Raises:
202
+ TypeError: If `x` is not a Tensor.
203
+ TypeError: If `kernel_size` or `stride` is neither int nor tuple.
204
+ TypeError: If `ceil_mode` is not a bool.
205
+ TypeError: If `norm_type` is neither float nor int.
206
+ ValueError: If `norm_type` is equal to 0.
207
+ ValueError: If `kernel_size` or `stride` is less than 1.
208
+ ValueError: If `kernel_size` or `stride` is a tuple whose length is not equal to `2`.
209
+ ValueError: If length of shape of `x` is not equal to 4.
210
+
211
+ Supported Platforms:
212
+ ``Ascend`` ``GPU`` ``CPU``
213
+
214
+ Examples:
215
+ >>> import mindspore as ms
216
+ >>> import numpy as np
217
+ >>> a = ms.Tensor(np.arange(2 * 3 * 4 * 5).reshape((2, 3, 4, 5)), dtype=ms.float32)
218
+ >>> net = ms.nn.LPPool2d(norm_type=1, kernel_size=3, stride=1)
219
+ >>> out = net(a)
220
+ >>> print(out)
221
+ [[[[ 54. 63. 72.]
222
+ [ 99. 108. 117.]]
223
+ [[ 234. 243. 252.]
224
+ [ 279. 288. 297.]]
225
+ [[ 414. 423. 432.]
226
+ [ 459. 468. 477.]]]
227
+ [[[ 594. 603. 612.]
228
+ [ 639. 648. 657.]]
229
+ [[ 774. 783. 792.]
230
+ [ 819. 828. 837.]]
231
+ [[ 954. 963. 972.]
232
+ [ 999. 1008. 1017.]]]]
233
+ """
234
+
235
+ def __init__(self, norm_type, kernel_size, stride=None, ceil_mode=False):
236
+ super(LPPool2d, self).__init__()
237
+ self.norm_type = norm_type
238
+ self.kernel_size = kernel_size
239
+ self.stride = stride
240
+ self.ceil_mode = ceil_mode
241
+
242
+ def construct(self, x):
243
+ return ops.lp_pool2d(x, self.norm_type, self.kernel_size,
244
+ self.stride, self.ceil_mode)
245
+
246
+
247
+ def _check_maxpool_padding(padding, nd, cls_name):
248
+ """Calculate maxpool padding before call primitive"""
249
+ validator.check_value_type('padding', padding, (int, tuple, list), cls_name)
250
+ if isinstance(padding, int):
251
+ return (0,) * (3 - nd) + (padding,) * nd
252
+ if isinstance(padding, (tuple, list)):
253
+ validator.check_non_negative_int_sequence(padding, "padding", cls_name)
254
+ if len(padding) == 1:
255
+ return (0,) * (3 - nd) + tuple(padding * nd)
256
+ if len(padding) != nd:
257
+ raise ValueError(f"For {cls_name}, the length of padding must equal to {nd}, but got {len(padding)}.")
258
+ return (0,) * (3 - nd) + tuple(padding)
259
+ return padding
260
+
261
+
262
+ def _cal_dilation(dilation, nd, cls_name):
263
+ """check the dilation"""
264
+ if isinstance(dilation, int):
265
+ return dilation
266
+ if isinstance(dilation, tuple):
267
+ if len(dilation) == 1:
268
+ return dilation[0]
269
+ if len(dilation) == nd:
270
+ return (3 - nd) * (1,) + dilation
271
+ if nd == 1:
272
+ raise ValueError(f"For {cls_name}, the length of 'dilation' must be 1, but got {len(dilation)}.")
273
+ raise ValueError(f"For {cls_name}, the length of 'dilation' must be 1 or {nd}, but got {len(dilation)}.")
274
+ raise ValueError(f"For {cls_name}, the 'dilation' must be int or tuple, but got {type(dilation)}.")
275
+
276
+
277
+ class MaxPool3d(_PoolNd):
278
+ r"""
279
+ 3D max pooling operation.
280
+
281
+ Applies a 3D max pooling over an input Tensor which can be regarded as a composition of 3D planes.
282
+
283
+ Typically the input is of shape :math:`(N_{in}, C_{in}, D_{in}, H_{in}, W_{in})`, MaxPool outputs
284
+ regional maximum in the :math:`(D_{in}, H_{in}, W_{in})`-dimension. Given kernel size is
285
+ :math:`ks = (d_{ker}, h_{ker}, w_{ker})` and stride is :math:`s = (s_0, s_1, s_2)`, the operation is as follows.
286
+
287
+ .. math::
288
+ \text{output}(N_i, C_j, d, h, w) =
289
+ \max_{l=0, \ldots, d_{ker}-1} \max_{m=0, \ldots, h_{ker}-1} \max_{n=0, \ldots, w_{ker}-1}
290
+ \text{input}(N_i, C_j, s_0 \times d + l, s_1 \times h + m, s_2 \times w + n)
291
+
292
+ Args:
293
+ kernel_size (Union[int, tuple[int]]): The size of kernel used to take the maximum value,
294
+ is an int number or a single element tuple that represents depth, height and width of the kernel, or a tuple
295
+ of three int numbers that represent depth, height and width respectively.
296
+ The value must be a positive integer. Default: ``1`` .
297
+ stride (Union[int, tuple[int]]): The moving stride of pooling operation, an int number or a single element tuple
298
+ that represents the moving stride of pooling kernel in the directions of depth, height and the width,
299
+ or a tuple of three int numbers that represent depth, height and width of movement respectively.
300
+ The value must be a positive integer. If the value is None, the default value `kernel_size` is used.
301
+ Default: ``1`` .
302
+ pad_mode (str, optional): Specifies the padding mode with a padding value of 0. It can be set to:
303
+ ``"same"`` , ``"valid"`` or ``"pad"`` . Default: ``"valid"`` .
304
+
305
+ - ``"same"``: Pad the input around its depth/height/width dimension so that the shape of input and output
306
+ are the same when `stride` is set to ``1``.
307
+ The amount of padding to is calculated by the operator internally. If the amount is even,
308
+ it isuniformly distributed around the input, if it is odd, the excess amount goes
309
+ to the front/right/bottom side.
310
+ If this mode is set, `padding` must be 0.
311
+ - ``"valid"``: No padding is applied to the input, and the output returns the maximum
312
+ possible depth, height and width. Extra pixels that could not complete a full stride will
313
+ be discarded. If this mode is set, `padding` must be 0.
314
+ - ``"pad"``: Pad the input with a specified amount. In this mode, the amount of padding
315
+ in the depth, height and width dimension is determined by the `padding` parameter.
316
+ If this mode is set, `padding` must be greater than or equal to 0.
317
+
318
+ padding (Union(int, tuple[int], list[int])): Pooling padding value. Default: ``0`` .
319
+ `padding` can only be an integer or a tuple/list containing one or three integers.
320
+ If `padding` is an integer or a tuple/list containing one integer, it will be padded in six directions of
321
+ front, back, top, bottom, left and right of the input. If `padding` is a tuple/list containing three
322
+ integers, it will be padded in front and back of the input `padding[0]` times, up and down `padding[1]`
323
+ times, and left and right of the input `padding[2]` times.
324
+ dilation (Union(int, tuple[int])): The spacing between the elements of the kernel in convolution,
325
+ used to increase the receptive field of the pooling operation. If it is a tuple, it must contain one or
326
+ three integers. Default: ``1`` .
327
+ return_indices (bool): If ``True`` , output is a Tuple of 2 Tensors, representing the maxpool result and where
328
+ the max values are generated. Otherwise, only the maxpool result is returned. Default: ``False`` .
329
+ ceil_mode (bool): If ``True``, use ceil to calculate output shape.
330
+ If ``False``, use ceil to calculate output shape. Default: ``False`` .
331
+
332
+ Inputs:
333
+ - **x** (Tensor) - Tensor of shape :math:`(N_{in}, C_{in}, D_{in}, H_{in}, W_{in})` or
334
+ :math:`(C_{in}, D_{in}, H_{in}, W_{in})`.
335
+
336
+ Outputs:
337
+ If `return_indices` is False, output is a Tensor, with shape
338
+ :math:`(N_{out}, C_{out}, D_{out}, H_{out}, W_{out})` or :math:`(C_{out}, D_{out}, H_{out}, W_{out})`.
339
+ It has the same data type as `x`.
340
+
341
+ If `return_indices` is True, output is a Tuple of 2 Tensors, representing the maxpool result and where
342
+ the max values are generated.
343
+
344
+ - **output** (Tensor) - Maxpooling result, with shape :math:`(N_{out}, C_{out}, D_{out}, H_{out}, W_{out})` or
345
+ :math:`(C_{out}, D_{out}, H_{out}, W_{out})`. It has the same data type as `x`.
346
+ - **argmax** (Tensor) - Index corresponding to the maximum value. Data type is int64.
347
+
348
+ If `pad_mode` is in ``"pad"`` mode, the output shape calculation formula is as follows:
349
+
350
+ .. math::
351
+ D_{out} = \left\lfloor\frac{D_{in} + 2 \times \text{padding}[0] - \text{dilation}[0] \times
352
+ (\text{kernel_size}[0] - 1) - 1}{\text{stride}[0]} + 1\right\rfloor
353
+
354
+ .. math::
355
+ H_{out} = \left\lfloor\frac{H_{in} + 2 \times \text{padding}[1] - \text{dilation}[1] \times
356
+ (\text{kernel_size}[1] - 1) - 1}{\text{stride}[1]} + 1\right\rfloor
357
+
358
+ .. math::
359
+ W_{out} = \left\lfloor\frac{W_{in} + 2 \times \text{padding}[2] - \text{dilation}[2] \times
360
+ (\text{kernel_size}[2] - 1) - 1}{\text{stride}[2]} + 1\right\rfloor
361
+
362
+ Raises:
363
+ ValueError: If length of shape of `x` is not equal to 4 or 5.
364
+ TypeError: If `kernel_size` , `stride` , `padding` or `dilation` is neither an int nor a tuple.
365
+ ValueError: If `kernel_size` or `stride` is less than 1.
366
+ ValueError: If the `padding` parameter is neither an integer nor a tuple of length 3.
367
+ ValueError: If `pad_mode` is not set to ``"pad"``, setting return_indices to True or dilation to a value
368
+ other than 1.
369
+ ValueError: If `padding` is non-zero when `pad_mode` is not ``"pad"``.
370
+
371
+ Supported Platforms:
372
+ ``Ascend`` ``GPU`` ``CPU``
373
+
374
+ Examples:
375
+ >>> import mindspore as ms
376
+ >>> import mindspore.nn as nn
377
+ >>> import numpy as np
378
+ >>> np_x = np.random.randint(0, 10, [5, 3, 4, 6, 7])
379
+ >>> x = Tensor(np_x, ms.float32)
380
+ >>> pool1 = nn.MaxPool3d(kernel_size=2, stride=1, pad_mode="pad", padding=1, dilation=3, return_indices=True)
381
+ >>> output = pool1(x)
382
+ >>> print(output[0].shape)
383
+ (5, 3, 3, 5, 6)
384
+ >>> print(output[1].shape)
385
+ (5, 3, 3, 5, 6)
386
+ >>> pool2 = nn.MaxPool3d(kernel_size=2, stride=1, pad_mode="pad", padding=1, dilation=3, return_indices=False)
387
+ >>> output2 = pool2(x)
388
+ >>> print(output2.shape)
389
+ (5, 3, 3, 5, 6)
390
+ """
391
+
392
+ def __init__(self, kernel_size=1, stride=1, pad_mode="valid", padding=0, dilation=1, return_indices=False,
393
+ ceil_mode=False):
394
+ """Initialize MaxPool3d."""
395
+ super(MaxPool3d, self).__init__(kernel_size, stride, pad_mode)
396
+ self.return_indices = return_indices
397
+ padding = _check_maxpool_padding(padding, 3, self.cls_name)
398
+ _check_3d_int_or_tuple("padding", padding, self.cls_name, greater_zero=False, ret_five=False)
399
+ if dilation != 1 or return_indices:
400
+ self.only_pad = True
401
+ if pad_mode.upper() != "PAD":
402
+ raise ValueError(f"For {self.cls_name}, the pad_mode must be 'pad' when dilation is not 1 "
403
+ f"or return_indices is True, but got pad_mode:{pad_mode}.")
404
+ self.max_pool = P.MaxPool3DWithArgmax(ksize=kernel_size, strides=stride, pads=padding,
405
+ dilation=dilation, ceil_mode=ceil_mode)
406
+ else:
407
+ self.only_pad = False
408
+ ceil_mode = None if not ceil_mode else True
409
+ self.max_pool = P.MaxPool3D(kernel_size=kernel_size, strides=stride, pad_mode=pad_mode, pad_list=padding,
410
+ ceil_mode=ceil_mode)
411
+
412
+ def construct(self, x):
413
+ expand_batch = False
414
+ if x.ndim == 4:
415
+ x = x.unsqueeze(0)
416
+ expand_batch = True
417
+ out = self.max_pool(x)
418
+ if expand_batch:
419
+ if isinstance(out, tuple):
420
+ out = (out[0].squeeze(0), out[1].squeeze(0))
421
+ else:
422
+ out = out.squeeze(0)
423
+ if self.only_pad and not self.return_indices:
424
+ return out[0]
425
+ return out
426
+
427
+
428
+ class MaxPool2d(_PoolNd):
429
+ r"""
430
+ Applies a 2D max pooling over an input Tensor which can be regarded as a composition of 2D planes.
431
+
432
+ Typically the input is of shape :math:`(N_{in}, C_{in}, H_{in}, W_{in})`, MaxPool2d outputs
433
+ regional maximum in the :math:`(H_{in}, W_{in})`-dimension. Given kernel size
434
+ :math:`(h_{ker}, w_{ker})` and stride :math:`(s_0, s_1)`, the operation is as follows.
435
+
436
+ .. math::
437
+ \text{output}(N_i, C_j, h, w) = \max_{m=0, \ldots, h_{ker}-1} \max_{n=0, \ldots, w_{ker}-1}
438
+ \text{input}(N_i, C_j, s_0 \times h + m, s_1 \times w + n)
439
+
440
+ Args:
441
+ kernel_size (Union[int, tuple[int]]): The size of kernel used to take the max value,
442
+ is an int number or a single element tuple that represents height and width are both kernel_size,
443
+ or a tuple of two int numbers that represent height and width respectively.
444
+ Default: ``1`` .
445
+ stride (Union[int, tuple[int]]): The distance of kernel moving, an int number or a single element tuple that
446
+ represents the height and width of movement are both stride, or a tuple of two int numbers that
447
+ represent height and width of movement respectively. Default: ``1`` .
448
+ pad_mode (str, optional): Specifies the padding mode with a padding value of 0. It can be set to:
449
+ ``"same"`` , ``"valid"`` or ``"pad"`` . Default: ``"valid"`` .
450
+
451
+ - ``"same"``: Pad the input around its edges so that the shape of input and output
452
+ are the same when `stride` is set to ``1``.
453
+ The amount of padding to is calculated by the operator internally, If the amount is even, it is
454
+ uniformly distributed around the input, if it is odd, the excess amount goes to the right/bottom side.
455
+ If this mode is set, `padding` must be 0.
456
+ - ``"valid"``: No padding is applied to the input, and the output returns the maximum
457
+ possible height and width. Extra pixels that could not complete a full stride will
458
+ be discarded. If this mode is set, `padding` must be 0.
459
+ - ``"pad"``: Pad the input with a specified amount. In this mode, the amount of padding
460
+ in the height and width directions is determined by the `padding` parameter.
461
+ If this mode is set, `padding` must be greater than or equal to 0.
462
+
463
+ padding (Union(int, tuple[int], list[int])): Specifies the padding value of the pooling operation.
464
+ Default: ``0`` . `padding` can only be an integer or a tuple/list containing one or two integers. If
465
+ `padding` is an integer or a tuple/list containing one integer, it will be padded `padding` times in the
466
+ four directions of the input. If `padding` is a tuple/list containing two integers, it will be padded
467
+ `padding[0]` times in the up-down direction of the input and `padding[1]` times in the left-right direction
468
+ of the input.
469
+ dilation (Union(int, tuple[int])): The spacing between the elements of the kernel in convolution,
470
+ used to increase the receptive field of the pooling operation. If it is a tuple, it must contain one or two
471
+ integers. Default: ``1`` .
472
+ return_indices (bool): If ``True`` , the function will return both the result of max pooling and the indices of
473
+ the max elements. Default: ``False`` .
474
+ ceil_mode (bool): If ``True`` , use ceil to compute the output shape instead of floor. Default: ``False`` .
475
+ data_format (str): The optional value for data format, is ``'NHWC'`` or ``'NCHW'`` .
476
+ Default: ``'NCHW'`` .
477
+
478
+ Inputs:
479
+ - **x** (Tensor) - Tensor of shape :math:`(N,C_{in},H_{in},W_{in})` or :math:`(C_{in},H_{in},W_{in})`.
480
+
481
+ Outputs:
482
+ If `return_indices` is False, output is a Tensor, with shape :math:`(N, C, H_{out}, W_{out})` or
483
+ :math:`(C_{out}, H_{out}, W_{out})`. It has the same data type as `x`.
484
+
485
+ If `return_indices` is True, output is a Tuple of 2 Tensors, representing the maxpool result and where
486
+ the max values are generated.
487
+
488
+ - **output** (Tensor) - Maxpooling result, with shape :math:`(N_{out}, C_{out}, H_{out}, W_{out})` or
489
+ :math:`(C_{out}, H_{out}, W_{out})`. It has the same data type as `x`.
490
+ - **argmax** (Tensor) - Index corresponding to the maximum value. Data type is int64.
491
+
492
+ If `pad_mode` is in `pad` mode, the output shape calculation formula is as follows:
493
+
494
+ .. math::
495
+ H_{out} = \left\lfloor\frac{H_{in} + 2 * \text{padding[0]} - \text{dilation[0]}
496
+ \times (\text{kernel_size[0]} - 1) - 1}{\text{stride[0]}} + 1\right\rfloor
497
+
498
+ .. math::
499
+ W_{out} = \left\lfloor\frac{W_{in} + 2 * \text{padding[1]} - \text{dilation[1]}
500
+ \times (\text{kernel_size[1]} - 1) - 1}{\text{stride[1]}} + 1\right\rfloor
501
+
502
+ Raises:
503
+ TypeError: If `kernel_size` or `stride` is neither int nor tuple.
504
+ ValueError: If `pad_mode` is neither ``"valid"`` nor ``"same"`` with not case sensitive.
505
+ ValueError: If `data_format` is neither ``'NCHW'`` nor ``'NHWC'`` .
506
+ ValueError: If `kernel_size` or `stride` is less than 1.
507
+ ValueError: If length of shape of `x` is not equal to 3 or 4.
508
+ ValueError: If `pad_mode` is not ``"pad"``, `padding`, `dilation`, `return_indices`, `ceil_mode` parameters
509
+ are not set to their default values.
510
+ ValueError: If the length of the tuple/list `padding` parameter is not 2.
511
+ ValueError: If The length of the tuple dilation parameter is not 2.
512
+ ValueError: If dilation parameter is neither an integer nor a tuple.
513
+ ValueError: If `pad_mode` is ``"pad"`` and `data_format` is ``'NHWC'``.
514
+ ValueError: If `padding` is non-zero when `pad_mode` is not ``"pad"``.
515
+
516
+ Supported Platforms:
517
+ ``Ascend`` ``GPU`` ``CPU``
518
+
519
+ Examples:
520
+ >>> import mindspore as ms
521
+ >>> import numpy as np
522
+ >>> pool = ms.nn.MaxPool2d(kernel_size=3, stride=1)
523
+ >>> x = ms.Tensor(np.random.randint(0, 10, [1, 2, 4, 4]), ms.float32)
524
+ >>> output = pool(x)
525
+ >>> print(output.shape)
526
+ (1, 2, 2, 2)
527
+ >>> np_x = np.random.randint(0, 10, [5, 3, 4, 5])
528
+ >>> x = ms.Tensor(np_x, ms.float32)
529
+ >>> pool2 = ms.nn.MaxPool2d(kernel_size=2, stride=1, pad_mode="pad", padding=1, dilation=1, return_indices=True)
530
+ >>> output = pool2(x)
531
+ >>> print(output[0].shape)
532
+ (5, 3, 5, 6)
533
+ >>> print(output[1].shape)
534
+ (5, 3, 5, 6)
535
+ """
536
+
537
+ def __init__(self, kernel_size=1, stride=1, pad_mode="valid", padding=0, dilation=1, return_indices=False,
538
+ ceil_mode=False, data_format="NCHW"):
539
+ """Initialize MaxPool2d."""
540
+ super(MaxPool2d, self).__init__(kernel_size, stride, pad_mode, data_format)
541
+ self.return_indices = return_indices
542
+ if pad_mode.upper() == 'PAD':
543
+ if self.format == "NHWC":
544
+ raise ValueError(f"For '{self.cls_name}, the 'NHWC' format are not support when 'pad_mode' is 'pad'.")
545
+ self.use_pad = True
546
+ if isinstance(self.kernel_size, tuple):
547
+ _check_tuple_length(self.kernel_size, 'kernel_size', 2, self.cls_name)
548
+ kernel_size = (1,) + self.kernel_size
549
+ elif isinstance(self.kernel_size, int):
550
+ kernel_size = (1, self.kernel_size, self.kernel_size)
551
+ if isinstance(self.stride, tuple):
552
+ _check_tuple_length(self.stride, 'stride', 2, self.cls_name)
553
+ stride = (1,) + self.stride
554
+ elif isinstance(self.stride, int):
555
+ stride = (1, self.stride, self.stride)
556
+ self.padding = _check_maxpool_padding(padding, 2, self.cls_name)
557
+ dilation = _cal_dilation(dilation, 2, self.cls_name)
558
+ self.max_pool = P.MaxPool3DWithArgmax(ksize=kernel_size, strides=stride, pads=self.padding,
559
+ dilation=dilation, ceil_mode=ceil_mode)
560
+ else:
561
+ self.use_pad = False
562
+ if padding != 0 or dilation != 1 or return_indices or ceil_mode:
563
+ raise ValueError(f"For MaxPool2d, the parameter 'padding', 'dilation', 'return_indices', 'ceil_mode' "
564
+ f"can not be set to non-default value when pad_mode is not 'pad', "
565
+ f"but got pad_mode:{pad_mode}.")
566
+ self.max_pool = P.MaxPool(kernel_size=self.kernel_size,
567
+ strides=self.stride,
568
+ pad_mode=self.pad_mode,
569
+ data_format=self.format)
570
+
571
+ def construct(self, x):
572
+ expand_batch = False
573
+ if x.ndim == 3:
574
+ x = x.unsqueeze(0)
575
+ expand_batch = True
576
+ if self.use_pad:
577
+ x = x.unsqueeze(2)
578
+ out = self.max_pool(x)
579
+ if isinstance(out, tuple):
580
+ out = out[0].squeeze(2), out[1].squeeze(2)
581
+ else:
582
+ out = out.squeeze(2)
583
+ else:
584
+ out = self.max_pool(x)
585
+ if expand_batch:
586
+ if isinstance(out, tuple):
587
+ out = (out[0].squeeze(0), out[1].squeeze(0))
588
+ else:
589
+ out = out.squeeze(0)
590
+ if self.use_pad and not self.return_indices:
591
+ return out[0]
592
+ return out
593
+
594
+
595
+ class MaxPool1d(_PoolNd):
596
+ r"""
597
+ Applies a 1D max pooling over an input Tensor which can be regarded as a composition of 1D planes.
598
+
599
+ Typically the input is of shape :math:`(N_{in}, C_{in}, L_{in})`, MaxPool1d outputs
600
+ regional maximum in the :math:`(L_{in})`-dimension. Given `kernel size`
601
+ :math:`ks = (l_{ker})` and `stride` :math:`s = (s_0)`, the operation is as follows:
602
+
603
+ .. math::
604
+ \text{output}(N_i, C_j, l) = \max_{n=0, \ldots, l_{ker}-1}
605
+ \text{input}(N_i, C_j, s_0 \times l + n)
606
+
607
+ Args:
608
+ kernel_size (int): The size of kernel used to take the max value, Default: ``1`` .
609
+ stride (int): The distance of kernel moving, an int number that represents
610
+ the width of movement is stride, Default: ``1`` .
611
+ pad_mode (str, optional): Specifies the padding mode with a padding value of 0. It can be set to:
612
+ ``"same"`` , ``"valid"`` or ``"pad"`` . Default: ``"valid"`` .
613
+
614
+ - ``"same"``: Pad the input at the begin and end so that the shape of input and output
615
+ are the same when `stride` is set to ``1``.
616
+ The amount of padding to is calculated by the operator internally. If the amount is even, it is
617
+ uniformly distributed around the input, if it is odd, the excess padding is goes to the right side.
618
+ If this mode is set, `padding` must be 0.
619
+ - ``"valid"``: No padding is applied to the input, and the output returns the maximum
620
+ possible length. Extra pixels that could not complete a full stride will
621
+ be discarded. If this mode is set, `padding` must be 0.
622
+ - ``"pad"``: Pad the input with a specified amount. In this mode, the amount of padding
623
+ at the begin and end is determined by the `padding` parameter.
624
+ If this mode is set, `padding` must be greater than or equal to 0.
625
+
626
+ padding (Union(int, tuple[int], list[int])): Padding value for the pooling. Default value is ``0``.
627
+ padding can only be an integer or a tuple/list containing a single integer, in which case padding times or
628
+ padding[0] times are padded on both sides of the input.
629
+ dilation (Union(int, tuple[int])): The spacing between the elements of the kernel in convolution,
630
+ used to increase the receptive field of the pooling operation. If it is a tuple, its length can only be 1.
631
+ Default: ``1`` .
632
+ return_indices (bool): If ``True`` , the function will return both the result of max pooling and the indices of
633
+ the max elements. Default: ``False`` .
634
+ ceil_mode (bool): If True, use ceil to compute the output shape instead of floor. Default: ``False`` .
635
+
636
+ Inputs:
637
+ - **x** (Tensor) - Tensor of shape :math:`(N, C_{in}, L_{in})` or :math:`(C_{in}, L_{in})`.
638
+
639
+ Outputs:
640
+ If `return_indices` is False, output is a Tensor, with shape :math:`(N, C_{out}, L_{out})` or
641
+ :math:`(C_{out}, L_{out})`. It has the same data type as `x`.
642
+
643
+ If `return_indices` is True, output is a Tuple of 2 Tensors, representing the maxpool result and where
644
+ the max values are generated.
645
+
646
+ - **output** (Tensor) - Maxpooling result, with shape :math:`(N, C_{out}, L_{out})` or
647
+ :math:`(C_{out}, L_{out})`. It has the same data type as `x`.
648
+ - **argmax** (Tensor) - Index corresponding to the maximum value. Data type is int64.
649
+
650
+ If `pad_mode` is in `pad` mode, the output shape calculation formula is as follows:
651
+
652
+ .. math::
653
+ L_{out} = \left\lfloor \frac{L_{in} + 2 \times \text{padding} - \text{dilation}
654
+ \times (\text{kernel_size} - 1) - 1}{\text{stride}} + 1\right\rfloor
655
+
656
+ Raises:
657
+ TypeError: If `kernel_size` or `strides` is not an int.
658
+ ValueError: If `pad_mode` is not ``"valid"``, ``"same"`` or ``"pad"``, case-insensitive.
659
+ ValueError: If `data_format` is neither ``'NCHW'`` nor ``'NHWC'``.
660
+ ValueError: If `kernel_size` or `strides` is less than 1.
661
+ ValueError: If length of shape of `x` is not equal to 2 or 3.
662
+ ValueError: If `pad_mode` is not ``"pad"``, `padding`, `dilation`, `return_indices`, `ceil_mode` parameters
663
+ are not set to their default values.
664
+ ValueError: If the length of the tuple/list `padding` parameter is not 1.
665
+ ValueError: If The length of the tuple dilation parameter is not 1.
666
+ ValueError: If dilation parameter is neither an integer nor a tuple.
667
+ ValueError: If `padding` is non-zero when `pad_mode` is not ``"pad"``.
668
+
669
+ Supported Platforms:
670
+ ``Ascend`` ``GPU`` ``CPU``
671
+
672
+ Examples:
673
+ >>> import mindspore as ms
674
+ >>> import mindspore.nn as nn
675
+ >>> import numpy as np
676
+ >>> mpool1 = nn.MaxPool1d(kernel_size=3, stride=1)
677
+ >>> x = ms.Tensor(np.random.randint(0, 10, [1, 2, 4]), ms.float32)
678
+ >>> output = mpool1(x)
679
+ >>> result = output.shape
680
+ >>> print(result)
681
+ (1, 2, 2)
682
+ >>> np_x = np.random.randint(0, 10, [5, 3, 4])
683
+ >>> x = ms.Tensor(np_x, ms.float32)
684
+ >>> mpool2 = nn.MaxPool1d(kernel_size=2, stride=1, pad_mode="pad", padding=1, dilation=1, return_indices=True)
685
+ >>> output = mpool2(x)
686
+ >>> print(output[0].shape)
687
+ (5, 3, 5)
688
+ >>> print(output[1].shape)
689
+ (5, 3, 5)
690
+ """
691
+
692
+ def __init__(self, kernel_size=1, stride=1, pad_mode="valid", padding=0, dilation=1, return_indices=False,
693
+ ceil_mode=False):
694
+ """Initialize MaxPool1d."""
695
+ super(MaxPool1d, self).__init__(kernel_size, stride, pad_mode)
696
+ validator.check_int(kernel_size, 1, validator.GE, "kernel_size", self.cls_name)
697
+ validator.check_int(stride, 1, validator.GE, "stride", self.cls_name)
698
+ self.kernel_size = (1, kernel_size)
699
+ self.stride = (1, stride)
700
+ self.return_indices = return_indices
701
+ if pad_mode.upper() == "PAD":
702
+ self.use_pad = True
703
+ self.kernel_size = (1, 1, kernel_size)
704
+ self.stride = (1, 1, stride)
705
+ self.padding = _check_maxpool_padding(padding, 1, self.cls_name)
706
+ dilation = _cal_dilation(dilation, 1, self.cls_name)
707
+ self.max_pool = P.MaxPool3DWithArgmax(ksize=self.kernel_size, strides=self.stride, pads=self.padding,
708
+ dilation=dilation, ceil_mode=ceil_mode)
709
+
710
+ else:
711
+ self.use_pad = False
712
+ if padding != 0 or dilation != 1 or return_indices or ceil_mode:
713
+ raise ValueError(f"For MaxPool1d, the parameter 'padding', 'dilation', 'return_indices', 'ceil_mode' "
714
+ f"can not be set to non-default value when pad_mode is not 'pad', "
715
+ f"but got pad_mode:{pad_mode}.")
716
+ self.max_pool = P.MaxPool(kernel_size=self.kernel_size,
717
+ strides=self.stride,
718
+ pad_mode=self.pad_mode)
719
+ self.shape = F.shape
720
+ self.reduce_mean = P.ReduceMean(keep_dims=True)
721
+ self.expand = P.ExpandDims()
722
+ self.squeeze = P.Squeeze(2)
723
+
724
+ def construct(self, x):
725
+ expand_batch = False
726
+ if x.ndim == 2:
727
+ x = x.unsqueeze(0)
728
+ expand_batch = True
729
+ if self.use_pad:
730
+ x = x.unsqueeze(2).unsqueeze(3)
731
+ output = self.max_pool(x)
732
+ if isinstance(output, tuple):
733
+ output = output[0].squeeze(3).squeeze(2), output[1].squeeze(3).squeeze(2)
734
+ else:
735
+ output = output.squeeze(3).squeeze(2)
736
+ else:
737
+ _shape_check(self.shape(x), self.cls_name)
738
+ x = self.expand(x, 2)
739
+ output = self.max_pool(x)
740
+ output = self.squeeze(output)
741
+ if expand_batch:
742
+ if isinstance(output, tuple):
743
+ output = (output[0].squeeze(0), output[1].squeeze(0))
744
+ else:
745
+ output = output.squeeze(0)
746
+ if self.use_pad and not self.return_indices:
747
+ return output[0]
748
+ return output
749
+
750
+
751
+ def _cal_padding(padding, cls_name, nd):
752
+ """Calculate padding before call primitive"""
753
+ validator.check_value_type('padding', padding, (int, tuple, list), cls_name)
754
+ if isinstance(padding, int):
755
+ padding = (0, 0) * (3 - nd) + (padding,) * nd * 2
756
+ elif isinstance(padding, (tuple, list)):
757
+ validator.check_non_negative_int_sequence(padding, "padding", cls_name)
758
+ if len(padding) == nd:
759
+ padding_start = (0, 0) * (3 - nd)
760
+ padding_end = tuple(padding[i // 2] for i in range(nd * 2))
761
+ padding = padding_start + padding_end
762
+ elif len(padding) == 1:
763
+ padding = (0, 0) * (3 - nd) + tuple(padding * nd * 2)
764
+ else:
765
+ if nd == 1:
766
+ raise ValueError(f"For {cls_name}, the padding must be a int or tuple/list contains one int, "
767
+ f"but got tuple/list with length:{len(padding)}.")
768
+ raise ValueError(f"For {cls_name}, the padding must be a int or tuple/list contains 1 or {nd} int, "
769
+ f"but got tuple/list with length:{len(padding)}.")
770
+ return padding
771
+
772
+
773
+ def _check_tuple_length(arg_name, prim_name, length, cls_name):
774
+ """check the tuple length"""
775
+ if len(arg_name) != length:
776
+ raise ValueError(f"For {cls_name}, the length of {prim_name} must be equal to {length}, "
777
+ f"but got {len(arg_name)}.")
778
+ return arg_name
779
+
780
+
781
+ class AvgPool3d(_PoolNd):
782
+ r"""
783
+ Applies a 3D average pooling over an input Tensor which can be regarded as a composition of 3D input planes.
784
+ Typically, the input is of shape :math:`(N_{in}, C_{in}, D_{in}, H_{in}, W_{in})`, and AvgPool3D outputs
785
+ regional average in the :math:`(D_{in}, H_{in}, W_{in})`-dimension. Given kernel size
786
+ is :math:`ks = (d_{ker}, h_{ker}, w_{ker})` and stride :math:`s = (s_0, s_1, s_2)`, the operation is as follows.
787
+
788
+ .. warning::
789
+ `kernel_size` is in the range [1, 255]. `stride` is in the range [1, 63].
790
+
791
+ .. math::
792
+ \text{output}(N_i, C_j, d, h, w) =
793
+ \frac{1}{d_{ker} * h_{ker} * w_{ker}} \sum_{l=0}^{d_{ker}-1} \sum_{m=0}^{h_{ker}-1} \sum_{n=0}^{w_{ker}-1}
794
+ \text{input}(N_i, C_j, s_0 \times d + l, s_1 \times h + m, s_2 \times w + n)
795
+
796
+ Args:
797
+ kernel_size (Union[int, tuple[int]], optional): The size of kernel used to take the average value,
798
+ can be an int number or a single element tuple that represents depth, height and width, or a tuple of three
799
+ positive integers that represent depth, height and width respectively. Default: ``1`` .
800
+ stride (Union[int, tuple[int]], optional): The distance of kernel moving, can be a positive int or a single
801
+ element tuple that represents the depth, height and width of movement, or a tuple of three positive integers
802
+ that represents depth, height and width of movement respectively. If the value is None, the default value
803
+ `kernel_size` is used. Default: ``1`` .
804
+ pad_mode (str, optional): Specifies the padding mode with a padding value of 0. It can be set to:
805
+ ``"same"`` , ``"valid"`` or ``"pad"`` . Default: ``"valid"`` .
806
+
807
+ - ``"same"``: Pad the input around its depth/height/width dimension so that the shape of input and output
808
+ are the same when `stride` is set to ``1``.
809
+ The amount of padding to is calculated by the operator internally. If the amount is even,
810
+ it isuniformly distributed around the input, if it is odd, the excess amount goes
811
+ to the front/right/bottom side.
812
+ If this mode is set, `padding` must be 0.
813
+ - ``"valid"``: No padding is applied to the input, and the output returns the maximum
814
+ possible depth, height and width. Extra pixels that could not complete a full stride will
815
+ be discarded. If this mode is set, `padding` must be 0.
816
+ - ``"pad"``: Pad the input with a specified amount. In this mode, the amount of padding
817
+ in the depth, height and width dimension is determined by the `padding` parameter.
818
+ If this mode is set, `padding` must be greater than or equal to 0.
819
+
820
+ padding (Union(int, tuple[int], list[int]), optional): Pooling padding value, only ``"pad"`` mode can be set to
821
+ non-zero. Default: ``0`` . Only the following paddings are supported:
822
+
823
+ - `padding` is an integer or a tuple/list containing one integer, it will be padded in six directions of
824
+ front, back, top, bottom, left and right of the input.
825
+
826
+ - `padding` is a tuple/list containing three integers, it will be padded in front and back of the input
827
+ `padding[0]` times, up and down `padding[1]` times, and left and right of the input `padding[2]` times.
828
+
829
+ ceil_mode (bool, optional): If ``True`` , use ceil to compute the output shape instead of floor.
830
+ Default: ``False`` .
831
+ count_include_pad (bool, optional): If ``True`` , averaging calculation will include the zero-padding.
832
+ Default: ``True`` .
833
+ divisor_override (int, optional): If it is specified as a non-zero parameter, this parameter will be used as the
834
+ divisor in the average calculation. Otherwise, `kernel_size` will be used as the divisor.
835
+ Default: ``None`` .
836
+
837
+ Inputs:
838
+ - **x** (Tensor) - Tensor of shape :math:`(N, C, D_{in}, H_{in}, W_{in})` or
839
+ :math:`(C, D_{in}, H_{in}, W_{in})`.
840
+ Currently support float16, float32 and float64 data type.
841
+
842
+ Outputs:
843
+ Tensor, with shape :math:`(N, C, D_{out}, H_{out}, W_{out})` or
844
+ :math:`(C, D_{out}, H_{out}, W_{out})`, with the same data type as `x`.
845
+
846
+ If `pad_mode` is in `pad` mode, the output shape calculation formula is as follows:
847
+
848
+ .. math::
849
+ D_{out} = \left\lfloor\frac{D_{in} + 2 \times \text{padding}[0] -
850
+ \text{kernel_size}[0]}{\text{stride}[0]} + 1\right\rfloor
851
+
852
+ .. math::
853
+ H_{out} = \left\lfloor\frac{H_{in} + 2 \times \text{padding}[1] -
854
+ \text{kernel_size}[1]}{\text{stride}[1]} + 1\right\rfloor
855
+
856
+ .. math::
857
+ W_{out} = \left\lfloor\frac{W_{in} + 2 \times \text{padding}[2] -
858
+ \text{kernel_size}[2]}{\text{stride}[2]} + 1\right\rfloor
859
+
860
+ Raises:
861
+ TypeError: If `kernel_size` is neither an int nor a tuple.
862
+ TypeError: If `stride` is neither an int nor a tuple.
863
+ TypeError: If `padding` is neither an int nor a tuple/list.
864
+ TypeError: If `ceil_mode` or `count_include_pad` is not a bool.
865
+ TypeError: If `divisor_override` is not an int.
866
+ ValueError: If numbers in `kernel_size` or `stride` are not positive.
867
+ ValueError: If `kernel_size` or `stride` is a tuple whose length is not equal to 3.
868
+ ValueError: If `padding` is a tuple/list whose length is neither 1 nor 3.
869
+ ValueError: If element of `padding` is less than 0.
870
+ ValueError: If length of shape of `x` is neither 4 nor 5.
871
+ ValueError: If `divisor_override` is less than or equal to 0.
872
+ ValueError: If `padding` is non-zero when `pad_mode` is not ``"pad"``.
873
+
874
+ Supported Platforms:
875
+ ``Ascend`` ``GPU`` ``CPU``
876
+
877
+ Examples:
878
+ >>> import mindspore as ms
879
+ >>> pool = ms.nn.AvgPool3d(kernel_size=3, stride=1)
880
+ >>> x = ms.ops.randn(1, 2, 4, 4, 5).astype(ms.float32)
881
+ >>> output = pool(x)
882
+ >>> print(output.shape)
883
+ (1, 2, 2, 2, 3)
884
+ >>> x1 = ms.ops.randn(6, 5, 7, 7, 5).astype(ms.float32)
885
+ >>> pool2 = ms.nn.AvgPool3d(4, stride=2, pad_mode="pad", padding=(2, 2, 1), divisor_override=10)
886
+ >>> output2 = pool2(x1)
887
+ >>> print(output2.shape)
888
+ (6, 5, 4, 4, 2)
889
+ """
890
+
891
+ def __init__(self, kernel_size=1, stride=1, pad_mode="valid", padding=0, ceil_mode=False, count_include_pad=True,
892
+ divisor_override=None):
893
+ """Initialize AvgPool3d."""
894
+ super(AvgPool3d, self).__init__(kernel_size, stride, pad_mode)
895
+ padding = _cal_padding(padding, self.cls_name, 3)
896
+ if divisor_override is not None and divisor_override <= 0:
897
+ raise ValueError(f"For '{self.cls_name}', the 'divisor_override' must be > 0, but got {divisor_override}.")
898
+ divisor_override = 0 if divisor_override is None else divisor_override
899
+ self.avg_pool = P.AvgPool3D(self.kernel_size, self.stride, pad_mode, padding, ceil_mode, count_include_pad,
900
+ divisor_override)
901
+
902
+ def construct(self, x):
903
+ expand_batch = False
904
+ if len(x.shape) == 4:
905
+ x = x.unsqueeze(0)
906
+ expand_batch = True
907
+ out = self.avg_pool(x)
908
+ if expand_batch:
909
+ out = out.squeeze(0)
910
+ return out
911
+
912
+
913
+ class AvgPool2d(_PoolNd):
914
+ r"""
915
+ Applies a 2D average pooling over an input Tensor which can be regarded as a composition of 2D input planes.
916
+
917
+ Typically the input is of shape :math:`(N_{in}, C_{in}, H_{in}, W_{in})`, AvgPool2d outputs
918
+ regional average in the :math:`(H_{in}, W_{in})`-dimension. Given kernel size
919
+ :math:`ks = (h_{ker}, w_{ker})` and stride :math:`s = (s_0, s_1)`, the operation is as follows:
920
+
921
+ .. math::
922
+ \text{output}(N_i, C_j, h, w) = \frac{1}{h_{ker} * w_{ker}} \sum_{m=0}^{h_{ker}-1} \sum_{n=0}^{w_{ker}-1}
923
+ \text{input}(N_i, C_j, s_0 \times h + m, s_1 \times w + n)
924
+
925
+ Args:
926
+ kernel_size (Union[int, tuple[int]]): The size of kernel used to take the average value.
927
+ The data type of kernel_size must be int or a single element tuple and the value represents the height
928
+ and width, or a tuple of two int numbers that represent height and width respectively.
929
+ Default: ``1`` .
930
+ stride (Union[int, tuple[int]]): The distance of kernel moving, an int number or a single element tuple that
931
+ represents the height and width of movement are both strides, or a tuple of two int numbers that
932
+ represent height and width of movement respectively. Default: ``1`` .
933
+ pad_mode (str, optional): Specifies the padding mode with a padding value of 0. It can be set to:
934
+ ``"same"`` , ``"valid"`` or ``"pad"`` . Default: ``"valid"`` .
935
+
936
+ - ``"same"``: Pad the input around its edges so that the shape of input and output
937
+ are the same when `stride` is set to ``1``.
938
+ The amount of padding to is calculated by the operator internally, If the amount is even, it is
939
+ uniformly distributed around the input, if it is odd, the excess amount goes to the right/bottom side.
940
+ If this mode is set, `padding` must be 0.
941
+ - ``"valid"``: No padding is applied to the input, and the output returns the maximum
942
+ possible height and width. Extra pixels that could not complete a full stride will
943
+ be discarded. If this mode is set, `padding` must be 0.
944
+ - ``"pad"``: Pad the input with a specified amount. In this mode, the amount of padding
945
+ in the height and width directions is determined by the `padding` parameter.
946
+ If this mode is set, `padding` must be greater than or equal to 0.
947
+
948
+ padding (Union(int, tuple[int], list[int])): Pooling padding value, only ``"pad"`` mode can be set to non-zero.
949
+ Default: ``0`` . `padding` can only be an integer or a tuple/list containing one or two integers.
950
+ If `padding` is an integer or a tuple/list containing one integer, it will be padded `padding` times in the
951
+ four directions of the input. If `padding` is a tuple/list containing two integers, it will be padded
952
+ `padding[0]` times in the up-down direction of the input and `padding[1]` times in the left-right direction
953
+ of the input.
954
+ ceil_mode (bool): If ``True`` , use ceil to compute the output shape instead of floor. Default: ``False`` .
955
+ count_include_pad (bool): If ``True`` , averaging calculation will include the zero-padding. Default: ``True`` .
956
+ divisor_override (int): If it is specified as a non-zero parameter, this parameter will be used as the divisor
957
+ in the average calculation. Otherwise, `kernel_size` will be used as the divisor. Default: ``None`` .
958
+ data_format (str): The optional value for data format, is ``'NHWC'`` or ``'NCHW'`` .
959
+ Default: ``'NCHW'`` .
960
+
961
+ Inputs:
962
+ - **x** (Tensor) - Tensor of shape :math:`(N, C_{in}, H_{in}, W_{in})` or :math:`(C_{in}, H_{in}, W_{in})`.
963
+
964
+ Outputs:
965
+ Tensor of shape :math:`(N, C_{out}, H_{out}, W_{out})` or :math:`(C_{out}, H_{out}, W_{out})`.
966
+
967
+ If `pad_mode` is in `pad` mode, the output shape calculation formula is as follows:
968
+
969
+ .. math::
970
+ H_{out} = \left\lfloor\frac{H_{in} + 2 \times \text{padding}[0] -
971
+ \text{kernel_size}[0]}{\text{stride}[0]} + 1\right\rfloor
972
+
973
+ .. math::
974
+ W_{out} = \left\lfloor\frac{W_{in} + 2 \times \text{padding}[1] -
975
+ \text{kernel_size}[1]}{\text{stride}[1]} + 1\right\rfloor
976
+
977
+ Raises:
978
+ TypeError: If `kernel_size` or `strides` is neither int nor tuple.
979
+ ValueError: If `pad_mode` is not ``"valid"`` , ``"same"`` or ``"pad"`` with not case sensitive.
980
+ ValueError: If `data_format` is neither ``'NCHW'`` nor ``'NHWC'``.
981
+ ValueError: If `padding`, `ceil_mode`, `count_include_pad`, or `divisor_override` is used
982
+ or `pad_mode` is ``"pad"`` when `data_format` is 'NHWC'.
983
+ ValueError: If `kernel_size` or `strides` is less than 1.
984
+ ValueError: If length of `padding` tuple/list is not 1 or 2.
985
+ ValueError: If length of shape of `x` is not equal to 3 or 4.
986
+ ValueError: If `divisor_override` is less than or equal to 0.
987
+ ValueError: If `padding` is non-zero when `pad_mode` is not ``"pad"``.
988
+
989
+ Supported Platforms:
990
+ ``Ascend`` ``GPU`` ``CPU``
991
+
992
+ Examples:
993
+ >>> import mindspore as ms
994
+ >>> import numpy as np
995
+ >>> pool = ms.nn.AvgPool2d(kernel_size=3, stride=1)
996
+ >>> x = ms.Tensor(np.random.randint(0, 10, [1, 2, 4, 4]), ms.float32)
997
+ >>> output = pool(x)
998
+ >>> print(output.shape)
999
+ (1, 2, 2, 2)
1000
+ >>> x = ms.ops.randn(6, 6, 8, 8)
1001
+ >>> pool2 = ms.nn.AvgPool2d(4, stride=1, pad_mode="pad", padding=2, divisor_override=5)
1002
+ >>> output2 = pool2(x)
1003
+ >>> print(output2.shape)
1004
+ (6, 6, 9, 9)
1005
+ """
1006
+
1007
+ def __init__(self,
1008
+ kernel_size=1,
1009
+ stride=1,
1010
+ pad_mode="valid",
1011
+ padding=0,
1012
+ ceil_mode=False,
1013
+ count_include_pad=True,
1014
+ divisor_override=None,
1015
+ data_format="NCHW"):
1016
+ """Initialize AvgPool2d."""
1017
+ super(AvgPool2d, self).__init__(kernel_size, stride, pad_mode, data_format)
1018
+ self.ascend_910bc_target = (MSContext.get_instance().get_ascend_soc_version() in ['ascend910b', 'ascend910c'])
1019
+ if pad_mode.upper() == 'PAD' or padding != 0 or ceil_mode or not count_include_pad \
1020
+ or divisor_override is not None:
1021
+ if self.ascend_910bc_target:
1022
+ raise ValueError(f"For '{self.cls_name}, the pad_mod 'PAD' is not support in 910B now, "
1023
+ f"it will be supported in the future.")
1024
+ if self.format == "NHWC":
1025
+ raise ValueError(f"For '{self.cls_name}, the 'NHWC' format are not support when 'pad_mode' is 'pad' or "
1026
+ f"'padding' is not 0 or 'ceil_mode' is not False or 'count_include_pad' is not True"
1027
+ f"or divisor_override is not None, but got pade_mode:{pad_mode}, padding:{padding}, "
1028
+ f"ceil_mode:{ceil_mode}, count_include_pad:{count_include_pad}, "
1029
+ f"divisor_override:{divisor_override}.")
1030
+ self.is_expand = True
1031
+ if divisor_override is not None and divisor_override <= 0:
1032
+ raise ValueError(
1033
+ f"For '{self.cls_name}', the 'divisor_override' must be > 0, but got {divisor_override}.")
1034
+ divisor_override = 0 if divisor_override is None else divisor_override
1035
+ padding = _cal_padding(padding, self.cls_name, 2)
1036
+
1037
+ if isinstance(self.kernel_size, tuple):
1038
+ _check_tuple_length(self.kernel_size, 'kernel_size', 2, self.cls_name)
1039
+ kernel_size = (1,) + self.kernel_size
1040
+ elif isinstance(self.kernel_size, int):
1041
+ kernel_size = (1, self.kernel_size, self.kernel_size)
1042
+
1043
+ if isinstance(self.stride, tuple):
1044
+ _check_tuple_length(self.stride, 'stride', 2, self.cls_name)
1045
+ stride = (1,) + self.stride
1046
+ elif isinstance(self.stride, int):
1047
+ stride = (1, self.stride, self.stride)
1048
+ self.avg_pool = P.AvgPool3D(kernel_size=kernel_size, strides=stride, pad_mode=pad_mode, pad=padding,
1049
+ ceil_mode=ceil_mode,
1050
+ count_include_pad=count_include_pad, divisor_override=divisor_override)
1051
+ else:
1052
+ self.is_expand = False
1053
+ self.avg_pool = P.AvgPool(kernel_size=self.kernel_size,
1054
+ strides=self.stride,
1055
+ pad_mode=self.pad_mode,
1056
+ data_format=self.format)
1057
+
1058
+ def construct(self, x):
1059
+ expand_batch = False
1060
+ if x.ndim == 3:
1061
+ x = x.unsqueeze(0)
1062
+ expand_batch = True
1063
+ if self.is_expand:
1064
+ x = x.unsqueeze(2)
1065
+ out = self.avg_pool(x)
1066
+ res = out.squeeze(2)
1067
+ else:
1068
+ res = self.avg_pool(x)
1069
+ if expand_batch:
1070
+ res = res.squeeze(0)
1071
+ return res
1072
+
1073
+
1074
+ class AvgPool1d(_PoolNd):
1075
+ r"""
1076
+ Applies a 1D average pooling over an input Tensor which can be regarded as a composition of 1D input planes.
1077
+
1078
+ Typically the input is of shape :math:`(N_{in}, C_{in}, L_{in})`, AvgPool1d outputs
1079
+ regional average in the :math:`(L_{in})`-dimension. Given `kernel_size`
1080
+ :math:`l_{ker}` and `stride` :math:`s_0`, the operation is as follows:
1081
+
1082
+ .. math::
1083
+ \text{output}(N_i, C_j, l) = \frac{1}{l_{ker}} \sum_{n=0}^{l_{ker}-1}
1084
+ \text{input}(N_i, C_j, s_0 \times l + n)
1085
+
1086
+ Args:
1087
+ kernel_size (int): The size of kernel window used to take the average value, Default: ``1`` .
1088
+ stride (int): The distance of kernel moving, an int number that represents
1089
+ the width of movement is strides, Default: ``1`` .
1090
+ pad_mode (str, optional): Specifies the padding mode with a padding value of 0. It can be set to:
1091
+ ``"same"`` , ``"valid"`` or ``"pad"`` . Default: ``"valid"`` .
1092
+
1093
+ - ``"same"``: Pad the input at the begin and end so that the shape of input and output
1094
+ are the same when `stride` is set to ``1``.
1095
+ The amount of padding to is calculated by the operator internally. If the amount is even, it is
1096
+ uniformly distributed around the input, if it is odd, the excess padding is goes to the right side.
1097
+ If this mode is set, `padding` must be 0.
1098
+ - ``"valid"``: No padding is applied to the input, and the output returns the maximum
1099
+ possible length. Extra pixels that could not complete a full stride will
1100
+ be discarded. If this mode is set, `padding` must be 0.
1101
+ - ``"pad"``: Pad the input with a specified amount. In this mode, the amount of padding
1102
+ at the begin and end is determined by the `padding` parameter.
1103
+ If this mode is set, `padding` must be greater than or equal to 0.
1104
+
1105
+ padding (Union(int, tuple[int], list[int])): Pooling padding value, only ``"pad"`` mode can be set to non-zero.
1106
+ Default: ``0`` . padding can only be an integer or a tuple/list containing a single integer, in which case
1107
+ padding times or padding[0] times are padded on both sides of the input.
1108
+ ceil_mode (bool): If ``True`` , use ceil to compute the output shape instead of floor. Default: ``False`` .
1109
+ count_include_pad (bool): If ``True`` , averaging calculation will include the zero-padding. Default: ``True`` .
1110
+
1111
+ Inputs:
1112
+ - **x** (Tensor) - Tensor of shape :math:`(N, C_{in}, L_{in})` or :math:`(C_{in}, L_{in})`.
1113
+
1114
+ Outputs:
1115
+ Tensor of shape :math:`(N, C_{out}, L_{out})` or :math:`(C_{out}, L_{out})`.
1116
+
1117
+ If `pad_mode` is in `pad` mode, the output shape calculation formula is as follows:
1118
+
1119
+ .. math::
1120
+ L_{out} = \left\lfloor \frac{L_{in} +
1121
+ 2 \times \text{padding} - \text{kernel_size}}{\text{stride}} + 1\right\rfloor
1122
+
1123
+ Raises:
1124
+ TypeError: If `kernel_size` or `stride` is not an int.
1125
+ ValueError: If `pad_mode` is not ``"valid"`` , ``"same"`` or ``"pad"`` with not case sensitive.
1126
+ ValueError: If `kernel_size` or `strides` is less than 1.
1127
+ ValueError: If length of `padding` tuple/list is not 1.
1128
+ ValueError: If length of shape of `x` is not equal to 2 or 3.
1129
+ ValueError: If `padding` is non-zero when `pad_mode` is not ``"pad"``.
1130
+
1131
+ Supported Platforms:
1132
+ ``Ascend`` ``GPU`` ``CPU``
1133
+
1134
+ Examples:
1135
+ >>> import mindspore as ms
1136
+ >>> import numpy as np
1137
+ >>> pool = ms.nn.AvgPool1d(kernel_size=6, stride=1)
1138
+ >>> x = ms.Tensor(np.random.randint(0, 10, [1, 3, 6]), ms.float32)
1139
+ >>> output = pool(x)
1140
+ >>> result = output.shape
1141
+ >>> print(result)
1142
+ (1, 3, 1)
1143
+ >>> pool2 = ms.nn.AvgPool1d(4, stride=1, ceil_mode=True, pad_mode="pad", padding=2)
1144
+ >>> x1 = ms.ops.randn(6, 6, 8)
1145
+ >>> output = pool2(x1)
1146
+ >>> print(output.shape)
1147
+ (6, 6, 9)
1148
+ """
1149
+
1150
+ def __init__(self,
1151
+ kernel_size=1,
1152
+ stride=1,
1153
+ pad_mode="valid",
1154
+ padding=0,
1155
+ ceil_mode=False,
1156
+ count_include_pad=True):
1157
+ """Initialize AvgPool1d."""
1158
+ super(AvgPool1d, self).__init__(kernel_size, stride, pad_mode)
1159
+ validator.check_int(self.kernel_size, 1, validator.GE, "kernel_size", self.cls_name)
1160
+ validator.check_int(self.stride, 1, validator.GE, "stride", self.cls_name)
1161
+ if pad_mode.upper() == 'PAD' or padding != 0 or ceil_mode or not count_include_pad:
1162
+ padding = _cal_padding(padding, self.cls_name, 1)
1163
+ self.is_expand_3d = True
1164
+ kernel_size = (1, 1, self.kernel_size)
1165
+ stride = (1, 1, self.stride)
1166
+ self.avg_pool = P.AvgPool3D(kernel_size=kernel_size, strides=stride, pad_mode=pad_mode, pad=padding,
1167
+ ceil_mode=ceil_mode,
1168
+ count_include_pad=count_include_pad)
1169
+ else:
1170
+ self.is_expand_3d = False
1171
+ self.kernel_size = (1, self.kernel_size)
1172
+ self.stride = (1, self.stride)
1173
+ self.avg_pool = P.AvgPool(kernel_size=self.kernel_size,
1174
+ strides=self.stride,
1175
+ pad_mode=self.pad_mode)
1176
+ self.shape = F.shape
1177
+ self.reduce_mean = P.ReduceMean(keep_dims=True)
1178
+ self.slice = P.Slice()
1179
+ self.expand = P.ExpandDims()
1180
+ self.squeeze = P.Squeeze(2)
1181
+
1182
+ def construct(self, x):
1183
+ expand_batch = False
1184
+ if x.ndim == 2:
1185
+ x = x.unsqueeze(0)
1186
+ expand_batch = True
1187
+ if self.is_expand_3d:
1188
+ x = x.unsqueeze(2).unsqueeze(3)
1189
+ x = self.avg_pool(x)
1190
+ x = x.squeeze(3).squeeze(2)
1191
+ else:
1192
+ _shape_check(self.shape(x), self.cls_name)
1193
+ batch, channel, width = self.shape(x)
1194
+ if width == self.kernel_size[1]:
1195
+ x = self.reduce_mean(x, 2)
1196
+ elif width - self.kernel_size[1] < self.stride[1]:
1197
+ x = self.slice(x, (0, 0, 0), (batch, channel, self.kernel_size[1]))
1198
+ x = self.reduce_mean(x, 2)
1199
+ else:
1200
+ x = self.expand(x, 2)
1201
+ x = self.avg_pool(x)
1202
+ x = self.squeeze(x)
1203
+ if expand_batch:
1204
+ x = x.squeeze(0)
1205
+ return x
1206
+
1207
+
1208
+ @_primexpr
1209
+ def _adaptive_shape_check(in_shape, output_size, prim_name):
1210
+ """Check shape."""
1211
+ msg_prefix = f"For {prim_name}, the"
1212
+ if len(in_shape) != 3:
1213
+ raise ValueError(f"{msg_prefix} input must has 3 dim, but got {len(in_shape)}.")
1214
+ if in_shape[2] < output_size:
1215
+ raise ValueError(f"{msg_prefix} input's last dimension must be greater or equal to "
1216
+ f"output size {output_size}, but got {in_shape[2]}.")
1217
+ if in_shape[2] % output_size != 0:
1218
+ raise ValueError(f"{msg_prefix} input's last dimension must be divisible by "
1219
+ f"output size {output_size}, but got {in_shape[2]}.")
1220
+
1221
+
1222
+ @constexpr
1223
+ def _adaptive_dtype_check(x_dtype, prim_name):
1224
+ """Check dtype."""
1225
+ if x_dtype not in [mstype.float16, mstype.float32]:
1226
+ raise TypeError(f"For {prim_name}, the x_dtype must be float16 or float32, "
1227
+ f"but got {x_dtype}.")
1228
+
1229
+
1230
+ class AdaptiveAvgPool1d(Cell):
1231
+ r"""
1232
+ Applies a 1D adaptive average pooling over an input Tensor which can be regarded as
1233
+ a composition of 1D input planes.
1234
+
1235
+ Typically, the input is of shape :math:`(N_{in}, C_{in}, L_{in})`,
1236
+ AdaptiveAvgPool1d outputs regional average in the :math:`L_{in}`-dimension.
1237
+ The output is of shape :math:`(N_{in}, C_{in}, L_{out})`,
1238
+ where :math:`L_{out}` is defined by `output_size`.
1239
+
1240
+ Note:
1241
+ :math:`L_{in}` must be divisible by `output_size`.
1242
+
1243
+ Args:
1244
+ output_size (int): the target output size :math:`L_{out}`.
1245
+
1246
+ Inputs:
1247
+ - **input** (Tensor) - Tensor of shape :math:`(N, C_{in}, L_{in})`, with float16 or float32 data type.
1248
+
1249
+ Outputs:
1250
+ Tensor of shape :math:`(N, C_{in}, L_{out})`, has the same type as `input`.
1251
+
1252
+ Raises:
1253
+ TypeError: If `output_size` is not an int.
1254
+ TypeError: If `input` is neither float16 nor float32.
1255
+ ValueError: If `output_size` is less than 1.
1256
+ ValueError: If length of shape of `input` is not equal to 3.
1257
+ ValueError: If the last dimension of `input` is smaller than `output_size`.
1258
+ ValueError: If the last dimension of `input` is not divisible by `output_size`.
1259
+
1260
+
1261
+ Supported Platforms:
1262
+ ``Ascend`` ``GPU`` ``CPU``
1263
+
1264
+ Examples:
1265
+ >>> import mindspore as ms
1266
+ >>> import numpy as np
1267
+ >>> pool = ms.nn.AdaptiveAvgPool1d(output_size=2)
1268
+ >>> input = ms.Tensor(np.random.randint(0, 10, [1, 3, 6]), ms.float32)
1269
+ >>> output = pool(input)
1270
+ >>> result = output.shape
1271
+ >>> print(result)
1272
+ (1, 3, 2)
1273
+ """
1274
+
1275
+ def __init__(self, output_size):
1276
+ """Initialize AdaptiveAvgPool1d."""
1277
+ super(AdaptiveAvgPool1d, self).__init__()
1278
+ validator.check_value_type('output_size', output_size, [int], self.cls_name)
1279
+ validator.check_int(output_size, 1, validator.GE, "output_size", self.cls_name)
1280
+ self.shape = F.shape
1281
+ self.expand = P.ExpandDims()
1282
+ self.squeeze = P.Squeeze(2)
1283
+ self.output_size = output_size
1284
+ self.dtype = P.DType()
1285
+
1286
+ def construct(self, input):
1287
+ _adaptive_shape_check(self.shape(input), self.output_size, self.cls_name)
1288
+ _adaptive_dtype_check(self.dtype(input), self.cls_name)
1289
+
1290
+ _, _, width = self.shape(input)
1291
+ stride = width // self.output_size
1292
+ kernel_size = width - (self.output_size - 1) * stride
1293
+
1294
+ stride = (1, width // self.output_size)
1295
+ kernel_size = (1, kernel_size)
1296
+
1297
+ input = self.expand(input, 2)
1298
+ avg_pool = P.AvgPool(kernel_size=kernel_size, strides=stride)
1299
+ input = avg_pool(input)
1300
+ input = self.squeeze(input)
1301
+
1302
+ return input
1303
+
1304
+
1305
+ class AdaptiveAvgPool2d(Cell):
1306
+ r"""
1307
+ This operator applies a 2D adaptive average pooling to an input signal composed of multiple input planes.
1308
+ That is, for any input size, the size of the specified output is H x W.
1309
+ The number of output features is equal to the number of input features.
1310
+
1311
+ The input and output data format can be "NCHW" and "CHW". N is the batch size, C is the number of channels,
1312
+ H is the feature height, and W is the feature width.
1313
+
1314
+ .. math::
1315
+ \begin{align}
1316
+ h_{start} &= floor(i * H_{in} / H_{out})\\
1317
+ h_{end} &= ceil((i + 1) * H_{in} / H_{out})\\
1318
+ w_{start} &= floor(j * W_{in} / W_{out})\\
1319
+ w_{end} &= ceil((j + 1) * W_{in} / W_{out})\\
1320
+ Output(i,j) &= \frac{\sum Input[h_{start}:h_{end}, w_{start}:w_{end}]}{(h_{end}- h_{start})
1321
+ * (w_{end}- w_{start})}
1322
+ \end{align}
1323
+
1324
+ Args:
1325
+ output_size (Union[int, tuple]): The target output size is H x W.
1326
+ `output_size` can be a tuple consisted of int type H and W, or a single H for H x H, or None.
1327
+ If it is None, it means the output size is the same as the input size.
1328
+
1329
+ Inputs:
1330
+ - **input** (Tensor) - The input of AdaptiveAvgPool2d, which is a 3D or 4D tensor,
1331
+ with float16, float32 or float64 data type.
1332
+
1333
+ Outputs:
1334
+ Tensor of shape :math:`(N, C_{out}, H_{out}, W_{out})`.
1335
+
1336
+ Raises:
1337
+ ValueError: If `output_size` is a tuple and the length of `output_size` is not 2.
1338
+ TypeError: If `input` is not a Tensor.
1339
+ TypeError: If dtype of `input` is not float16, float32 or float64.
1340
+ ValueError: If the dimension of `input` is less than or equal to the dimension of `output_size`.
1341
+
1342
+ Supported Platforms:
1343
+ ``Ascend`` ``GPU`` ``CPU``
1344
+
1345
+ Examples:
1346
+ >>> import mindspore as ms
1347
+ >>> import numpy as np
1348
+ >>> pool = ms.nn.AdaptiveAvgPool2d(2)
1349
+ >>> input_x = ms.Tensor(np.array([[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]],
1350
+ ... [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]],
1351
+ ... [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]]), ms.float32)
1352
+ >>> output = pool(input_x)
1353
+ >>> result = output.shape
1354
+ >>> print(result)
1355
+ (3, 2, 2)
1356
+ """
1357
+
1358
+ def __init__(self, output_size):
1359
+ """Initialize AdaptiveAvgPool2d."""
1360
+ super(AdaptiveAvgPool2d, self).__init__()
1361
+ self.adaptive_avgpool2d = P.AdaptiveAvgPool2D(output_size)
1362
+
1363
+ def construct(self, input):
1364
+ return self.adaptive_avgpool2d(input)
1365
+
1366
+
1367
+ class AdaptiveAvgPool3d(Cell):
1368
+ r"""
1369
+ This operator applies a 3D adaptive average pooling to an input signal composed of multiple input planes.
1370
+ That is, for any input size, the size of the specified output is :math:`(D, H, W)`.
1371
+ The number of output features is equal to the number of input planes.
1372
+
1373
+ Suppose the last 3 dimension size of input is :math:`(inD, inH, inW)`, then the last 3 dimension size of output is
1374
+ :math:`(outD, outH, outW)`.
1375
+
1376
+ .. math::
1377
+ \begin{array}{ll} \\
1378
+ \forall \quad od \in [0,outD-1], oh \in [0,outH-1], ow \in [0,outW-1]\\
1379
+ output[od,oh,ow] = \\
1380
+ \qquad mean(input[istartD:iendD+1,istartH:iendH+1,istartW:iendW+1])\\
1381
+ where,\\
1382
+ \qquad istartD= \left\lceil \frac{od * inD}{outD} \right\rceil \\
1383
+ \qquad iendD=\left\lfloor \frac{(od+1)* inD}{outD} \right\rfloor \\
1384
+ \qquad istartH=\left\lceil \frac{oh * inH}{outH} \right\rceil \\
1385
+ \qquad iendH=\left\lfloor \frac{(oh+1) * inH}{outH} \right\rfloor \\
1386
+ \qquad istartW=\left\lceil \frac{ow * inW}{outW} \right\rceil \\
1387
+ \qquad iendW=\left\lfloor \frac{(ow+1) * inW}{outW} \right\rfloor
1388
+ \end{array}
1389
+
1390
+ Args:
1391
+ output_size (Union[int, tuple]): The target output size. `output_size` can be a tuple :math:`(D, H, W)`,
1392
+ or an int D for :math:`(D, D, D)`. :math:`D`, :math:`H` and :math:`W` can be int or None
1393
+ which means the output size is the same as that of the input.
1394
+
1395
+ Inputs:
1396
+ - **input** (Tensor) - The input of AdaptiveAvgPool3d, which is a 5D or 4D Tensor,
1397
+ with float16, float32 or float64 data type.
1398
+
1399
+ Outputs:
1400
+ Tensor, with the same type as the `input`.
1401
+
1402
+ Raises:
1403
+ TypeError: If `input` is not a Tensor.
1404
+ TypeError: If dtype of `input` is not float16, float32 or float64.
1405
+ ValueError: If the dimension of `input` is not 4D or 5D.
1406
+ ValueError: If `output_size` value is not positive.
1407
+
1408
+ Supported Platforms:
1409
+ ``Ascend`` ``GPU`` ``CPU``
1410
+
1411
+ Examples:
1412
+ >>> import mindspore as ms
1413
+ >>> import numpy as np
1414
+ >>> # case 1: output_size=(3, 3, 4)
1415
+ >>> output_size=(3, 3, 4)
1416
+ >>> input_x_val = np.random.randn(4, 3, 5, 6, 7)
1417
+ >>> input_x = ms.Tensor(input_x_val, ms.float32)
1418
+ >>> net = ms.nn.AdaptiveAvgPool3d(output_size)
1419
+ >>> output = net(input_x)
1420
+ >>> print(output.shape)
1421
+ (4, 3, 3, 3, 4)
1422
+ >>> # case 2: output_size=4
1423
+ >>> output_size=5
1424
+ >>> input_x_val = np.random.randn(2, 3, 8, 6, 12)
1425
+ >>> input_x = ms.Tensor(input_x_val, ms.float32)
1426
+ >>> net = ms.nn.AdaptiveAvgPool3d(output_size)
1427
+ >>> output = net(input_x)
1428
+ >>> print(output.shape)
1429
+ (2, 3, 5, 5, 5)
1430
+ >>> # case 3: output_size=(None, 4, 5)
1431
+ >>> output_size=(None, 4, 5)
1432
+ >>> input_x_val = np.random.randn(4, 1, 9, 10, 8)
1433
+ >>> input_x = ms.Tensor(input_x_val, ms.float32)
1434
+ >>> net = ms.nn.AdaptiveAvgPool3d(output_size)
1435
+ >>> output = net(input_x)
1436
+ >>> print(output.shape)
1437
+ (4, 1, 9, 4, 5)
1438
+ """
1439
+
1440
+ def __init__(self, output_size):
1441
+ """Initialize AdaptiveAvgPool3d."""
1442
+ super(AdaptiveAvgPool3d, self).__init__()
1443
+ self.adaptive_avg_pool3d = AdaptiveAvgPool3D(output_size)
1444
+
1445
+ def construct(self, input):
1446
+ return self.adaptive_avg_pool3d(input)
1447
+
1448
+
1449
+ class AdaptiveMaxPool1d(Cell):
1450
+ r"""
1451
+ Applies a 1D adaptive maximum pooling over an input Tensor which can be regarded as
1452
+ a composition of 1D input planes.
1453
+
1454
+ Typically, the input is of shape :math:`(N_{in}, C_{in}, L_{in})`,
1455
+ AdaptiveMaxPool1d outputs regional maximum in the :math:`L_{in}`-dimension. The output is of
1456
+ shape :math:`(N_{in}, C_{in}, L_{out})`, where :math:`L_{out}` is defined by `output_size`.
1457
+
1458
+ Note:
1459
+ :math:`L_{in}` must be divisible by `output_size`.
1460
+
1461
+ Args:
1462
+ output_size (int): the target output size :math:`L_{out}`.
1463
+
1464
+ Inputs:
1465
+ - **x** (Tensor) - Tensor of shape :math:`(N, C_{in}, L_{in})`, with float16 or float32 data type.
1466
+
1467
+ Outputs:
1468
+ Tensor of shape :math:`(N, C_{in}, L_{out})`, has the same type as `x`.
1469
+
1470
+ Raises:
1471
+ TypeError: If `x` is neither float16 nor float32.
1472
+ TypeError: If `output_size` is not an int.
1473
+ ValueError: If `output_size` is less than 1.
1474
+ ValueError: If the last dimension of `x` is smaller than `output_size`.
1475
+ ValueError: If the last dimension of `x` is not divisible by `output_size`.
1476
+ ValueError: If length of shape of `x` is not equal to 3.
1477
+
1478
+
1479
+ Supported Platforms:
1480
+ ``Ascend`` ``GPU`` ``CPU``
1481
+
1482
+ Examples:
1483
+ >>> import mindspore as ms
1484
+ >>> import numpy as np
1485
+ >>> pool = ms.nn.AdaptiveMaxPool1d(output_size=3)
1486
+ >>> x = ms.Tensor(np.random.randint(0, 10, [1, 3, 6]), ms.float32)
1487
+ >>> output = pool(x)
1488
+ >>> result = output.shape
1489
+ >>> print(result)
1490
+ (1, 3, 3)
1491
+ """
1492
+
1493
+ def __init__(self, output_size):
1494
+ """Initialize AdaptiveMaxPool1d."""
1495
+ super(AdaptiveMaxPool1d, self).__init__()
1496
+ validator.check_int(output_size, 1, validator.GE, "output_size", self.cls_name)
1497
+ validator.check_value_type('output_size', output_size, [int], self.cls_name)
1498
+ self.expand = P.ExpandDims()
1499
+ self.squeeze = P.Squeeze(2)
1500
+ self.output_size = output_size
1501
+ self.shape = F.shape
1502
+ self.dtype = P.DType()
1503
+
1504
+ def construct(self, x):
1505
+ _adaptive_shape_check(self.shape(x), self.output_size, self.cls_name)
1506
+ _adaptive_dtype_check(self.dtype(x), self.cls_name)
1507
+
1508
+ _, _, width = self.shape(x)
1509
+ stride = width // self.output_size
1510
+ kernel_size = width - (self.output_size - 1) * stride
1511
+
1512
+ stride = (1, width // self.output_size)
1513
+ kernel_size = (1, kernel_size)
1514
+
1515
+ max_pool = P.MaxPool(kernel_size=kernel_size, strides=stride)
1516
+ x = self.expand(x, 2)
1517
+ x = max_pool(x)
1518
+ x = self.squeeze(x)
1519
+
1520
+ return x
1521
+
1522
+
1523
+ class AdaptiveMaxPool2d(Cell):
1524
+ r"""
1525
+ This operator applies a 2D adaptive max pooling to an input signal composed of multiple input planes.
1526
+ That is, for any input size, the size of the specified output is H x W.
1527
+ The number of output features is equal to the number of input planes.
1528
+
1529
+ The input and output data format can be "NCHW" and "CHW". N is the batch size, C is the number of channels,
1530
+ H is the feature height, and W is the feature width.
1531
+
1532
+ For max adaptive pool2d:
1533
+
1534
+ .. math::
1535
+
1536
+ \begin{align}
1537
+ h_{start} &= floor(i * H_{in} / H_{out})\\
1538
+ h_{end} &= ceil((i + 1) * H_{in} / H_{out})\\
1539
+ w_{start} &= floor(j * W_{in} / W_{out})\\
1540
+ w_{end} &= ceil((j + 1) * W_{in} / W_{out})\\
1541
+ Output(i,j) &= {\max Input[h_{start}:h_{end}, w_{start}:w_{end}]}
1542
+ \end{align}
1543
+
1544
+ Note:
1545
+ Ascend platform only supports float16 type for input.
1546
+
1547
+ Args:
1548
+ output_size (Union[int, tuple]): The target output size. `output_size` can be a tuple :math:`(H, W)`,
1549
+ or an int H for :math:`(H, H)`. :math:`H` and :math:`W` can be int or None.
1550
+ If it is None, it means the output size is the same as the input size.
1551
+ return_indices (bool): If `return_indices` is ``True`` , the indices of max value would be output.
1552
+ Default: ``False`` .
1553
+
1554
+ Inputs:
1555
+ - **input** (Tensor) - The input of AdaptiveMaxPool2d, which is a 3D or 4D tensor,
1556
+ with float16, float32 or float64 data type.
1557
+
1558
+ Outputs:
1559
+ Tensor, with the same type as the `input`.
1560
+ Shape of the output is :math:`input\_shape[:len(input\_shape) - len(out\_shape)] + out\_shape`.
1561
+
1562
+ Raises:
1563
+ TypeError: If `output_size` is not int or tuple.
1564
+ TypeError: If `input` is not a tensor.
1565
+ TypeError: If `return_indices` is not a bool.
1566
+ TypeError: If dtype of `input` is not float16, float32 or float64.
1567
+ ValueError: If `output_size` is a tuple and the length of `output_size` is not 2.
1568
+ ValueError: If the dimension of `input` is not NCHW or CHW.
1569
+
1570
+ Supported Platforms:
1571
+ ``Ascend`` ``GPU`` ``CPU``
1572
+
1573
+ Examples:
1574
+ >>> import mindspore as ms
1575
+ >>> import numpy as np
1576
+ >>> # case 1: output_size=(None, 2)
1577
+ >>> input = ms.Tensor(np.array([[[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]],
1578
+ ... [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]],
1579
+ ... [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]]]]), ms.float32)
1580
+ >>> adaptive_max_pool_2d = ms.nn.AdaptiveMaxPool2d((None, 2))
1581
+ >>> output = adaptive_max_pool_2d(input)
1582
+ >>> print(output)
1583
+ [[[[2. 3.]
1584
+ [5. 6.]
1585
+ [8. 9.]]
1586
+ [[2. 3.]
1587
+ [5. 6.]
1588
+ [8. 9.]]
1589
+ [[2. 3.]
1590
+ [5. 6.]
1591
+ [8. 9.]]]]
1592
+ >>> # case 2: output_size=2
1593
+ >>> adaptive_max_pool_2d = ms.nn.AdaptiveMaxPool2d(2)
1594
+ >>> output = adaptive_max_pool_2d(input)
1595
+ >>> print(output)
1596
+ [[[[5. 6.]
1597
+ [8. 9.]]
1598
+ [[5. 6.]
1599
+ [8. 9.]]
1600
+ [[5. 6.]
1601
+ [8. 9.]]]]
1602
+ >>> # case 3: output_size=(1, 2)
1603
+ >>> adaptive_max_pool_2d = ms.nn.AdaptiveMaxPool2d((1, 2))
1604
+ >>> output = adaptive_max_pool_2d(input)
1605
+ >>> print(output)
1606
+ [[[[8. 9.]]
1607
+ [[8. 9.]]
1608
+ [[8. 9.]]]]
1609
+ """
1610
+
1611
+ def __init__(self, output_size, return_indices=False):
1612
+ """Initialize AdaptiveMaxPool2d."""
1613
+ super(AdaptiveMaxPool2d, self).__init__()
1614
+ validator.check_value_type('return_indices', return_indices, [bool], self.cls_name)
1615
+ self.adaptive_max_pool2d = AdaptiveMaxPool2D(output_size)
1616
+ self.return_indices = return_indices
1617
+
1618
+ def construct(self, input):
1619
+ output = self.adaptive_max_pool2d(input)
1620
+ if self.return_indices:
1621
+ return output
1622
+ return output[0]
1623
+
1624
+
1625
+ class AdaptiveMaxPool3d(Cell):
1626
+ r"""
1627
+ Calculates the 3D adaptive max pooling for an input Tensor.
1628
+ That is, for any input size, the size of the specified output is :math:`(D, H, W)`.
1629
+
1630
+ Args:
1631
+ output_size (Union[int, tuple]): The specified output size, which is a positive integer that represents depth,
1632
+ height and width, or a tuple of three positive integers that represent depth, height and width respectively.
1633
+ If it is None, the output size and input size of the corresponding dimension are the same.
1634
+ return_indices (bool, optional): If `return_indices` is ``True`` , the indices of max value would be output.
1635
+ Otherwise, the indices will not be returned. Default: ``False`` .
1636
+
1637
+ Inputs:
1638
+ - **input** (Tensor) - Tensor, has shape of :math:`(C, D, H, W)` or :math:`(N, C, D, H, W)`.
1639
+
1640
+ Outputs:
1641
+ - **y** (Tensor) - Tensor, has the same number of dims and data type as the `input` .
1642
+ - **argmax** (Tensor) - Tensor, the indices of the maximum values along with the outputs, has the same shape as
1643
+ `y` and a dtype of int32. Return this only when `return_indices` is ``True`` .
1644
+
1645
+ Raises:
1646
+ TypeError: If `input` is not a Tensor.
1647
+ ValueError: If the dimensions number of `input` is not 4 or 5.
1648
+ TypeError: If dtype of `input` is not int, uint or float.
1649
+ ValueError: If `output_size` is neither an int nor a tuple with shape :math:`(3,)`.
1650
+
1651
+ Supported Platforms:
1652
+ ``GPU`` ``CPU``
1653
+
1654
+ Examples:
1655
+ >>> import mindspore as ms
1656
+ >>> import numpy as np
1657
+ >>> input = ms.Tensor(np.arange(0,36).reshape((1, 3, 3, 4)).astype(np.float32))
1658
+ >>> output_size = (1, 1, 2)
1659
+ >>> net = ms.nn.AdaptiveMaxPool3d(output_size, True)
1660
+ >>> output = net(input)
1661
+ >>> print(output[0].asnumpy())
1662
+ [[[[33. 35.]]]]
1663
+ >>> print(output[1].asnumpy())
1664
+ [[[[33 35]]]]
1665
+ """
1666
+
1667
+ def __init__(self, output_size, return_indices=False):
1668
+ """Initialize AdaptiveMaxPool3d."""
1669
+ super(AdaptiveMaxPool3d, self).__init__()
1670
+ if isinstance(output_size, int):
1671
+ output_size = (output_size, output_size, output_size)
1672
+ self.output_size = Tensor(output_size, dtype=mstype.int32)
1673
+ self.return_indices = return_indices
1674
+ self.adaptive_max_pool3d = AdaptiveMaxPool3D()
1675
+
1676
+ def construct(self, input):
1677
+ output = self.adaptive_max_pool3d(input, self.output_size)
1678
+ if self.return_indices:
1679
+ return output
1680
+ return output[0]
1681
+
1682
+
1683
+ class FractionalMaxPool2d(Cell):
1684
+ r"""
1685
+ Applies the 2D FractionalMaxPool operatin over input. The output Tensor shape can be determined by either
1686
+ `output_size` or `output_ratio`, and the step size is determined by `_random_samples`. `output_size` will take
1687
+ effect when `output_size` and `output_ratio` are set at the same time.
1688
+ And `output_size` and `output_ratio` can not be ``None`` at the same time.
1689
+
1690
+ Refer to the paper `Fractional MaxPooling by Ben Graham <https://arxiv.org/abs/1412.6071>`_ for more details.
1691
+
1692
+ Args:
1693
+ kernel_size (Union[int, tuple[int]]): The size of kernel used to take the maximum value,
1694
+ is an int number that represents height and width of the kernel, or a tuple
1695
+ of two int numbers that represent height and width respectively.
1696
+ The value must be a positive integer.
1697
+ output_size (Union[int, tuple[int]], optional): The Shape of the target `output_size`,
1698
+ is a positive int that represents height and width, or a tuple of two positive integers that represent
1699
+ height and width respectively. The value must be a positive integer. If None, the shape of the target will
1700
+ be determined by `output_ratio`. Default: ``None`` .
1701
+ output_ratio (Union[float, tuple[float]], optional): The ratio of target output shape to input shape.
1702
+ Specifying the size of the output tensor by using a ratio of the input size.
1703
+ Data type : float16, float32, float64, and value is between (0, 1). If None, the shape of the target will be
1704
+ determined by `output_size`. Default: ``None`` .
1705
+ return_indices (bool, optional): Whether to return the indices of max value. Default: ``False`` .
1706
+ _random_samples (Tensor, optional): The random step of FractionalMaxPool2d, which is a 3D tensor.
1707
+ Tensor of data type: float16, float32, double, and value is between [0, 1).
1708
+ Supported shape :math:`(N, C, 2)` or :math:`(1, C, 2)`.
1709
+ Default: ``None``, the values of `_random_samples`
1710
+ will be randomly distributed using uniform distribution over an interval [0,1).
1711
+
1712
+ Inputs:
1713
+ - **input** (Tensor) - Tensor of shape :math:`(N, C, H_{in}, W_{in})` or :math:`(C, H_{in}, W_{in})`,
1714
+ with float16, float32, float64, int32, int64 data type.
1715
+
1716
+ Outputs:
1717
+ - **y** (Tensor) - Has the same type as the `input`.
1718
+ Has the shape :math:`(N, C, H_{out}, W_{out})` or :math:`(C, H_{out}, W_{out})` ,
1719
+ where :math:`(H_{out}, W_{out})` = `output_size`
1720
+ or :math:`(H_{out}, W_{out})` = `output_ratio` * :math:`(H_{in}, W_{in})`.
1721
+ - **argmax** (Tensor) - The indices along with the outputs, which is a Tensor, with the same shape as the
1722
+ `y` and int64 data type. It will be returned only when `return_indices` is True.
1723
+
1724
+ Raises:
1725
+ TypeError: If data type of `input` is not one of the following: float16, float32, float64, int32, int64.
1726
+ TypeError: If data type of `_random_samples` is not one of the following: float16, float32, float64.
1727
+ ValueError: If `kernel_size` is not a number and `kernel_size` is not a tuple of length 2.
1728
+ ValueError: If `output_size` is not a number and `output_size` is not a tuple of length 2.
1729
+ ValueError: If the sum of `kernel_size` , `output_size` and -1 is larger than the corresponding
1730
+ dimension of `input`.
1731
+ ValueError: If the dimension of `_random_samples` is not 3.
1732
+ ValueError: if `output_size` and `output_ratio` are None at the same time.
1733
+ ValueError: If the first dimension size of `input` and `_random_samples` is not equal.
1734
+ ValueError: If the second dimension size of `input` and `_random_samples` is not equal.
1735
+ ValueError: If the third dimension size of `_random_samples` is not 2.
1736
+
1737
+ Supported Platforms:
1738
+ ``CPU``
1739
+
1740
+ Examples:
1741
+ >>> # the kernel_size is an int number and the output_size is a tuple.
1742
+ >>> import numpy as np
1743
+ >>> import mindspore as ms
1744
+ >>> input = ms.Tensor(np.array([0.3220, 0.9545, 0.7879, 0.0975, 0.3698,
1745
+ ... 0.5135, 0.5740, 0.3435, 0.1895, 0.8764,
1746
+ ... 0.9581, 0.4760, 0.9014, 0.8522, 0.3664,
1747
+ ... 0.4980, 0.9673, 0.9879, 0.6988, 0.9022,
1748
+ ... 0.9304, 0.1558, 0.0153, 0.1559, 0.9852]).reshape([1, 1, 5, 5]), ms.float32)
1749
+ >>> _random_samples = ms.Tensor(np.array([[[0.8, 0.8]]]), ms.float32)
1750
+ >>> net = ms.nn.FractionalMaxPool2d(kernel_size=2, output_size=(2, 2), _random_samples=_random_samples,
1751
+ ... return_indices=True)
1752
+ >>> y, argmax = net(input)
1753
+ >>> y
1754
+ [[[[0.9545 0.8764]
1755
+ [0.9673 0.9852]]]]
1756
+ >>> argmax
1757
+ [[[[ 1 9]
1758
+ [16 24]]]]
1759
+ >>> net = ms.nn.FractionalMaxPool2d(kernel_size=2, output_ratio=(0.5, 0.5), _random_samples=_random_samples,
1760
+ ... return_indices=True)
1761
+ >>> y, argmax = net(input)
1762
+ >>> print(y)
1763
+ [[[[0.9545 0.8764]
1764
+ [0.9673 0.9852]]]]
1765
+ >>> print(argmax)
1766
+ [[[[ 1 9]
1767
+ [16 24]]]]
1768
+ """
1769
+
1770
+ def __init__(self, kernel_size, output_size=None, output_ratio=None, return_indices=False, _random_samples=None):
1771
+ """Initialize FractionalMaxPool2d."""
1772
+ super(FractionalMaxPool2d, self).__init__()
1773
+ self.kernel_size = kernel_size
1774
+ self.output_size = output_size
1775
+ self.output_ratio = output_ratio
1776
+ self.return_indices = return_indices
1777
+ self._random_samples = _random_samples
1778
+
1779
+ def construct(self, input):
1780
+ return ops.fractional_max_pool2d(input, self.kernel_size, self.output_size, self.output_ratio,
1781
+ self.return_indices, self._random_samples)
1782
+
1783
+
1784
+ class FractionalMaxPool3d(Cell):
1785
+ r"""
1786
+ Applies the 3D FractionalMaxPool operatin over `input`. The output Tensor shape can be determined by either
1787
+ `output_size` or `output_ratio`, and the step size is determined by `_random_samples`. `output_size` will take
1788
+ effect when `output_size` and `output_ratio` are set at the same time.
1789
+ And `output_size` and `output_ratio` can not be ``None`` at the same time.
1790
+
1791
+ Refer to the paper `Fractional MaxPooling by Ben Graham <https://arxiv.org/abs/1412.6071>`_ for more details.
1792
+
1793
+ The input and output data format can be "NCDHW". N is the batch size, C is the number of channels,
1794
+ D the feature depth, H is the feature height, and W is the feature width.
1795
+
1796
+ Args:
1797
+ kernel_size (Union[int, tuple[int]]): The size of kernel used to take the maximum value, is a positive int
1798
+ that represents depth, height and width of the kernel, or a tuple of three positive integers that represent
1799
+ depth, height and width respectively.
1800
+ output_size (Union[int, tuple[int]], optional): The shape of the target `output_size`,
1801
+ is an int number that represents depth, height and width, or a tuple of three positive integers that
1802
+ represents depth, height and width respectively. If ``None`` , the shape of the target will be determined
1803
+ by `output_ratio`. Default: ``None`` .
1804
+ output_ratio (Union[float, tuple[float]], optional): The ratio of target output shape to input shape.
1805
+ Specifying the size of the output tensor by using a ratio of the input size.
1806
+ Data type : float16, float32, float64, and value is between (0, 1). If ``None`` , the shape of the target
1807
+ will be determined by `output_size`.Default: ``None`` .
1808
+ return_indices (bool, optional): Whether to return the indices of max value. Default: ``False`` .
1809
+ _random_samples (Tensor, optional): The random step of FractionalMaxPool3d, which is a 3D tensor.
1810
+ Tensor of data type: float16, float32, double, and value is between [0, 1).
1811
+ Supported shape :math:`(N, C, 3)` or :math:`(1, C, 3)` . Default: ``None``, the values of `_random_samples`
1812
+ will be randomly distributed using uniform distribution over an interval [0,1).
1813
+
1814
+ Inputs:
1815
+ - **input** (Tensor) - The input of FractionalMaxPool3d, which is a 4D or 5D tensor.
1816
+ Tensor of data type : float16, float32, float64.
1817
+ Supported shape :math:`(N, C, D_{in}, H_{in}, W_{in})` or :math:`(C, D_{in}, H_{in}, W_{in})`.
1818
+
1819
+ Outputs:
1820
+ - **y** (Tensor) - A tensor, the output of FractionalMaxPool3d.
1821
+ Has the same data type with `input`.
1822
+ Has the shape :math:`(N, C, D_{out}, H_{out}, W_{out})` or :math:`(C, D_{out}, H_{out}, W_{out})` ,
1823
+ where :math:`(D_{out}, H_{out}, W_{out})` = `output_size`
1824
+ or :math:`(D_{out}, H_{out}, W_{out})` = `output_ratio` * :math:`(D_{in}, H_{in}, W_{in})` .
1825
+
1826
+ - **argmax** (Tensor) - The indices along with the outputs, which is a Tensor, with the same shape as the
1827
+ `y` and int32 data type. It will output only when `return_indices` is True.
1828
+
1829
+ Raises:
1830
+ TypeError: If `input` is not a 4D or 5D tensor.
1831
+ TypeError: If `_random_samples` is not a 3D tensor.
1832
+ TypeError: If data type of `imput_x` is not float16, float32, float64.
1833
+ TypeError: If dtype of `_random_samples` is not float16, float32, float64.
1834
+ TypeError: If dtype of `argmax` is not int32, int64.
1835
+ TypeError: if _random_samples to have the different dtypes as input.
1836
+ ValueError: If `output_size` is a tuple and if `output_size` length is not 3.
1837
+ ValueError: If `kernel_size` is a tuple and if `kernel_size` length is not 3.
1838
+ ValueError: If numbers in `output_size` or `kernel_size` is not positive.
1839
+ ValueError: if `output_size` and `output_ratio` are None at the same time.
1840
+ ValueError: If the first dimension size of `input` and `_random_samples` is not equal.
1841
+ ValueError: If the second dimension size of `input` and `_random_samples` is not equal.
1842
+ ValueError: If the third dimension size of `_random_samples` is not 3.
1843
+
1844
+ Supported Platforms:
1845
+ ``GPU`` ``CPU``
1846
+
1847
+ Examples:
1848
+ >>> import numpy as np
1849
+ >>> import mindspore as ms
1850
+ >>> x = ms.Tensor(np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16])
1851
+ ... .reshape([1, 1, 2, 2, 4]), ms.float32)
1852
+ >>> _random_samples = ms.Tensor(np.array([0.7, 0.7, 0.7]).reshape([1, 1, 3]), ms.float32)
1853
+ >>> net = ms.nn.FractionalMaxPool3d(kernel_size=(1, 1, 1), output_size=(1, 1, 3),
1854
+ ... _random_samples=_random_samples, return_indices=True)
1855
+ >>> output, argmax = net(x)
1856
+ >>> print(output)
1857
+ [[[[[13. 14. 16.]]]]]
1858
+ >>> print(argmax)
1859
+ [[[[[12 13 15]]]]]
1860
+ >>> net = ms.nn.FractionalMaxPool3d(kernel_size=(1, 1, 1), output_ratio=(0.5, 0.5, 0.5),
1861
+ ... _random_samples=_random_samples, return_indices=True)
1862
+ >>> output, argmax = net(x)
1863
+ >>> print(output)
1864
+ [[[[[13. 16.]]]]]
1865
+ >>> print(argmax)
1866
+ [[[[[12 15]]]]]
1867
+ """
1868
+
1869
+ def __init__(self, kernel_size, output_size=None, output_ratio=None, return_indices=False, _random_samples=None):
1870
+ """Initialize FractionalMaxPool3d."""
1871
+ super(FractionalMaxPool3d, self).__init__()
1872
+ self.kernel_size = kernel_size
1873
+ self.output_size = output_size
1874
+ self.output_ratio = output_ratio
1875
+ self.return_indices = return_indices
1876
+ self._random_samples = _random_samples
1877
+
1878
+ def construct(self, input):
1879
+ return ops.fractional_max_pool3d(input, self.kernel_size, self.output_size, self.output_ratio,
1880
+ self.return_indices, self._random_samples)
1881
+
1882
+
1883
+ class MaxUnpool1d(Cell):
1884
+ r"""
1885
+ Computes the inverse of :class:`mindspore.nn.MaxPool1d`.
1886
+
1887
+ MaxUnpool1d keeps the maximal value and set all position of non-maximal values to zero. Typically the input
1888
+ is of shape :math:`(N, C, H_{in})` or :math:`(C, H_{in})`, and the output is of shape
1889
+ :math:`(N, C, H_{out})` or :math:`(C, H_{out})`. The operation is as follows.
1890
+
1891
+
1892
+ .. math::
1893
+ \begin{array}{ll} \\
1894
+ H_{out} = (H_{in} - 1) \times stride[0] - 2 \times padding[0] + kernel\_size[0] \\
1895
+ \end{array}
1896
+
1897
+ Args:
1898
+ kernel_size (Union[int, tuple[int]]): The size of kernel used to take the maximum value.
1899
+ stride (Union[int, tuple[int]]): The distance of kernel moving,
1900
+ If stride is None, then stride equal to kernel_size. Default: ``None`` .
1901
+ padding (Union[int, tuple[int]]): The pad value to be filled. Default: ``0`` .
1902
+
1903
+ Inputs:
1904
+ - **x** (Tensor) - The input Tensor to invert.
1905
+ Tensor of shape :math:`(N, C, H_{in})` or :math:`(C, H_{in})`.
1906
+ - **indices** (Tensor) - Max values' index represented by the indices.
1907
+ Tensor of shape must be same with input 'x'.
1908
+ Values of indices must belong to :math:`[0, H_{in} - 1]`.
1909
+ Data type must be in int32 or int64.
1910
+ - **output_size** (tuple[int], optional) - The output size. Default: ``None`` .
1911
+ If output_size is ``None``, then the shape of output computed by kernel_size, stride and padding.
1912
+ If output_size is not ``None``, then output_size must be :math:`(N, C, H)` , :math:`(C, H)` or
1913
+ :math:`(H)` and output_size must belong to
1914
+ :math:`[(N, C, H_{out} - stride[0]), (N, C, H_{out} + stride[0])]`.
1915
+
1916
+ Outputs:
1917
+ Tensor, with shape :math:`(N, C, H_{out})` or :math:`(C, H_{out})`,
1918
+ with the same data type with `x`.
1919
+
1920
+ Raises:
1921
+ TypeError: If data type of `x` or `indices` is not supported.
1922
+ TypeError: If `kernel_size`, `stride` or `padding` is neither an int nor a tuple.
1923
+ ValueError: If numbers in `stride`, `padding` (also support 0 and (0)) or `kernel_size` is not positive.
1924
+ ValueError: If the shapes of `x` and `indices` are not equal.
1925
+ ValueError: If `x` whose length is not 2 or 3.
1926
+ ValueError: If type of `output_size` is not tuple.
1927
+ ValueError: If `output_size` whose length is not 0, 2 or 3.
1928
+ ValueError: If `output_size` is not close to output size computed by attr `kernel_size`, `stride`, `padding`.
1929
+
1930
+ Supported Platforms:
1931
+ ``GPU`` ``CPU``
1932
+
1933
+ Examples:
1934
+ >>> import mindspore as ms
1935
+ >>> import numpy as np
1936
+ >>> x = ms.Tensor(np.array([[2, 4, 6, 8]]).astype(np.float32))
1937
+ >>> indices = ms.Tensor(np.array([[1, 3, 5, 7]]).astype(np.int64))
1938
+ >>> maxunpool1d = ms.nn.MaxUnpool1d(kernel_size =2, stride=2, padding=0)
1939
+ >>> output = maxunpool1d(x, indices)
1940
+ >>> print(output.asnumpy())
1941
+ [[0. 2. 0. 4. 0. 6. 0. 8.]]
1942
+ """
1943
+
1944
+ def __init__(self, kernel_size, stride=None, padding=0):
1945
+ """Initialize MaxUnpool1d."""
1946
+ super(MaxUnpool1d, self).__init__()
1947
+ if stride is None:
1948
+ stride = kernel_size
1949
+ self.kernel_size = kernel_size
1950
+ self.stride = stride
1951
+ self.padding = padding
1952
+
1953
+ def construct(self, x, indices, output_size=None):
1954
+ if output_size is None:
1955
+ output_size = ()
1956
+ else:
1957
+ if not isinstance(output_size, tuple):
1958
+ raise ValueError(f"For MaxUnpool1d, output_size must be tuple, but type {type(output_size)}.")
1959
+ if not output_size:
1960
+ raise ValueError(f"For MaxUnpool1d, the length of output_size must be positive, but got 0.")
1961
+ out = ops.max_unpool1d(x, indices, self.kernel_size, stride=self.stride, padding=self.padding,
1962
+ output_size=output_size)
1963
+ return out
1964
+
1965
+
1966
+ class MaxUnpool2d(Cell):
1967
+ r"""
1968
+ Computes the inverse of :class:`mindspore.nn.MaxPool2d`.
1969
+
1970
+ MaxUnpool2d keeps the maximal value and set all position of non-maximal values to zero. Typically the input
1971
+ is of shape :math:`(N, C, H_{in}, W_{in})` or :math:`(C, H_{in}, W_{in})`, and the output is of
1972
+ shape :math:`(N, C, H_{out}, W_{out})` or :math:`(C, H_{out}, W_{out})`. The operation is as follows.
1973
+
1974
+ .. math::
1975
+ \begin{array}{ll} \\
1976
+ H_{out} = (H_{in} - 1) \times stride[0] - 2 \times padding[0] + kernel\_size[0] \\
1977
+ W_{out} = (W_{in} - 1) \times stride[1] - 2 \times padding[1] + kernel\_size[1] \\
1978
+ \end{array}
1979
+
1980
+ Args:
1981
+ kernel_size (Union[int, tuple[int]]): The size of kernel used to take the maximum value,
1982
+ an int number that represents height and width of the kernel, or a tuple
1983
+ of two int numbers that represent height and width respectively.
1984
+ stride (Union[int, tuple[int]]): The distance of kernel moving, an int number that represents
1985
+ the height and width of movement are both stride, or a tuple of two int numbers that
1986
+ represent height and width of movement respectively.
1987
+ If stride is ``None``, then stride equal to kernel_size. Default: ``None`` .
1988
+ padding (Union[int, tuple[int]]): The pad value to be filled. Default: ``0`` . If `padding` is an integer,
1989
+ the paddings of height and width are the same, equal to padding. If `padding` is a tuple of two
1990
+ integers, the padding of height and width equal to padding[0] and padding[1] correspondingly.
1991
+
1992
+ Inputs:
1993
+ - **x** (Tensor) - The input Tensor to invert.
1994
+ Tensor of shape :math:`(N, C, H_{in}, W_{in})` or :math:`(C, H_{in}, W_{in})`.
1995
+ - **indices** (Tensor) - Max values' index represented by the indices.
1996
+ Tensor of shape must be same with input 'x'.
1997
+ Values of indices must belong to :math:`[0, H_{in} \times W_{in} - 1]`.
1998
+ Data type must be in int32 or int64.
1999
+ - **output_size** (tuple[int], optional) - The output size. Default: ``None`` .
2000
+ If output_size is ``None``, then the shape of output computed by kernel_size, stride and padding.
2001
+ If output_size is not ``None``, then output_size must be :math:`(N, C, H, W)`, :math:`(C, H, W)` or
2002
+ :math:`(H, W)` and output_size must belong to
2003
+ :math:`[(N, C, H_{out} - stride[0], W_{out} - stride[1]), (N, C, H_{out} + stride[0], W_{out} + stride[1])]`.
2004
+
2005
+ Outputs:
2006
+ Tensor, with shape :math:`(N, C, H_{out}, W_{out})` or :math:`(C, H_{out}, W_{out})`,
2007
+ with the same data type with `x`.
2008
+
2009
+ Raises:
2010
+ TypeError: If data type of `x` or `indices` is not supported.
2011
+ TypeError: If `kernel_size`, `stride` or `padding` is neither an int nor a tuple.
2012
+ ValueError: If numbers in `stride`, `padding` (also support 0 and (0, 0)) or `kernel_size` is not positive.
2013
+ ValueError: If the shape of `x` and `indices` are not equal.
2014
+ ValueError: If `kernel_size`, `stride` or `padding` is a tuple whose length is not equal to 2.
2015
+ ValueError: If `x` whose length is not 3 or 4.
2016
+ ValueError: If `output_size` whose type is not tuple.
2017
+ ValueError: If `output_size` whose length is not 0, 3 or 4.
2018
+ ValueError: If `output_size` is not close to output size computed by attr `kernel_size`, `stride`, `padding`.
2019
+
2020
+ Supported Platforms:
2021
+ ``GPU`` ``CPU``
2022
+
2023
+ Examples:
2024
+ >>> import mindspore as ms
2025
+ >>> import numpy as np
2026
+ >>> x = ms.Tensor(np.array([[[[0, 1], [8, 9]]]]).astype(np.float32))
2027
+ >>> indices = ms.Tensor(np.array([[[[0, 1], [2, 3]]]]).astype(np.int64))
2028
+ >>> maxunpool2d = ms.nn.MaxUnpool2d(kernel_size=1, stride=1, padding=0)
2029
+ >>> output = maxunpool2d(x, indices)
2030
+ >>> print(output.asnumpy())
2031
+ [[[[0. 1.]
2032
+ [8. 9.]]]]
2033
+ """
2034
+
2035
+ def __init__(self, kernel_size, stride=None, padding=0):
2036
+ """Initialize MaxUnpool2d."""
2037
+ super(MaxUnpool2d, self).__init__()
2038
+ if stride is None:
2039
+ stride = kernel_size
2040
+ self.kernel_size = kernel_size
2041
+ self.stride = stride
2042
+ self.padding = padding
2043
+
2044
+ def construct(self, x, indices, output_size=None):
2045
+ if output_size is None:
2046
+ output_size = ()
2047
+ else:
2048
+ if not isinstance(output_size, tuple):
2049
+ raise ValueError(f"For MaxUnpool2d, output_size must be tuple, but type {type(output_size)}.")
2050
+ if not output_size:
2051
+ raise ValueError(f"For MaxUnpool2d, the length of output_size must be positive, but got 0.")
2052
+ out = ops.max_unpool2d(x, indices, self.kernel_size, stride=self.stride, padding=self.padding,
2053
+ output_size=output_size)
2054
+ return out
2055
+
2056
+
2057
+ class MaxUnpool3d(Cell):
2058
+ r"""
2059
+ Computes the inverse of :class:`mindspore.nn.MaxPool3d`.
2060
+
2061
+ MaxUnpool3d keeps the maximal value and set all position of non-maximal values to zero.
2062
+ Typically the input is of shape :math:`(N, C, D_{in}, H_{in}, W_{in})` or :math:`(C, D_{in}, H_{in}, W_{in})`,
2063
+ and the output is of shape :math:`(N, C, D_{out}, H_{out}, W_{out})` or :math:`(C, D_{out}, H_{out}, W_{out})`.
2064
+ The operation is as follows.
2065
+
2066
+ .. math::
2067
+ \begin{array}{ll} \\
2068
+ D_{out} = (D_{in} - 1) \times stride[0] - 2 \times padding[0] + kernel\_size[0] \\
2069
+ H_{out} = (H_{in} - 1) \times stride[1] - 2 \times padding[1] + kernel\_size[1] \\
2070
+ W_{out} = (W_{in} - 1) \times stride[2] - 2 \times padding[2] + kernel\_size[2] \\
2071
+ \end{array}
2072
+
2073
+ Args:
2074
+ kernel_size (Union[int, tuple[int]]): The size of kernel used to take the maximum value,
2075
+ an int number that represents depth, height and width of the kernel, or a tuple
2076
+ of three int numbers that represent depth, height and width respectively.
2077
+ stride (Union[int, tuple[int]]): The distance of kernel moving, an int number that represents
2078
+ the depth, height and width of movement are both stride, or a tuple of three int numbers that
2079
+ represent depth, height and width of movement respectively.
2080
+ If stride is ``None``, then stride equal to kernel_size. Default: ``None`` .
2081
+ padding (Union[int, tuple[int]]): The pad value to be filled. Default: ``0`` . If `padding` is an integer,
2082
+ the paddings of depth, height and width are the same, equal to padding. If `padding` is a tuple of three
2083
+ integers, the padding of depth, height and width equal to padding[0], padding[1] and padding[2]
2084
+ correspondingly.
2085
+
2086
+ Inputs:
2087
+ - **x** (Tensor) - The input Tensor to invert.
2088
+ Tensor of shape :math:`(N, C, D_{in}, H_{in}, W_{in})` or :math:`(C, D_{in}, H_{in}, W_{in})`.
2089
+ - **indices** (Tensor) - Max values' index represented by the indices.
2090
+ Tensor of shape must be same with input 'x'.
2091
+ Values of indices must belong to :math:`[0, D_{in} \times H_{in} \times W_{in} - 1]`.
2092
+ Data type must be in int32 or int64.
2093
+ - **output_size** (tuple[int], optional) - The output size. Default: ``None`` .
2094
+ If output_size is ``None``, then the shape of output computed by kernel_size, stride and padding.
2095
+ If output_size is not ``None``, then output_size must be :math:`(N, C, D, H, W)` , :math:`(C, D, H, W)` or
2096
+ :math:`(D, H, W)` and output_size must belong to
2097
+ :math:`[(N, C, D_{out} - stride[0], H_{out} - stride[1], W_{out} - stride[2]),
2098
+ (N, C, D_{out} + stride[0], H_{out} + stride[1], W_{out} + stride[2])]`.
2099
+
2100
+ Outputs:
2101
+ Tensor, with shape :math:`(N, C, D_{out}, H_{out}, W_{out})` or :math:`(C, D_{out}, H_{out}, W_{out})`,
2102
+ with the same data type with `x`.
2103
+
2104
+ Raises:
2105
+ TypeError: If data type of `x` or `indices` is not supported.
2106
+ TypeError: If `kernel_size`, `stride` or `padding` is neither an int nor a tuple.
2107
+ ValueError: If numbers in `stride` or `padding` (also support 0 and (0, 0, 0)) or `kernel_size` is not positive.
2108
+ ValueError: If the shape of `x` and `indices` are not equal.
2109
+ ValueError: If `kernel_size`, `stride` or `padding` is a tuple whose length is not equal to 3.
2110
+ ValueError: If `x` whose length is not 4 or 5.
2111
+ ValueError: If `output_size` whose length is not 0, 4 or 5.
2112
+ ValueError: If `output_size` whose type is not tuple.
2113
+ ValueError: If `output_size` is not close to output size computed by attr `kernel_size`, `stride`, `padding`.
2114
+
2115
+ Supported Platforms:
2116
+ ``GPU`` ``CPU``
2117
+
2118
+ Examples:
2119
+ >>> import mindspore as ms
2120
+ >>> import numpy as np
2121
+ >>> x = ms.Tensor(np.array([[[[[0, 1], [8, 9]]]]]).astype(np.float32))
2122
+ >>> indices= ms.Tensor(np.array([[[[[0, 1], [2, 3]]]]]).astype(np.int64))
2123
+ >>> maxunpool3d = ms.nn.MaxUnpool3d(kernel_size=1, stride=1, padding=0)
2124
+ >>> output = maxunpool3d(x, indices)
2125
+ >>> print(output.asnumpy())
2126
+ [[[[[0. 1.]
2127
+ [8. 9.]]]]]
2128
+ """
2129
+
2130
+ def __init__(self, kernel_size, stride=None, padding=0):
2131
+ super(MaxUnpool3d, self).__init__()
2132
+ if stride is None:
2133
+ stride = kernel_size
2134
+ self.kernel_size = kernel_size
2135
+ self.stride = stride
2136
+ self.padding = padding
2137
+
2138
+ def construct(self, x, indices, output_size=None):
2139
+ if output_size is None:
2140
+ output_size = ()
2141
+ else:
2142
+ if not isinstance(output_size, tuple):
2143
+ raise ValueError(f"For MaxUnpool3d, output_size must be tuple, but type {type(output_size)}.")
2144
+ if not output_size:
2145
+ raise ValueError(f"For MaxUnpool3d, the length of output_size must be positive, but got 0.")
2146
+ out = ops.max_unpool3d(x, indices, self.kernel_size, stride=self.stride, padding=self.padding,
2147
+ output_size=output_size)
2148
+ return out