mindspore 2.2.14__cp37-cp37m-manylinux1_x86_64.whl → 2.3.0rc1__cp37-cp37m-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 (1154) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +4 -4
  3. mindspore/_akg/akg/composite/build_module.py +155 -11
  4. mindspore/_akg/akg/config/repository.json +38 -0
  5. mindspore/_akg/akg/ms/info_version_adapt.py +29 -0
  6. mindspore/_akg/akg/tvm/contrib/nvcc.py +4 -1
  7. mindspore/_akg/akg/utils/ascend_profilier/path_manager.py +2 -1
  8. mindspore/_akg/akg/utils/composite_op_helper.py +4 -2
  9. mindspore/_akg/akg/utils/dump_ascend_meta.py +2 -2
  10. mindspore/_akg/akg/utils/gen_random.py +14 -8
  11. mindspore/_akg/akg/utils/op_dsl.py +11 -0
  12. mindspore/_akg/akg/utils/tbe_codegen_utils.py +5 -5
  13. mindspore/_c_dataengine.cpython-37m-x86_64-linux-gnu.so +0 -0
  14. mindspore/_c_expression.cpython-37m-x86_64-linux-gnu.so +0 -0
  15. mindspore/_c_mindrecord.cpython-37m-x86_64-linux-gnu.so +0 -0
  16. mindspore/_checkparam.py +58 -0
  17. mindspore/_extends/builtin_operations.py +2 -1
  18. mindspore/_extends/graph_kernel/model/graph_parallel.py +16 -6
  19. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +3 -16
  20. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +16 -4
  21. mindspore/_extends/parallel_compile/akg_compiler/compiler.py +1 -0
  22. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +96 -0
  23. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +2 -1
  24. mindspore/_extends/parallel_compile/akg_compiler/util.py +5 -2
  25. mindspore/_extends/parse/__init__.py +18 -14
  26. mindspore/_extends/parse/compile_config.py +229 -0
  27. mindspore/_extends/parse/parser.py +155 -59
  28. mindspore/_extends/parse/resources.py +40 -7
  29. mindspore/_extends/parse/standard_method.py +124 -204
  30. mindspore/_extends/remote/kernel_build_server.py +2 -0
  31. mindspore/_mindspore_offline_debug.cpython-37m-x86_64-linux-gnu.so +0 -0
  32. mindspore/_profiler.py +30 -0
  33. mindspore/amp.py +24 -18
  34. mindspore/bin/cache_admin +0 -0
  35. mindspore/bin/cache_server +0 -0
  36. mindspore/boost/boost_cell_wrapper.py +1 -1
  37. mindspore/boost/group_loss_scale_manager.py +1 -1
  38. mindspore/common/__init__.py +3 -1
  39. mindspore/common/_jit_fallback_utils.py +2 -3
  40. mindspore/common/_register_for_adapter.py +7 -0
  41. mindspore/common/_stub_tensor.py +6 -1
  42. mindspore/common/_utils.py +5 -17
  43. mindspore/common/api.py +91 -48
  44. mindspore/common/auto_dynamic_shape.py +27 -14
  45. mindspore/common/dtype.py +5 -4
  46. mindspore/common/dump.py +5 -4
  47. mindspore/common/initializer.py +1 -1
  48. mindspore/common/jit_config.py +20 -11
  49. mindspore/common/lazy_inline.py +58 -17
  50. mindspore/common/mindir_util.py +12 -2
  51. mindspore/common/mutable.py +79 -14
  52. mindspore/common/parameter.py +19 -4
  53. mindspore/common/seed.py +9 -9
  54. mindspore/common/sparse_tensor.py +251 -18
  55. mindspore/common/symbol.py +122 -0
  56. mindspore/common/tensor.py +321 -433
  57. mindspore/communication/__init__.py +3 -3
  58. mindspore/communication/_comm_helper.py +5 -0
  59. mindspore/communication/management.py +53 -38
  60. mindspore/config/op_info.config +22 -54
  61. mindspore/context.py +167 -59
  62. mindspore/dataset/__init__.py +5 -5
  63. mindspore/dataset/audio/__init__.py +6 -6
  64. mindspore/dataset/audio/transforms.py +711 -158
  65. mindspore/dataset/callback/ds_callback.py +2 -2
  66. mindspore/dataset/engine/cache_client.py +2 -2
  67. mindspore/dataset/engine/datasets.py +72 -38
  68. mindspore/dataset/engine/datasets_audio.py +14 -14
  69. mindspore/dataset/engine/datasets_standard_format.py +33 -3
  70. mindspore/dataset/engine/datasets_text.py +38 -38
  71. mindspore/dataset/engine/datasets_user_defined.py +7 -7
  72. mindspore/dataset/engine/datasets_vision.py +75 -71
  73. mindspore/dataset/engine/offload.py +5 -7
  74. mindspore/dataset/text/__init__.py +3 -3
  75. mindspore/dataset/text/transforms.py +408 -121
  76. mindspore/dataset/text/utils.py +9 -9
  77. mindspore/dataset/transforms/__init__.py +1 -1
  78. mindspore/dataset/transforms/transforms.py +261 -76
  79. mindspore/dataset/utils/browse_dataset.py +9 -9
  80. mindspore/dataset/vision/__init__.py +3 -3
  81. mindspore/dataset/vision/c_transforms.py +5 -5
  82. mindspore/dataset/vision/transforms.py +2264 -514
  83. mindspore/dataset/vision/utils.py +40 -9
  84. mindspore/dataset/vision/validators.py +7 -1
  85. mindspore/experimental/optim/__init__.py +12 -2
  86. mindspore/experimental/optim/adadelta.py +161 -0
  87. mindspore/experimental/optim/adagrad.py +168 -0
  88. mindspore/experimental/optim/adam.py +35 -34
  89. mindspore/experimental/optim/adamax.py +170 -0
  90. mindspore/experimental/optim/adamw.py +40 -16
  91. mindspore/experimental/optim/asgd.py +153 -0
  92. mindspore/experimental/optim/lr_scheduler.py +60 -119
  93. mindspore/experimental/optim/nadam.py +157 -0
  94. mindspore/experimental/optim/optimizer.py +15 -8
  95. mindspore/experimental/optim/radam.py +194 -0
  96. mindspore/experimental/optim/rmsprop.py +154 -0
  97. mindspore/experimental/optim/rprop.py +164 -0
  98. mindspore/experimental/optim/sgd.py +28 -19
  99. mindspore/hal/__init__.py +34 -0
  100. mindspore/hal/_ascend.py +57 -0
  101. mindspore/hal/_base.py +57 -0
  102. mindspore/hal/_cpu.py +56 -0
  103. mindspore/hal/_gpu.py +57 -0
  104. mindspore/hal/device.py +356 -0
  105. mindspore/hal/event.py +179 -0
  106. mindspore/hal/stream.py +337 -0
  107. mindspore/include/api/data_type.h +2 -2
  108. mindspore/include/api/dual_abi_helper.h +16 -3
  109. mindspore/include/api/model.h +1 -3
  110. mindspore/include/api/status.h +14 -0
  111. mindspore/include/c_api/model_c.h +173 -0
  112. mindspore/include/c_api/ms/base/types.h +1 -0
  113. mindspore/include/c_api/types_c.h +19 -0
  114. mindspore/include/dataset/execute.h +1 -3
  115. mindspore/include/mindapi/base/format.h +125 -23
  116. mindspore/include/mindapi/base/types.h +7 -0
  117. mindspore/lib/libdnnl.so.2 +0 -0
  118. mindspore/lib/libmindspore.so +0 -0
  119. mindspore/lib/libmindspore_backend.so +0 -0
  120. mindspore/lib/libmindspore_common.so +0 -0
  121. mindspore/lib/libmindspore_core.so +0 -0
  122. mindspore/lib/libmindspore_glog.so.0 +0 -0
  123. mindspore/lib/libmindspore_gpr.so.15 +0 -0
  124. mindspore/lib/libmindspore_grpc++.so.1 +0 -0
  125. mindspore/lib/libmindspore_grpc.so.15 +0 -0
  126. mindspore/lib/libmindspore_shared_lib.so +0 -0
  127. mindspore/lib/libmpi_adapter.so +0 -0
  128. mindspore/lib/libmpi_collective.so +0 -0
  129. mindspore/lib/libnnacl.so +0 -0
  130. mindspore/lib/libopencv_core.so.4.5 +0 -0
  131. mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
  132. mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
  133. mindspore/lib/libps_cache.so +0 -0
  134. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910/aic-ascend910-ops-info.json +2044 -154
  135. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910b/aic-ascend910b-ops-info.json +2044 -33
  136. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/build_tbe_kernel.py +529 -0
  137. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/compiler.py +56 -0
  138. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/custom.py +1109 -0
  139. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/get_file_path.py +36 -0
  140. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +0 -2
  141. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/tbe_topi.py +556 -0
  142. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +0 -2
  143. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
  144. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +6325 -1767
  145. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
  146. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_api/include/aclnn_add_custom.h +49 -0
  147. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_api/include/aclnn_decoder_kv_cache.h +59 -0
  148. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_api/include/aclnn_prompt_kv_cache.h +59 -0
  149. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_api/lib/libcust_opapi.so +0 -0
  150. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_impl/ai_core/tbe/config/ascend310p/aic-ascend310p-ops-info.json +52 -0
  151. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_impl/ai_core/tbe/config/ascend910/aic-ascend910-ops-info.json +232 -0
  152. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_impl/ai_core/tbe/config/ascend910b/aic-ascend910b-ops-info.json +232 -0
  153. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_impl/ai_core/tbe/custom_ascendc_ops_impl/dynamic/add_custom.cpp +81 -0
  154. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_impl/ai_core/tbe/custom_ascendc_ops_impl/dynamic/add_custom.py +134 -0
  155. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_impl/ai_core/tbe/custom_ascendc_ops_impl/dynamic/decoder_kv_cache.cpp +192 -0
  156. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_impl/ai_core/tbe/custom_ascendc_ops_impl/dynamic/decoder_kv_cache.py +134 -0
  157. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_impl/ai_core/tbe/custom_ascendc_ops_impl/dynamic/prompt_kv_cache.cpp +274 -0
  158. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_impl/ai_core/tbe/custom_ascendc_ops_impl/dynamic/prompt_kv_cache.py +134 -0
  159. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_impl/ai_core/tbe/op_tiling/lib/linux/x86_64/libcust_opmaster_rt2.0.so +0 -0
  160. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_impl/ai_core/tbe/op_tiling/liboptiling.so +0 -0
  161. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_proto/inc/op_proto.h +39 -0
  162. mindspore/lib/plugin/ascend/custom_ascendc_ops/op_proto/lib/linux/x86_64/libcust_opsproto_rt2.0.so +0 -0
  163. mindspore/lib/plugin/ascend/libakg.so +0 -0
  164. mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
  165. mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
  166. mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
  167. mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
  168. mindspore/lib/plugin/cpu/libakg.so +0 -0
  169. mindspore/lib/plugin/gpu/libcuda_ops.so.10 +0 -0
  170. mindspore/lib/plugin/gpu/libcuda_ops.so.11 +0 -0
  171. mindspore/lib/plugin/gpu10.1/libakg.so +0 -0
  172. mindspore/lib/plugin/gpu10.1/libnccl.so.2 +0 -0
  173. mindspore/lib/plugin/gpu10.1/libnvidia_collective.so +0 -0
  174. mindspore/lib/plugin/gpu11.1/libakg.so +0 -0
  175. mindspore/lib/plugin/gpu11.1/libnccl.so.2 +0 -0
  176. mindspore/lib/plugin/gpu11.1/libnvidia_collective.so +0 -0
  177. mindspore/lib/plugin/gpu11.6/libakg.so +0 -0
  178. mindspore/lib/plugin/gpu11.6/libnccl.so.2 +0 -0
  179. mindspore/lib/plugin/gpu11.6/libnvidia_collective.so +0 -0
  180. mindspore/lib/plugin/{libmindspore_ascend.so.1 → libmindspore_ascend.so.2} +0 -0
  181. mindspore/lib/plugin/libmindspore_gpu.so.10.1 +0 -0
  182. mindspore/lib/plugin/libmindspore_gpu.so.11.1 +0 -0
  183. mindspore/lib/plugin/libmindspore_gpu.so.11.6 +0 -0
  184. mindspore/mindrecord/__init__.py +5 -1
  185. mindspore/mindrecord/config.py +809 -0
  186. mindspore/mindrecord/filereader.py +25 -0
  187. mindspore/mindrecord/filewriter.py +74 -56
  188. mindspore/mindrecord/mindpage.py +40 -6
  189. mindspore/mindrecord/shardutils.py +3 -2
  190. mindspore/mindrecord/shardwriter.py +7 -0
  191. mindspore/mindrecord/tools/cifar100_to_mr.py +8 -13
  192. mindspore/mindrecord/tools/cifar10_to_mr.py +9 -15
  193. mindspore/mindrecord/tools/csv_to_mr.py +4 -9
  194. mindspore/mindrecord/tools/imagenet_to_mr.py +3 -8
  195. mindspore/mindrecord/tools/mnist_to_mr.py +7 -12
  196. mindspore/mindrecord/tools/tfrecord_to_mr.py +1 -6
  197. mindspore/multiprocessing/__init__.py +68 -0
  198. mindspore/nn/cell.py +86 -133
  199. mindspore/nn/dynamic_lr.py +2 -2
  200. mindspore/nn/layer/activation.py +79 -90
  201. mindspore/nn/layer/basic.py +4 -80
  202. mindspore/nn/layer/channel_shuffle.py +3 -16
  203. mindspore/nn/layer/container.py +3 -3
  204. mindspore/nn/layer/conv.py +71 -71
  205. mindspore/nn/layer/embedding.py +105 -44
  206. mindspore/nn/layer/image.py +4 -7
  207. mindspore/nn/layer/normalization.py +46 -38
  208. mindspore/nn/layer/padding.py +26 -39
  209. mindspore/nn/layer/pooling.py +13 -9
  210. mindspore/nn/layer/rnn_cells.py +5 -15
  211. mindspore/nn/layer/rnns.py +6 -5
  212. mindspore/nn/layer/thor_layer.py +1 -2
  213. mindspore/nn/layer/timedistributed.py +1 -1
  214. mindspore/nn/layer/transformer.py +52 -50
  215. mindspore/nn/learning_rate_schedule.py +6 -5
  216. mindspore/nn/loss/loss.py +43 -64
  217. mindspore/nn/optim/ada_grad.py +4 -2
  218. mindspore/nn/optim/adadelta.py +3 -1
  219. mindspore/nn/optim/adafactor.py +1 -1
  220. mindspore/nn/optim/adam.py +102 -181
  221. mindspore/nn/optim/adamax.py +4 -2
  222. mindspore/nn/optim/adasum.py +2 -2
  223. mindspore/nn/optim/asgd.py +4 -2
  224. mindspore/nn/optim/ftrl.py +31 -61
  225. mindspore/nn/optim/lamb.py +5 -3
  226. mindspore/nn/optim/lars.py +2 -2
  227. mindspore/nn/optim/lazyadam.py +6 -4
  228. mindspore/nn/optim/momentum.py +13 -25
  229. mindspore/nn/optim/optimizer.py +6 -3
  230. mindspore/nn/optim/proximal_ada_grad.py +4 -2
  231. mindspore/nn/optim/rmsprop.py +9 -3
  232. mindspore/nn/optim/rprop.py +4 -2
  233. mindspore/nn/optim/sgd.py +6 -5
  234. mindspore/nn/optim/thor.py +2 -2
  235. mindspore/nn/probability/distribution/_utils/custom_ops.py +2 -2
  236. mindspore/nn/probability/distribution/beta.py +2 -2
  237. mindspore/nn/probability/distribution/categorical.py +4 -6
  238. mindspore/nn/probability/distribution/cauchy.py +2 -2
  239. mindspore/nn/probability/distribution/exponential.py +1 -1
  240. mindspore/nn/probability/distribution/gumbel.py +2 -2
  241. mindspore/nn/probability/distribution/poisson.py +2 -2
  242. mindspore/nn/probability/distribution/uniform.py +2 -2
  243. mindspore/nn/reinforcement/_tensors_queue.py +13 -1
  244. mindspore/nn/wrap/__init__.py +2 -1
  245. mindspore/nn/wrap/cell_wrapper.py +33 -12
  246. mindspore/nn/wrap/grad_reducer.py +148 -8
  247. mindspore/nn/wrap/loss_scale.py +7 -7
  248. mindspore/numpy/__init__.py +2 -0
  249. mindspore/numpy/array_creations.py +2 -0
  250. mindspore/numpy/array_ops.py +1 -5
  251. mindspore/numpy/fft.py +431 -0
  252. mindspore/numpy/math_ops.py +54 -60
  253. mindspore/numpy/utils.py +3 -0
  254. mindspore/ops/__init__.py +5 -4
  255. mindspore/ops/_grad_experimental/grad_array_ops.py +4 -129
  256. mindspore/ops/_grad_experimental/grad_comm_ops.py +16 -22
  257. mindspore/ops/_grad_experimental/grad_math_ops.py +68 -283
  258. mindspore/ops/_grad_experimental/grad_nn_ops.py +0 -53
  259. mindspore/ops/_grad_experimental/grad_quant_ops.py +3 -3
  260. mindspore/ops/_grad_experimental/grad_sparse.py +1 -1
  261. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
  262. mindspore/ops/_op_impl/__init__.py +0 -1
  263. mindspore/ops/_op_impl/aicpu/gamma.py +2 -0
  264. mindspore/ops/_op_impl/aicpu/generate_eod_mask.py +1 -1
  265. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +1 -3
  266. mindspore/ops/_op_impl/aicpu/poisson.py +2 -0
  267. mindspore/ops/_op_impl/cpu/__init__.py +1 -3
  268. mindspore/ops/_op_impl/cpu/adam.py +2 -2
  269. mindspore/ops/_op_impl/cpu/adam_weight_decay.py +3 -2
  270. mindspore/ops/_op_impl/cpu/maximum_grad.py +16 -14
  271. mindspore/ops/_op_impl/cpu/minimum_grad.py +8 -0
  272. mindspore/ops/_vmap/vmap_array_ops.py +137 -101
  273. mindspore/ops/_vmap/vmap_base.py +8 -1
  274. mindspore/ops/_vmap/vmap_grad_math_ops.py +95 -9
  275. mindspore/ops/_vmap/vmap_grad_nn_ops.py +102 -56
  276. mindspore/ops/_vmap/vmap_image_ops.py +70 -13
  277. mindspore/ops/_vmap/vmap_math_ops.py +74 -49
  278. mindspore/ops/_vmap/vmap_nn_ops.py +164 -89
  279. mindspore/ops/_vmap/vmap_other_ops.py +1 -1
  280. mindspore/ops/auto_generate/__init__.py +31 -0
  281. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +133 -0
  282. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +248 -0
  283. mindspore/ops/auto_generate/gen_arg_handler.py +147 -0
  284. mindspore/ops/auto_generate/gen_extend_func.py +130 -0
  285. mindspore/ops/auto_generate/gen_ops_def.py +4786 -0
  286. mindspore/ops/auto_generate/gen_ops_prim.py +8335 -0
  287. mindspore/ops/auto_generate/pyboost_inner_prim.py +77 -0
  288. mindspore/ops/composite/__init__.py +5 -2
  289. mindspore/ops/composite/base.py +118 -17
  290. mindspore/ops/composite/math_ops.py +9 -48
  291. mindspore/ops/composite/multitype_ops/_compile_utils.py +166 -601
  292. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +15 -133
  293. mindspore/ops/composite/multitype_ops/add_impl.py +6 -0
  294. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +6 -0
  295. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +6 -0
  296. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +6 -0
  297. mindspore/ops/composite/multitype_ops/div_impl.py +8 -0
  298. mindspore/ops/composite/multitype_ops/equal_impl.py +6 -0
  299. mindspore/ops/composite/multitype_ops/floordiv_impl.py +8 -0
  300. mindspore/ops/composite/multitype_ops/getitem_impl.py +6 -0
  301. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +6 -0
  302. mindspore/ops/composite/multitype_ops/greater_impl.py +6 -0
  303. mindspore/ops/composite/multitype_ops/in_impl.py +8 -2
  304. mindspore/ops/composite/multitype_ops/left_shift_impl.py +6 -0
  305. mindspore/ops/composite/multitype_ops/less_equal_impl.py +6 -0
  306. mindspore/ops/composite/multitype_ops/less_impl.py +6 -0
  307. mindspore/ops/composite/multitype_ops/logic_not_impl.py +6 -0
  308. mindspore/ops/composite/multitype_ops/logical_and_impl.py +6 -0
  309. mindspore/ops/composite/multitype_ops/logical_or_impl.py +6 -0
  310. mindspore/ops/composite/multitype_ops/mod_impl.py +6 -0
  311. mindspore/ops/composite/multitype_ops/mul_impl.py +6 -0
  312. mindspore/ops/composite/multitype_ops/negative_impl.py +9 -3
  313. mindspore/ops/composite/multitype_ops/not_equal_impl.py +6 -0
  314. mindspore/ops/composite/multitype_ops/not_in_impl.py +6 -1
  315. mindspore/ops/composite/multitype_ops/ones_like_impl.py +2 -2
  316. mindspore/ops/composite/multitype_ops/pow_impl.py +6 -0
  317. mindspore/ops/composite/multitype_ops/right_shift_impl.py +6 -0
  318. mindspore/ops/composite/multitype_ops/setitem_impl.py +32 -21
  319. mindspore/ops/composite/multitype_ops/sub_impl.py +6 -0
  320. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +6 -3
  321. mindspore/ops/deprecated.py +14 -3
  322. mindspore/ops/extend/__init__.py +46 -0
  323. mindspore/ops/extend/array_func.py +152 -0
  324. mindspore/ops/extend/math_func.py +76 -0
  325. mindspore/ops/{_op_impl/tbe/atomic_addr_clean.py → extend/nn_func.py} +5 -15
  326. mindspore/ops/function/__init__.py +19 -11
  327. mindspore/ops/function/array_func.py +251 -1440
  328. mindspore/ops/function/clip_func.py +12 -13
  329. mindspore/ops/function/debug_func.py +1 -4
  330. mindspore/ops/function/fft_func.py +31 -0
  331. mindspore/ops/function/grad/grad_func.py +24 -17
  332. mindspore/ops/function/image_func.py +27 -21
  333. mindspore/ops/function/linalg_func.py +35 -68
  334. mindspore/ops/function/math_func.py +451 -2360
  335. mindspore/ops/function/nn_func.py +459 -780
  336. mindspore/ops/function/other_func.py +4 -5
  337. mindspore/ops/function/parameter_func.py +5 -93
  338. mindspore/ops/function/random_func.py +24 -80
  339. mindspore/ops/function/sparse_unary_func.py +9 -16
  340. mindspore/ops/function/spectral_func.py +1 -1
  341. mindspore/ops/function/vmap_func.py +14 -14
  342. mindspore/ops/functional.py +56 -62
  343. mindspore/ops/op_info_register.py +22 -19
  344. mindspore/ops/operations/__init__.py +19 -19
  345. mindspore/ops/operations/_grad_ops.py +20 -723
  346. mindspore/ops/operations/_inner_ops.py +178 -286
  347. mindspore/ops/operations/_scalar_ops.py +5 -480
  348. mindspore/ops/operations/_sequence_ops.py +4 -34
  349. mindspore/ops/operations/array_ops.py +99 -2491
  350. mindspore/ops/operations/comm_ops.py +38 -46
  351. mindspore/ops/operations/custom_ops.py +8 -8
  352. mindspore/ops/operations/debug_ops.py +100 -31
  353. mindspore/ops/operations/image_ops.py +1 -217
  354. mindspore/ops/operations/inner_ops.py +3 -38
  355. mindspore/ops/operations/linalg_ops.py +1 -49
  356. mindspore/{rewrite/ast_transformers → ops/operations/manually_defined}/__init__.py +11 -4
  357. mindspore/ops/operations/manually_defined/_inner.py +61 -0
  358. mindspore/ops/operations/manually_defined/ops_def.py +1391 -0
  359. mindspore/ops/operations/math_ops.py +703 -4601
  360. mindspore/ops/operations/nn_ops.py +374 -1748
  361. mindspore/ops/operations/other_ops.py +50 -42
  362. mindspore/ops/operations/random_ops.py +3 -52
  363. mindspore/ops/primitive.py +196 -96
  364. mindspore/ops_generate/__init__.py +27 -0
  365. mindspore/ops_generate/arg_dtype_cast.py +248 -0
  366. mindspore/ops_generate/arg_handler.py +147 -0
  367. mindspore/ops_generate/gen_aclnn_implement.py +266 -0
  368. mindspore/ops_generate/gen_ops.py +1062 -0
  369. mindspore/ops_generate/gen_ops_inner_prim.py +129 -0
  370. mindspore/ops_generate/gen_pyboost_func.py +932 -0
  371. mindspore/ops_generate/gen_utils.py +188 -0
  372. mindspore/ops_generate/op_proto.py +138 -0
  373. mindspore/ops_generate/pyboost_utils.py +364 -0
  374. mindspore/ops_generate/template.py +238 -0
  375. mindspore/parallel/__init__.py +5 -4
  376. mindspore/parallel/_auto_parallel_context.py +21 -76
  377. mindspore/parallel/_cell_wrapper.py +16 -9
  378. mindspore/parallel/_cost_model_context.py +1 -1
  379. mindspore/parallel/_dp_allreduce_fusion.py +159 -159
  380. mindspore/parallel/_parallel_serialization.py +30 -46
  381. mindspore/parallel/_ps_context.py +1 -1
  382. mindspore/parallel/_recovery_context.py +1 -1
  383. mindspore/parallel/_tensor.py +19 -7
  384. mindspore/parallel/_transformer/__init__.py +1 -1
  385. mindspore/parallel/_transformer/layers.py +1 -1
  386. mindspore/parallel/_transformer/loss.py +1 -1
  387. mindspore/parallel/_transformer/moe.py +1 -1
  388. mindspore/parallel/_transformer/op_parallel_config.py +1 -1
  389. mindspore/parallel/_transformer/transformer.py +1 -1
  390. mindspore/parallel/_utils.py +131 -6
  391. mindspore/parallel/algo_parameter_config.py +6 -6
  392. mindspore/parallel/checkpoint_transform.py +180 -196
  393. mindspore/parallel/cluster/__init__.py +15 -0
  394. mindspore/parallel/cluster/process_entity/__init__.py +18 -0
  395. mindspore/parallel/cluster/process_entity/_api.py +345 -0
  396. mindspore/parallel/cluster/process_entity/_utils.py +116 -0
  397. mindspore/parallel/cluster/run.py +139 -0
  398. mindspore/parallel/mpi/__init__.py +1 -1
  399. mindspore/parallel/mpi/_mpi_config.py +1 -1
  400. mindspore/parallel/parameter_broadcast.py +152 -0
  401. mindspore/parallel/shard.py +99 -2
  402. mindspore/profiler/common/util.py +20 -0
  403. mindspore/profiler/envprofiling.py +1 -1
  404. mindspore/{_extends/parallel_compile/tbe_compiler → profiler/parser/ascend_analysis}/__init__.py +1 -1
  405. mindspore/profiler/parser/ascend_analysis/constant.py +66 -0
  406. mindspore/profiler/parser/ascend_analysis/file_manager.py +77 -0
  407. mindspore/profiler/parser/ascend_analysis/function_event.py +146 -0
  408. mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +108 -0
  409. mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +80 -0
  410. mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +52 -0
  411. mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +104 -0
  412. mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +86 -0
  413. mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +59 -0
  414. mindspore/profiler/parser/ascend_cluster_generator.py +14 -9
  415. mindspore/profiler/parser/ascend_communicate_generator.py +0 -1
  416. mindspore/profiler/parser/ascend_flops_generator.py +20 -4
  417. mindspore/profiler/parser/ascend_hccl_generator.py +25 -277
  418. mindspore/profiler/parser/ascend_msprof_exporter.py +112 -132
  419. mindspore/profiler/parser/ascend_msprof_generator.py +68 -285
  420. mindspore/profiler/parser/ascend_op_generator.py +75 -42
  421. mindspore/profiler/parser/ascend_timeline_generator.py +293 -135
  422. mindspore/profiler/parser/base_timeline_generator.py +6 -0
  423. mindspore/profiler/parser/framework_parser.py +3 -2
  424. mindspore/profiler/parser/integrator.py +3 -1
  425. mindspore/profiler/parser/msadvisor_analyzer.py +1 -1
  426. mindspore/profiler/parser/msadvisor_parser.py +1 -1
  427. mindspore/profiler/parser/profiler_info.py +5 -0
  428. mindspore/profiler/profiling.py +296 -166
  429. mindspore/rewrite/__init__.py +2 -13
  430. mindspore/rewrite/api/node.py +121 -35
  431. mindspore/rewrite/api/pattern_engine.py +2 -3
  432. mindspore/rewrite/api/scoped_value.py +16 -15
  433. mindspore/rewrite/api/symbol_tree.py +45 -29
  434. mindspore/rewrite/ast_helpers/__init__.py +3 -6
  435. mindspore/rewrite/ast_helpers/ast_converter.py +143 -0
  436. mindspore/rewrite/ast_helpers/ast_finder.py +48 -0
  437. mindspore/rewrite/ast_helpers/ast_flattener.py +268 -0
  438. mindspore/rewrite/ast_helpers/ast_modifier.py +160 -92
  439. mindspore/rewrite/common/__init__.py +1 -2
  440. mindspore/rewrite/common/config.py +24 -0
  441. mindspore/rewrite/common/{rewrite_elog.py → error_log.py} +39 -39
  442. mindspore/rewrite/{namer.py → common/namer.py} +63 -18
  443. mindspore/rewrite/common/namespace.py +118 -0
  444. mindspore/rewrite/node/__init__.py +5 -5
  445. mindspore/rewrite/node/call_function.py +23 -7
  446. mindspore/rewrite/node/cell_container.py +7 -3
  447. mindspore/rewrite/node/control_flow.py +53 -28
  448. mindspore/rewrite/node/node.py +212 -196
  449. mindspore/rewrite/node/node_manager.py +51 -22
  450. mindspore/rewrite/node/node_topological_manager.py +3 -23
  451. mindspore/rewrite/parsers/__init__.py +12 -0
  452. mindspore/rewrite/parsers/arguments_parser.py +8 -9
  453. mindspore/rewrite/parsers/assign_parser.py +635 -413
  454. mindspore/rewrite/parsers/attribute_parser.py +3 -4
  455. mindspore/rewrite/parsers/class_def_parser.py +107 -144
  456. mindspore/rewrite/parsers/constant_parser.py +5 -5
  457. mindspore/rewrite/parsers/container_parser.py +4 -6
  458. mindspore/rewrite/parsers/expr_parser.py +55 -0
  459. mindspore/rewrite/parsers/for_parser.py +31 -98
  460. mindspore/rewrite/parsers/function_def_parser.py +13 -5
  461. mindspore/rewrite/parsers/if_parser.py +28 -10
  462. mindspore/rewrite/parsers/module_parser.py +8 -182
  463. mindspore/rewrite/parsers/parser.py +1 -5
  464. mindspore/rewrite/parsers/parser_register.py +1 -1
  465. mindspore/rewrite/parsers/return_parser.py +5 -10
  466. mindspore/rewrite/parsers/while_parser.py +59 -0
  467. mindspore/rewrite/sparsify/utils.py +1 -1
  468. mindspore/rewrite/symbol_tree/__init__.py +20 -0
  469. mindspore/rewrite/{symbol_tree.py → symbol_tree/symbol_tree.py} +704 -185
  470. mindspore/rewrite/{symbol_tree_builder.py → symbol_tree/symbol_tree_builder.py} +8 -8
  471. mindspore/rewrite/{symbol_tree_dumper.py → symbol_tree/symbol_tree_dumper.py} +4 -4
  472. mindspore/run_check/_check_version.py +6 -14
  473. mindspore/run_check/run_check.py +1 -1
  474. mindspore/safeguard/rewrite_obfuscation.py +9 -19
  475. mindspore/scipy/__init__.py +2 -1
  476. mindspore/scipy/fft.py +133 -0
  477. mindspore/scipy/linalg.py +140 -55
  478. mindspore/scipy/ops.py +15 -71
  479. mindspore/scipy/ops_grad.py +5 -34
  480. mindspore/scipy/optimize/line_search.py +2 -2
  481. mindspore/scipy/optimize/minimize.py +1 -1
  482. mindspore/train/__init__.py +3 -2
  483. mindspore/train/_utils.py +178 -4
  484. mindspore/train/amp.py +167 -245
  485. mindspore/train/callback/_backup_and_restore.py +4 -4
  486. mindspore/train/callback/_callback.py +4 -4
  487. mindspore/train/callback/_checkpoint.py +39 -13
  488. mindspore/train/callback/_early_stop.py +2 -2
  489. mindspore/train/callback/_landscape.py +14 -8
  490. mindspore/train/callback/_loss_monitor.py +2 -2
  491. mindspore/train/callback/_on_request_exit.py +2 -2
  492. mindspore/train/callback/_reduce_lr_on_plateau.py +2 -2
  493. mindspore/train/callback/_summary_collector.py +7 -7
  494. mindspore/train/callback/_time_monitor.py +2 -2
  495. mindspore/train/data_sink.py +1 -1
  496. mindspore/train/dataset_helper.py +13 -4
  497. mindspore/train/loss_scale_manager.py +2 -2
  498. mindspore/train/metrics/accuracy.py +7 -7
  499. mindspore/train/metrics/confusion_matrix.py +8 -6
  500. mindspore/train/metrics/cosine_similarity.py +6 -4
  501. mindspore/train/metrics/error.py +2 -2
  502. mindspore/train/metrics/metric.py +3 -3
  503. mindspore/train/metrics/perplexity.py +2 -1
  504. mindspore/train/metrics/topk.py +2 -2
  505. mindspore/train/mind_ir_pb2.py +75 -6
  506. mindspore/train/model.py +24 -22
  507. mindspore/train/serialization.py +256 -132
  508. mindspore/train/summary/summary_record.py +51 -28
  509. mindspore/train/train_thor/convert_utils.py +3 -3
  510. mindspore/version.py +1 -1
  511. {mindspore-2.2.14.dist-info → mindspore-2.3.0rc1.dist-info}/METADATA +2 -2
  512. {mindspore-2.2.14.dist-info → mindspore-2.3.0rc1.dist-info}/RECORD +515 -1061
  513. {mindspore-2.2.14.dist-info → mindspore-2.3.0rc1.dist-info}/entry_points.txt +1 -0
  514. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +0 -662
  515. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +0 -377
  516. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +0 -201
  517. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +0 -515
  518. mindspore/config/super_bar_config.json +0 -544
  519. mindspore/gen_ops.py +0 -273
  520. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
  521. mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
  522. mindspore/nn/layer/flash_attention.py +0 -189
  523. mindspore/ops/_op_impl/cpu/concat.py +0 -39
  524. mindspore/ops/_op_impl/cpu/tensor_shape.py +0 -42
  525. mindspore/ops/_op_impl/tbe/__init__.py +0 -47
  526. mindspore/ops/_op_impl/tbe/abs.py +0 -38
  527. mindspore/ops/_op_impl/tbe/abs_ds.py +0 -39
  528. mindspore/ops/_op_impl/tbe/abs_grad.py +0 -43
  529. mindspore/ops/_op_impl/tbe/abs_grad_ds.py +0 -44
  530. mindspore/ops/_op_impl/tbe/accumulate_n_v2.py +0 -41
  531. mindspore/ops/_op_impl/tbe/accumulate_n_v2_ds.py +0 -42
  532. mindspore/ops/_op_impl/tbe/acos.py +0 -37
  533. mindspore/ops/_op_impl/tbe/acos_ds.py +0 -38
  534. mindspore/ops/_op_impl/tbe/acos_grad.py +0 -43
  535. mindspore/ops/_op_impl/tbe/acos_grad_ds.py +0 -44
  536. mindspore/ops/_op_impl/tbe/acosh.py +0 -37
  537. mindspore/ops/_op_impl/tbe/acosh_ds.py +0 -38
  538. mindspore/ops/_op_impl/tbe/acosh_grad.py +0 -43
  539. mindspore/ops/_op_impl/tbe/acosh_grad_ds.py +0 -44
  540. mindspore/ops/_op_impl/tbe/act_ulq_clamp_max_grad.py +0 -38
  541. mindspore/ops/_op_impl/tbe/act_ulq_clamp_min_grad.py +0 -38
  542. mindspore/ops/_op_impl/tbe/acts_ulq.py +0 -45
  543. mindspore/ops/_op_impl/tbe/acts_ulq_input_grad.py +0 -38
  544. mindspore/ops/_op_impl/tbe/adam_apply_one.py +0 -50
  545. mindspore/ops/_op_impl/tbe/adam_apply_one_assign.py +0 -53
  546. mindspore/ops/_op_impl/tbe/adam_apply_one_ds.py +0 -51
  547. mindspore/ops/_op_impl/tbe/adam_apply_one_with_decay.py +0 -54
  548. mindspore/ops/_op_impl/tbe/adam_apply_one_with_decay_assign.py +0 -54
  549. mindspore/ops/_op_impl/tbe/adam_apply_one_with_decay_ds.py +0 -55
  550. mindspore/ops/_op_impl/tbe/adaptive_max_pool2d.py +0 -37
  551. mindspore/ops/_op_impl/tbe/add.py +0 -42
  552. mindspore/ops/_op_impl/tbe/add_ds.py +0 -43
  553. mindspore/ops/_op_impl/tbe/add_n.py +0 -39
  554. mindspore/ops/_op_impl/tbe/add_n_ds.py +0 -40
  555. mindspore/ops/_op_impl/tbe/addcdiv.py +0 -41
  556. mindspore/ops/_op_impl/tbe/addcdiv_ds.py +0 -42
  557. mindspore/ops/_op_impl/tbe/addcmul.py +0 -43
  558. mindspore/ops/_op_impl/tbe/addcmul_ds.py +0 -44
  559. mindspore/ops/_op_impl/tbe/apply_ada_max.py +0 -68
  560. mindspore/ops/_op_impl/tbe/apply_ada_max_ds.py +0 -69
  561. mindspore/ops/_op_impl/tbe/apply_adadelta.py +0 -66
  562. mindspore/ops/_op_impl/tbe/apply_adadelta_ds.py +0 -67
  563. mindspore/ops/_op_impl/tbe/apply_adagrad.py +0 -55
  564. mindspore/ops/_op_impl/tbe/apply_adagrad_d_a.py +0 -67
  565. mindspore/ops/_op_impl/tbe/apply_adagrad_ds.py +0 -56
  566. mindspore/ops/_op_impl/tbe/apply_adagrad_v2.py +0 -48
  567. mindspore/ops/_op_impl/tbe/apply_adagrad_v2_ds.py +0 -49
  568. mindspore/ops/_op_impl/tbe/apply_adam.py +0 -79
  569. mindspore/ops/_op_impl/tbe/apply_adam_ds.py +0 -80
  570. mindspore/ops/_op_impl/tbe/apply_adam_with_amsgrad.py +0 -60
  571. mindspore/ops/_op_impl/tbe/apply_adam_with_amsgrad_ds.py +0 -61
  572. mindspore/ops/_op_impl/tbe/apply_add_sign.py +0 -65
  573. mindspore/ops/_op_impl/tbe/apply_add_sign_ds.py +0 -66
  574. mindspore/ops/_op_impl/tbe/apply_centered_rms_prop.py +0 -77
  575. mindspore/ops/_op_impl/tbe/apply_centered_rms_prop_ds.py +0 -78
  576. mindspore/ops/_op_impl/tbe/apply_ftrl.py +0 -67
  577. mindspore/ops/_op_impl/tbe/apply_ftrl_ds.py +0 -68
  578. mindspore/ops/_op_impl/tbe/apply_gradient_descent.py +0 -44
  579. mindspore/ops/_op_impl/tbe/apply_gradient_descent_ds.py +0 -45
  580. mindspore/ops/_op_impl/tbe/apply_keras_momentum.py +0 -49
  581. mindspore/ops/_op_impl/tbe/apply_momentum.py +0 -64
  582. mindspore/ops/_op_impl/tbe/apply_momentum_ds.py +0 -65
  583. mindspore/ops/_op_impl/tbe/apply_power_sign.py +0 -65
  584. mindspore/ops/_op_impl/tbe/apply_power_sign_ds.py +0 -66
  585. mindspore/ops/_op_impl/tbe/apply_proximal_adagrad.py +0 -57
  586. mindspore/ops/_op_impl/tbe/apply_proximal_adagrad_ds.py +0 -58
  587. mindspore/ops/_op_impl/tbe/apply_proximal_gradient_descent.py +0 -54
  588. mindspore/ops/_op_impl/tbe/apply_proximal_gradient_descent_ds.py +0 -55
  589. mindspore/ops/_op_impl/tbe/apply_rms_prop.py +0 -52
  590. mindspore/ops/_op_impl/tbe/approximate_equal.py +0 -39
  591. mindspore/ops/_op_impl/tbe/approximate_equal_ds.py +0 -40
  592. mindspore/ops/_op_impl/tbe/arg_max.py +0 -38
  593. mindspore/ops/_op_impl/tbe/arg_max_with_value.py +0 -38
  594. mindspore/ops/_op_impl/tbe/arg_max_with_value_ds.py +0 -39
  595. mindspore/ops/_op_impl/tbe/arg_min.py +0 -38
  596. mindspore/ops/_op_impl/tbe/arg_min_v2_ds.py +0 -40
  597. mindspore/ops/_op_impl/tbe/arg_min_with_value.py +0 -38
  598. mindspore/ops/_op_impl/tbe/arg_min_with_value_ds.py +0 -39
  599. mindspore/ops/_op_impl/tbe/asin.py +0 -37
  600. mindspore/ops/_op_impl/tbe/asin_ds.py +0 -38
  601. mindspore/ops/_op_impl/tbe/asin_grad.py +0 -43
  602. mindspore/ops/_op_impl/tbe/asin_grad_ds.py +0 -44
  603. mindspore/ops/_op_impl/tbe/asinh.py +0 -37
  604. mindspore/ops/_op_impl/tbe/asinh_ds.py +0 -38
  605. mindspore/ops/_op_impl/tbe/asinh_grad.py +0 -43
  606. mindspore/ops/_op_impl/tbe/asinh_grad_ds.py +0 -44
  607. mindspore/ops/_op_impl/tbe/assign.py +0 -79
  608. mindspore/ops/_op_impl/tbe/assign_add.py +0 -59
  609. mindspore/ops/_op_impl/tbe/assign_add_ds.py +0 -60
  610. mindspore/ops/_op_impl/tbe/assign_ds.py +0 -80
  611. mindspore/ops/_op_impl/tbe/assign_sub.py +0 -55
  612. mindspore/ops/_op_impl/tbe/assign_sub_ds.py +0 -56
  613. mindspore/ops/_op_impl/tbe/atan.py +0 -37
  614. mindspore/ops/_op_impl/tbe/atan2.py +0 -38
  615. mindspore/ops/_op_impl/tbe/atan2_ds.py +0 -39
  616. mindspore/ops/_op_impl/tbe/atan_ds.py +0 -38
  617. mindspore/ops/_op_impl/tbe/atan_grad.py +0 -43
  618. mindspore/ops/_op_impl/tbe/atan_grad_ds.py +0 -44
  619. mindspore/ops/_op_impl/tbe/atanh.py +0 -37
  620. mindspore/ops/_op_impl/tbe/atanh_ds.py +0 -38
  621. mindspore/ops/_op_impl/tbe/avg_pool.py +0 -43
  622. mindspore/ops/_op_impl/tbe/avg_pool_3d.py +0 -44
  623. mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +0 -45
  624. mindspore/ops/_op_impl/tbe/avg_pool_ds.py +0 -44
  625. mindspore/ops/_op_impl/tbe/avg_pool_grad.py +0 -42
  626. mindspore/ops/_op_impl/tbe/avg_pool_grad_vm.py +0 -42
  627. mindspore/ops/_op_impl/tbe/basic_lstm_cell.py +0 -57
  628. mindspore/ops/_op_impl/tbe/basic_lstm_cell_c_state_grad.py +0 -50
  629. mindspore/ops/_op_impl/tbe/basic_lstm_cell_c_state_grad_v2.py +0 -51
  630. mindspore/ops/_op_impl/tbe/basic_lstm_cell_input_grad.py +0 -42
  631. mindspore/ops/_op_impl/tbe/basic_lstm_cell_weight_grad.py +0 -41
  632. mindspore/ops/_op_impl/tbe/batch_matmul.py +0 -42
  633. mindspore/ops/_op_impl/tbe/batch_matmul_ds.py +0 -41
  634. mindspore/ops/_op_impl/tbe/batch_matmul_v2.py +0 -47
  635. mindspore/ops/_op_impl/tbe/batch_to_space.py +0 -38
  636. mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +0 -38
  637. mindspore/ops/_op_impl/tbe/batch_to_space_nd_ds.py +0 -39
  638. mindspore/ops/_op_impl/tbe/batch_to_space_nd_v2.py +0 -41
  639. mindspore/ops/_op_impl/tbe/batchnorm.py +0 -58
  640. mindspore/ops/_op_impl/tbe/batchnorm_grad.py +0 -58
  641. mindspore/ops/_op_impl/tbe/bce_with_logits_loss.py +0 -42
  642. mindspore/ops/_op_impl/tbe/bessel_i0e.py +0 -37
  643. mindspore/ops/_op_impl/tbe/bessel_i0e_ds.py +0 -38
  644. mindspore/ops/_op_impl/tbe/bessel_i1e.py +0 -37
  645. mindspore/ops/_op_impl/tbe/bessel_i1e_ds.py +0 -38
  646. mindspore/ops/_op_impl/tbe/bias_add.py +0 -38
  647. mindspore/ops/_op_impl/tbe/bias_add_ds.py +0 -39
  648. mindspore/ops/_op_impl/tbe/bias_add_grad.py +0 -53
  649. mindspore/ops/_op_impl/tbe/binary_cross_entropy.py +0 -39
  650. mindspore/ops/_op_impl/tbe/binary_cross_entropy_ds.py +0 -40
  651. mindspore/ops/_op_impl/tbe/binary_cross_entropy_grad.py +0 -44
  652. mindspore/ops/_op_impl/tbe/binary_cross_entropy_grad_ds.py +0 -45
  653. mindspore/ops/_op_impl/tbe/bitwise_and.py +0 -39
  654. mindspore/ops/_op_impl/tbe/bitwise_and_ds.py +0 -40
  655. mindspore/ops/_op_impl/tbe/bitwise_or.py +0 -39
  656. mindspore/ops/_op_impl/tbe/bitwise_or_ds.py +0 -40
  657. mindspore/ops/_op_impl/tbe/bitwise_xor.py +0 -39
  658. mindspore/ops/_op_impl/tbe/bitwise_xor_ds.py +0 -40
  659. mindspore/ops/_op_impl/tbe/bn_infer.py +0 -43
  660. mindspore/ops/_op_impl/tbe/bn_infer_ds.py +0 -45
  661. mindspore/ops/_op_impl/tbe/bn_infer_grad.py +0 -41
  662. mindspore/ops/_op_impl/tbe/bn_infer_grad_ds.py +0 -40
  663. mindspore/ops/_op_impl/tbe/bn_inference.py +0 -50
  664. mindspore/ops/_op_impl/tbe/bn_training_reduce.py +0 -38
  665. mindspore/ops/_op_impl/tbe/bn_training_reduce_ds.py +0 -39
  666. mindspore/ops/_op_impl/tbe/bn_training_reduce_grad.py +0 -46
  667. mindspore/ops/_op_impl/tbe/bn_training_reduce_grad_ds.py +0 -47
  668. mindspore/ops/_op_impl/tbe/bn_training_update.py +0 -52
  669. mindspore/ops/_op_impl/tbe/bn_training_update_ds.py +0 -53
  670. mindspore/ops/_op_impl/tbe/bn_training_update_grad.py +0 -44
  671. mindspore/ops/_op_impl/tbe/bn_training_update_grad_ds.py +0 -45
  672. mindspore/ops/_op_impl/tbe/bn_training_update_v2.py +0 -48
  673. mindspore/ops/_op_impl/tbe/bn_training_update_v3.py +0 -51
  674. mindspore/ops/_op_impl/tbe/bounding_box_decode.py +0 -41
  675. mindspore/ops/_op_impl/tbe/bounding_box_decode_ds.py +0 -42
  676. mindspore/ops/_op_impl/tbe/bounding_box_encode.py +0 -38
  677. mindspore/ops/_op_impl/tbe/broadcast_to.py +0 -40
  678. mindspore/ops/_op_impl/tbe/broadcast_to_ds.py +0 -44
  679. mindspore/ops/_op_impl/tbe/cast.py +0 -55
  680. mindspore/ops/_op_impl/tbe/cast_ds.py +0 -58
  681. mindspore/ops/_op_impl/tbe/cdist.py +0 -38
  682. mindspore/ops/_op_impl/tbe/cdist_grad.py +0 -42
  683. mindspore/ops/_op_impl/tbe/ceil.py +0 -37
  684. mindspore/ops/_op_impl/tbe/ceil_ds.py +0 -38
  685. mindspore/ops/_op_impl/tbe/celu.py +0 -39
  686. mindspore/ops/_op_impl/tbe/centralization.py +0 -39
  687. mindspore/ops/_op_impl/tbe/check_valid.py +0 -38
  688. mindspore/ops/_op_impl/tbe/check_valid_ds.py +0 -39
  689. mindspore/ops/_op_impl/tbe/clip_by_norm_no_div_sum.py +0 -41
  690. mindspore/ops/_op_impl/tbe/clip_by_norm_no_div_sum_ds.py +0 -42
  691. mindspore/ops/_op_impl/tbe/clip_by_value.py +0 -41
  692. mindspore/ops/_op_impl/tbe/clip_by_value_ds.py +0 -42
  693. mindspore/ops/_op_impl/tbe/concat.py +0 -40
  694. mindspore/ops/_op_impl/tbe/concat_ds.py +0 -38
  695. mindspore/ops/_op_impl/tbe/confusion_matrix.py +0 -63
  696. mindspore/ops/_op_impl/tbe/confusion_mul_grad.py +0 -40
  697. mindspore/ops/_op_impl/tbe/confusion_softmax_grad.py +0 -41
  698. mindspore/ops/_op_impl/tbe/confusion_transpose_d.py +0 -39
  699. mindspore/ops/_op_impl/tbe/conv2d.py +0 -47
  700. mindspore/ops/_op_impl/tbe/conv2d_backprop_filter.py +0 -42
  701. mindspore/ops/_op_impl/tbe/conv2d_backprop_filter_ds.py +0 -43
  702. mindspore/ops/_op_impl/tbe/conv2d_backprop_input.py +0 -42
  703. mindspore/ops/_op_impl/tbe/conv2d_backprop_input_ds.py +0 -44
  704. mindspore/ops/_op_impl/tbe/conv2d_ds.py +0 -47
  705. mindspore/ops/_op_impl/tbe/conv2d_transpose.py +0 -48
  706. mindspore/ops/_op_impl/tbe/conv3d.py +0 -45
  707. mindspore/ops/_op_impl/tbe/conv3d_backprop_filter.py +0 -42
  708. mindspore/ops/_op_impl/tbe/conv3d_backprop_input.py +0 -42
  709. mindspore/ops/_op_impl/tbe/conv3d_transpose.py +0 -47
  710. mindspore/ops/_op_impl/tbe/conv3d_transpose_ds.py +0 -48
  711. mindspore/ops/_op_impl/tbe/cos.py +0 -37
  712. mindspore/ops/_op_impl/tbe/cos_ds.py +0 -38
  713. mindspore/ops/_op_impl/tbe/cosh.py +0 -37
  714. mindspore/ops/_op_impl/tbe/cosh_ds.py +0 -38
  715. mindspore/ops/_op_impl/tbe/ctc_loss_v2.py +0 -42
  716. mindspore/ops/_op_impl/tbe/ctc_loss_v2_grad.py +0 -44
  717. mindspore/ops/_op_impl/tbe/cum_sum.py +0 -42
  718. mindspore/ops/_op_impl/tbe/cum_sum_ds.py +0 -44
  719. mindspore/ops/_op_impl/tbe/cummin.py +0 -41
  720. mindspore/ops/_op_impl/tbe/cumprod.py +0 -42
  721. mindspore/ops/_op_impl/tbe/data_format_dim_map.py +0 -38
  722. mindspore/ops/_op_impl/tbe/data_format_dim_map_ds.py +0 -40
  723. mindspore/ops/_op_impl/tbe/deformable_offsets.py +0 -45
  724. mindspore/ops/_op_impl/tbe/deformable_offsets_grad.py +0 -48
  725. mindspore/ops/_op_impl/tbe/depth_to_space_ds.py +0 -49
  726. mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +0 -44
  727. mindspore/ops/_op_impl/tbe/depthwise_conv2d_backprop_filter.py +0 -41
  728. mindspore/ops/_op_impl/tbe/depthwise_conv2d_backprop_input.py +0 -41
  729. mindspore/ops/_op_impl/tbe/diag.py +0 -38
  730. mindspore/ops/_op_impl/tbe/diag_part.py +0 -38
  731. mindspore/ops/_op_impl/tbe/dilation.py +0 -40
  732. mindspore/ops/_op_impl/tbe/div.py +0 -41
  733. mindspore/ops/_op_impl/tbe/div_ds.py +0 -42
  734. mindspore/ops/_op_impl/tbe/div_no_nan.py +0 -41
  735. mindspore/ops/_op_impl/tbe/div_no_nan_ds.py +0 -42
  736. mindspore/ops/_op_impl/tbe/dropout_do_mask.py +0 -38
  737. mindspore/ops/_op_impl/tbe/dropout_do_mask_ds.py +0 -39
  738. mindspore/ops/_op_impl/tbe/dropout_do_mask_v3.py +0 -39
  739. mindspore/ops/_op_impl/tbe/dynamic_atomic_addr_clean.py +0 -34
  740. mindspore/ops/_op_impl/tbe/dynamic_gru_v2.py +0 -95
  741. mindspore/ops/_op_impl/tbe/dynamic_rnn.py +0 -82
  742. mindspore/ops/_op_impl/tbe/elu.py +0 -38
  743. mindspore/ops/_op_impl/tbe/elu_ds.py +0 -39
  744. mindspore/ops/_op_impl/tbe/elu_grad.py +0 -43
  745. mindspore/ops/_op_impl/tbe/elu_grad_ds.py +0 -44
  746. mindspore/ops/_op_impl/tbe/equal.py +0 -42
  747. mindspore/ops/_op_impl/tbe/equal_ds.py +0 -42
  748. mindspore/ops/_op_impl/tbe/erf.py +0 -37
  749. mindspore/ops/_op_impl/tbe/erf_ds.py +0 -38
  750. mindspore/ops/_op_impl/tbe/erfc.py +0 -37
  751. mindspore/ops/_op_impl/tbe/erfc_ds.py +0 -38
  752. mindspore/ops/_op_impl/tbe/erfinv.py +0 -36
  753. mindspore/ops/_op_impl/tbe/exp.py +0 -40
  754. mindspore/ops/_op_impl/tbe/exp_ds.py +0 -41
  755. mindspore/ops/_op_impl/tbe/expand_dims.py +0 -38
  756. mindspore/ops/_op_impl/tbe/expm1.py +0 -37
  757. mindspore/ops/_op_impl/tbe/expm1_ds.py +0 -38
  758. mindspore/ops/_op_impl/tbe/extract_image_patches.py +0 -41
  759. mindspore/ops/_op_impl/tbe/extract_volume_patches.py +0 -39
  760. mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars.py +0 -39
  761. mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars_gradient.py +0 -43
  762. mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars_per_channel.py +0 -39
  763. mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars_per_channel_gradient.py +0 -43
  764. mindspore/ops/_op_impl/tbe/fast_gelu.py +0 -37
  765. mindspore/ops/_op_impl/tbe/fast_gelu_ds.py +0 -38
  766. mindspore/ops/_op_impl/tbe/fast_gelu_grad.py +0 -41
  767. mindspore/ops/_op_impl/tbe/fast_gelu_grad_ds.py +0 -42
  768. mindspore/ops/_op_impl/tbe/fill.py +0 -56
  769. mindspore/ops/_op_impl/tbe/fill_ds.py +0 -42
  770. mindspore/ops/_op_impl/tbe/flatten.py +0 -48
  771. mindspore/ops/_op_impl/tbe/floor.py +0 -37
  772. mindspore/ops/_op_impl/tbe/floor_div.py +0 -41
  773. mindspore/ops/_op_impl/tbe/floor_div_ds.py +0 -42
  774. mindspore/ops/_op_impl/tbe/floor_ds.py +0 -38
  775. mindspore/ops/_op_impl/tbe/floor_mod.py +0 -39
  776. mindspore/ops/_op_impl/tbe/floor_mod_ds.py +0 -40
  777. mindspore/ops/_op_impl/tbe/fused_dbn_dw.py +0 -52
  778. mindspore/ops/_op_impl/tbe/fused_mul_add.py +0 -38
  779. mindspore/ops/_op_impl/tbe/fused_mul_add_n.py +0 -48
  780. mindspore/ops/_op_impl/tbe/fused_mul_add_n_l2loss.py +0 -53
  781. mindspore/ops/_op_impl/tbe/fused_mul_apply_momentum.py +0 -57
  782. mindspore/ops/_op_impl/tbe/fused_mul_apply_momentum_extern.py +0 -67
  783. mindspore/ops/_op_impl/tbe/gather_nd.py +0 -52
  784. mindspore/ops/_op_impl/tbe/gather_nd_ds.py +0 -48
  785. mindspore/ops/_op_impl/tbe/gather_v2.py +0 -56
  786. mindspore/ops/_op_impl/tbe/gather_v2_ds.py +0 -68
  787. mindspore/ops/_op_impl/tbe/gelu.py +0 -37
  788. mindspore/ops/_op_impl/tbe/gelu_ds.py +0 -38
  789. mindspore/ops/_op_impl/tbe/gelu_grad.py +0 -42
  790. mindspore/ops/_op_impl/tbe/gelu_grad_ds.py +0 -43
  791. mindspore/ops/_op_impl/tbe/ger.py +0 -43
  792. mindspore/ops/_op_impl/tbe/ger_ds.py +0 -44
  793. mindspore/ops/_op_impl/tbe/greater.py +0 -43
  794. mindspore/ops/_op_impl/tbe/greater_equal.py +0 -41
  795. mindspore/ops/_op_impl/tbe/greater_equal_ds.py +0 -42
  796. mindspore/ops/_op_impl/tbe/gru_v2_hidden_grad.py +0 -51
  797. mindspore/ops/_op_impl/tbe/gru_v2_hidden_grad_cell.py +0 -52
  798. mindspore/ops/_op_impl/tbe/hard_swish.py +0 -37
  799. mindspore/ops/_op_impl/tbe/hard_swish_ds.py +0 -38
  800. mindspore/ops/_op_impl/tbe/hard_swish_grad.py +0 -41
  801. mindspore/ops/_op_impl/tbe/hard_swish_grad_ds.py +0 -42
  802. mindspore/ops/_op_impl/tbe/histogram_fixed_width.py +0 -40
  803. mindspore/ops/_op_impl/tbe/hshrink.py +0 -33
  804. mindspore/ops/_op_impl/tbe/hshrink_grad.py +0 -37
  805. mindspore/ops/_op_impl/tbe/hsigmoid.py +0 -45
  806. mindspore/ops/_op_impl/tbe/hsigmoid_grad.py +0 -39
  807. mindspore/ops/_op_impl/tbe/ifmr.py +0 -47
  808. mindspore/ops/_op_impl/tbe/ifmr_ds.py +0 -48
  809. mindspore/ops/_op_impl/tbe/im2col.py +0 -42
  810. mindspore/ops/_op_impl/tbe/in_top_k.py +0 -37
  811. mindspore/ops/_op_impl/tbe/inplace_add.py +0 -39
  812. mindspore/ops/_op_impl/tbe/inplace_index_add.py +0 -46
  813. mindspore/ops/_op_impl/tbe/inplace_sub.py +0 -39
  814. mindspore/ops/_op_impl/tbe/inplace_update.py +0 -39
  815. mindspore/ops/_op_impl/tbe/inplace_update_ds.py +0 -40
  816. mindspore/ops/_op_impl/tbe/inv.py +0 -38
  817. mindspore/ops/_op_impl/tbe/inv_ds.py +0 -39
  818. mindspore/ops/_op_impl/tbe/inv_grad.py +0 -40
  819. mindspore/ops/_op_impl/tbe/inv_grad_ds.py +0 -41
  820. mindspore/ops/_op_impl/tbe/invert.py +0 -37
  821. mindspore/ops/_op_impl/tbe/invert_ds.py +0 -38
  822. mindspore/ops/_op_impl/tbe/iou.py +0 -38
  823. mindspore/ops/_op_impl/tbe/iou_ds.py +0 -39
  824. mindspore/ops/_op_impl/tbe/is_close.py +0 -40
  825. mindspore/ops/_op_impl/tbe/kl_div_loss.py +0 -38
  826. mindspore/ops/_op_impl/tbe/kl_div_loss_ds.py +0 -39
  827. mindspore/ops/_op_impl/tbe/kl_div_loss_grad.py +0 -40
  828. mindspore/ops/_op_impl/tbe/l2_loss.py +0 -36
  829. mindspore/ops/_op_impl/tbe/l2_loss_ds.py +0 -37
  830. mindspore/ops/_op_impl/tbe/l2_normalize.py +0 -38
  831. mindspore/ops/_op_impl/tbe/l2_normalize_grad.py +0 -40
  832. mindspore/ops/_op_impl/tbe/lamb_apply_optimizer_assign.py +0 -55
  833. mindspore/ops/_op_impl/tbe/lamb_apply_weight_assign.py +0 -42
  834. mindspore/ops/_op_impl/tbe/lamb_next_mv.py +0 -59
  835. mindspore/ops/_op_impl/tbe/lamb_next_mv_with_decay.py +0 -59
  836. mindspore/ops/_op_impl/tbe/lamb_next_right.py +0 -44
  837. mindspore/ops/_op_impl/tbe/lamb_update_with_lr.py +0 -48
  838. mindspore/ops/_op_impl/tbe/lamb_update_with_lr_v2.py +0 -44
  839. mindspore/ops/_op_impl/tbe/lars_update.py +0 -50
  840. mindspore/ops/_op_impl/tbe/lars_update_ds.py +0 -51
  841. mindspore/ops/_op_impl/tbe/layer_norm.py +0 -46
  842. mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop.py +0 -44
  843. mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_ds.py +0 -45
  844. mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_v2.py +0 -40
  845. mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_v2_ds.py +0 -41
  846. mindspore/ops/_op_impl/tbe/layer_norm_ds.py +0 -47
  847. mindspore/ops/_op_impl/tbe/layer_norm_grad.py +0 -48
  848. mindspore/ops/_op_impl/tbe/layer_norm_x_backprop.py +0 -43
  849. mindspore/ops/_op_impl/tbe/layer_norm_x_backprop_ds.py +0 -44
  850. mindspore/ops/_op_impl/tbe/layer_norm_x_backprop_v2.py +0 -45
  851. mindspore/ops/_op_impl/tbe/layer_norm_x_backprop_v2_ds.py +0 -45
  852. mindspore/ops/_op_impl/tbe/lerp.py +0 -38
  853. mindspore/ops/_op_impl/tbe/less.py +0 -41
  854. mindspore/ops/_op_impl/tbe/less_ds.py +0 -42
  855. mindspore/ops/_op_impl/tbe/less_equal.py +0 -41
  856. mindspore/ops/_op_impl/tbe/less_equal_ds.py +0 -42
  857. mindspore/ops/_op_impl/tbe/log.py +0 -40
  858. mindspore/ops/_op_impl/tbe/log1p.py +0 -37
  859. mindspore/ops/_op_impl/tbe/log1p_ds.py +0 -38
  860. mindspore/ops/_op_impl/tbe/log_ds.py +0 -41
  861. mindspore/ops/_op_impl/tbe/logical_and.py +0 -37
  862. mindspore/ops/_op_impl/tbe/logical_and_ds.py +0 -38
  863. mindspore/ops/_op_impl/tbe/logical_not.py +0 -36
  864. mindspore/ops/_op_impl/tbe/logical_not_ds.py +0 -37
  865. mindspore/ops/_op_impl/tbe/logical_or.py +0 -37
  866. mindspore/ops/_op_impl/tbe/logical_or_ds.py +0 -38
  867. mindspore/ops/_op_impl/tbe/logsoftmax.py +0 -37
  868. mindspore/ops/_op_impl/tbe/logsoftmax_ds.py +0 -38
  869. mindspore/ops/_op_impl/tbe/logsoftmax_grad.py +0 -38
  870. mindspore/ops/_op_impl/tbe/logsoftmax_grad_ds.py +0 -39
  871. mindspore/ops/_op_impl/tbe/lp_norm.py +0 -40
  872. mindspore/ops/_op_impl/tbe/lp_norm_ds.py +0 -41
  873. mindspore/ops/_op_impl/tbe/lrn.py +0 -41
  874. mindspore/ops/_op_impl/tbe/lrn_grad.py +0 -42
  875. mindspore/ops/_op_impl/tbe/lstm_input_grad.py +0 -51
  876. mindspore/ops/_op_impl/tbe/masked_fill.py +0 -40
  877. mindspore/ops/_op_impl/tbe/masked_fill_ds.py +0 -41
  878. mindspore/ops/_op_impl/tbe/matmul.py +0 -53
  879. mindspore/ops/_op_impl/tbe/matmul_ds.py +0 -47
  880. mindspore/ops/_op_impl/tbe/matmul_v2.py +0 -50
  881. mindspore/ops/_op_impl/tbe/matrix_diag.py +0 -45
  882. mindspore/ops/_op_impl/tbe/matrix_diag_part.py +0 -45
  883. mindspore/ops/_op_impl/tbe/matrix_set_diag.py +0 -46
  884. mindspore/ops/_op_impl/tbe/max_pool.py +0 -39
  885. mindspore/ops/_op_impl/tbe/max_pool3d.py +0 -44
  886. mindspore/ops/_op_impl/tbe/max_pool3d_grad.py +0 -43
  887. mindspore/ops/_op_impl/tbe/max_pool3d_grad_grad.py +0 -44
  888. mindspore/ops/_op_impl/tbe/max_pool_ds.py +0 -40
  889. mindspore/ops/_op_impl/tbe/max_pool_grad.py +0 -43
  890. mindspore/ops/_op_impl/tbe/max_pool_grad_grad.py +0 -41
  891. mindspore/ops/_op_impl/tbe/max_pool_grad_grad_with_argmax.py +0 -41
  892. mindspore/ops/_op_impl/tbe/max_pool_grad_with_argmax.py +0 -42
  893. mindspore/ops/_op_impl/tbe/max_pool_with_argmax.py +0 -40
  894. mindspore/ops/_op_impl/tbe/maximum.py +0 -39
  895. mindspore/ops/_op_impl/tbe/maximum_ds.py +0 -40
  896. mindspore/ops/_op_impl/tbe/maximum_grad.py +0 -46
  897. mindspore/ops/_op_impl/tbe/maximum_grad_ds.py +0 -47
  898. mindspore/ops/_op_impl/tbe/mem_set.py +0 -38
  899. mindspore/ops/_op_impl/tbe/minimum.py +0 -40
  900. mindspore/ops/_op_impl/tbe/minimum_ds.py +0 -41
  901. mindspore/ops/_op_impl/tbe/minimum_grad.py +0 -46
  902. mindspore/ops/_op_impl/tbe/minimum_grad_ds.py +0 -47
  903. mindspore/ops/_op_impl/tbe/mish.py +0 -37
  904. mindspore/ops/_op_impl/tbe/mod.py +0 -41
  905. mindspore/ops/_op_impl/tbe/mod_ds.py +0 -42
  906. mindspore/ops/_op_impl/tbe/mul.py +0 -37
  907. mindspore/ops/_op_impl/tbe/mul_ds.py +0 -38
  908. mindspore/ops/_op_impl/tbe/mul_no_nan.py +0 -39
  909. mindspore/ops/_op_impl/tbe/mul_no_nan_ds.py +0 -40
  910. mindspore/ops/_op_impl/tbe/multilabel_margin_loss.py +0 -39
  911. mindspore/ops/_op_impl/tbe/neg.py +0 -39
  912. mindspore/ops/_op_impl/tbe/neg_ds.py +0 -40
  913. mindspore/ops/_op_impl/tbe/new_im2col.py +0 -40
  914. mindspore/ops/_op_impl/tbe/nll_loss.py +0 -41
  915. mindspore/ops/_op_impl/tbe/nll_loss_grad.py +0 -44
  916. mindspore/ops/_op_impl/tbe/nms_with_mask.py +0 -39
  917. mindspore/ops/_op_impl/tbe/not_equal.py +0 -41
  918. mindspore/ops/_op_impl/tbe/not_equal_ds.py +0 -42
  919. mindspore/ops/_op_impl/tbe/npu_alloc_float_status.py +0 -34
  920. mindspore/ops/_op_impl/tbe/npu_clear_float_status.py +0 -35
  921. mindspore/ops/_op_impl/tbe/npu_clear_float_status_v2.py +0 -35
  922. mindspore/ops/_op_impl/tbe/npu_get_float_status.py +0 -35
  923. mindspore/ops/_op_impl/tbe/npu_get_float_status_v2.py +0 -35
  924. mindspore/ops/_op_impl/tbe/one_hot.py +0 -48
  925. mindspore/ops/_op_impl/tbe/one_hot_ds.py +0 -45
  926. mindspore/ops/_op_impl/tbe/ones_like.py +0 -40
  927. mindspore/ops/_op_impl/tbe/ones_like_ds.py +0 -41
  928. mindspore/ops/_op_impl/tbe/p_s_r_o_i_pooling.py +0 -40
  929. mindspore/ops/_op_impl/tbe/p_s_r_o_i_pooling_grad.py +0 -40
  930. mindspore/ops/_op_impl/tbe/pack.py +0 -58
  931. mindspore/ops/_op_impl/tbe/pack_ds.py +0 -59
  932. mindspore/ops/_op_impl/tbe/pad_d.py +0 -40
  933. mindspore/ops/_op_impl/tbe/pad_d_ds.py +0 -41
  934. mindspore/ops/_op_impl/tbe/parallel_concat.py +0 -70
  935. mindspore/ops/_op_impl/tbe/parallel_resize_bilinear.py +0 -45
  936. mindspore/ops/_op_impl/tbe/parallel_resize_bilinear_grad.py +0 -44
  937. mindspore/ops/_op_impl/tbe/pdist.py +0 -36
  938. mindspore/ops/_op_impl/tbe/pooling.py +0 -46
  939. mindspore/ops/_op_impl/tbe/population_count.py +0 -38
  940. mindspore/ops/_op_impl/tbe/pow.py +0 -41
  941. mindspore/ops/_op_impl/tbe/pow_ds.py +0 -42
  942. mindspore/ops/_op_impl/tbe/prelu.py +0 -37
  943. mindspore/ops/_op_impl/tbe/prelu_ds.py +0 -38
  944. mindspore/ops/_op_impl/tbe/prelu_grad.py +0 -40
  945. mindspore/ops/_op_impl/tbe/range.py +0 -39
  946. mindspore/ops/_op_impl/tbe/real_div.py +0 -38
  947. mindspore/ops/_op_impl/tbe/real_div_ds.py +0 -39
  948. mindspore/ops/_op_impl/tbe/reciprocal.py +0 -36
  949. mindspore/ops/_op_impl/tbe/reciprocal_ds.py +0 -37
  950. mindspore/ops/_op_impl/tbe/reciprocal_grad.py +0 -38
  951. mindspore/ops/_op_impl/tbe/reciprocal_grad_ds.py +0 -39
  952. mindspore/ops/_op_impl/tbe/reduce_all.py +0 -38
  953. mindspore/ops/_op_impl/tbe/reduce_all_ds.py +0 -39
  954. mindspore/ops/_op_impl/tbe/reduce_any.py +0 -38
  955. mindspore/ops/_op_impl/tbe/reduce_any_ds.py +0 -39
  956. mindspore/ops/_op_impl/tbe/reduce_max.py +0 -43
  957. mindspore/ops/_op_impl/tbe/reduce_max_ds.py +0 -41
  958. mindspore/ops/_op_impl/tbe/reduce_mean.py +0 -40
  959. mindspore/ops/_op_impl/tbe/reduce_mean_ds.py +0 -42
  960. mindspore/ops/_op_impl/tbe/reduce_min.py +0 -41
  961. mindspore/ops/_op_impl/tbe/reduce_min_ds.py +0 -41
  962. mindspore/ops/_op_impl/tbe/reduce_prod.py +0 -42
  963. mindspore/ops/_op_impl/tbe/reduce_prod_ds.py +0 -41
  964. mindspore/ops/_op_impl/tbe/reduce_std.py +0 -44
  965. mindspore/ops/_op_impl/tbe/reduce_sum.py +0 -39
  966. mindspore/ops/_op_impl/tbe/reduce_sum_ds.py +0 -41
  967. mindspore/ops/_op_impl/tbe/relu.py +0 -39
  968. mindspore/ops/_op_impl/tbe/relu6.py +0 -38
  969. mindspore/ops/_op_impl/tbe/relu6_ds.py +0 -39
  970. mindspore/ops/_op_impl/tbe/relu6_grad.py +0 -43
  971. mindspore/ops/_op_impl/tbe/relu6_grad_ds.py +0 -44
  972. mindspore/ops/_op_impl/tbe/relu_ds.py +0 -40
  973. mindspore/ops/_op_impl/tbe/relu_grad.py +0 -41
  974. mindspore/ops/_op_impl/tbe/relu_grad_ds.py +0 -42
  975. mindspore/ops/_op_impl/tbe/relu_grad_v2.py +0 -40
  976. mindspore/ops/_op_impl/tbe/relu_grad_v2_ds.py +0 -41
  977. mindspore/ops/_op_impl/tbe/relu_v2.py +0 -40
  978. mindspore/ops/_op_impl/tbe/relu_v2_ds.py +0 -41
  979. mindspore/ops/_op_impl/tbe/renorm.py +0 -39
  980. mindspore/ops/_op_impl/tbe/resize_bilinear.py +0 -40
  981. mindspore/ops/_op_impl/tbe/resize_bilinear_grad.py +0 -41
  982. mindspore/ops/_op_impl/tbe/resize_bilinear_v2.py +0 -43
  983. mindspore/ops/_op_impl/tbe/resize_nearest_neighbor.py +0 -40
  984. mindspore/ops/_op_impl/tbe/resize_nearest_neighbor_ds.py +0 -40
  985. mindspore/ops/_op_impl/tbe/resize_nearest_neighbor_grad.py +0 -39
  986. mindspore/ops/_op_impl/tbe/resize_nearest_neighbor_grad_ds.py +0 -42
  987. mindspore/ops/_op_impl/tbe/reverse_v2_d.py +0 -37
  988. mindspore/ops/_op_impl/tbe/rint.py +0 -37
  989. mindspore/ops/_op_impl/tbe/rint_ds.py +0 -38
  990. mindspore/ops/_op_impl/tbe/roi_align.py +0 -43
  991. mindspore/ops/_op_impl/tbe/roi_align_ds.py +0 -44
  992. mindspore/ops/_op_impl/tbe/roi_align_grad.py +0 -43
  993. mindspore/ops/_op_impl/tbe/roi_align_grad_ds.py +0 -44
  994. mindspore/ops/_op_impl/tbe/roll.py +0 -42
  995. mindspore/ops/_op_impl/tbe/round.py +0 -38
  996. mindspore/ops/_op_impl/tbe/round_ds.py +0 -39
  997. mindspore/ops/_op_impl/tbe/rsqrt.py +0 -37
  998. mindspore/ops/_op_impl/tbe/rsqrt_ds.py +0 -38
  999. mindspore/ops/_op_impl/tbe/rsqrt_grad.py +0 -40
  1000. mindspore/ops/_op_impl/tbe/rsqrt_grad_ds.py +0 -41
  1001. mindspore/ops/_op_impl/tbe/scatter_add.py +0 -44
  1002. mindspore/ops/_op_impl/tbe/scatter_div.py +0 -46
  1003. mindspore/ops/_op_impl/tbe/scatter_max.py +0 -45
  1004. mindspore/ops/_op_impl/tbe/scatter_min.py +0 -45
  1005. mindspore/ops/_op_impl/tbe/scatter_mul.py +0 -44
  1006. mindspore/ops/_op_impl/tbe/scatter_nd.py +0 -41
  1007. mindspore/ops/_op_impl/tbe/scatter_nd_add.py +0 -45
  1008. mindspore/ops/_op_impl/tbe/scatter_nd_d.py +0 -41
  1009. mindspore/ops/_op_impl/tbe/scatter_nd_ds.py +0 -49
  1010. mindspore/ops/_op_impl/tbe/scatter_nd_sub.py +0 -47
  1011. mindspore/ops/_op_impl/tbe/scatter_nd_sub_ds.py +0 -48
  1012. mindspore/ops/_op_impl/tbe/scatter_nd_update.py +0 -47
  1013. mindspore/ops/_op_impl/tbe/scatter_nd_update_ds.py +0 -48
  1014. mindspore/ops/_op_impl/tbe/scatter_non_aliasing_add.py +0 -39
  1015. mindspore/ops/_op_impl/tbe/scatter_non_aliasing_add_ds.py +0 -40
  1016. mindspore/ops/_op_impl/tbe/scatter_sub.py +0 -47
  1017. mindspore/ops/_op_impl/tbe/scatter_sub_ds.py +0 -48
  1018. mindspore/ops/_op_impl/tbe/scatter_update.py +0 -43
  1019. mindspore/ops/_op_impl/tbe/select.py +0 -38
  1020. mindspore/ops/_op_impl/tbe/select_ds.py +0 -39
  1021. mindspore/ops/_op_impl/tbe/selu.py +0 -39
  1022. mindspore/ops/_op_impl/tbe/selu_ds.py +0 -40
  1023. mindspore/ops/_op_impl/tbe/sgd.py +0 -62
  1024. mindspore/ops/_op_impl/tbe/sigmoid.py +0 -37
  1025. mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits.py +0 -41
  1026. mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_ds.py +0 -42
  1027. mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_grad.py +0 -42
  1028. mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_grad_ds.py +0 -43
  1029. mindspore/ops/_op_impl/tbe/sigmoid_ds.py +0 -38
  1030. mindspore/ops/_op_impl/tbe/sigmoid_grad.py +0 -39
  1031. mindspore/ops/_op_impl/tbe/sigmoid_grad_ds.py +0 -40
  1032. mindspore/ops/_op_impl/tbe/sign.py +0 -38
  1033. mindspore/ops/_op_impl/tbe/sign_ds.py +0 -39
  1034. mindspore/ops/_op_impl/tbe/sin.py +0 -37
  1035. mindspore/ops/_op_impl/tbe/sin_ds.py +0 -38
  1036. mindspore/ops/_op_impl/tbe/sinh.py +0 -37
  1037. mindspore/ops/_op_impl/tbe/sinh_ds.py +0 -38
  1038. mindspore/ops/_op_impl/tbe/slice.py +0 -58
  1039. mindspore/ops/_op_impl/tbe/smooth_l1_loss.py +0 -45
  1040. mindspore/ops/_op_impl/tbe/smooth_l1_loss_ds.py +0 -46
  1041. mindspore/ops/_op_impl/tbe/smooth_l1_loss_grad.py +0 -46
  1042. mindspore/ops/_op_impl/tbe/smooth_l1_loss_grad_ds.py +0 -47
  1043. mindspore/ops/_op_impl/tbe/soft_margin_loss.py +0 -38
  1044. mindspore/ops/_op_impl/tbe/soft_margin_loss_grad.py +0 -39
  1045. mindspore/ops/_op_impl/tbe/soft_shrink.py +0 -36
  1046. mindspore/ops/_op_impl/tbe/soft_shrink_grad.py +0 -38
  1047. mindspore/ops/_op_impl/tbe/softmax.py +0 -37
  1048. mindspore/ops/_op_impl/tbe/softmax_cross_entropy_with_logits.py +0 -38
  1049. mindspore/ops/_op_impl/tbe/softmax_cross_entropy_with_logits_ds.py +0 -39
  1050. mindspore/ops/_op_impl/tbe/softmax_ds.py +0 -38
  1051. mindspore/ops/_op_impl/tbe/softmax_grad_ext.py +0 -42
  1052. mindspore/ops/_op_impl/tbe/softmax_v2_with_dropout_do_mask_v3.py +0 -39
  1053. mindspore/ops/_op_impl/tbe/softplus.py +0 -37
  1054. mindspore/ops/_op_impl/tbe/softplus_ds.py +0 -38
  1055. mindspore/ops/_op_impl/tbe/softplus_grad.py +0 -38
  1056. mindspore/ops/_op_impl/tbe/softplus_grad_ds.py +0 -38
  1057. mindspore/ops/_op_impl/tbe/softsign.py +0 -37
  1058. mindspore/ops/_op_impl/tbe/softsign_ds.py +0 -38
  1059. mindspore/ops/_op_impl/tbe/sort.py +0 -38
  1060. mindspore/ops/_op_impl/tbe/sort_ds.py +0 -39
  1061. mindspore/ops/_op_impl/tbe/space_to_batch.py +0 -38
  1062. mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +0 -38
  1063. mindspore/ops/_op_impl/tbe/space_to_depth.py +0 -47
  1064. mindspore/ops/_op_impl/tbe/sparse_apply_adadelta.py +0 -56
  1065. mindspore/ops/_op_impl/tbe/sparse_apply_adagrad.py +0 -45
  1066. mindspore/ops/_op_impl/tbe/sparse_apply_adagrad_ds.py +0 -46
  1067. mindspore/ops/_op_impl/tbe/sparse_apply_adagrad_v2.py +0 -46
  1068. mindspore/ops/_op_impl/tbe/sparse_apply_adagrad_v2_ds.py +0 -47
  1069. mindspore/ops/_op_impl/tbe/sparse_apply_ftrl_d.py +0 -53
  1070. mindspore/ops/_op_impl/tbe/sparse_apply_ftrl_d_ds.py +0 -50
  1071. mindspore/ops/_op_impl/tbe/sparse_apply_ftrl_v2.py +0 -50
  1072. mindspore/ops/_op_impl/tbe/sparse_apply_proximal_adagrad.py +0 -66
  1073. mindspore/ops/_op_impl/tbe/sparse_apply_proximal_adagrad_ds.py +0 -67
  1074. mindspore/ops/_op_impl/tbe/sparse_apply_r_m_s_prop.py +0 -57
  1075. mindspore/ops/_op_impl/tbe/sparse_apply_r_m_s_prop_ds.py +0 -58
  1076. mindspore/ops/_op_impl/tbe/sparse_gather_v2.py +0 -56
  1077. mindspore/ops/_op_impl/tbe/sparse_gather_v2_ds.py +0 -58
  1078. mindspore/ops/_op_impl/tbe/split_d.py +0 -38
  1079. mindspore/ops/_op_impl/tbe/split_d_ds.py +0 -39
  1080. mindspore/ops/_op_impl/tbe/split_v.py +0 -39
  1081. mindspore/ops/_op_impl/tbe/splitv.py +0 -39
  1082. mindspore/ops/_op_impl/tbe/sqrt.py +0 -37
  1083. mindspore/ops/_op_impl/tbe/sqrt_ds.py +0 -38
  1084. mindspore/ops/_op_impl/tbe/sqrt_grad.py +0 -43
  1085. mindspore/ops/_op_impl/tbe/sqrt_grad_ds.py +0 -44
  1086. mindspore/ops/_op_impl/tbe/square.py +0 -38
  1087. mindspore/ops/_op_impl/tbe/square_ds.py +0 -39
  1088. mindspore/ops/_op_impl/tbe/square_sum_all.py +0 -40
  1089. mindspore/ops/_op_impl/tbe/square_sum_all_ds.py +0 -41
  1090. mindspore/ops/_op_impl/tbe/square_sum_v1.py +0 -38
  1091. mindspore/ops/_op_impl/tbe/square_sum_v1_ds.py +0 -39
  1092. mindspore/ops/_op_impl/tbe/square_sum_v2.py +0 -39
  1093. mindspore/ops/_op_impl/tbe/squared_difference.py +0 -39
  1094. mindspore/ops/_op_impl/tbe/squared_difference_ds.py +0 -41
  1095. mindspore/ops/_op_impl/tbe/squeeze.py +0 -37
  1096. mindspore/ops/_op_impl/tbe/strided_read.py +0 -38
  1097. mindspore/ops/_op_impl/tbe/strided_slice_d.py +0 -44
  1098. mindspore/ops/_op_impl/tbe/strided_slice_ds.py +0 -71
  1099. mindspore/ops/_op_impl/tbe/strided_slice_grad_d.py +0 -51
  1100. mindspore/ops/_op_impl/tbe/strided_slice_grad_ds.py +0 -57
  1101. mindspore/ops/_op_impl/tbe/strided_write.py +0 -38
  1102. mindspore/ops/_op_impl/tbe/sub.py +0 -39
  1103. mindspore/ops/_op_impl/tbe/sub_ds.py +0 -40
  1104. mindspore/ops/_op_impl/tbe/tan.py +0 -38
  1105. mindspore/ops/_op_impl/tbe/tan_ds.py +0 -39
  1106. mindspore/ops/_op_impl/tbe/tanh.py +0 -37
  1107. mindspore/ops/_op_impl/tbe/tanh_ds.py +0 -38
  1108. mindspore/ops/_op_impl/tbe/tanh_grad.py +0 -39
  1109. mindspore/ops/_op_impl/tbe/tanh_grad_ds.py +0 -40
  1110. mindspore/ops/_op_impl/tbe/tensor_move.py +0 -49
  1111. mindspore/ops/_op_impl/tbe/tensor_move_ds.py +0 -50
  1112. mindspore/ops/_op_impl/tbe/tensor_scatter_update.py +0 -41
  1113. mindspore/ops/_op_impl/tbe/tile.py +0 -37
  1114. mindspore/ops/_op_impl/tbe/tile_ds.py +0 -42
  1115. mindspore/ops/_op_impl/tbe/top_k.py +0 -42
  1116. mindspore/ops/_op_impl/tbe/top_k_ds.py +0 -43
  1117. mindspore/ops/_op_impl/tbe/trans_data.py +0 -167
  1118. mindspore/ops/_op_impl/tbe/trans_data_ds.py +0 -180
  1119. mindspore/ops/_op_impl/tbe/trans_data_rnn.py +0 -44
  1120. mindspore/ops/_op_impl/tbe/transpose.py +0 -60
  1121. mindspore/ops/_op_impl/tbe/transpose_d.py +0 -47
  1122. mindspore/ops/_op_impl/tbe/transpose_nod.py +0 -60
  1123. mindspore/ops/_op_impl/tbe/trunc.py +0 -39
  1124. mindspore/ops/_op_impl/tbe/truncate_div.py +0 -41
  1125. mindspore/ops/_op_impl/tbe/truncate_div_ds.py +0 -42
  1126. mindspore/ops/_op_impl/tbe/truncate_mod.py +0 -41
  1127. mindspore/ops/_op_impl/tbe/truncate_mod_ds.py +0 -42
  1128. mindspore/ops/_op_impl/tbe/unpack.py +0 -38
  1129. mindspore/ops/_op_impl/tbe/unpack_ds.py +0 -39
  1130. mindspore/ops/_op_impl/tbe/unsorted_segment_max.py +0 -49
  1131. mindspore/ops/_op_impl/tbe/unsorted_segment_max_ds.py +0 -40
  1132. mindspore/ops/_op_impl/tbe/unsorted_segment_min.py +0 -49
  1133. mindspore/ops/_op_impl/tbe/unsorted_segment_min_ds.py +0 -40
  1134. mindspore/ops/_op_impl/tbe/unsorted_segment_prod.py +0 -49
  1135. mindspore/ops/_op_impl/tbe/unsorted_segment_prod_ds.py +0 -38
  1136. mindspore/ops/_op_impl/tbe/unsorted_segment_sum.py +0 -38
  1137. mindspore/ops/_op_impl/tbe/unsorted_segment_sum_ds.py +0 -41
  1138. mindspore/ops/_op_impl/tbe/wts_arq.py +0 -40
  1139. mindspore/ops/_op_impl/tbe/xdivy.py +0 -38
  1140. mindspore/ops/_op_impl/tbe/xdivy_ds.py +0 -39
  1141. mindspore/ops/_op_impl/tbe/xlogy.py +0 -38
  1142. mindspore/ops/_op_impl/tbe/xlogy_ds.py +0 -39
  1143. mindspore/ops/_op_impl/tbe/zeros_like.py +0 -41
  1144. mindspore/ops/_op_impl/tbe/zeros_like_ds.py +0 -42
  1145. mindspore/ops/_tracefunc.py +0 -241
  1146. mindspore/ops/arg_dtype_cast.py +0 -54
  1147. mindspore/rewrite/api/tree_node_helper.py +0 -60
  1148. mindspore/rewrite/ast_creator_register.py +0 -37
  1149. mindspore/rewrite/ast_helpers/ast_creator.py +0 -115
  1150. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +0 -267
  1151. mindspore/rewrite/ast_transformers/remove_return_out_of_if.py +0 -228
  1152. mindspore/rewrite/namespace.py +0 -53
  1153. {mindspore-2.2.14.dist-info → mindspore-2.3.0rc1.dist-info}/WHEEL +0 -0
  1154. {mindspore-2.2.14.dist-info → mindspore-2.3.0rc1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1391 @@
1
+ # Copyright 2023 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
+ """Operators for nn."""
16
+ from __future__ import absolute_import
17
+ from __future__ import division
18
+
19
+ import numbers
20
+ import math
21
+ import numpy as np
22
+ from mindspore.ops import signature as sig
23
+ from mindspore.ops.primitive import Primitive, prim_attr_register, prim_arg_register, PrimitiveWithInfer
24
+ from mindspore.ops._primitive_cache import _get_cache_prim
25
+ from mindspore.ops.auto_generate import gen_arg_handler as handler
26
+ from mindspore.common import Tensor, CSRTensor, COOTensor
27
+ from mindspore.common._stub_tensor import _convert_stub
28
+ from mindspore._c_expression import typing
29
+ from mindspore._c_expression import pyboost_cast
30
+ from mindspore._c_expression import Tensor as Tensor_
31
+ from mindspore._c_expression import pyboost_tile
32
+ from mindspore.common import dtype as mstype
33
+ from mindspore.common._utils import is_shape_unknown
34
+ from mindspore import _checkparam as validator
35
+ from mindspore.ops.operations.manually_defined._inner import ScalarCast
36
+ from mindspore.ops_generate.gen_ops_inner_prim import DtypeToEnum
37
+ from mindspore.common.initializer import Zero
38
+ from mindspore.common.parameter import Parameter
39
+
40
+
41
+ dtype_to_type_id = DtypeToEnum()
42
+
43
+
44
+ class ScalarDiv(Primitive):
45
+ r"""
46
+ Computes the quotient of dividing the first input scalar by the second input scalar element-wise.
47
+
48
+ .. math::
49
+
50
+ out_{i} = \frac{x_i}{y_i}
51
+
52
+ .. note::
53
+ The inputs can be constant/variable value. Usage is the same as '/' in Python.
54
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
55
+
56
+ Inputs:
57
+ - **x** (Scalar) - A constant or variable scalar.
58
+ - **y** (Scalar) - A constant or variable scalar.
59
+
60
+ Outputs:
61
+ Scalar, the type of scalar is float.
62
+
63
+ Raises:
64
+ TypeError: If `x` and `y` are not scalar.
65
+ ValueError: If `y` is 0.
66
+
67
+ Supported Platforms:
68
+ ``Ascend`` ``GPU`` ``CPU``
69
+ """
70
+ @prim_attr_register
71
+ def __init__(self):
72
+ """Initialize ScalarDiv"""
73
+
74
+ def __call__(self, x, y):
75
+ if y == 0:
76
+ raise ValueError('The divisor could not be zero. But the divisor is zero now.')
77
+ return x / y
78
+
79
+
80
+ class ScalarFloorDiv(Primitive):
81
+ r"""
82
+ Computes the quotient of dividing the first input scalar by the second input scalar element-wise.
83
+
84
+ .. math::
85
+
86
+ out_{i} = \frac{x_i}{y_i}
87
+
88
+ .. note::
89
+ The inputs can be constant/variable value. Usage is the same as '//' in Python.
90
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
91
+
92
+ Inputs:
93
+ - **x** (Scalar) - A constant or variable scalar.
94
+ - **y** (Scalar) - A constant or variable scalar.
95
+
96
+ Outputs:
97
+ Scalar, the type of scalar is float.
98
+
99
+ Raises:
100
+ TypeError: If `x` and `y` are not scalar.
101
+ ValueError: If `y` is 0.
102
+
103
+ Supported Platforms:
104
+ ``Ascend`` ``GPU`` ``CPU``
105
+ """
106
+ @prim_attr_register
107
+ def __init__(self):
108
+ """Initialize ScalarFloorDiv"""
109
+ self.init_prim_io_names(inputs=['x', 'y'], outputs=['output'])
110
+
111
+ def __call__(self, x, y):
112
+ if y == 0:
113
+ raise ValueError('The divisor could not be zero. But the divisor is zero now.')
114
+ return x // y
115
+
116
+
117
+ class ScalarAdd(Primitive):
118
+ r"""
119
+ Adds two input scalar.
120
+
121
+ .. note::
122
+ The inputs can be constant/variable value. Usage is the same as '+' in Python.
123
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
124
+
125
+ Inputs:
126
+ - **x** (Scalar) - A constant or variable scalar.
127
+ - **y** (Scalar) - A constant or variable scalar.
128
+
129
+ Outputs:
130
+ Scalar, and the data type is the one with higher precision or higher digits among the two inputs.
131
+
132
+ Raises:
133
+ TypeError: If `x` and `y` are not scalar.
134
+
135
+ Supported Platforms:
136
+ ``Ascend`` ``GPU`` ``CPU``
137
+ """
138
+ @prim_attr_register
139
+ def __init__(self):
140
+ """Initialize ScalarAdd"""
141
+
142
+ def __call__(self, x, y):
143
+ return x + y
144
+
145
+
146
+ class ScalarPow(Primitive):
147
+ r"""
148
+ Pow two input scalar.
149
+
150
+ .. note::
151
+ The inputs can be constant/variable value. Usage is the same as '+' in Python.
152
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
153
+
154
+ Inputs:
155
+ - **x** (Scalar) - A constant or variable scalar.
156
+ - **y** (Scalar) - A constant or variable scalar.
157
+
158
+ Outputs:
159
+ Scalar, and the data type is the one with higher precision or higher digits among the two inputs.
160
+
161
+ Raises:
162
+ TypeError: If `x` and `y` are not scalar.
163
+
164
+ Supported Platforms:
165
+ ``Ascend`` ``GPU`` ``CPU``
166
+ """
167
+ @prim_attr_register
168
+ def __init__(self):
169
+ """Initialize ScalarPow"""
170
+
171
+ def __call__(self, x, y):
172
+ return pow(x, y)
173
+
174
+
175
+ class ScalarLog(Primitive):
176
+ r"""
177
+ Log input scalar.
178
+
179
+ .. note::
180
+ The inputs can be constant/variable value. Usage is the same as '+' in Python.
181
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
182
+
183
+ Inputs:
184
+ - **x** (Scalar) - A constant or variable scalar.
185
+
186
+ Outputs:
187
+ Scalar, and the data type is the one with higher precision or higher digits among the two inputs.
188
+
189
+ Raises:
190
+ TypeError: If `x` and `y` are not scalar.
191
+
192
+ Supported Platforms:
193
+ ``Ascend`` ``GPU`` ``CPU``
194
+ """
195
+ @prim_attr_register
196
+ def __init__(self):
197
+ """Initialize ScalarAdd"""
198
+
199
+ def __call__(self, x):
200
+ return math.log(x)
201
+
202
+
203
+ class ScalarUadd(Primitive):
204
+ r"""
205
+ UAdds input scalar.
206
+
207
+ .. note::
208
+ The inputs can be constant/variable value. Usage is the same as '+' in Python.
209
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
210
+
211
+ Inputs:
212
+ - **x** (Scalar) - A constant or variable scalar.
213
+
214
+ Outputs:
215
+ Scalar, and the data type is the one with higher precision or higher digits among the two inputs.
216
+
217
+ Raises:
218
+ TypeError: If `x` and `y` are not scalar.
219
+
220
+ Supported Platforms:
221
+ ``Ascend`` ``GPU`` ``CPU``
222
+ """
223
+ @prim_attr_register
224
+ def __init__(self):
225
+ """Initialize ScalarAdd"""
226
+
227
+ def __call__(self, x):
228
+ return x
229
+
230
+
231
+ class ScalarUsub(Primitive):
232
+ r"""
233
+ usub input scalar.
234
+
235
+ .. note::
236
+ The inputs can be constant/variable value. Usage is the same as '+' in Python.
237
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
238
+
239
+ Inputs:
240
+ - **x** (Scalar) - A constant or variable scalar.
241
+ - **y** (Scalar) - A constant or variable scalar.
242
+
243
+ Outputs:
244
+ Scalar, and the data type is the one with higher precision or higher digits among the two inputs.
245
+
246
+ Raises:
247
+ TypeError: If `x` and `y` are not scalar.
248
+
249
+ Supported Platforms:
250
+ ``Ascend`` ``GPU`` ``CPU``
251
+ """
252
+ @prim_attr_register
253
+ def __init__(self):
254
+ """Initialize ScalarUsub"""
255
+
256
+ def __call__(self, x):
257
+ return -x
258
+
259
+
260
+ class ScalarSub(Primitive):
261
+ r"""
262
+ Subtracts the second input Scalar from the first input Scalar.
263
+
264
+ .. note::
265
+ The inputs can be constant/variable value. Usage is the same as '-' in Python.
266
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
267
+
268
+ Inputs:
269
+ - **x** (Scalar) - A constant or variable scalar.
270
+ - **y** (Scalar) - A constant or variable scalar.
271
+
272
+ Outputs:
273
+ Scalar, and the data type is the one with higher precision or higher digits among the two inputs.
274
+
275
+ Raises:
276
+ TypeError: If `x` and `y` are not scalar.
277
+
278
+ Supported Platforms:
279
+ ``Ascend`` ``GPU`` ``CPU``
280
+ """
281
+ @prim_attr_register
282
+ def __init__(self):
283
+ """Initialize ScalarSub"""
284
+
285
+ def __call__(self, x, y):
286
+ return x - y
287
+
288
+
289
+ class ScalarMul(Primitive):
290
+ r"""
291
+ Muls two input scalar.
292
+
293
+ .. note::
294
+ The inputs can be constant/variable value. Usage is the same as '+' in Python.
295
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
296
+
297
+ Inputs:
298
+ - **x** (Scalar) - A constant or variable scalar.
299
+ - **y** (Scalar) - A constant or variable scalar.
300
+
301
+ Outputs:
302
+ Scalar, and the data type is the one with higher precision or higher digits among the two inputs.
303
+
304
+ Raises:
305
+ TypeError: If `x` and `y` are not scalar.
306
+
307
+ Supported Platforms:
308
+ ``Ascend`` ``GPU`` ``CPU``
309
+ """
310
+ @prim_attr_register
311
+ def __init__(self):
312
+ """Initialize ScalarMul"""
313
+
314
+ def __call__(self, x, y):
315
+ return x * y
316
+
317
+
318
+ class ScalarEq(Primitive):
319
+ r"""
320
+ Computes the equivalence between two Scalars.
321
+
322
+ .. note::
323
+ The inputs can be constant/variable value. Usage is the same as '==' in Python.
324
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
325
+
326
+ Inputs:
327
+ - **x** (Scalar) - A constant or variable scalar.
328
+ - **y** (Scalar) - A constant or variable scalar.
329
+
330
+ Outputs:
331
+ Scalar, the type of scalar is bool.
332
+
333
+ Raises:
334
+ TypeError: If `x` and `y` are not scalar.
335
+
336
+ Supported Platforms:
337
+ ``Ascend`` ``GPU`` ``CPU``
338
+ """
339
+ @prim_attr_register
340
+ def __init__(self):
341
+ """Initialize ScalarEq"""
342
+
343
+ def __call__(self, x, y):
344
+ return x == y
345
+
346
+
347
+ class ScalarGt(Primitive):
348
+ r"""
349
+ Compare the value of the input scalars :math:`x,y`, and the output result is a bool value.
350
+
351
+ .. note::
352
+ The inputs can be constant/variable value. Usage is the same as '>' in Python.
353
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
354
+
355
+ Inputs:
356
+ - **x** (Scalar) - A constant or variable scalar.
357
+ - **y** (Scalar) - A constant or variable scalar.
358
+
359
+ Outputs:
360
+ Scalar, the type of scalar is bool.
361
+
362
+ Raises:
363
+ TypeError: If `x` and `y` are not scalar.
364
+
365
+ Supported Platforms:
366
+ ``Ascend`` ``GPU`` ``CPU``
367
+ """
368
+ @prim_attr_register
369
+ def __init__(self):
370
+ """Initialize scalar_gt"""
371
+
372
+ def __call__(self, x, y):
373
+ return x > y
374
+
375
+
376
+ class ScalarLt(Primitive):
377
+ r"""
378
+ Computes the boolean value of :math:`x < y`.
379
+
380
+ .. note::
381
+ The inputs can be constant/variable value. Usage is the same as '<' in Python.
382
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
383
+
384
+ Inputs:
385
+ - **x** (Scalar) - A constant or variable scalar.
386
+ - **y** (Scalar) - A constant or variable scalar.
387
+
388
+ Outputs:
389
+ Scalar, the type of scalar is bool.
390
+
391
+ Raises:
392
+ TypeError: If `x` and `y` are not scalar.
393
+
394
+ Supported Platforms:
395
+ ``Ascend`` ``GPU`` ``CPU``
396
+ """
397
+ @prim_attr_register
398
+ def __init__(self):
399
+ """Initialize scalar_lt"""
400
+
401
+ def __call__(self, x, y):
402
+ return x < y
403
+
404
+
405
+ class ScalarGe(Primitive):
406
+ r"""
407
+ Compare the value of the input scalars :math:`x,y`, and the output result is a bool value.
408
+
409
+ .. note::
410
+ The inputs can be constant/variable value. Usage is the same as '>=' in Python.
411
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
412
+
413
+ Inputs:
414
+ - **x** (Scalar) - A constant or variable scalar.
415
+ - **y** (Scalar) - A constant or variable scalar.
416
+
417
+ Outputs:
418
+ Scalar, the type of scalar is bool.
419
+
420
+ Raises:
421
+ TypeError: If `x` and `y` are not scalar.
422
+
423
+ Supported Platforms:
424
+ ``Ascend`` ``GPU`` ``CPU``
425
+ """
426
+ @prim_attr_register
427
+ def __init__(self):
428
+ """Initialize scalar_ge"""
429
+
430
+ def __call__(self, x, y):
431
+ return x >= y
432
+
433
+
434
+ class ScalarLe(Primitive):
435
+ r"""
436
+ Compare the value of the input scalars :math:`x,y`, and the output result is a bool value.
437
+
438
+ .. note::
439
+ The inputs can be constant/variable value. Usage is the same as '<=' in Python.
440
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
441
+
442
+ Inputs:
443
+ - **x** (Scalar) - A constant or variable scalar.
444
+ - **y** (Scalar) - A constant or variable scalar.
445
+
446
+ Outputs:
447
+ Scalar, the type of scalar is bool.
448
+
449
+ Raises:
450
+ TypeError: If `x` and `y` are not scalar.
451
+
452
+ Supported Platforms:
453
+ ``Ascend`` ``GPU`` ``CPU``
454
+ """
455
+ @prim_attr_register
456
+ def __init__(self):
457
+ """Initialize scalar_le"""
458
+
459
+ def __call__(self, x, y):
460
+ return x <= y
461
+
462
+
463
+ class ScalarMod(Primitive):
464
+ r"""
465
+ Computes the remainder of dividing the first input scalar by the second input scalar element-wise.
466
+
467
+ .. math::
468
+
469
+ out_{i} = x_{i} \text{ % } y_{i}
470
+
471
+ .. note::
472
+ The inputs can be constant/variable value. Usage is the same as '%' in Python.
473
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
474
+
475
+ Inputs:
476
+ - **x** (Scalar) - A constant or variable scalar.
477
+ - **y** (Scalar) - A constant or variable scalar.
478
+
479
+ Outputs:
480
+ Scalar, the type is the one with higher precision or higher digits among the two inputs.
481
+
482
+ Raises:
483
+ TypeError: If `x` and `y` are not scalar.
484
+
485
+ Supported Platforms:
486
+ ``Ascend`` ``GPU`` ``CPU``
487
+ """
488
+ @prim_attr_register
489
+ def __init__(self):
490
+ """Initialize ScalarMod"""
491
+
492
+ def __call__(self, x, y):
493
+ if y == 0:
494
+ raise ValueError('Cannot perform modulo operation on zero.')
495
+ return x % y
496
+
497
+
498
+ class ScalarBool(Primitive):
499
+ r"""
500
+ Computes the input scalar true or false.
501
+
502
+ .. note::
503
+ The inputs can be constant/variable value.
504
+ This primitive only have 'CPU' implementation, for other platform, it runs using heterogeneous.
505
+
506
+ Inputs:
507
+ - **x** (Scalar) - A constant or variable scalar.
508
+
509
+ Outputs:
510
+ Scalar, the type is bool.
511
+
512
+ Raises:
513
+ TypeError: If `x` are not scalar.
514
+
515
+ Supported Platforms:
516
+ ``Ascend`` ``GPU`` ``CPU``
517
+ """
518
+ @prim_attr_register
519
+ def __init__(self):
520
+ """Initialize ScalarBool"""
521
+
522
+ def __call__(self, x):
523
+ return bool(x)
524
+
525
+
526
+ scalar_div = ScalarDiv()
527
+ scalar_mod = ScalarMod()
528
+ scalar_add = ScalarAdd()
529
+ scalar_mul = ScalarMul()
530
+ scalar_sub = ScalarSub()
531
+ scalar_gt = ScalarGt()
532
+ scalar_ge = ScalarGe()
533
+ scalar_le = ScalarLe()
534
+ scalar_lt = ScalarLt()
535
+ scalar_eq = ScalarEq()
536
+ scalar_bool = ScalarBool()
537
+ scalar_floordiv = ScalarFloorDiv()
538
+ scalar_log = ScalarLog()
539
+ scalar_pow = ScalarPow()
540
+ scalar_uadd = ScalarUadd()
541
+ scalar_usub = ScalarUsub()
542
+
543
+
544
+ class BatchNorm(Primitive):
545
+ r"""
546
+ Batch Normalization for input data and updated parameters.
547
+
548
+ Batch Normalization is widely used in convolutional neural networks. This operation
549
+ applies Batch Normalization over inputs to avoid internal covariate shift as described
550
+ in the paper `Batch Normalization: Accelerating Deep Network Training by Reducing Internal
551
+ Covariate Shift <https://arxiv.org/abs/1502.03167>`_. It rescales and recenters the
552
+ features using a mini-batch of data and the learned parameters can be described
553
+ in the following formula,
554
+
555
+ .. math::
556
+
557
+ y = \frac{x - mean}{\sqrt{variance + \epsilon}} * \gamma + \beta
558
+
559
+ where :math:`\gamma` is scale, :math:`\beta` is bias, :math:`\epsilon` is epsilon,
560
+ :math:`mean` is the mean of :math:`x`,
561
+ :math:`variance` is the variance of :math:`x`.
562
+
563
+ .. warning::
564
+ - If the operation is used for inference, and outputs "reserve_space_1" and "reserve_space_2" are available,
565
+ then "reserve_space_1" has the same value as "mean" and "reserve_space_2" has the same value as "variance".
566
+ - For Ascend 310, the result accuracy fails to reach 1‰ due to the square root instruction.
567
+
568
+ Args:
569
+ is_training (bool): If `is_training` is ``True`` , `mean` and `variance` are computed during training.
570
+ If `is_training` is ``False`` , they're loaded from checkpoint during inference. Default: ``False`` .
571
+ epsilon (float): A small value added for numerical stability. Default: ``1e-5``, value must be (0, 1] .
572
+ momentum (float): The hyper parameter to compute moving average for running_mean and running_var
573
+ (e.g. :math:`new\_running\_mean = (1 - momentum) * running\_mean + momentum * current\_mean`).
574
+ Momentum value must be [0, 1]. Default: ``0.1`` .
575
+ data_format (str): The optional value for data format, is ``'NHWC'`` or ``'NCHW'``, and the ``'NHWC'`` format
576
+ is only supported in GPU target. Default: ``"NCHW"`` .
577
+
578
+ Inputs:
579
+ If `is_training` is ``False`` , inputs are Tensors.
580
+
581
+ - **input_x** (Tensor) - Tensor of shape :math:`(N, C)`, with float16 or float32 data type.
582
+ - **scale** (Tensor) - Tensor of shape :math:`(C,)`, with float16 or float32 data type.
583
+ - **bias** (Tensor) - Tensor of shape :math:`(C,)`, has the same data type with `scale`.
584
+ - **mean** (Tensor) - Tensor of shape :math:`(C,)`, has the same data type with `scale`.
585
+ - **variance** (Tensor) - Tensor of shape :math:`(C,)`, has the same data type with `scale`.
586
+
587
+ If `is_training` is ``True`` , `scale`, `bias`, `mean` and `variance` are Parameters.
588
+
589
+ - **input_x** (Tensor) - Tensor of shape :math:`(N, C)`, with float16 or float32 data type.
590
+ - **scale** (Parameter) - Parameter of shape :math:`(C,)`, with float16 or float32 data type.
591
+ - **bias** (Parameter) - Parameter of shape :math:`(C,)`, has the same data type with `scale`.
592
+ - **mean** (Parameter) - Parameter of shape :math:`(C,)`, has the same data type with `scale`.
593
+ - **variance** (Parameter) - Parameter of shape :math:`(C,)`, has the same data type with `scale`.
594
+
595
+ Outputs:
596
+ Tuple of 5 Tensors, the normalized inputs and the updated parameters.
597
+
598
+ - **output_x** (Tensor) - The same type and shape as the input_x. The shape is :math:`(N, C)`.
599
+ - **batch_mean** (Tensor) - The mean calculated per-dimension over the mini-batches,
600
+ shape is :math:`(C,)`.
601
+ - **batch_variance** (Tensor) - The variance calculated per-dimension over the mini-batches,
602
+ shape is :math:`(C,)`.
603
+ - **reserve_space_1** (Tensor) - The mean that needs to be reused when calculating gradients,
604
+ one-dimensional Tensor. The shape is :math:`(C,)`.
605
+ - **reserve_space_2** (Tensor) - The variance that needs to be reused when calculating gradients,
606
+ one-dimensional Tensor. The shape is :math:`(C,)`.
607
+
608
+ Raises:
609
+ TypeError: If `is_training` is not a bool.
610
+ TypeError: If dtype of `epsilon` or `momentum` is not float.
611
+ TypeError: If `data_format` is not a str.
612
+ TypeError: If `input_x`, `scale`, `bias`, `mean` or `variance` is not a Tensor.
613
+ TypeError: If dtype of `input_x`, `scale` is neither float16 nor float32.
614
+
615
+ Supported Platforms:
616
+ ``Ascend`` ``GPU`` ``CPU``
617
+
618
+ Examples:
619
+ >>> import mindspore
620
+ >>> import numpy as np
621
+ >>> from mindspore import Tensor, ops
622
+ >>> input_x = Tensor(np.ones([2, 2]), mindspore.float32)
623
+ >>> scale = Tensor(np.ones([2]), mindspore.float32)
624
+ >>> bias = Tensor(np.ones([2]), mindspore.float32)
625
+ >>> mean = Tensor(np.ones([2]), mindspore.float32)
626
+ >>> variance = Tensor(np.ones([2]), mindspore.float32)
627
+ >>> batch_norm = ops.BatchNorm()
628
+ >>> output = batch_norm(input_x, scale, bias, mean, variance)
629
+ >>> print(output[0])
630
+ [[1. 1.]
631
+ [1. 1.]]
632
+ """
633
+ __mindspore_signature__ = (sig.make_sig('input_x', dtype=sig.sig_dtype.T1),
634
+ sig.make_sig('scale',
635
+ sig.sig_rw.RW_WRITE,
636
+ dtype=sig.sig_dtype.T2),
637
+ sig.make_sig('bias',
638
+ sig.sig_rw.RW_WRITE,
639
+ dtype=sig.sig_dtype.T2),
640
+ sig.make_sig('mean',
641
+ sig.sig_rw.RW_WRITE,
642
+ dtype=sig.sig_dtype.T3),
643
+ sig.make_sig('variance',
644
+ sig.sig_rw.RW_WRITE,
645
+ dtype=sig.sig_dtype.T3))
646
+
647
+ @prim_arg_register
648
+ def __init__(self,
649
+ is_training=False,
650
+ epsilon=1e-5,
651
+ momentum=0.1,
652
+ data_format="NCHW"):
653
+ """Initialize BatchNorm."""
654
+ if is_training is False:
655
+ self.set_signatures(tuple())
656
+ else:
657
+ self.add_prim_attr('side_effect_mem', True)
658
+ self.is_training = is_training
659
+ self.epsilon = epsilon
660
+ self.momentum = momentum
661
+ self.data_format = handler.str_to_enum("BatchNorm", "data_format", data_format)
662
+
663
+ def __call__(self, *args):
664
+ return super().__call__(*args, self.is_training, self.epsilon,
665
+ self.momentum, self.data_format)
666
+
667
+
668
+ def batch_norm_(input_x,
669
+ scale,
670
+ bias,
671
+ mean,
672
+ variance,
673
+ is_training=False,
674
+ epsilon=1e-5,
675
+ momentum=0.1,
676
+ data_format="NCHW"):
677
+ r"""
678
+ Batch Normalization for input data and updated parameters.
679
+
680
+ Batch Normalization is widely used in convolutional neural networks. This operation
681
+ applies Batch Normalization over inputs to avoid internal covariate shift as described
682
+ in the paper `Batch Normalization: Accelerating Deep Network Training by Reducing Internal
683
+ Covariate Shift <https://arxiv.org/abs/1502.03167>`_. It rescales and recenters the
684
+ features using a mini-batch of data and the learned parameters can be described
685
+ in the following formula,
686
+
687
+ .. math::
688
+
689
+ y = \frac{x - mean}{\sqrt{variance + \epsilon}} * \gamma + \beta
690
+
691
+ where :math:`\gamma` is scale, :math:`\beta` is bias, :math:`\epsilon` is epsilon,
692
+ :math:`mean` is the mean of :math:`x`,
693
+ :math:`variance` is the variance of :math:`x`.
694
+
695
+ .. warning::
696
+ - If the operation is used for inference, and outputs "reserve_space_1" and "reserve_space_2" are available,
697
+ then "reserve_space_1" has the same value as "mean" and "reserve_space_2" has the same value as "variance".
698
+ - For Atlas 200/300/500 inference product,
699
+ the result accuracy fails to reach 1‰ due to the square root instruction.
700
+
701
+ Note:
702
+ - If `training` is `False`, `weight`, `bias`, `running_mean` and `running_var` are tensors.
703
+ - If `training` is `True`, `weight`, `bias`, `running_mean` and `running_var` are Parameters.
704
+
705
+ Args:
706
+ input_x (tensor): tensor of shape :math:`(N, C)`, with float16 or float32 data type.
707
+ scale (Union[tensor, Parameter]): The shape :math:`(C,)`, has the same data type with `weight`.
708
+ bias (Union[tensor, Parameter]): The shape :math:`(C,)`, has the same data type with `weight`.
709
+ mean (Union[tensor, Parameter]): The shape :math:`(C,)`, with float16 or float32 data type.
710
+ variance (Union[tensor, Parameter]): The shape :math:`(C,)`, has the same data type with `weight`.
711
+ is_training (bool, optional): If `training` is `True`, `mean` and `variance` are computed during training.
712
+ If `training` is `False`, they're loaded from checkpoint during inference. Default: False.
713
+ epsilon (float): A small value added for numerical stability.
714
+ Default: ``1e-5``, value must be (0, 1] .
715
+ momentum (float): The hyper parameter to compute moving average for running_mean and running_var
716
+ (e.g. :math:`new\_running\_mean = (1 - momentum) * running\_mean + momentum * current\_mean`).
717
+ Momentum value must be [0, 1].
718
+ Default: ``0.1`` .
719
+ data_format (str): The optional value for data format, is ``'NHWC'`` or ``'NCHW'``,
720
+ and the ``'NHWC'`` format is only supported in GPU target.
721
+ Default: ``"NCHW"`` .
722
+
723
+ Returns:
724
+ output_x (Tensor): The same type and shape as the input_x. The shape is :math:`(N, C)`.
725
+ batch_mean (Tensor): Tensor of shape :math:`(C,)`.
726
+ batch_variance (Tensor): Tensor of shape :math:`(C,)`.
727
+ reserve_space_1 (Tensor): Tensor of shape :math:`(C,)`.
728
+ reserve_space_2 (Tensor): Tensor of shape :math:`(C,)`.
729
+
730
+ Raises:
731
+ TypeError: If `is_training` is not a bool.
732
+ TypeError: If dtype of `epsilon` or `momentum` is not float.
733
+ TypeError: If `data_format` is not a str.
734
+ TypeError: If `input_x`, `scale`, `bias`, `mean` or `variance` is not a Tensor.
735
+ TypeError: If dtype of `input_x`, `scale` is neither float16 nor float32.
736
+
737
+ Supported Platforms:
738
+ ``Ascend`` ``GPU`` ``CPU``
739
+
740
+ Examples:
741
+ >>> import mindspore
742
+ >>> import numpy as np
743
+ >>> from mindspore import Tensor, ops
744
+ >>> input_x = Tensor(np.ones([2, 2]), mindspore.float32)
745
+ >>> scale = Tensor(np.ones([2]), mindspore.float32)
746
+ >>> bias = Tensor(np.ones([2]), mindspore.float32)
747
+ >>> mean = Tensor(np.ones([2]), mindspore.float32)
748
+ >>> variance = Tensor(np.ones([2]), mindspore.float32)
749
+ >>> output = ops.batch_norm_(input_x, scale, bias, mean, variance, is_training, epsilon, momentum, data_format)
750
+ >>> print(output[0])
751
+ [[1. 1.]
752
+ [1. 1.]]
753
+ """
754
+ batch_norm_op = _get_cache_prim(BatchNorm)(is_training, epsilon, momentum,
755
+ data_format)
756
+ return batch_norm_op(input_x, scale, bias, mean, variance)
757
+
758
+
759
+ class Rank(Primitive):
760
+ """
761
+ Returns the rank of a tensor.
762
+
763
+ Refer to :func:`mindspore.ops.rank` for more details.
764
+
765
+ Supported Platforms:
766
+ ``Ascend`` ``GPU`` ``CPU``
767
+
768
+ Examples:
769
+ >>> import mindspore
770
+ >>> import numpy as np
771
+ >>> from mindspore import Tensor, ops
772
+ >>> input_tensor = Tensor(np.array([[2, 2], [2, 2]]), mindspore.float32)
773
+ >>> rank = ops.Rank()
774
+ >>> output = rank(input_tensor)
775
+ >>> print(output)
776
+ 2
777
+ >>> print(type(output))
778
+ <class 'int'>
779
+ """
780
+
781
+ @prim_attr_register
782
+ def __init__(self):
783
+ """Initialize Rank"""
784
+
785
+ def __call__(self, x):
786
+ if not isinstance(x, (Tensor, Tensor_)):
787
+ raise TypeError("the input x must be Tensor!")
788
+ return len(x.shape)
789
+
790
+
791
+ def rank(input_x):
792
+ """
793
+ Returns the rank of a tensor.
794
+
795
+ Returns a 0-D int32 Tensor representing the rank of input; the rank of a tensor
796
+ is the number of indices required to uniquely select each element of the tensor.
797
+
798
+ Args:
799
+ input_x (Tensor): The shape of tensor is :math:`(x_1, x_2, ..., x_R)`. The data type is Number.
800
+
801
+ Returns:
802
+ Tensor. 0-D int32 Tensor representing the rank of input, i.e., :math:`R`. The data type is an int.
803
+
804
+ Raises:
805
+ TypeError: If `input_x` is not a Tensor.
806
+
807
+ Supported Platforms:
808
+ ``Ascend`` ``GPU`` ``CPU``
809
+
810
+ Examples:
811
+ >>> import mindspore
812
+ >>> import numpy as np
813
+ >>> from mindspore import Tensor, ops
814
+ >>> input_tensor = Tensor(np.array([[2, 2], [2, 2]]), mindspore.float32)
815
+ >>> output = ops.rank(input_tensor)
816
+ >>> print(output)
817
+ 2
818
+ >>> print(type(output))
819
+ <class 'int'>
820
+
821
+ """
822
+ rank_op = _get_cache_prim(Rank)()
823
+ return rank_op(input_x)
824
+
825
+
826
+ class Shape(Primitive):
827
+ """
828
+ Returns the shape of the input tensor.
829
+
830
+ Refer to :func:`mindspore.ops.shape` for more details.
831
+
832
+ Inputs:
833
+ - **input_x** (Tensor) - The shape of tensor is :math:`(x_1, x_2, ..., x_R)`.
834
+
835
+ Outputs:
836
+ tuple[int], the output tuple is constructed by multiple integers,
837
+ :math:`(x_1, x_2, ..., x_R)`.
838
+
839
+ Supported Platforms:
840
+ ``Ascend`` ``GPU`` ``CPU``
841
+
842
+ Examples:
843
+ >>> import mindspore
844
+ >>> import numpy as np
845
+ >>> from mindspore import Tensor, ops
846
+ >>> input_x = Tensor(np.ones(shape=[3, 2, 1]), mindspore.float32)
847
+ >>> shape = ops.Shape()
848
+ >>> output = shape(input_x)
849
+ >>> print(output)
850
+ (3, 2, 1)
851
+ """
852
+
853
+ @prim_attr_register
854
+ def __init__(self):
855
+ """Initialize Shape"""
856
+
857
+ def __call__(self, x):
858
+ if isinstance(x, (Tensor, COOTensor, CSRTensor, Tensor_)):
859
+ return x.shape
860
+ raise TypeError(f"For primitive[{self.name}], the input argument must be Tensor, but got {type(x)}.")
861
+
862
+
863
+ def shape_(input_x):
864
+ """
865
+ Returns the shape of the input tensor.
866
+
867
+ Args:
868
+ input_x (Tensor): The shape of tensor is :math:`(x_1, x_2, ..., x_R)`.
869
+
870
+ Returns:
871
+ tuple[int], the output tuple is constructed by multiple integers,
872
+ :math:`(x_1, x_2, ..., x_R)`.
873
+
874
+ Raises:
875
+ TypeError: If `input_x` is not a Tensor.
876
+
877
+ Supported Platforms:
878
+ ``Ascend`` ``GPU`` ``CPU``
879
+
880
+ Examples:
881
+ >>> import mindspore
882
+ >>> import numpy as np
883
+ >>> from mindspore import Tensor, ops
884
+ >>> input_x = Tensor(np.ones(shape=[3, 2, 1]), mindspore.float32)
885
+ >>> output = ops.shape(input_x)
886
+ >>> print(output)
887
+ (3, 2, 1)
888
+ """
889
+ shape_op = _get_cache_prim(Shape)()
890
+ return shape_op(input_x)
891
+
892
+
893
+ class ScalarToTensor(PrimitiveWithInfer):
894
+ """
895
+ Converts a scalar to a `Tensor`, and converts the data type to the specified type.
896
+
897
+ Refer to :func:`mindspore.ops.scalar_to_tensor` for more details.
898
+
899
+ Inputs:
900
+ - **input_x** (Union[int, float]) - The input is a scalar. Only constant value is allowed.
901
+ - **dtype** (mindspore.dtype) - The target data type. Default: ``mindspore.float32`` . Only
902
+ constant value is allowed.
903
+
904
+ Outputs:
905
+ Tensor. 0-D Tensor and the content is the input.
906
+
907
+ Supported Platforms:
908
+ ``Ascend`` ``GPU`` ``CPU``
909
+
910
+ Examples:
911
+ >>> import mindspore
912
+ >>> from mindspore import ops
913
+ >>> op = ops.ScalarToTensor()
914
+ >>> data = 1
915
+ >>> output = op(data, mindspore.float32)
916
+ >>> print(output)
917
+ 1.0
918
+ """
919
+
920
+ @prim_attr_register
921
+ def __init__(self):
922
+ self.init_prim_io_names(inputs=['input_scalar', 'dtype'], outputs=['output_data'])
923
+
924
+ def __call__(self, x, dtype=mstype.float32):
925
+ validator.check_value_type("x", x, [bool, int, float], self.name)
926
+ validator.check_subclass("dtype", dtype, mstype.number, self.name)
927
+ data_type = mstype.dtype_to_nptype(dtype)
928
+ return Tensor(np.array(x, data_type), dtype=dtype)
929
+
930
+
931
+ class Tile(Primitive):
932
+ r"""
933
+ Replicates an input tensor with given multiple times.
934
+
935
+ Refer to :func:`mindspore.ops.tile` for more details.
936
+
937
+ Inputs:
938
+ - **input** (Tensor) - The tensor whose elements need to be repeated. Set the shape of input tensor as
939
+ :math:`(x_1, x_2, ..., x_S)` .
940
+ - **dims** (tuple[int]) - The parameter that specifies the number of replications,
941
+ the parameter type is tuple, and the data type is int, i.e., :math:`(y_1, y_2, ..., y_S)`.
942
+ Only constant value is allowed.
943
+
944
+ Outputs:
945
+ Tensor, has the same data type as the `input`. Suppose the length of `dims` is `d`,
946
+ the dimension of `input` is `input.dim`, and the shape of `input` is :math:`(x_1, x_2, ..., x_S)`.
947
+
948
+ - If `input.dim = d`, then the shape of their corresponding positions can be multiplied, and
949
+ the shape of Outputs is :math:`(x_1*y_1, x_2*y_2, ..., x_S*y_S)`.
950
+ - If `input.dim < d`, prepend 1 to the shape of `input` until their lengths are consistent.
951
+ Such as set the shape of `input` as :math:`(1, ..., x_1, x_2, ..., x_S)`,
952
+ then the shape of their corresponding positions can be multiplied, and the shape of Outputs is
953
+ :math:`(1*y_1, ..., x_R*y_R, x_S*y_S)`.
954
+ - If `input.dim > d`, prepend 1 to `dims` until their lengths are consistent. Such as set the
955
+ `dims` as :math:`(1, ..., y_1, y_2, ..., y_S)`, then the shape of their corresponding positions
956
+ can be multiplied, and the shape of Outputs is :math:`(x_1*1, ..., x_R*y_R, x_S*y_S)`.
957
+
958
+ Raises:
959
+ TypeError: If `dims` is not a tuple or its elements are not all int.
960
+ ValueError: If the elements of `dims` are not all greater than or equal to 0.
961
+
962
+ Supported Platforms:
963
+ ``Ascend`` ``GPU`` ``CPU``
964
+
965
+ Examples:
966
+ >>> import mindspore
967
+ >>> import numpy as np
968
+ >>> from mindspore import Tensor, ops
969
+ >>> tile = ops.Tile()
970
+ >>> input = Tensor(np.array([[1, 2], [3, 4]]), mindspore.float32)
971
+ >>> dims = (2, 3)
972
+ >>> output = tile(input, dims)
973
+ >>> print(output)
974
+ [[1. 2. 1. 2. 1. 2.]
975
+ [3. 4. 3. 4. 3. 4.]
976
+ [1. 2. 1. 2. 1. 2.]
977
+ [3. 4. 3. 4. 3. 4.]]
978
+ >>> dims = (2, 3, 2)
979
+ >>> output = tile(input, dims)
980
+ >>> print(output)
981
+ [[[1. 2. 1. 2.]
982
+ [3. 4. 3. 4.]
983
+ [1. 2. 1. 2.]
984
+ [3. 4. 3. 4.]
985
+ [1. 2. 1. 2.]
986
+ [3. 4. 3. 4.]]
987
+ [[1. 2. 1. 2.]
988
+ [3. 4. 3. 4.]
989
+ [1. 2. 1. 2.]
990
+ [3. 4. 3. 4.]
991
+ [1. 2. 1. 2.]
992
+ [3. 4. 3. 4.]]]
993
+ """
994
+
995
+ @prim_attr_register
996
+ def __init__(self):
997
+ """Initialize."""
998
+
999
+ def __call__(self, input, dims):
1000
+ return _convert_stub(pyboost_tile(self, [input, dims]))
1001
+
1002
+ # pylint: disable=missing-docstring
1003
+ def check_elim(self, *args):
1004
+ base_tensor, dims = args
1005
+ if not isinstance(base_tensor, Tensor):
1006
+ raise TypeError(f"For '{self.name}', the type of 'input' must be Tensor, "
1007
+ f"but got {type(base_tensor).__name__}.")
1008
+ if not isinstance(dims, tuple):
1009
+ raise TypeError(f"For '{self.name}', the type of 'dims' must be tuple, "
1010
+ f"but got {type(dims).__name__}.")
1011
+
1012
+ if all(v == 1 for v in dims) and len(base_tensor.shape) >= len(dims):
1013
+ from mindspore.ops.auto_generate.gen_ops_def import Identity
1014
+ ret = Identity()(base_tensor)
1015
+ return (True, ret)
1016
+ return (False, None)
1017
+
1018
+
1019
+ def tile(input, dims):
1020
+ r"""
1021
+ Creates a new tensor by replicating `input` `dims` times. The i'th dimension of
1022
+ output tensor has `input.shape[i] * dims[i]` elements, and the values of `input`
1023
+ are replicated `dims[i]` times along the i'th dimension.
1024
+
1025
+ Args:
1026
+ input (Tensor): The tensor whose elements need to be repeated. Set the shape of input tensor as
1027
+ :math:`(x_1, x_2, ..., x_S)` .
1028
+
1029
+ dims (tuple[int]): The parameter that specifies the number of replications,
1030
+ the parameter type is tuple, and the data type is int, i.e., :math:`(y_1, y_2, ..., y_S)`.
1031
+ Only constant value is allowed.
1032
+
1033
+ Returns:
1034
+ Tensor, has the same data type as the `input`. Suppose the length of `dims` is `d`,
1035
+ the dimension of `input` is `input.dim`, and the shape of `input` is :math:`(x_1, x_2, ..., x_S)`.
1036
+
1037
+ - If `input.dim = d`, then the shape of their corresponding positions can be multiplied, and
1038
+ the shape of Outputs is :math:`(x_1*y_1, x_2*y_2, ..., x_S*y_S)`.
1039
+ - If `input.dim < d`, prepend 1 to the shape of `input` until their lengths are consistent.
1040
+ Such as set the shape of `input` as :math:`(1, ..., x_1, x_2, ..., x_S)`,
1041
+ then the shape of their corresponding positions can be multiplied, and the shape of Outputs is
1042
+ :math:`(1*y_1, ..., x_R*y_R, x_S*y_S)`.
1043
+ - If `input.dim > d`, prepend 1 to `dims` until their lengths are consistent. Such as set the
1044
+ `dims` as :math:`(1, ..., y_1, y_2, ..., y_S)`, then the shape of their corresponding positions
1045
+ can be multiplied, and the shape of Outputs is :math:`(x_1*1, ..., x_R*y_R, x_S*y_S)`.
1046
+
1047
+ Raises:
1048
+ TypeError: If `dims` is not a tuple or its elements are not all int.
1049
+ ValueError: If the elements of `dims` are not all greater than or equal to 0.
1050
+
1051
+ Supported Platforms:
1052
+ ``Ascend`` ``GPU`` ``CPU``
1053
+
1054
+ Examples:
1055
+ >>> import mindspore
1056
+ >>> import numpy as np
1057
+ >>> from mindspore import Tensor, ops
1058
+ >>> input = Tensor(np.array([[1, 2], [3, 4]]), mindspore.float32)
1059
+ >>> dims = (2, 3)
1060
+ >>> output = ops.tile(input, dims)
1061
+ >>> print(output)
1062
+ [[1. 2. 1. 2. 1. 2.]
1063
+ [3. 4. 3. 4. 3. 4.]
1064
+ [1. 2. 1. 2. 1. 2.]
1065
+ [3. 4. 3. 4. 3. 4.]]
1066
+ >>> dims = (2, 3, 2)
1067
+ >>> output = ops.tile(input, dims)
1068
+ >>> print(output)
1069
+ [[[1. 2. 1. 2.]
1070
+ [3. 4. 3. 4.]
1071
+ [1. 2. 1. 2.]
1072
+ [3. 4. 3. 4.]
1073
+ [1. 2. 1. 2.]
1074
+ [3. 4. 3. 4.]]
1075
+ [[1. 2. 1. 2.]
1076
+ [3. 4. 3. 4.]
1077
+ [1. 2. 1. 2.]
1078
+ [3. 4. 3. 4.]
1079
+ [1. 2. 1. 2.]
1080
+ [3. 4. 3. 4.]]]
1081
+ """
1082
+ tile_op = _get_cache_prim(Tile)()
1083
+ return tile_op(input, dims)
1084
+
1085
+
1086
+ def scalar_cast(input_x, input_y):
1087
+ r"""
1088
+ The interface is deprecated from version 2.3 and will be removed in a future version,
1089
+ please use `int(x)` or `float(x)` instead.
1090
+
1091
+ Casts the input scalar to another type.
1092
+
1093
+ Args:
1094
+ input_x (scalar): The input scalar.
1095
+ input_y (mindspore.dtype): The type to be cast. Only constant value is allowed.
1096
+ The value should only be mindspore.int64, mindspore.float64, or mindspore.bool\_.
1097
+
1098
+ Returns:
1099
+ Scalar, the type is the same as the python type corresponding to `input_y`.
1100
+
1101
+ Raises:
1102
+ ValueError: if input_y's value is invalid.
1103
+
1104
+ Supported Platforms:
1105
+ Deprecated
1106
+
1107
+ Examples:
1108
+ >>> import mindspore
1109
+ >>> from mindspore import ops
1110
+ >>> output = ops.scalar_cast(255.0, mindspore.int64)
1111
+ >>> print(output)
1112
+ 255
1113
+ """
1114
+ scalar_cast_op = _get_cache_prim(ScalarCast)()
1115
+ return scalar_cast_op(input_x, input_y)
1116
+
1117
+
1118
+ class Cast(Primitive):
1119
+ """
1120
+ Returns a tensor with the new specified data type.
1121
+
1122
+ Note:
1123
+ When converting complex numbers to boolean type, the imaginary part of the complex number is not
1124
+ taken into account. As long as the real part is non-zero, it returns True; otherwise, it returns False.
1125
+
1126
+ Inputs:
1127
+ - **input_x** (Union[Tensor, Number]) - The shape of tensor is :math:`(x_1, x_2, ..., x_R)`.
1128
+ The tensor to be cast.
1129
+ - **type** (dtype.Number) - The valid data type of the output tensor. Only constant value is allowed.
1130
+
1131
+ Outputs:
1132
+ Tensor, the shape of tensor is the same as `input_x`, :math:`(x_1, x_2, ..., x_R)`.
1133
+
1134
+ Raises:
1135
+ TypeError: If `input_x` is neither Tensor nor Number.
1136
+ TypeError: If `type` is not a Number.
1137
+
1138
+ Supported Platforms:
1139
+ ``Ascend`` ``GPU`` ``CPU``
1140
+
1141
+ Examples:
1142
+ >>> import mindspore
1143
+ >>> import numpy as np
1144
+ >>> from mindspore import Tensor, ops
1145
+ >>> input_np = np.random.randn(2, 3, 4, 5).astype(np.float32)
1146
+ >>> input_x = Tensor(input_np)
1147
+ >>> type_dst = mindspore.int32
1148
+ >>> cast = ops.Cast()
1149
+ >>> output = cast(input_x, type_dst)
1150
+ >>> print(output.dtype)
1151
+ Int32
1152
+ >>> print(output.shape)
1153
+ (2, 3, 4, 5)
1154
+ """
1155
+
1156
+ @prim_attr_register
1157
+ def __init__(self):
1158
+ """Initialize Cast"""
1159
+ self.init_prim_io_names(inputs=['x', 'dst_type'], outputs=['output'])
1160
+
1161
+ def check_elim(self, x, dtype):
1162
+ if isinstance(x, (Tensor, numbers.Number, Parameter)):
1163
+ if isinstance(x, Parameter):
1164
+ data = x.data
1165
+ if data.dtype == dtype:
1166
+ return (True, x)
1167
+ if isinstance(x, Tensor) and x.dtype == dtype:
1168
+ x = Tensor(x)
1169
+ x.set_cast_dtype()
1170
+ return (True, x)
1171
+ if isinstance(x, numbers.Number):
1172
+ return (True, Tensor(x, dtype=dtype))
1173
+ return (False, None)
1174
+
1175
+ def __call__(self, input_x, dtype):
1176
+ should_elim, output = self.check_elim(input_x, dtype)
1177
+ if should_elim:
1178
+ return output
1179
+ return _convert_stub(pyboost_cast(self, [input_x, dtype_to_type_id('Cast', 'dtype', dtype)]))
1180
+
1181
+ # Following is Python Infer Value.
1182
+ # A valid infer value function should be:
1183
+ #
1184
+ # 1. named as infer_value_for_OpName
1185
+ # 2. All inputs should pass without default value.
1186
+ # 3. If not const input is given, return None. (for now)
1187
+
1188
+
1189
+ def infer_value_for_Tile(input, dims):
1190
+ """Infer value for Tile op."""
1191
+ if input is None or dims is None or None in dims:
1192
+ return None
1193
+ return Tensor(np.tile(input.asnumpy(), dims))
1194
+
1195
+
1196
+ def infer_value_for_Concat(tensors, axis):
1197
+ """Infer value for Concat op."""
1198
+ if not tensors or None in tensors or axis is None:
1199
+ return None
1200
+
1201
+ tensor_to_concat = [x.asnumpy() if x.dtype != mstype.bfloat16 else x.float().asnumpy() for x in tensors]
1202
+ return Tensor(np.concatenate(tensor_to_concat, axis), dtype=tensors[0].dtype)
1203
+
1204
+
1205
+ def infer_value_for_ReduceSum(input_x, axis, keep_dims, skip_mode):
1206
+ """Infer value for ReduceSum op."""
1207
+ value = None
1208
+ if input_x is not None and axis is not None:
1209
+ value = input_x.asnumpy()
1210
+ if isinstance(axis, int):
1211
+ pass
1212
+ elif axis:
1213
+ axis = tuple(set(axis))
1214
+ elif axis in ((), []) and skip_mode:
1215
+ return input_x
1216
+ else:
1217
+ axis = tuple(range(len(value.shape)))
1218
+ value = np.sum(value, axis, keepdims=keep_dims)
1219
+ value = np.array(value)
1220
+ value = Tensor(value)
1221
+ return value
1222
+
1223
+
1224
+ def _infer_value_for_Reduce(input_x, axis, keep_dims, prim_name):
1225
+ """Infer value for Common Reduce op."""
1226
+ value = None
1227
+ if input_x is not None and axis is not None:
1228
+ prim_map = {
1229
+ 'ReduceMax': np.max,
1230
+ 'ReduceMin': np.min,
1231
+ 'ReduceProd': np.prod,
1232
+ 'ReduceMean': np.mean,
1233
+ 'ReduceAll': np.all,
1234
+ 'ReduceAny': np.any,
1235
+ }
1236
+ np_reduce_func = prim_map.get(prim_name, None)
1237
+
1238
+ if np_reduce_func is not None:
1239
+ value = input_x.asnumpy()
1240
+ if isinstance(axis, int):
1241
+ pass
1242
+ elif axis:
1243
+ axis = tuple(set(axis))
1244
+ else:
1245
+ axis = tuple(range(len(value.shape)))
1246
+ value = np_reduce_func(value, axis, keepdims=keep_dims)
1247
+ value = np.array(value)
1248
+ value = Tensor(value)
1249
+ return value
1250
+
1251
+
1252
+ def infer_value_for_Cast(x, dst_type_enum):
1253
+ """Infer value for Cast op."""
1254
+ if x is None:
1255
+ return None
1256
+ dst_type = typing.type_id_to_type(dst_type_enum)
1257
+ src_type = mstype.get_py_obj_dtype(x)
1258
+ validator.check_subclass("input_x", src_type, [mstype.tensor_type, mstype.number], "Cast")
1259
+ validator.check_subclass("type", dst_type, mstype.number, "Cast")
1260
+
1261
+ if isinstance(src_type, type(mstype.tensor_type)):
1262
+ src_type = src_type.element_type()
1263
+ if isinstance(dst_type, type(mstype.tensor_type)):
1264
+ dst_type = dst_type.element_type()
1265
+
1266
+ value = None
1267
+ np_dst_type = mstype.dtype_to_nptype(dst_type)
1268
+ if isinstance(x, (int, float)):
1269
+ value = Tensor(np.array(x).astype(np_dst_type), dtype=dst_type)
1270
+ else:
1271
+ if x.dtype == mstype.bfloat16:
1272
+ cpu_cast = Cast().set_device("CPU")
1273
+ x = cpu_cast(x, mstype.float32)
1274
+ value = Tensor_(x.asnumpy().astype(np_dst_type), dtype=dst_type)
1275
+ return value
1276
+
1277
+
1278
+ def infer_value_for_ReduceMax(input_x, axis, keep_dims):
1279
+ """Infer value for ReduceMax op."""
1280
+ return _infer_value_for_Reduce(input_x, axis, keep_dims, 'ReduceMax')
1281
+
1282
+
1283
+ def infer_value_for_ReduceMin(input_x, axis, keep_dims):
1284
+ """Infer value for ReduceMin op."""
1285
+ return _infer_value_for_Reduce(input_x, axis, keep_dims, 'ReduceMin')
1286
+
1287
+
1288
+ def infer_value_for_ReduceProd(input_x, axis, keep_dims):
1289
+ """Infer value for ReduceProd op."""
1290
+ return _infer_value_for_Reduce(input_x, axis, keep_dims, 'ReduceProd')
1291
+
1292
+
1293
+ def infer_value_for_ReduceMean(input_x, axis, keep_dims):
1294
+ """Infer value for ReduceMean op."""
1295
+ return _infer_value_for_Reduce(input_x, axis, keep_dims, 'ReduceMean')
1296
+
1297
+
1298
+ def infer_value_for_ReduceAll(input_x, axis, keep_dims):
1299
+ """Infer value for ReduceAll op."""
1300
+ return _infer_value_for_Reduce(input_x, axis, keep_dims, 'ReduceAll')
1301
+
1302
+
1303
+ def infer_value_for_ReduceAny(input_x, axis, keep_dims):
1304
+ """Infer value for ReduceAny op."""
1305
+ return _infer_value_for_Reduce(input_x, axis, keep_dims, 'ReduceAny')
1306
+
1307
+
1308
+ def infer_value_for_Diag(input_x):
1309
+ """Infer value for Diag op."""
1310
+ if input_x is None:
1311
+ return None
1312
+ # do constant-folding only when x rank is 1
1313
+ if len(input_x.shape) != 1:
1314
+ return None
1315
+ ret = np.diag(input_x.asnumpy())
1316
+ return Tensor(ret)
1317
+
1318
+
1319
+ def infer_value_for_BroadcastTo(x, shape):
1320
+ """Infer value for BroadcastTo op."""
1321
+ def none_in_tuple_or_list(x):
1322
+ return isinstance(x, (tuple, list)) and None in x
1323
+ if shape is None or none_in_tuple_or_list(shape) or x is None:
1324
+ return None
1325
+
1326
+ if isinstance(shape, (Tensor, Tensor_)):
1327
+ validator.check_tensor_dtype_valid("shape", mstype.TensorType(shape.dtype),
1328
+ [mstype.int32, mstype.int64], "BroadcastTo")
1329
+ shape = shape.asnumpy().tolist()
1330
+ else:
1331
+ validator.check_value_type("shape", shape, [tuple], "BroadcastTo")
1332
+ shape = list(shape)
1333
+
1334
+ np_data = np.broadcast_to(x.asnumpy(), shape)
1335
+ if 0 in shape:
1336
+ init_func = Zero()
1337
+ init_func.__enable_zero_dim__ = True
1338
+ out = Tensor(shape=shape, dtype=x.dtype, init=init_func)
1339
+ return out
1340
+ return Tensor(np_data)
1341
+
1342
+
1343
+ def infer_value_for_Reshape(x, shape):
1344
+ """Infer value for Reshape op."""
1345
+ def none_in_tuple_or_list(x):
1346
+ return isinstance(x, (tuple, list)) and None in x
1347
+ # for shape is not constant
1348
+ if shape is None or none_in_tuple_or_list(shape) or x is None:
1349
+ return None
1350
+
1351
+ if isinstance(shape, (Tensor, Tensor_)):
1352
+ validator.check_tensor_dtype_valid("shape", mstype.TensorType(shape.dtype),
1353
+ [mstype.int32, mstype.int64], "Reshape")
1354
+ shape = shape.asnumpy().tolist()
1355
+ else:
1356
+ validator.check_value_type("shape", shape, [tuple], "Reshape")
1357
+ shape = list(shape)
1358
+
1359
+ neg_index = -1
1360
+ dim_prod = 1
1361
+ for i, shp_i in enumerate(shape):
1362
+ validator.check_value_type("shape[%d]" % i, shp_i, [int], "Reshape")
1363
+ if shp_i == -1:
1364
+ if neg_index != -1:
1365
+ raise ValueError(f"For 'Reshape', there can be at most one '-1' in 'input_shape', "
1366
+ f"but got {shape}.")
1367
+ neg_index = i
1368
+ else:
1369
+ dim_prod *= shp_i
1370
+ out = None
1371
+ if not is_shape_unknown(x.shape):
1372
+ x_shp = x.shape
1373
+ if dim_prod < 0:
1374
+ raise ValueError(f"For 'Reshape', the shape of 'input_x' is {x_shp}, "
1375
+ f"the value of 'input_shape' is {shape}. "
1376
+ f"The product of 'input_shape' should > 0, but got {dim_prod}.")
1377
+ arr_prod = np.prod(x_shp)
1378
+ if neg_index != -1:
1379
+ shape[neg_index] = int(arr_prod // dim_prod)
1380
+ dim_prod *= shape[neg_index]
1381
+ if dim_prod != arr_prod:
1382
+ raise ValueError(f"For 'Reshape', the product of the 'input_x' shape "
1383
+ f"should be equal to product of 'input_shape', but got product of the"
1384
+ f" shape of 'input_x': {arr_prod}, product of 'input_shape': {dim_prod}.")
1385
+ if 0 in shape:
1386
+ init_func = Zero()
1387
+ init_func.__enable_zero_dim__ = True
1388
+ out = Tensor(shape=shape, dtype=x.dtype, init=init_func)
1389
+ else:
1390
+ out = Tensor(x.asnumpy().reshape(shape))
1391
+ return out