mindspore 2.1.0__cp38-cp38-manylinux1_x86_64.whl → 2.2.11__cp38-cp38-manylinux1_x86_64.whl

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

Potentially problematic release.


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

Files changed (589) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +4 -1
  3. mindspore/_akg/akg/build_module.py +5 -6
  4. mindspore/_akg/akg/composite/build_module.py +139 -22
  5. mindspore/_akg/akg/composite/split_stitch.py +10 -11
  6. mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
  7. mindspore/_akg/akg/tvm/api.py +4 -3
  8. mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
  9. mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
  10. mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
  11. mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
  12. mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
  13. mindspore/_akg/akg/tvm/build_module.py +16 -1
  14. mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
  15. mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
  16. mindspore/_akg/akg/tvm/ir_builder.py +1 -1
  17. mindspore/_akg/akg/tvm/module.py +1 -2
  18. mindspore/_akg/akg/tvm/stmt.py +2 -2
  19. mindspore/_akg/akg/utils/ascend_profilier/cann_file_parser.py +76 -0
  20. mindspore/_akg/akg/utils/ascend_profilier/file_manager.py +56 -0
  21. mindspore/_akg/akg/utils/ascend_profilier/op_summary_bean.py +23 -0
  22. mindspore/_akg/akg/utils/ascend_profilier/op_summary_headers.py +8 -0
  23. mindspore/_akg/akg/utils/ascend_profilier/op_summary_parser.py +42 -0
  24. mindspore/_akg/akg/utils/ascend_profilier/path_manager.py +65 -0
  25. mindspore/_akg/akg/utils/composite_op_helper.py +16 -12
  26. mindspore/_akg/akg/utils/dump_ascend_meta.py +22 -3
  27. mindspore/_akg/akg/utils/kernel_exec.py +98 -274
  28. mindspore/_akg/akg/utils/result_analysis.py +4 -24
  29. mindspore/_akg/akg/utils/tbe_codegen_utils.py +219 -0
  30. mindspore/_akg/akg/utils/util.py +56 -1
  31. mindspore/_c_dataengine.cpython-38-x86_64-linux-gnu.so +0 -0
  32. mindspore/_c_expression.cpython-38-x86_64-linux-gnu.so +0 -0
  33. mindspore/_c_mindrecord.cpython-38-x86_64-linux-gnu.so +0 -0
  34. mindspore/_check_jit_forbidden_api.py +3 -1
  35. mindspore/_checkparam.py +23 -29
  36. mindspore/_extends/graph_kernel/__init__.py +0 -1
  37. mindspore/_extends/graph_kernel/model/graph_split.py +84 -76
  38. mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
  39. mindspore/_extends/graph_kernel/splitter.py +4 -11
  40. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
  41. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +84 -67
  42. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
  43. mindspore/_extends/parallel_compile/akg_compiler/util.py +10 -7
  44. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
  45. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +6 -5
  46. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
  47. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
  48. mindspore/_extends/parse/__init__.py +13 -15
  49. mindspore/_extends/parse/namespace.py +7 -33
  50. mindspore/_extends/parse/parser.py +67 -72
  51. mindspore/_extends/parse/resources.py +1 -1
  52. mindspore/_extends/parse/standard_method.py +86 -106
  53. mindspore/_extends/parse/trope.py +1 -1
  54. mindspore/_extends/remote/kernel_build_server.py +25 -7
  55. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  56. mindspore/_install_custom.py +43 -0
  57. mindspore/_mindspore_offline_debug.cpython-38-x86_64-linux-gnu.so +0 -0
  58. mindspore/amp.py +47 -11
  59. mindspore/bin/cache_admin +0 -0
  60. mindspore/bin/cache_server +0 -0
  61. mindspore/boost/boost.py +1 -8
  62. mindspore/boost/boost_cell_wrapper.py +3 -2
  63. mindspore/boost/grad_accumulation.py +1 -1
  64. mindspore/boost/group_loss_scale_manager.py +8 -7
  65. mindspore/common/__init__.py +5 -3
  66. mindspore/common/_jit_fallback_utils.py +6 -0
  67. mindspore/common/_register_for_adapter.py +2 -0
  68. mindspore/common/_register_for_tensor.py +2 -2
  69. mindspore/common/_stub_tensor.py +13 -0
  70. mindspore/common/_utils.py +29 -0
  71. mindspore/common/api.py +174 -259
  72. mindspore/common/auto_dynamic_shape.py +494 -0
  73. mindspore/common/dtype.py +18 -11
  74. mindspore/common/dump.py +6 -4
  75. mindspore/common/initializer.py +14 -14
  76. mindspore/common/jit_config.py +33 -15
  77. mindspore/common/lazy_inline.py +126 -7
  78. mindspore/common/mindir_util.py +101 -0
  79. mindspore/common/parameter.py +51 -41
  80. mindspore/common/seed.py +4 -4
  81. mindspore/common/sparse_tensor.py +13 -14
  82. mindspore/common/tensor.py +243 -165
  83. mindspore/communication/__init__.py +7 -4
  84. mindspore/communication/_comm_helper.py +83 -4
  85. mindspore/communication/management.py +152 -84
  86. mindspore/config/op_info.config +14 -3
  87. mindspore/config/super_bar_config.json +4 -2
  88. mindspore/context.py +152 -61
  89. mindspore/dataset/__init__.py +5 -5
  90. mindspore/dataset/audio/__init__.py +2 -2
  91. mindspore/dataset/audio/transforms.py +52 -52
  92. mindspore/dataset/callback/ds_callback.py +16 -2
  93. mindspore/dataset/core/config.py +68 -51
  94. mindspore/dataset/engine/cache_client.py +33 -7
  95. mindspore/dataset/engine/datasets.py +250 -112
  96. mindspore/dataset/engine/datasets_audio.py +43 -211
  97. mindspore/dataset/engine/datasets_standard_format.py +16 -35
  98. mindspore/dataset/engine/datasets_text.py +43 -67
  99. mindspore/dataset/engine/datasets_user_defined.py +86 -100
  100. mindspore/dataset/engine/datasets_vision.py +219 -1029
  101. mindspore/dataset/engine/iterators.py +11 -4
  102. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
  103. mindspore/dataset/engine/obs/util.py +3 -0
  104. mindspore/dataset/engine/samplers.py +1 -1
  105. mindspore/dataset/engine/validators.py +19 -5
  106. mindspore/dataset/text/__init__.py +3 -3
  107. mindspore/dataset/text/transforms.py +101 -127
  108. mindspore/dataset/text/utils.py +205 -138
  109. mindspore/dataset/transforms/__init__.py +1 -1
  110. mindspore/dataset/transforms/py_transforms_util.py +40 -12
  111. mindspore/dataset/transforms/transforms.py +95 -40
  112. mindspore/dataset/utils/browse_dataset.py +8 -2
  113. mindspore/dataset/utils/line_reader.py +17 -19
  114. mindspore/dataset/vision/__init__.py +3 -3
  115. mindspore/dataset/vision/c_transforms.py +6 -3
  116. mindspore/dataset/vision/transforms.py +409 -287
  117. mindspore/dataset/vision/utils.py +13 -14
  118. mindspore/dataset/vision/validators.py +11 -1
  119. mindspore/experimental/map_parameter.py +14 -0
  120. mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
  121. mindspore/{nn/optim_ex → experimental/optim}/adam.py +60 -67
  122. mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
  123. mindspore/experimental/optim/lr_scheduler.py +1427 -0
  124. mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
  125. mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
  126. mindspore/gen_ops.py +273 -0
  127. mindspore/include/OWNERS +0 -1
  128. mindspore/include/api/data_type.h +2 -1
  129. mindspore/include/api/graph.h +0 -15
  130. mindspore/include/api/kernel.h +2 -0
  131. mindspore/include/api/kernel_api.h +37 -12
  132. mindspore/include/api/model.h +17 -14
  133. mindspore/include/api/status.h +8 -3
  134. mindspore/include/api/types.h +37 -4
  135. mindspore/include/c_api/ms/abstract.h +67 -0
  136. mindspore/include/c_api/ms/attribute.h +197 -0
  137. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  138. mindspore/include/c_api/ms/base/macros.h +32 -0
  139. mindspore/include/c_api/ms/base/status.h +33 -0
  140. mindspore/include/c_api/ms/base/types.h +282 -0
  141. mindspore/include/c_api/ms/context.h +102 -0
  142. mindspore/include/c_api/ms/graph.h +160 -0
  143. mindspore/include/c_api/ms/node.h +606 -0
  144. mindspore/include/c_api/ms/tensor.h +161 -0
  145. mindspore/include/c_api/ms/value.h +84 -0
  146. mindspore/include/dataset/constants.h +6 -5
  147. mindspore/include/dataset/execute.h +23 -13
  148. mindspore/include/dataset/text.h +26 -26
  149. mindspore/include/dataset/transforms.h +13 -13
  150. mindspore/include/dataset/vision.h +60 -60
  151. mindspore/include/dataset/vision_ascend.h +5 -6
  152. mindspore/include/dataset/vision_lite.h +17 -17
  153. mindspore/include/mindapi/base/type_id.h +1 -0
  154. mindspore/include/mindapi/base/types.h +1 -0
  155. mindspore/lib/libdnnl.so.2 +0 -0
  156. mindspore/lib/libjemalloc.so.2 +0 -0
  157. mindspore/lib/libmindspore.so +0 -0
  158. mindspore/lib/libmindspore_backend.so +0 -0
  159. mindspore/lib/libmindspore_common.so +0 -0
  160. mindspore/lib/libmindspore_core.so +0 -0
  161. mindspore/lib/libmindspore_glog.so.0 +0 -0
  162. mindspore/lib/libmindspore_gpr.so.15 +0 -0
  163. mindspore/lib/libmindspore_grpc++.so.1 +0 -0
  164. mindspore/lib/libmindspore_grpc.so.15 +0 -0
  165. mindspore/lib/libmindspore_shared_lib.so +0 -0
  166. mindspore/lib/libnnacl.so +0 -0
  167. mindspore/lib/libopencv_core.so.4.5 +0 -0
  168. mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
  169. mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
  170. mindspore/lib/libps_cache.so +0 -0
  171. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310/aic-ascend310-ops-info.json +123 -0
  172. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310p/aic-ascend310p-ops-info.json +123 -0
  173. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910/aic-ascend910-ops-info.json +158 -0
  174. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910b/aic-ascend910b-ops-info.json +37 -0
  175. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
  176. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
  177. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
  178. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
  179. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
  180. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
  181. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
  182. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
  183. mindspore/lib/plugin/ascend/custom_aicore_ops/op_proto/libop_proto.so +0 -0
  184. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
  185. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
  186. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +8998 -0
  187. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
  188. mindspore/lib/plugin/ascend/libakg.so +0 -0
  189. mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
  190. mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
  191. mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
  192. mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
  193. mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
  194. mindspore/lib/plugin/cpu/libakg.so +0 -0
  195. mindspore/lib/plugin/gpu/libcuda_ops.so.10 +0 -0
  196. mindspore/lib/plugin/gpu/libcuda_ops.so.11 +0 -0
  197. mindspore/lib/plugin/gpu10.1/libakg.so +0 -0
  198. mindspore/lib/plugin/gpu10.1/libnccl.so.2 +0 -0
  199. mindspore/lib/plugin/gpu11.1/libakg.so +0 -0
  200. mindspore/lib/plugin/gpu11.1/libnccl.so.2 +0 -0
  201. mindspore/lib/plugin/gpu11.6/libakg.so +0 -0
  202. mindspore/lib/plugin/gpu11.6/libnccl.so.2 +0 -0
  203. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  204. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  205. mindspore/lib/plugin/libmindspore_gpu.so.10.1 +0 -0
  206. mindspore/lib/plugin/libmindspore_gpu.so.11.1 +0 -0
  207. mindspore/lib/plugin/libmindspore_gpu.so.11.6 +0 -0
  208. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  209. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  210. mindspore/nn/__init__.py +0 -2
  211. mindspore/nn/cell.py +313 -74
  212. mindspore/nn/dynamic_lr.py +21 -21
  213. mindspore/nn/layer/activation.py +22 -30
  214. mindspore/nn/layer/basic.py +15 -13
  215. mindspore/nn/layer/channel_shuffle.py +1 -1
  216. mindspore/nn/layer/container.py +271 -9
  217. mindspore/nn/layer/conv.py +323 -204
  218. mindspore/nn/layer/dense.py +8 -5
  219. mindspore/nn/layer/embedding.py +33 -27
  220. mindspore/nn/layer/flash_attention.py +61 -95
  221. mindspore/nn/layer/image.py +8 -6
  222. mindspore/nn/layer/math.py +16 -25
  223. mindspore/nn/layer/normalization.py +107 -66
  224. mindspore/nn/layer/padding.py +1 -1
  225. mindspore/nn/layer/pooling.py +131 -109
  226. mindspore/nn/layer/rnn_cells.py +27 -22
  227. mindspore/nn/layer/rnns.py +13 -16
  228. mindspore/nn/layer/thor_layer.py +1 -1
  229. mindspore/nn/layer/transformer.py +221 -154
  230. mindspore/nn/learning_rate_schedule.py +9 -1
  231. mindspore/nn/loss/loss.py +235 -174
  232. mindspore/nn/optim/ada_grad.py +2 -1
  233. mindspore/nn/optim/adadelta.py +1 -0
  234. mindspore/nn/optim/adafactor.py +2 -1
  235. mindspore/nn/optim/adam.py +7 -4
  236. mindspore/nn/optim/adamax.py +3 -2
  237. mindspore/nn/optim/adasum.py +2 -2
  238. mindspore/nn/optim/asgd.py +2 -3
  239. mindspore/nn/optim/ftrl.py +6 -5
  240. mindspore/nn/optim/lamb.py +7 -4
  241. mindspore/nn/optim/lars.py +1 -1
  242. mindspore/nn/optim/lazyadam.py +5 -3
  243. mindspore/nn/optim/momentum.py +2 -1
  244. mindspore/nn/optim/optimizer.py +53 -4
  245. mindspore/nn/optim/proximal_ada_grad.py +3 -4
  246. mindspore/nn/optim/rmsprop.py +4 -3
  247. mindspore/nn/optim/rprop.py +23 -12
  248. mindspore/nn/optim/sgd.py +26 -11
  249. mindspore/nn/optim/thor.py +9 -7
  250. mindspore/nn/probability/bijector/bijector.py +5 -5
  251. mindspore/nn/probability/bijector/power_transform.py +27 -27
  252. mindspore/nn/probability/bijector/softplus.py +3 -3
  253. mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
  254. mindspore/nn/probability/distribution/bernoulli.py +5 -5
  255. mindspore/nn/probability/distribution/beta.py +3 -3
  256. mindspore/nn/probability/distribution/categorical.py +7 -7
  257. mindspore/nn/probability/distribution/cauchy.py +0 -1
  258. mindspore/nn/probability/distribution/distribution.py +3 -3
  259. mindspore/nn/probability/distribution/gamma.py +3 -3
  260. mindspore/nn/probability/distribution/geometric.py +4 -4
  261. mindspore/nn/probability/distribution/gumbel.py +4 -4
  262. mindspore/nn/probability/distribution/log_normal.py +2 -2
  263. mindspore/nn/probability/distribution/logistic.py +2 -2
  264. mindspore/nn/probability/distribution/poisson.py +4 -4
  265. mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
  266. mindspore/nn/probability/distribution/uniform.py +6 -6
  267. mindspore/nn/wrap/__init__.py +4 -2
  268. mindspore/nn/wrap/cell_wrapper.py +87 -34
  269. mindspore/nn/wrap/grad_reducer.py +8 -5
  270. mindspore/nn/wrap/loss_scale.py +105 -42
  271. mindspore/numpy/array_creations.py +1 -2
  272. mindspore/numpy/array_ops.py +3 -2
  273. mindspore/numpy/utils_const.py +5 -5
  274. mindspore/offline_debug/convert_async.py +2 -2
  275. mindspore/ops/_grad_experimental/__init__.py +0 -5
  276. mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
  277. mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
  278. mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
  279. mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
  280. mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
  281. mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
  282. mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
  283. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
  284. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  285. mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
  286. mindspore/ops/_op_impl/aicpu/add.py +3 -3
  287. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  288. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  289. mindspore/ops/_op_impl/{_custom_op/flash_attention/constants.py → aicpu/eps.py} +18 -27
  290. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  291. mindspore/ops/_op_impl/aicpu/linear_sum_assignment.py +21 -2
  292. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  293. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  294. mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
  295. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  296. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  297. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  298. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  299. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  300. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  301. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  302. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
  303. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
  304. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  305. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  306. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  307. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  308. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  309. mindspore/ops/_op_impl/tbe/__init__.py +4 -4
  310. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  311. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  312. mindspore/ops/_primitive_cache.py +1 -1
  313. mindspore/ops/_tracefunc.py +45 -13
  314. mindspore/ops/_utils/utils.py +6 -1
  315. mindspore/ops/_vmap/vmap_array_ops.py +3 -3
  316. mindspore/ops/_vmap/vmap_base.py +3 -3
  317. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  318. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  319. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  320. mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
  321. mindspore/ops/arg_dtype_cast.py +54 -0
  322. mindspore/ops/composite/base.py +37 -10
  323. mindspore/ops/composite/math_ops.py +5 -4
  324. mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
  325. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
  326. mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
  327. mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
  328. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  329. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  330. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  331. mindspore/ops/deprecated.py +304 -0
  332. mindspore/ops/function/__init__.py +4 -1
  333. mindspore/ops/function/array_func.py +174 -193
  334. mindspore/ops/function/clip_func.py +81 -13
  335. mindspore/ops/function/debug_func.py +1 -1
  336. mindspore/ops/function/grad/grad_func.py +18 -9
  337. mindspore/ops/function/image_func.py +10 -4
  338. mindspore/ops/function/linalg_func.py +5 -5
  339. mindspore/ops/function/math_func.py +575 -386
  340. mindspore/ops/function/nn_func.py +568 -260
  341. mindspore/ops/function/random_func.py +88 -57
  342. mindspore/ops/function/sparse_func.py +1 -1
  343. mindspore/ops/function/sparse_unary_func.py +14 -12
  344. mindspore/ops/function/vmap_func.py +6 -5
  345. mindspore/ops/functional.py +15 -10
  346. mindspore/ops/op_info_register.py +244 -25
  347. mindspore/ops/operations/__init__.py +31 -19
  348. mindspore/ops/operations/_grad_ops.py +71 -7
  349. mindspore/ops/operations/_inner_ops.py +350 -17
  350. mindspore/ops/operations/_quant_ops.py +4 -8
  351. mindspore/ops/operations/_sequence_ops.py +42 -0
  352. mindspore/ops/operations/array_ops.py +68 -282
  353. mindspore/ops/operations/comm_ops.py +107 -59
  354. mindspore/ops/operations/custom_ops.py +94 -70
  355. mindspore/ops/operations/debug_ops.py +8 -4
  356. mindspore/ops/operations/image_ops.py +18 -12
  357. mindspore/ops/operations/inner_ops.py +26 -3
  358. mindspore/ops/operations/math_ops.py +192 -144
  359. mindspore/ops/operations/nn_ops.py +857 -489
  360. mindspore/ops/operations/other_ops.py +0 -22
  361. mindspore/ops/operations/random_ops.py +53 -111
  362. mindspore/ops/operations/sparse_ops.py +3 -1
  363. mindspore/ops/primitive.py +24 -18
  364. mindspore/parallel/_auto_parallel_context.py +68 -8
  365. mindspore/parallel/_cost_model_context.py +2 -2
  366. mindspore/parallel/_offload_context.py +17 -3
  367. mindspore/parallel/_parallel_serialization.py +12 -5
  368. mindspore/parallel/_ps_context.py +12 -0
  369. mindspore/parallel/_tensor.py +18 -13
  370. mindspore/parallel/_transformer/layers.py +5 -3
  371. mindspore/parallel/_transformer/loss.py +1 -0
  372. mindspore/parallel/_transformer/moe.py +2 -2
  373. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  374. mindspore/parallel/_transformer/transformer.py +23 -3
  375. mindspore/parallel/_utils.py +11 -7
  376. mindspore/parallel/algo_parameter_config.py +85 -5
  377. mindspore/parallel/checkpoint_transform.py +19 -12
  378. mindspore/parallel/shard.py +21 -14
  379. mindspore/profiler/common/struct_type.py +3 -3
  380. mindspore/profiler/common/util.py +4 -2
  381. mindspore/profiler/envprofiling.py +1 -1
  382. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  383. mindspore/profiler/parser/ascend_flops_generator.py +2 -2
  384. mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
  385. mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
  386. mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
  387. mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
  388. mindspore/profiler/parser/ascend_op_generator.py +6 -6
  389. mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
  390. mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
  391. mindspore/profiler/parser/base_timeline_generator.py +10 -8
  392. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
  393. mindspore/profiler/parser/flops_parser.py +15 -11
  394. mindspore/profiler/parser/framework_parser.py +38 -22
  395. mindspore/profiler/parser/hccl_parser.py +16 -12
  396. mindspore/profiler/parser/integrator.py +22 -11
  397. mindspore/profiler/parser/memory_usage_parser.py +2 -2
  398. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  399. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  400. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  401. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  402. mindspore/profiler/parser/optime_parser.py +1 -1
  403. mindspore/profiler/parser/profiler_info.py +21 -2
  404. mindspore/profiler/parser/step_trace_parser.py +11 -14
  405. mindspore/profiler/profiling.py +179 -89
  406. mindspore/rewrite/api/node.py +102 -19
  407. mindspore/rewrite/api/node_type.py +5 -1
  408. mindspore/rewrite/api/pattern_engine.py +1 -1
  409. mindspore/rewrite/api/scoped_value.py +9 -17
  410. mindspore/rewrite/api/symbol_tree.py +131 -47
  411. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  412. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  413. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  414. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
  415. mindspore/rewrite/common/rewrite_elog.py +5 -1
  416. mindspore/rewrite/namer.py +33 -24
  417. mindspore/rewrite/namespace.py +14 -5
  418. mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
  419. mindspore/rewrite/node/call_function.py +79 -0
  420. mindspore/rewrite/node/cell_container.py +135 -0
  421. mindspore/rewrite/node/control_flow.py +88 -0
  422. mindspore/rewrite/{node.py → node/node.py} +273 -234
  423. mindspore/rewrite/node/node_manager.py +254 -0
  424. mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
  425. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  426. mindspore/rewrite/parsers/assign_parser.py +216 -221
  427. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  428. mindspore/rewrite/parsers/class_def_parser.py +174 -113
  429. mindspore/rewrite/parsers/constant_parser.py +9 -6
  430. mindspore/rewrite/parsers/container_parser.py +9 -7
  431. mindspore/rewrite/parsers/for_parser.py +42 -21
  432. mindspore/rewrite/parsers/function_def_parser.py +24 -16
  433. mindspore/rewrite/parsers/if_parser.py +28 -24
  434. mindspore/rewrite/parsers/module_parser.py +196 -25
  435. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  436. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  437. mindspore/rewrite/parsers/return_parser.py +6 -6
  438. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  439. mindspore/rewrite/sparsify/utils.py +1 -1
  440. mindspore/rewrite/symbol_tree.py +523 -578
  441. mindspore/rewrite/symbol_tree_builder.py +9 -193
  442. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  443. mindspore/run_check/_check_version.py +6 -4
  444. mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
  445. mindspore/safeguard/rewrite_obfuscation.py +541 -0
  446. mindspore/scipy/linalg.py +1 -1
  447. mindspore/scipy/ops.py +55 -5
  448. mindspore/scipy/optimize/__init__.py +3 -2
  449. mindspore/scipy/optimize/linear_sum_assignment.py +38 -33
  450. mindspore/scipy/optimize/minimize.py +7 -3
  451. mindspore/train/_utils.py +7 -3
  452. mindspore/train/amp.py +323 -123
  453. mindspore/train/anf_ir_pb2.py +14 -2
  454. mindspore/train/callback/_backup_and_restore.py +2 -12
  455. mindspore/train/callback/_callback.py +29 -4
  456. mindspore/train/callback/_checkpoint.py +23 -8
  457. mindspore/train/callback/_early_stop.py +2 -2
  458. mindspore/train/callback/_landscape.py +4 -4
  459. mindspore/train/callback/_loss_monitor.py +2 -2
  460. mindspore/train/callback/_on_request_exit.py +2 -2
  461. mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
  462. mindspore/train/callback/_summary_collector.py +15 -8
  463. mindspore/train/callback/_time_monitor.py +58 -5
  464. mindspore/train/data_sink.py +5 -11
  465. mindspore/train/dataset_helper.py +84 -57
  466. mindspore/train/loss_scale_manager.py +2 -2
  467. mindspore/train/metrics/__init__.py +3 -3
  468. mindspore/train/metrics/cosine_similarity.py +1 -1
  469. mindspore/train/metrics/hausdorff_distance.py +3 -2
  470. mindspore/train/metrics/mean_surface_distance.py +3 -2
  471. mindspore/train/metrics/metric.py +39 -19
  472. mindspore/train/metrics/roc.py +2 -2
  473. mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
  474. mindspore/train/mind_ir_pb2.py +85 -36
  475. mindspore/train/model.py +187 -47
  476. mindspore/train/serialization.py +487 -161
  477. mindspore/train/summary/_summary_adapter.py +1 -1
  478. mindspore/train/summary/_writer_pool.py +3 -2
  479. mindspore/train/summary/summary_record.py +37 -17
  480. mindspore/train/train_thor/convert_utils.py +3 -3
  481. mindspore/train/train_thor/dataset_helper.py +1 -1
  482. mindspore/version.py +1 -1
  483. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/METADATA +8 -8
  484. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/RECORD +488 -539
  485. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/entry_points.txt +0 -1
  486. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  487. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  488. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  489. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  490. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  491. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  492. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  493. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  494. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  495. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  496. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  497. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  498. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  499. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  500. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  501. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  502. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  503. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  504. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  505. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  506. mindspore/_extends/graph_kernel/expander.py +0 -80
  507. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
  508. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  509. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  510. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  511. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  512. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  513. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  514. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  515. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  516. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  517. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  518. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  519. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  520. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  521. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  522. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  523. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  524. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  525. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  526. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  527. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  528. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  529. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  530. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  531. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  532. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  533. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  534. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  535. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  536. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  537. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  538. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  539. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  540. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  541. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  542. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  543. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  544. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  545. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  546. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  547. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  548. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  549. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  550. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  551. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  552. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  553. mindspore/dataset/datapreprocess/__init__.py +0 -20
  554. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  555. mindspore/include/api/net.h +0 -142
  556. mindspore/nn/lr_scheduler.py +0 -262
  557. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
  558. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
  559. mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
  560. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  561. mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
  562. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +0 -350
  563. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +0 -409
  564. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +0 -578
  565. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +0 -199
  566. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +0 -446
  567. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/__init__.py +0 -0
  568. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/sparse_tiling.py +0 -45
  569. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/strategy.py +0 -67
  570. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +0 -62
  571. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
  572. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
  573. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
  574. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  575. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  576. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
  577. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
  578. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  579. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  580. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
  581. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
  582. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
  583. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
  584. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
  585. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  586. mindspore/rewrite/node_visitor.py +0 -44
  587. /mindspore/{ops/_op_impl/_custom_op/flash_attention → _akg/akg/utils/ascend_profilier}/__init__.py +0 -0
  588. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/WHEEL +0 -0
  589. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/top_level.txt +0 -0
@@ -20,6 +20,7 @@ import numpy as np
20
20
 
21
21
  from mindspore import context
22
22
  from mindspore.ops import operations as P
23
+ import mindspore.common.dtype as mstype
23
24
  from mindspore.ops.primitive import _primexpr
24
25
  from mindspore.common.parameter import Parameter
25
26
  from mindspore.common.initializer import initializer, HeUniform, Uniform, _calculate_fan_in_and_fan_out
@@ -50,7 +51,8 @@ class _Conv(Cell):
50
51
  weight_init,
51
52
  bias_init,
52
53
  data_format='NCHW',
53
- transposed=False):
54
+ transposed=False,
55
+ dtype=mstype.float32):
54
56
  """Initialize _Conv."""
55
57
  super(_Conv, self).__init__()
56
58
  self.in_channels = Validator.check_positive_int(in_channels, 'in_channels', self.cls_name)
@@ -97,7 +99,7 @@ class _Conv(Cell):
97
99
  if weight_init is None:
98
100
  weight_init = HeUniform(math.sqrt(5))
99
101
  self.weight_init = weight_init
100
- self.weight = Parameter(initializer(self.weight_init, shape), name='weight')
102
+ self.weight = Parameter(initializer(self.weight_init, shape, dtype=dtype), name='weight')
101
103
 
102
104
  self.bias_init = bias_init
103
105
  if Validator.check_bool(has_bias, "has_bias", self.cls_name):
@@ -109,7 +111,7 @@ class _Conv(Cell):
109
111
  else:
110
112
  bias_init = 'zeros'
111
113
  self.bias_init = bias_init
112
- self.bias = Parameter(initializer(self.bias_init, [out_channels]), name='bias')
114
+ self.bias = Parameter(initializer(self.bias_init, [out_channels], dtype=dtype), name='bias')
113
115
  else:
114
116
  self.bias = None
115
117
 
@@ -139,31 +141,44 @@ class _Conv(Cell):
139
141
 
140
142
  class Conv2d(_Conv):
141
143
  r"""
142
- Calculates the 2D convolution on the input tensor.
143
- The input is typically of shape :math:`(N, C_{in}, H_{in}, W_{in})`,
144
- where :math:`N` is batch size, :math:`C_{in}` is a number of channels,
145
- :math:`H_{in}, W_{in}` are the height and width of the feature layer respectively.
146
- For the tensor of each batch, its shape is :math:`(C_{in}, H_{in}, W_{in})`, the formula is defined as:
144
+ 2D convolution layer.
145
+
146
+ Applies a 2D convolution over an input tensor which is typically of shape :math:`(N, C_{in}, H_{in}, W_{in})`,
147
+ where :math:`N` is batch size, :math:`C` is channel number, :math:`H` is feature height, :math:`W` is feature width.
148
+
149
+ The output is calculated based on formula:
147
150
 
148
151
  .. math::
149
152
 
150
153
  \text{out}(N_i, C_{\text{out}_j}) = \text{bias}(C_{\text{out}_j}) +
151
154
  \sum_{k = 0}^{C_{in} - 1} \text{ccor}({\text{weight}(C_{\text{out}_j}, k), \text{X}(N_i, k)})
152
155
 
153
- where :math:`ccor` is the `cross-correlation <https://en.wikipedia.org/wiki/Cross-correlation>`_,
154
- :math:`C_{in}` is the channel number of the input, :math:`out_{j}` corresponds to the :math:`j`-th channel of
155
- the output and :math:`j` is in the range of :math:`[0, C_{out}-1]`. :math:`\text{weight}(C_{\text{out}_j}, k)`
156
- is a convolution kernel slice with shape :math:`(\text{kernel_size[0]}, \text{kernel_size[1]})`,
157
- where :math:`\text{kernel_size[0]}` and :math:`\text{kernel_size[1]}` are the height and width of the convolution
158
- kernel respectively. :math:`\text{bias}` is the bias parameter and :math:`\text{X}` is the input tensor.
159
- In this case, `data_format` of the input tensor is 'NCHW' and the shape of full convolution kernel is
160
- :math:`(C_{out}, C_{in} / \text{group}, \text{kernel_size[0]}, \text{kernel_size[1]})`,
161
- where `group` is the number of groups to split the input `x` in the channel dimension. If `data_format` of the
162
- input tensor is 'NHWC', the shape of full convolution kernel will be
163
- :math:`(C_{out}, \text{kernel_size[0]}, \text{kernel_size[1]}), C_{in} / \text{group}`.
164
-
165
- For more details, please refers to the paper `Gradient Based Learning Applied to Document
166
- Recognition <http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf>`_.
156
+ where :math:`bias` is the output channel bias, :math:`ccor` is
157
+ the `cross-correlation <https://en.wikipedia.org/wiki/Cross-correlation>`_,
158
+ , :math:`weight` is the convolution kernel value and :math:`X` represents the input feature map.
159
+
160
+ Here are the indices' meanings:
161
+ - :math:`i` corresponds to the batch number, ranging from 0 to N-1, where N is the batch size of the input.
162
+
163
+ - :math:`j` corresponds to the output channel, ranging from 0 to C_{out}-1, where C_{out} is the number of
164
+ output channels, which is also equal to the number of kernels.
165
+
166
+ - :math:`k` corresponds to the input channel, ranging from 0 to C_{in}-1, where C_{in} is the number of
167
+ input channels, which is also equal to the number of channels in the convolutional kernels.
168
+
169
+ Therefore, in the above formula, :math:`{bias}(C_{out_j})` represents the bias of the :math:`j`-th
170
+ output channel, :math:`{weight}(C_{out_j}, k)` represents the slice of the :math:`j`-th convolutional
171
+ kernel in the :math:`k`-th channel, and :math:`{X}(N_i, k)` represents the slice of the :math:`k`-th input
172
+ channel in the :math:`i`-th batch of the input feature map.
173
+
174
+ The shape of the convolutional kernel is given by :math:`(kernel\_size[0], kernel\_size[1])`,
175
+ where :math:`kernel\_size[0]` and :math:`kernel\_size[1]` are the height and width of the kernel, respectively.
176
+ If we consider the input and output channels as well as the `group` parameter, the complete kernel shape
177
+ will be :math:`(C_{out}, C_{in} / \text{group}, \text{kernel_size[0]}, \text{kernel_size[1]})`,
178
+ where `group` is the number of groups dividing `x`'s input channel when applying group convolution.
179
+
180
+ For more details about convolution layer, please refer to `Gradient Based Learning Applied to Document Recognition
181
+ <http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf>`_.
167
182
 
168
183
  Note:
169
184
  On Ascend platform, only group convolution in depthwise convolution scenarios is supported.
@@ -176,48 +191,62 @@ class Conv2d(_Conv):
176
191
  The data type is an integer or a tuple of two integers. An integer represents the height
177
192
  and width of the convolution kernel. A tuple of two integers represents the height
178
193
  and width of the convolution kernel respectively.
179
- stride (Union[int, tuple[int]]): The movement stride of the 2D convolution kernel.
194
+ stride (Union[int, tuple[int]], optional): The movement stride of the 2D convolution kernel.
180
195
  The data type is an integer or a tuple of two or four integers. An integer represents the movement step size
181
196
  in both height and width directions. A tuple of two integers represents the movement step size in the height
182
197
  and width directions respectively. Default: ``1`` .
183
- pad_mode (str): Specifies padding mode. The optional values are
184
- ``"same"`` , ``"valid"`` , ``"pad"`` . Default: ``"same"`` .
185
-
186
- - ``"same"``: The width of the output is the same as the value of the input divided by `stride`.
187
- If this mode is set, the value of `padding` must be 0.
188
-
189
- - ``"valid"``: Returns a valid calculated output without padding. Excess pixels that do not satisfy the
190
- calculation will be discarded. If this mode is set, the value of `padding` must be 0.
191
-
192
- - ``"pad"``: Pads the input. Padding `padding` size of zero on both sides of the input.
193
- If this mode is set, the value of `padding` must be greater than or equal to 0.
194
-
195
- padding (Union[int, tuple[int]]): The number of padding on the height and width directions of the input.
198
+ pad_mode (str, optional): Specifies the padding mode with a padding value of 0. It can be set to:
199
+ ``"same"`` , ``"valid"`` or ``"pad"`` . Default: ``"same"`` .
200
+
201
+ - ``"same"``: Pad the input around its edges so that the shape of input and output
202
+ are the same when `stride` is set to ``1``.
203
+ The amount of padding to is calculated by the operator internally, If the amount is even, it is
204
+ uniformly distributed around the input, if it is odd, the excess amount goes to the right/bottom side.
205
+ If this mode is set, `padding` must be 0.
206
+ - ``"valid"``: No padding is applied to the input, and the output returns the maximum
207
+ possible height and width. Extra pixels that could not complete a full stride will
208
+ be discarded. If this mode is set, `padding` must be 0.
209
+ - ``"pad"``: Pad the input with a specified amount. In this mode, the amount of padding
210
+ in the height and width directions is determined by the `padding` parameter.
211
+ If this mode is set, `padding` must be greater than or equal to 0.
212
+
213
+ padding (Union[int, tuple[int]], optional): The number of padding
214
+ on the height and width directions of the input.
196
215
  The data type is an integer or a tuple of four integers. If `padding` is an integer,
197
216
  then the top, bottom, left, and right padding are all equal to `padding`.
198
217
  If `padding` is a tuple of 4 integers, then the top, bottom, left, and right padding
199
218
  is equal to `padding[0]`, `padding[1]`, `padding[2]`, and `padding[3]` respectively.
200
219
  The value should be greater than or equal to 0. Default: ``0`` .
201
- dilation (Union[int, tuple[int]]): Dilation size of 2D convolution kernel.
202
- The data type is an integer or a tuple of two or four integers. If :math:`k > 1`, the kernel is sampled
203
- every `k` elements. The value of `k` on the height and width directions is in range of [1, H]
204
- and [1, W] respectively. Default: ``1`` .
205
- group (int): Splits filter into groups, `in_channels` and `out_channels` must be
220
+ dilation (Union(int, tuple[int]), optional): Specifies the dilation rate to use for dilated convolution.
221
+ It can be a single int or a tuple of 2 or 4 integers. A single int means the dilation size is the same
222
+ in both the height and width directions. A tuple of two ints represents the dilation size in
223
+ the height and width directions, respectively. For a tuple of four ints, the two ints correspond
224
+ to (N, C) dimension are treated as 1, and the two correspond to (H, W) dimensions is the
225
+ dilation size in the height and width directions respectively.
226
+ Assuming :math:`dilation=(d0, d1)`, the convolutional kernel samples the input with a
227
+ spacing of :math:`d0-1` elements in the height direction and :math:`d1-1` elements in the width direction.
228
+ The values in the height and width dimensions are in the ranges [1, H] and [1, W], respectively.
229
+ Default: ``1`` .
230
+ group (int, optional): Splits filter into groups, `in_channels` and `out_channels` must be
206
231
  divisible by `group`. If the group is equal to `in_channels` and `out_channels`,
207
232
  this 2D convolution layer also can be called 2D depthwise convolution layer. Default: ``1`` .
208
- has_bias (bool): Whether the Conv2d layer has a bias parameter. Default: ``False`` .
209
- weight_init (Union[Tensor, str, Initializer, numbers.Number]): Initialization method of weight parameter.
233
+ has_bias (bool, optional): Whether the Conv2d layer has a bias parameter. Default: ``False`` .
234
+ weight_init (Union[Tensor, str, Initializer, numbers.Number], optional): Initialization method of
235
+ weight parameter.
210
236
  It can be a Tensor, a string, an Initializer or a numbers.Number. When a string is specified,
211
237
  values from ``'TruncatedNormal'`` , ``'Normal'`` , ``'Uniform'`` , ``'HeUniform'`` and ``'XavierUniform'``
212
238
  distributions as well as constant ``'One'`` and ``'Zero'`` distributions are possible. Alias
213
239
  ``'xavier_uniform'`` , ``'he_uniform'`` , ``'ones'`` and ``'zeros'`` are acceptable. Uppercase and
214
- lowercase are both acceptable. Refer to the values of Initializer for more details. Default: ``None`` ,
215
- weight will be initialized using HeUniform.
216
- bias_init (Union[Tensor, str, Initializer, numbers.Number]): Initialization method of bias parameter.
240
+ lowercase are both acceptable. Refer to the values of
241
+ `Initializer <https://www.mindspore.cn/docs/en/r2.2/api_python/mindspore.common.initializer.html>`_,
242
+ for more details. Default: ``None`` , weight will be initialized using ``'HeUniform'``.
243
+ bias_init (Union[Tensor, str, Initializer, numbers.Number], optional): Initialization method of bias parameter.
217
244
  Available initialization methods are the same as 'weight_init'. Refer to the values of
218
- Initializer for more details. Default: ``None`` , bias will be initialized using Uniform.
219
- data_format (str): The optional value for data format, is ``'NHWC'`` or ``'NCHW'`` .
245
+ `Initializer <https://www.mindspore.cn/docs/en/r2.2/api_python/mindspore.common.initializer.html>`_,
246
+ for more details. Default: ``None`` , bias will be initialized using ``'Uniform'`` .
247
+ data_format (str, optional): The optional value for data format, is ``'NHWC'`` or ``'NCHW'`` .
220
248
  Default: ``'NCHW'`` .
249
+ dtype (:class:`mindspore.dtype`): Dtype of Parameters. Default: ``mstype.float32`` .
221
250
 
222
251
  Inputs:
223
252
  - **x** (Tensor) - Tensor of shape :math:`(N, C_{in}, H_{in}, W_{in})` \
@@ -230,17 +259,17 @@ class Conv2d(_Conv):
230
259
 
231
260
  .. math::
232
261
  \begin{array}{ll} \\
233
- H_{out} \left \lceil{\frac{H_{in}}{\text{stride[0]}}} \right \rceil \\
234
- W_{out} \left \lceil{\frac{W_{in}}{\text{stride[1]}}} \right \rceil \\
262
+ H_{out} = \left \lceil{\frac{H_{in}}{\text{stride[0]}}} \right \rceil \\
263
+ W_{out} = \left \lceil{\frac{W_{in}}{\text{stride[1]}}} \right \rceil \\
235
264
  \end{array}
236
265
 
237
266
  pad_mode is ``'valid'``:
238
267
 
239
268
  .. math::
240
269
  \begin{array}{ll} \\
241
- H_{out} \left \lceil{\frac{H_{in} - \text{dilation[0]} \times (\text{kernel_size[0]} - 1) }
270
+ H_{out} = \left \lceil{\frac{H_{in} - \text{dilation[0]} \times (\text{kernel_size[0]} - 1) }
242
271
  {\text{stride[0]}}} \right \rceil \\
243
- W_{out} \left \lceil{\frac{W_{in} - \text{dilation[1]} \times (\text{kernel_size[1]} - 1) }
272
+ W_{out} = \left \lceil{\frac{W_{in} - \text{dilation[1]} \times (\text{kernel_size[1]} - 1) }
244
273
  {\text{stride[1]}}} \right \rceil \\
245
274
  \end{array}
246
275
 
@@ -248,9 +277,9 @@ class Conv2d(_Conv):
248
277
 
249
278
  .. math::
250
279
  \begin{array}{ll} \\
251
- H_{out} \left \lfloor{\frac{H_{in} + padding[0] + padding[1] - (\text{kernel_size[0]} - 1) \times
280
+ H_{out} = \left \lfloor{\frac{H_{in} + padding[0] + padding[1] - (\text{kernel_size[0]} - 1) \times
252
281
  \text{dilation[0]} - 1 }{\text{stride[0]}} + 1} \right \rfloor \\
253
- W_{out} \left \lfloor{\frac{W_{in} + padding[2] + padding[3] - (\text{kernel_size[1]} - 1) \times
282
+ W_{out} = \left \lfloor{\frac{W_{in} + padding[2] + padding[3] - (\text{kernel_size[1]} - 1) \times
254
283
  \text{dilation[1]} - 1 }{\text{stride[1]}} + 1} \right \rfloor \\
255
284
  \end{array}
256
285
 
@@ -291,7 +320,8 @@ class Conv2d(_Conv):
291
320
  has_bias=False,
292
321
  weight_init=None,
293
322
  bias_init=None,
294
- data_format='NCHW'):
323
+ data_format='NCHW',
324
+ dtype=mstype.float32):
295
325
  """Initialize Conv2d."""
296
326
  kernel_size = twice(kernel_size)
297
327
  stride = twice(stride)
@@ -314,7 +344,8 @@ class Conv2d(_Conv):
314
344
  has_bias,
315
345
  weight_init,
316
346
  bias_init,
317
- data_format)
347
+ data_format,
348
+ dtype=dtype)
318
349
  self.conv2d = P.Conv2D(out_channel=self.out_channels,
319
350
  kernel_size=self.kernel_size,
320
351
  mode=1,
@@ -341,26 +372,45 @@ def _check_input_3d(input_shape, op_name):
341
372
 
342
373
  class Conv1d(_Conv):
343
374
  r"""
344
- Calculates the 1D convolution on the input tensor. The input is typically of shape :math:`(N, C_{in}, L_{in})`,
345
- where :math:`N` is batch size, :math:`C_{in}` is a number of channels and :math:`L_{in}` is a length of sequence.
346
- For the tensor of each batch, its shape is :math:`(C_{in}, L_{in})`, and the formula is defined as:
375
+ 1D convolution layer.
376
+
377
+ Applies a 1D convolution over an input tensor which is typically of shape :math:`(N, C_{in}, L_{in})`,
378
+ where :math:`N` is batch size, :math:`C` is channel number, :math:`L` is input sequence width.
379
+
380
+ The output is calculated based on formula:
347
381
 
348
382
  .. math::
349
383
 
350
384
  \text{out}(N_i, C_{\text{out}_j}) = \text{bias}(C_{\text{out}_j}) +
351
385
  \sum_{k = 0}^{C_{in} - 1} \text{ccor}({\text{weight}(C_{\text{out}_j}, k), \text{X}(N_i, k)})
352
386
 
353
- where :math:`ccor` is the `cross-correlation <https://en.wikipedia.org/wiki/Cross-correlation>`_,
354
- :math:`C_{in}` is the channel number of the input, :math:`out_{j}` corresponds to the :math:`j`-th channel of
355
- the output and :math:`j` is in the range of :math:`[0, C_{out}-1]`. :math:`\text{weight}(C_{\text{out}_j}, k)`
356
- is a convolution kernel slice with shape :math:`\text{kernel_size}`, where :math:`\text{kernel_size}`
357
- is the width of the convolution kernel. :math:`\text{bias}` is the bias parameter,
358
- and :math:`\text{X}` is the input tensor. The shape of full convolution kernel is
359
- :math:`(C_{out}, C_{in} / \text{group}, \text{kernel_size})`,
360
- where `group` is the number of groups to split the input `x` in the channel dimension.
387
+ where :math:`bias` is the output channel bias, :math:`ccor` is
388
+ the `cross-correlation <https://en.wikipedia.org/wiki/Cross-correlation>`_,
389
+ , :math:`weight` is the convolution kernel value and :math:`X` represents the input feature map.
361
390
 
362
- For more details, please refers to the paper `Gradient Based Learning Applied to Document
363
- Recognition <http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf>`_.
391
+ Here are the indices' meanings:
392
+ - :math:`i` corresponds to the batch number, ranging from 0 to N-1, where N is the batch size of the input.
393
+
394
+ - :math:`j` corresponds to the output channel, ranging from 0 to C_{out}-1, where C_{out} is the number of
395
+ output channels, which is also equal to the number of kernels.
396
+
397
+ - :math:`k` corresponds to the input channel, ranging from 0 to C_{in}-1, where C_{in} is the number of
398
+ input channels, which is also equal to the number of channels in the convolutional kernels.
399
+
400
+ Therefore, in the above formula, :math:`{bias}(C_{out_j})` represents the bias of the :math:`j`-th
401
+ output channel, :math:`{weight}(C_{out_j}, k)` represents the slice of the :math:`j`-th convolutional
402
+ kernel in the :math:`k`-th channel, and :math:`{X}(N_i, k)` represents the slice of the :math:`k`-th input
403
+ channel in the :math:`i`-th batch of the input feature map.
404
+
405
+ The shape of the convolutional kernel is given by :math:`(kernel\_size)`,
406
+ where :math:`kernel\_size` is the width of the kernel.
407
+ If we consider the input and output channels as well as the `group` parameter, the complete kernel shape
408
+ will be :math:`(C_{out}, C_{in} / \text{group}, \text{kernel_size})`,
409
+ where `group` is the number of groups dividing `x`'s input channel when applying group convolution.
410
+
411
+ For more details about convolution layer, please refer to `Gradient Based Learning Applied to Document Recognition
412
+ <http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf>`_
413
+ and `ConvNets <http://cs231n.github.io/convolutional-networks/>`_ .
364
414
 
365
415
  Note:
366
416
  On Ascend platform, only group convolution in depthwise convolution scenarios is supported.
@@ -370,39 +420,52 @@ class Conv1d(_Conv):
370
420
  in_channels (int): The channel number of the input tensor of the Conv1d layer.
371
421
  out_channels (int): The channel number of the output tensor of the Conv1d layer.
372
422
  kernel_size (int): Specifies the width of the 1D convolution kernel.
373
- stride (int): The movement stride of the 1D convolution kernel. Default: ``1`` .
374
- pad_mode (str): Specifies padding mode. The optional values are
375
- ``"same"`` , ``"valid"`` , ``"pad"`` . Default: ``"same"`` .
376
-
377
- - ``"same"``: The width of the output is the same as the value of the input divided by `stride`.
378
- If this mode is set, the value of `padding` must be 0.
379
-
380
- - ``"valid"``: Returns a valid calculated output without padding. Excess pixels that do not satisfy the
381
- calculation will be discarded. If this mode is set, the value of `padding` must be 0.
382
-
383
- - ``"pad"``: Pads the input. Padding `padding` size of zero on both sides of the input.
384
- If this mode is set, the value of `padding` must be greater than or equal to 0.
385
-
386
- padding (int): The number of padding on both sides of input.
387
- The value should be greater than or equal to 0. Default: ``0`` .
388
- dilation (int): Dilation size of 1D convolution kernel. If :math:`k > 1`, the kernel is sampled
389
- every `k` elements. The value of `k` is in range of [1, L]. Default: ``1`` .
390
- group (int): Splits filter into groups, `in_channels` and `out_channels` must be
423
+ stride (int, optional): The movement stride of the 1D convolution kernel. Default: ``1`` .
424
+ pad_mode (str, optional): Specifies the padding mode with a padding value of 0. It can be set to:
425
+ ``"same"`` , ``"valid"`` or ``"pad"`` . Default: ``"same"`` .
426
+
427
+ - ``"same"``: Pad the input at the begin and end so that the shape of input and output
428
+ are the same when `stride` is set to ``1``.
429
+ The amount of padding to is calculated by the operator internally. If the amount is even, it is
430
+ uniformly distributed around the input, if it is odd, the excess padding is goes to the right side.
431
+ If this mode is set, `padding` must be 0.
432
+ - ``"valid"``: No padding is applied to the input, and the output returns the maximum
433
+ possible length. Extra pixels that could not complete a full stride will
434
+ be discarded. If this mode is set, `padding` must be 0.
435
+ - ``"pad"``: Pad the input with a specified amount. In this mode, the amount of padding
436
+ at the begin and end is determined by the `padding` parameter.
437
+ If this mode is set, `padding` must be greater than or equal to 0.
438
+
439
+ padding (Union(int, tuple[int], list[int]), optional): Specifies the amount of padding to apply on
440
+ both side of `input` when `pad_mode` is set to ``"pad"``. The
441
+ paddings of left and right are the same, equal to padding or padding[0] when padding is a tuple of
442
+ 1 integer. Default: ``0`` .
443
+ dilation (Union(int, tuple[int]), optional): Specifies the dilation rate to use for dilated convolution.
444
+ It can be a single int or a tuple of 1 integer.
445
+ Assuming :math:`dilation=(d0,)`, the convolutional kernel samples the input with a
446
+ spacing of :math:`d0-1` elements in the width direction.
447
+ The value should be in the ranges [1, L].
448
+ Default: ``1`` .
449
+ group (int, optional): Splits filter into groups, `in_channels` and `out_channels` must be
391
450
  divisible by `group`. Default: ``1`` .
392
- has_bias (bool): Whether the Conv1d layer has a bias parameter. Default: ``False`` .
393
- weight_init (Union[Tensor, str, Initializer, numbers.Number]): Initialization method of weight parameter.
451
+ has_bias (bool, optional): Whether the Conv1d layer has a bias parameter. Default: ``False`` .
452
+ weight_init (Union[Tensor, str, Initializer, numbers.Number], optional):
453
+ Initialization method of weight parameter.
394
454
  It can be a Tensor, a string, an Initializer or a numbers.Number. When a string is specified,
395
455
  values from ``'TruncatedNormal'`` , ``'Normal'`` , ``'Uniform'`` , ``'HeUniform'`` and ``'XavierUniform'``
396
456
  distributions as well as constant 'One' and 'Zero' distributions are possible. Alias ``'xavier_uniform'`` ,
397
457
  ``'he_uniform'`` , ``'ones'`` and ``'zeros'`` are acceptable. Uppercase and lowercase are both acceptable.
398
- Refer to the values of Initializer for more details. Default: ``None`` ,
399
- weight will be initialized using HeUniform.
400
- bias_init (Union[Tensor, str, Initializer, numbers.Number]): Initialization method of bias parameter.
458
+ Refer to the values of
459
+ `Initializer <https://www.mindspore.cn/docs/en/r2.2/api_python/mindspore.common.initializer.html>`_,
460
+ for more details. Default: ``None`` , weight will be initialized using ``'HeUniform'``.
461
+ bias_init (Union[Tensor, str, Initializer, numbers.Number], optional): Initialization method of bias parameter.
401
462
  Available initialization methods are the same as 'weight_init'. Refer to the values of
402
- Initializer for more details. Default: ``None`` , bias will be initialized using Uniform.
463
+ `Initializer <https://www.mindspore.cn/docs/en/r2.2/api_python/mindspore.common.initializer.html>`_,
464
+ for more details. Default: ``None`` , bias will be initialized using ``'Uniform'``.
465
+ dtype (:class:`mindspore.dtype`): Dtype of Parameters. Default: ``mstype.float32`` .
403
466
 
404
467
  Inputs:
405
- - **x** (Tensor) - Tensor of shape :math:`(N, C_{in}, L_{in})`.
468
+ - **x** (Tensor) - Tensor of shape :math:`(N, C_{in}, L_{in})` .
406
469
 
407
470
  Outputs:
408
471
  Tensor of shape :math:`(N, C_{out}, L_{out})`.
@@ -456,7 +519,8 @@ class Conv1d(_Conv):
456
519
  group=1,
457
520
  has_bias=False,
458
521
  weight_init=None,
459
- bias_init=None):
522
+ bias_init=None,
523
+ dtype=mstype.float32):
460
524
  """Initialize Conv1d."""
461
525
  Validator.check_value_type("kernel_size", kernel_size, [int], self.cls_name)
462
526
  Validator.check_value_type("stride", stride, [int], self.cls_name)
@@ -495,7 +559,8 @@ class Conv1d(_Conv):
495
559
  group,
496
560
  has_bias,
497
561
  weight_init,
498
- bias_init)
562
+ bias_init,
563
+ dtype=dtype)
499
564
  self.padding = (0, 0, padding, padding)
500
565
  Validator.check_string(pad_mode, ['valid', 'same', 'pad'], 'pad_mode', self.cls_name)
501
566
  self.conv2d = P.Conv2D(out_channel=self.out_channels,
@@ -531,31 +596,48 @@ def _check_input_5dims(input_shape, op_name):
531
596
 
532
597
  class Conv3d(_Conv):
533
598
  r"""
534
- Calculates the 3D convolution on the input tensor. The input is typically of shape
535
- :math:`(N, C_{in}, D_{in}, H_{in}, W_{in})`,
536
- where :math:`N` is batch size, :math:`C_{in}` is a number of channels,
537
- :math:`D_{in}, H_{in}, W_{in}` are the depth, height and width of the feature layer respectively.
538
- For the tensor of each batch, its shape is :math:`(C_{in}, D_{in}, H_{in}, W_{in})`, the formula is defined as:
599
+ 3D convolution layer.
600
+
601
+ Applies a 3D convolution over an input tensor which is typically of shape
602
+ :math:`(N, C_{in}, D_{in}, H_{in}, W_{in})`, where :math:`N` is batch size, :math:`C` is channel number,
603
+ :math:`D` is feature depth, :math:`H` is feature height, :math:`W` is feature width.
604
+
605
+ The output is calculated based on formula:
539
606
 
540
607
  .. math::
541
608
 
542
609
  \text{out}(N_i, C_{\text{out}_j}) = \text{bias}(C_{\text{out}_j}) +
543
610
  \sum_{k = 0}^{C_{in} - 1} \text{ccor}({\text{weight}(C_{\text{out}_j}, k), \text{X}(N_i, k)})
544
611
 
545
- where :math:`ccor` is the `cross-correlation <https://en.wikipedia.org/wiki/Cross-correlation>`_,
546
- :math:`C_{in}` is the channel number of the input, :math:`out_{j}` corresponds to the :math:`j`-th channel of
547
- the output and :math:`j` is in the range of :math:`[0, C_{out}-1]`. :math:`\text{weight}(C_{\text{out}_j}, k)`
548
- is a convolution kernel slice with shape
549
- :math:`(\text{kernel_size[0]}, \text{kernel_size[1]}, \text{kernel_size[2]})`,
550
- where :math:`\text{kernel_size[0]}`, :math:`\text{kernel_size[1]}` and :math:`\text{kernel_size[2]}` are
551
- the depth, height and width of the convolution kernel respectively. :math:`\text{bias}` is the bias parameter
552
- and :math:`\text{X}` is the input tensor.
553
- The shape of full convolution kernel is
554
- :math:`(C_{out}, C_{in} / \text{group}, \text{kernel_size[0]}, \text{kernel_size[1]}, \text{kernel_size[2]})`,
555
- where `group` is the number of groups to split the input `x` in the channel dimension.
556
-
557
- For more details, please refers to the paper `Gradient Based Learning Applied to Document
558
- Recognition <http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf>`_.
612
+ where :math:`bias` is the output channel bias, :math:`ccor` is
613
+ the `cross-correlation <https://en.wikipedia.org/wiki/Cross-correlation>`_,
614
+ , :math:`weight` is the convolution kernel value and :math:`X` represents the input feature map.
615
+
616
+ Here are the indices' meanings:
617
+ - :math:`i` corresponds to the batch number, ranging from 0 to N-1, where N is the batch size of the input.
618
+
619
+ - :math:`j` corresponds to the output channel, ranging from 0 to C_{out}-1, where C_{out} is the number of
620
+ output channels, which is also equal to the number of kernels.
621
+
622
+ - :math:`k` corresponds to the input channel, ranging from 0 to C_{in}-1, where C_{in} is the number of
623
+ input channels, which is also equal to the number of channels in the convolutional kernels.
624
+
625
+ Therefore, in the above formula, :math:`{bias}(C_{out_j})` represents the bias of the :math:`j`-th
626
+ output channel, :math:`{weight}(C_{out_j}, k)` represents the slice of the :math:`j`-th convolutional
627
+ kernel in the :math:`k`-th channel, and :math:`{X}(N_i, k)` represents the slice of the :math:`k`-th input
628
+ channel in the :math:`i`-th batch of the input feature map.
629
+
630
+ The shape of the convolutional kernel is given by
631
+ :math:`(\text{kernel_size[0]}, \text{kernel_size[1]}, \text{kernel_size[2]})`
632
+ where :math:`kernel\_size[0]` , :math:`kernel\_size[1]` and :math:`kernel\_size[2]` are the depth,
633
+ height and width of the kernel, respectively.
634
+ If we consider the input and output channels as well as the `group` parameter, the complete kernel shape
635
+ will be :math:`(C_{out}, C_{in} / \text{group}, \text{kernel_size[0]},
636
+ \text{kernel_size[1]}, \text{kernel_size[2]})`,
637
+ where `group` is the number of groups dividing `x`'s input channel when applying group convolution.
638
+
639
+ For more details about convolution layer, please refer to `Gradient Based Learning Applied to Document Recognition
640
+ <http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf>`_.
559
641
 
560
642
  Note:
561
643
  On Ascend platform, only group convolution in depthwise convolution scenarios is supported.
@@ -565,49 +647,65 @@ class Conv3d(_Conv):
565
647
  in_channels (int): The channel number of the input tensor of the Conv3d layer.
566
648
  out_channels (int): The channel number of the output tensor of the Conv3d layer.
567
649
  kernel_size (Union[int, tuple[int]]): Specifies the depth, height and width of the 3D convolution kernel.
568
- The data type is an integer or a tuple of three integers. An integer represents the depth, height
569
- and width of the convolution kernel. A tuple of three integers represents the depth, height
570
- and width of the convolution kernel respectively.
571
- stride (Union[int, tuple[int]]): The movement stride of the 3D convolution kernel.
650
+ It can be a single int or a tuple of 3 integers. A single int means the value is for depth, height
651
+ and the width. A tuple of 3 ints means the first value is
652
+ for depth and the rest is for the height and width.
653
+ stride (Union[int, tuple[int]], optional): The movement stride of the 3D convolution kernel.
572
654
  The data type is an integer or a tuple of three integers. An integer represents the movement step size
573
655
  in depth, height and width directions. A tuple of three integers represents the movement step size
574
656
  in the depth, height and width directions respectively. Default: ``1`` .
575
- pad_mode (str): Specifies padding mode. The optional values are
576
- ``"same"`` , ``"valid"`` , ``"pad"`` . Default: ``"same"`` .
577
-
578
- - ``"same"``: The width of the output is the same as the value of the input divided by `stride`.
579
- If this mode is set, the value of `padding` must be 0.
580
-
581
- - ``"valid"``: Returns a valid calculated output without padding. Excess pixels that do not satisfy the
582
- calculation will be discarded. If this mode is set, the value of `padding` must be 0.
583
-
584
- - ``"pad"``: Pads the input. Padding `padding` size of zero on both sides of the input.
585
- If this mode is set, the value of `padding` must be greater than or equal to 0.
586
-
587
- padding (Union(int, tuple[int])): The number of padding on the depth, height and width directions of the input.
657
+ pad_mode (str, optional): Specifies the padding mode with a padding value of 0. It can be set to:
658
+ ``"same"`` , ``"valid"`` or ``"pad"`` . Default: ``"same"`` .
659
+
660
+ - ``"same"``: Pad the input around its depth/height/width dimension so that the shape of input and output
661
+ are the same when `stride` is set to ``1``.
662
+ The amount of padding to is calculated by the operator internally. If the amount is even,
663
+ it isuniformly distributed around the input, if it is odd, the excess amount goes
664
+ to the front/right/bottom side.
665
+ If this mode is set, `padding` must be 0.
666
+ - ``"valid"``: No padding is applied to the input, and the output returns the maximum
667
+ possible depth, height and width. Extra pixels that could not complete a full stride will
668
+ be discarded. If this mode is set, `padding` must be 0.
669
+ - ``"pad"``: Pad the input with a specified amount. In this mode, the amount of padding
670
+ in the depth, height and width dimension is determined by the `padding` parameter.
671
+ If this mode is set, `padding` must be greater than or equal to 0.
672
+
673
+ padding (Union(int, tuple[int]), optional): The number of padding on the depth,
674
+ height and width directions of the input.
588
675
  The data type is an integer or a tuple of six integers. If `padding` is an integer,
589
676
  then the head, tail, top, bottom, left, and right padding are all equal to `padding`.
590
677
  If `padding` is a tuple of six integers, then the head, tail, top, bottom, left, and right padding
591
678
  is equal to `padding[0]`, `padding[1]`, `padding[2]`, `padding[3]`, `padding[4]` and `padding[5]`
592
679
  respectively. The value should be greater than or equal to 0. Default: ``0`` .
593
- dilation (Union[int, tuple[int]]): Dilation size of 3D convolution kernel.
594
- The data type is an integer or a tuple of three integers. If :math:`k > 1`, the kernel is sampled
595
- every `k` elements. The value of `k` on the depth, height and width directions is in range of
596
- [1, D], [1, H] and [1, W] respectively. Default: ``1`` .
597
- group (int): Splits filter into groups, `in_channels` and `out_channels` must be
680
+ dilation (Union[int, tuple[int]], optional): Specifies the dilation rate to use for dilated convolution.
681
+ It can be a single int or a tuple of 3 integers. A single int means the dilation size is the same
682
+ in the depth, height and width directions. A tuple of 3 ints represents the dilation size in
683
+ the depth, height and width directions, respectively.
684
+ Assuming :math:`dilation=(d0, d1, d2)`, the convolutional kernel samples the input with a
685
+ spacing of :math:`d0-1` elements in the depth direction, :math:`d1-1` elements in the height direction,
686
+ :math:`d2-1` elements in the width direction respectively.
687
+ The values in the depth, height and width dimensions are in
688
+ the ranges [1, D], [1, H] and [1, W], respectively.
689
+ Default: ``1`` .
690
+ group (int, optional): Splits filter into groups, `in_channels` and `out_channels` must be
598
691
  divisible by `group`. Default: ``1`` .
599
- has_bias (bool): Whether the Conv3d layer has a bias parameter. Default: ``False`` .
600
- weight_init (Union[Tensor, str, Initializer, numbers.Number]): Initialization method of weight parameter.
692
+ has_bias (bool, optional): Whether the Conv3d layer has a bias parameter. Default: ``False`` .
693
+ weight_init (Union[Tensor, str, Initializer, numbers.Number], optional):
694
+ Initialization method of weight parameter.
601
695
  It can be a Tensor, a string, an Initializer or a numbers.Number. When a string is specified,
602
696
  values from ``'TruncatedNormal'`` , ``'Normal'`` , ``'Uniform'`` , ``'HeUniform'`` and ``'XavierUniform'``
603
697
  distributions as well as constant ``'One'`` and ``'Zero'`` distributions are possible. Alias
604
698
  ``'xavier_uniform'`` , ``'he_uniform'`` , ``'ones'`` and ``'zeros'`` are acceptable. Uppercase and
605
- lowercase are both acceptable. Refer to the values of Initializer for more details. Default: ``None`` ,
606
- weight will be initialized using HeUniform.
607
- bias_init (Union[Tensor, str, Initializer, numbers.Number]): Initialization method of bias parameter.
699
+ lowercase are both acceptable. Refer to the values of
700
+ `Initializer <https://www.mindspore.cn/docs/en/r2.2/api_python/mindspore.common.initializer.html>`_,
701
+ for more details. Default: ``None`` , weight will be initialized using ``'HeUniform'``.
702
+ bias_init (Union[Tensor, str, Initializer, numbers.Number], optional): Initialization method of bias parameter.
608
703
  Available initialization methods are the same as 'weight_init'. Refer to the values of
609
- Initializer for more details. Default: ``None`` , bias will be initialized using Uniform.
610
- data_format (str): The optional value for data format. Currently only support ``'NCDHW'``.
704
+ `Initializer <https://www.mindspore.cn/docs/en/r2.2/api_python/mindspore.common.initializer.html>`_,
705
+ for more details. Default: ``None`` , bias will be initialized using ``'Uniform'`` .
706
+ data_format (str, optional): The optional value for data format. Currently only support ``'NCDHW'`` .
707
+ dtype (:class:`mindspore.dtype`): Dtype of Parameters. Default: ``mstype.float32`` .
708
+
611
709
 
612
710
  Inputs:
613
711
  - **x** (Tensor) - Tensor of shape :math:`(N, C_{in}, D_{in}, H_{in}, W_{in})`.
@@ -620,9 +718,9 @@ class Conv3d(_Conv):
620
718
 
621
719
  .. math::
622
720
  \begin{array}{ll} \\
623
- D_{out} \left \lceil{\frac{D_{in}}{\text{stride[0]}}} \right \rceil \\
624
- H_{out} \left \lceil{\frac{H_{in}}{\text{stride[1]}}} \right \rceil \\
625
- W_{out} \left \lceil{\frac{W_{in}}{\text{stride[2]}}} \right \rceil \\
721
+ D_{out} = \left \lceil{\frac{D_{in}}{\text{stride[0]}}} \right \rceil \\
722
+ H_{out} = \left \lceil{\frac{H_{in}}{\text{stride[1]}}} \right \rceil \\
723
+ W_{out} = \left \lceil{\frac{W_{in}}{\text{stride[2]}}} \right \rceil \\
626
724
  \end{array}
627
725
 
628
726
 
@@ -630,11 +728,11 @@ class Conv3d(_Conv):
630
728
 
631
729
  .. math::
632
730
  \begin{array}{ll} \\
633
- D_{out} \left \lfloor{\frac{D_{in} - \text{dilation[0]} \times (\text{kernel_size[0]} - 1) }
731
+ D_{out} = \left \lfloor{\frac{D_{in} - \text{dilation[0]} \times (\text{kernel_size[0]} - 1) }
634
732
  {\text{stride[0]}} + 1} \right \rfloor \\
635
- H_{out} \left \lfloor{\frac{H_{in} - \text{dilation[1]} \times (\text{kernel_size[1]} - 1) }
733
+ H_{out} = \left \lfloor{\frac{H_{in} - \text{dilation[1]} \times (\text{kernel_size[1]} - 1) }
636
734
  {\text{stride[1]}} + 1} \right \rfloor \\
637
- W_{out} \left \lfloor{\frac{W_{in} - \text{dilation[2]} \times (\text{kernel_size[2]} - 1) }
735
+ W_{out} = \left \lfloor{\frac{W_{in} - \text{dilation[2]} \times (\text{kernel_size[2]} - 1) }
638
736
  {\text{stride[2]}} + 1} \right \rfloor \\
639
737
  \end{array}
640
738
 
@@ -642,11 +740,11 @@ class Conv3d(_Conv):
642
740
 
643
741
  .. math::
644
742
  \begin{array}{ll} \\
645
- D_{out} \left \lfloor{\frac{D_{in} + padding[0] + padding[1] - (\text{dilation[0]} - 1) \times
743
+ D_{out} = \left \lfloor{\frac{D_{in} + padding[0] + padding[1] - (\text{dilation[0]} - 1) \times
646
744
  \text{kernel_size[0]} - 1 }{\text{stride[0]}} + 1} \right \rfloor \\
647
- H_{out} \left \lfloor{\frac{H_{in} + padding[2] + padding[3] - (\text{dilation[1]} - 1) \times
745
+ H_{out} = \left \lfloor{\frac{H_{in} + padding[2] + padding[3] - (\text{dilation[1]} - 1) \times
648
746
  \text{kernel_size[1]} - 1 }{\text{stride[1]}} + 1} \right \rfloor \\
649
- W_{out} \left \lfloor{\frac{W_{in} + padding[4] + padding[5] - (\text{dilation[2]} - 1) \times
747
+ W_{out} = \left \lfloor{\frac{W_{in} + padding[4] + padding[5] - (\text{dilation[2]} - 1) \times
650
748
  \text{kernel_size[2]} - 1 }{\text{stride[2]}} + 1} \right \rfloor \\
651
749
  \end{array}
652
750
 
@@ -687,7 +785,8 @@ class Conv3d(_Conv):
687
785
  has_bias=False,
688
786
  weight_init=None,
689
787
  bias_init=None,
690
- data_format='NCDHW'):
788
+ data_format='NCDHW',
789
+ dtype=mstype.float32):
691
790
  """Initialize Conv3d."""
692
791
  if not (in_channels % group == 0 and out_channels % group == 0):
693
792
  raise ValueError("The argument 'group' should be divisible by 'in_channels' " \
@@ -711,7 +810,8 @@ class Conv3d(_Conv):
711
810
  has_bias,
712
811
  weight_init,
713
812
  bias_init,
714
- data_format)
813
+ data_format,
814
+ dtype=dtype)
715
815
  out_channels = self.out_channels // group
716
816
  self.conv3d = P.Conv3D(out_channel=out_channels,
717
817
  kernel_size=self.kernel_size,
@@ -776,17 +876,21 @@ class Conv3dTranspose(_Conv):
776
876
  The data type is an integer or a tuple of three integers. An integer represents the movement step size
777
877
  in depth, height and width directions. A tuple of three integers represents the movement step size
778
878
  in the depth, height and width directions respectively. Default: ``1`` .
779
- pad_mode (str): Specifies padding mode. The optional values are
780
- ``"same"`` , ``"valid"`` , ``"pad"`` . Default: ``"same"`` .
781
-
782
- - ``"same"``: The width of the output is the same as the value of the input divided by `stride`.
783
- If this mode is set, the value of `padding` must be 0.
784
-
785
- - ``"valid"``: Returns a valid calculated output without padding. Excess pixels that do not satisfy the
786
- calculation will be discarded. If this mode is set, the value of `padding` must be 0.
787
-
788
- - ``"pad"``: Pads the input. Padding `padding` size of zero on both sides of the input.
789
- If this mode is set, the value of `padding` must be greater than or equal to 0.
879
+ pad_mode (str, optional): Specifies the padding mode with a padding value of 0. It can be set to:
880
+ ``"same"`` , ``"valid"`` or ``"pad"`` . Default: ``"same"`` .
881
+
882
+ - ``"same"``: Pad the input around its depth/height/width dimension so that the shape of input and output
883
+ are the same when `stride` is set to ``1``.
884
+ The amount of padding to is calculated by the operator internally. If the amount is even,
885
+ it isuniformly distributed around the input, if it is odd, the excess amount goes
886
+ to the front/right/bottom side.
887
+ If this mode is set, `padding` must be 0.
888
+ - ``"valid"``: No padding is applied to the input, and the output returns the maximum
889
+ possible depth, height and width. Extra pixels that could not complete a full stride will
890
+ be discarded. If this mode is set, `padding` must be 0.
891
+ - ``"pad"``: Pad the input with a specified amount. In this mode, the amount of padding
892
+ in the depth, height and width dimension is determined by the `padding` parameter.
893
+ If this mode is set, `padding` must be greater than or equal to 0.
790
894
 
791
895
  padding (Union(int, tuple[int])): The number of padding on the depth, height and width directions of the input.
792
896
  The data type is an integer or a tuple of six integers. If `padding` is an integer,
@@ -820,10 +924,11 @@ class Conv3dTranspose(_Conv):
820
924
  Initializer for more details. Default: ``None`` , bias will be initialized using Uniform.
821
925
  data_format (str): The optional value for data format. Currently only support ``'NCDHW'`` .
822
926
  Default: ``'NCDHW'`` .
927
+ dtype (:class:`mindspore.dtype`): Dtype of Parameters. Default: ``mstype.float32`` .
823
928
 
824
929
  Inputs:
825
930
  - **x** (Tensor) - Tensor of shape :math:`(N, C_{in}, D_{in}, H_{in}, W_{in})`.
826
- Currently input data type only support float16 and float32.
931
+ Currently input data dtype only support float16 and float32.
827
932
 
828
933
  Outputs:
829
934
  Tensor, the shape is :math:`(N, C_{out}, D_{out}, H_{out}, W_{out})`.
@@ -832,9 +937,9 @@ class Conv3dTranspose(_Conv):
832
937
 
833
938
  .. math::
834
939
  \begin{array}{ll} \\
835
- D_{out} \left \lfloor{\frac{D_{in}}{\text{stride[0]}} + 1} \right \rfloor \\
836
- H_{out} \left \lfloor{\frac{H_{in}}{\text{stride[1]}} + 1} \right \rfloor \\
837
- W_{out} \left \lfloor{\frac{W_{in}}{\text{stride[2]}} + 1} \right \rfloor \\
940
+ D_{out} = \left \lfloor{\frac{D_{in}}{\text{stride[0]}} + 1} \right \rfloor \\
941
+ H_{out} = \left \lfloor{\frac{H_{in}}{\text{stride[1]}} + 1} \right \rfloor \\
942
+ W_{out} = \left \lfloor{\frac{W_{in}}{\text{stride[2]}} + 1} \right \rfloor \\
838
943
  \end{array}
839
944
 
840
945
 
@@ -842,11 +947,11 @@ class Conv3dTranspose(_Conv):
842
947
 
843
948
  .. math::
844
949
  \begin{array}{ll} \\
845
- D_{out} \left \lfloor{\frac{D_{in} - \text{dilation[0]} \times (\text{kernel_size[0]} - 1) }
950
+ D_{out} = \left \lfloor{\frac{D_{in} - \text{dilation[0]} \times (\text{kernel_size[0]} - 1) }
846
951
  {\text{stride[0]}} + 1} \right \rfloor \\
847
- H_{out} \left \lfloor{\frac{H_{in} - \text{dilation[1]} \times (\text{kernel_size[1]} - 1) }
952
+ H_{out} = \left \lfloor{\frac{H_{in} - \text{dilation[1]} \times (\text{kernel_size[1]} - 1) }
848
953
  {\text{stride[1]}} + 1} \right \rfloor \\
849
- W_{out} \left \lfloor{\frac{W_{in} - \text{dilation[2]} \times (\text{kernel_size[2]} - 1) }
954
+ W_{out} = \left \lfloor{\frac{W_{in} - \text{dilation[2]} \times (\text{kernel_size[2]} - 1) }
850
955
  {\text{stride[2]}} + 1} \right \rfloor \\
851
956
  \end{array}
852
957
 
@@ -854,11 +959,11 @@ class Conv3dTranspose(_Conv):
854
959
 
855
960
  .. math::
856
961
  \begin{array}{ll} \\
857
- D_{out} \left \lfloor{\frac{D_{in} + padding[0] + padding[1] - (\text{dilation[0]} - 1) \times
962
+ D_{out} = \left \lfloor{\frac{D_{in} + padding[0] + padding[1] - (\text{dilation[0]} - 1) \times
858
963
  \text{kernel_size[0]} - 1 }{\text{stride[0]}} + 1} \right \rfloor \\
859
- H_{out} \left \lfloor{\frac{H_{in} + padding[2] + padding[3] - (\text{dilation[1]} - 1) \times
964
+ H_{out} = \left \lfloor{\frac{H_{in} + padding[2] + padding[3] - (\text{dilation[1]} - 1) \times
860
965
  \text{kernel_size[1]} - 1 }{\text{stride[1]}} + 1} \right \rfloor \\
861
- W_{out} \left \lfloor{\frac{W_{in} + padding[4] + padding[5] - (\text{dilation[2]} - 1) \times
966
+ W_{out} = \left \lfloor{\frac{W_{in} + padding[4] + padding[5] - (\text{dilation[2]} - 1) \times
862
967
  \text{kernel_size[2]} - 1 }{\text{stride[2]}} + 1} \right \rfloor \\
863
968
  \end{array}
864
969
 
@@ -902,7 +1007,8 @@ class Conv3dTranspose(_Conv):
902
1007
  has_bias=False,
903
1008
  weight_init=None,
904
1009
  bias_init=None,
905
- data_format='NCDHW'):
1010
+ data_format='NCDHW',
1011
+ dtype=mstype.float32):
906
1012
  """Initialize Conv3dTranspose."""
907
1013
  if not (in_channels % group == 0 and out_channels % group == 0):
908
1014
  raise ValueError("The argument 'group' should be divisible by 'in_channels' " \
@@ -929,7 +1035,8 @@ class Conv3dTranspose(_Conv):
929
1035
  weight_init,
930
1036
  bias_init,
931
1037
  data_format,
932
- transposed=True)
1038
+ transposed=True,
1039
+ dtype=dtype)
933
1040
  self.conv3d_transpose = P.Conv3DTranspose(in_channel=self.in_channels,
934
1041
  out_channel=self.out_channels,
935
1042
  kernel_size=self.kernel_size,
@@ -996,17 +1103,20 @@ class Conv2dTranspose(_Conv):
996
1103
  The data type is an integer or a tuple of two integers. An integer represents the movement step size
997
1104
  in both height and width directions. A tuple of two integers represents the movement step size in the height
998
1105
  and width directions respectively. Default: ``1`` .
999
- pad_mode (str): Specifies padding mode. The optional values are
1000
- ``"same"`` , ``"valid"`` , ``"pad"`` . Default: ``"same"`` .
1001
-
1002
- - ``"same"``: The width of the output is the same as the value of the input divided by `stride`.
1003
- If this mode is set, the value of `padding` must be 0.
1004
-
1005
- - ``"valid"``: Returns a valid calculated output without padding. Excess pixels that do not satisfy the
1006
- calculation will be discarded. If this mode is set, the value of `padding` must be 0.
1007
-
1008
- - ``"pad"``: Pads the input. Padding `padding` size of zero on both sides of the input.
1009
- If this mode is set, the value of `padding` must be greater than or equal to 0.
1106
+ pad_mode (str, optional): Specifies the padding mode with a padding value of 0. It can be set to:
1107
+ ``"same"`` , ``"valid"`` or ``"pad"`` . Default: ``"same"`` .
1108
+
1109
+ - ``"same"``: Pad the input around its edges so that the shape of input and output
1110
+ are the same when `stride` is set to ``1``.
1111
+ The amount of padding to is calculated by the operator internally, If the amount is even, it is
1112
+ uniformly distributed around the input, if it is odd, the excess amount goes to the right/bottom side.
1113
+ If this mode is set, `padding` must be 0.
1114
+ - ``"valid"``: No padding is applied to the input, and the output returns the maximum
1115
+ possible height and width. Extra pixels that could not complete a full stride will
1116
+ be discarded. If this mode is set, `padding` must be 0.
1117
+ - ``"pad"``: Pad the input with a specified amount. In this mode, the amount of padding
1118
+ in the height and width directions is determined by the `padding` parameter.
1119
+ If this mode is set, `padding` must be greater than or equal to 0.
1010
1120
 
1011
1121
  padding (Union[int, tuple[int]]): The number of padding on the height and width directions of the input.
1012
1122
  The data type is an integer or a tuple of four integers. If `padding` is an integer,
@@ -1037,6 +1147,7 @@ class Conv2dTranspose(_Conv):
1037
1147
  bias_init (Union[Tensor, str, Initializer, numbers.Number]): Initialization method of bias parameter.
1038
1148
  Available initialization methods are the same as 'weight_init'. Refer to the values of
1039
1149
  Initializer for more details. Default: ``None`` , bias will be initialized using Uniform.
1150
+ dtype (:class:`mindspore.dtype`): Dtype of Parameters. Default: ``mstype.float32`` .
1040
1151
 
1041
1152
  Inputs:
1042
1153
  - **x** (Tensor) - Tensor of shape :math:`(N, C_{in}, H_{in}, W_{in})`.
@@ -1109,7 +1220,8 @@ class Conv2dTranspose(_Conv):
1109
1220
  group=1,
1110
1221
  has_bias=False,
1111
1222
  weight_init=None,
1112
- bias_init=None):
1223
+ bias_init=None,
1224
+ dtype=mstype.float32):
1113
1225
  """Initialize Conv2dTranspose."""
1114
1226
  kernel_size = twice(kernel_size)
1115
1227
  stride = twice(stride)
@@ -1135,7 +1247,8 @@ class Conv2dTranspose(_Conv):
1135
1247
  has_bias,
1136
1248
  weight_init,
1137
1249
  bias_init,
1138
- transposed=True)
1250
+ transposed=True,
1251
+ dtype=dtype)
1139
1252
 
1140
1253
  self.in_channels = in_channels
1141
1254
  self.out_channels = out_channels
@@ -1218,17 +1331,20 @@ class Conv1dTranspose(_Conv):
1218
1331
  out_channels (int): The channel number of the output tensor of the Conv1dTranspose layer.
1219
1332
  kernel_size (int): Specifies the width of the 1D convolution kernel.
1220
1333
  stride (int): The movement stride of the 1D convolution kernel. Default: ``1`` .
1221
- pad_mode (str): Specifies padding mode. The optional values are
1222
- ``"same"`` , ``"valid"`` , ``"pad"`` . Default: ``"same"`` .
1223
-
1224
- - ``"same"``: The width of the output is the same as the value of the input divided by `stride`.
1225
- If this mode is set, the value of `padding` must be 0.
1226
-
1227
- - ``"valid"``: Returns a valid calculated output without padding. Excess pixels that do not satisfy the
1228
- calculation will be discarded. If this mode is set, the value of `padding` must be 0.
1229
-
1230
- - ``"pad"``: Pads the input. Padding `padding` size of zero on both sides of the input.
1231
- If this mode is set, the value of `padding` must be greater than or equal to 0.
1334
+ pad_mode (str, optional): Specifies the padding mode with a padding value of 0. It can be set to:
1335
+ ``"same"`` , ``"valid"`` or ``"pad"`` . Default: ``"same"`` .
1336
+
1337
+ - ``"same"``: Pad the input at the begin and end so that the shape of input and output
1338
+ are the same when `stride` is set to ``1``.
1339
+ The amount of padding to is calculated by the operator internally. If the amount is even, it is
1340
+ uniformly distributed around the input, if it is odd, the excess padding is goes to the right side.
1341
+ If this mode is set, `padding` must be 0.
1342
+ - ``"valid"``: No padding is applied to the input, and the output returns the maximum
1343
+ possible length. Extra pixels that could not complete a full stride will
1344
+ be discarded. If this mode is set, `padding` must be 0.
1345
+ - ``"pad"``: Pad the input with a specified amount. In this mode, the amount of padding
1346
+ at the begin and end is determined by the `padding` parameter.
1347
+ If this mode is set, `padding` must be greater than or equal to 0.
1232
1348
 
1233
1349
  padding (int): The number of padding on both sides of input.
1234
1350
  The value should be greater than or equal to 0. Default: ``0`` .
@@ -1247,6 +1363,7 @@ class Conv1dTranspose(_Conv):
1247
1363
  bias_init (Union[Tensor, str, Initializer, numbers.Number]): Initialization method of bias parameter.
1248
1364
  Available initialization methods are the same as 'weight_init'. Refer to the values of
1249
1365
  Initializer for more details. Default: ``None`` , bias will be initialized using Uniform.
1366
+ dtype (:class:`mindspore.dtype`): Dtype of Parameters. Default: ``mstype.float32`` .
1250
1367
 
1251
1368
  Inputs:
1252
1369
  - **x** (Tensor) - Tensor of shape :math:`(N, C_{in}, L_{in})`.
@@ -1294,7 +1411,8 @@ class Conv1dTranspose(_Conv):
1294
1411
  group=1,
1295
1412
  has_bias=False,
1296
1413
  weight_init=None,
1297
- bias_init=None):
1414
+ bias_init=None,
1415
+ dtype=mstype.float32):
1298
1416
  """Initialize Conv1dTranspose."""
1299
1417
  Validator.check_value_type("kernel_size", kernel_size, [int], self.cls_name)
1300
1418
  Validator.check_value_type("stride", stride, [int], self.cls_name)
@@ -1331,7 +1449,8 @@ class Conv1dTranspose(_Conv):
1331
1449
  has_bias,
1332
1450
  weight_init,
1333
1451
  bias_init,
1334
- transposed=True)
1452
+ transposed=True,
1453
+ dtype=dtype)
1335
1454
  self.padding = (0, 0, padding, padding)
1336
1455
  self.in_channels = in_channels
1337
1456
  self.out_channels = out_channels