mindspore 2.0.0rc1__cp38-cp38-manylinux1_x86_64.whl → 2.2.0__cp38-cp38-manylinux1_x86_64.whl

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

Potentially problematic release.


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

Files changed (884) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/Third_Party_Open_Source_Software_Notice +2 -2
  3. mindspore/__init__.py +5 -2
  4. mindspore/_akg/akg/build_module.py +5 -6
  5. mindspore/_akg/akg/composite/build_module.py +49 -16
  6. mindspore/_akg/akg/composite/split_stitch.py +10 -11
  7. mindspore/_akg/akg/config/repository.json +195 -0
  8. mindspore/_akg/akg/global_configs.py +5 -1
  9. mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
  10. mindspore/_akg/akg/tvm/api.py +4 -3
  11. mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
  12. mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
  13. mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
  14. mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
  15. mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
  16. mindspore/_akg/akg/tvm/build_module.py +16 -1
  17. mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
  18. mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
  19. mindspore/_akg/akg/tvm/ir_builder.py +1 -1
  20. mindspore/_akg/akg/tvm/module.py +1 -2
  21. mindspore/_akg/akg/tvm/stmt.py +2 -2
  22. mindspore/_akg/akg/utils/composite_op_helper.py +9 -10
  23. mindspore/_akg/akg/utils/kernel_exec.py +58 -260
  24. mindspore/_akg/akg/utils/op_dsl.py +17 -1
  25. mindspore/_akg/akg/utils/result_analysis.py +4 -24
  26. mindspore/_akg/akg/utils/tbe_codegen_utils.py +198 -0
  27. mindspore/_c_dataengine.cpython-38-x86_64-linux-gnu.so +0 -0
  28. mindspore/_c_expression.cpython-38-x86_64-linux-gnu.so +0 -0
  29. mindspore/_c_mindrecord.cpython-38-x86_64-linux-gnu.so +0 -0
  30. mindspore/_check_jit_forbidden_api.py +5 -1
  31. mindspore/_checkparam.py +79 -62
  32. mindspore/_extends/graph_kernel/__init__.py +0 -1
  33. mindspore/_extends/graph_kernel/model/graph_split.py +2 -0
  34. mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
  35. mindspore/_extends/graph_kernel/splitter.py +1 -9
  36. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +128 -21
  37. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +2 -2
  38. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
  39. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +18 -13
  40. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +13 -9
  41. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
  42. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
  43. mindspore/_extends/parse/__init__.py +19 -17
  44. mindspore/_extends/parse/namespace.py +7 -36
  45. mindspore/_extends/parse/parser.py +375 -189
  46. mindspore/_extends/parse/resources.py +36 -41
  47. mindspore/_extends/parse/standard_method.py +350 -245
  48. mindspore/_extends/parse/trope.py +2 -12
  49. mindspore/_extends/remote/kernel_build_server.py +24 -7
  50. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  51. mindspore/_install_custom.py +43 -0
  52. mindspore/_mindspore_offline_debug.cpython-38-x86_64-linux-gnu.so +0 -0
  53. mindspore/amp.py +85 -19
  54. mindspore/bin/cache_admin +0 -0
  55. mindspore/bin/cache_server +0 -0
  56. mindspore/boost/base.py +2 -2
  57. mindspore/boost/boost.py +27 -32
  58. mindspore/boost/boost_cell_wrapper.py +37 -13
  59. mindspore/boost/grad_accumulation.py +1 -1
  60. mindspore/boost/grad_freeze.py +34 -6
  61. mindspore/boost/group_loss_scale_manager.py +15 -14
  62. mindspore/boost/less_batch_normalization.py +28 -3
  63. mindspore/common/__init__.py +15 -11
  64. mindspore/common/_auto_dynamic.py +68 -0
  65. mindspore/common/_jit_fallback_utils.py +111 -0
  66. mindspore/common/_register_for_adapter.py +17 -5
  67. mindspore/common/_register_for_tensor.py +2 -2
  68. mindspore/common/_stub_tensor.py +18 -15
  69. mindspore/common/_utils.py +31 -7
  70. mindspore/common/api.py +269 -101
  71. mindspore/common/auto_dynamic_shape.py +498 -0
  72. mindspore/common/dtype.py +61 -21
  73. mindspore/common/dump.py +9 -7
  74. mindspore/common/initializer.py +106 -76
  75. mindspore/common/jit_config.py +35 -14
  76. mindspore/common/lazy_inline.py +187 -0
  77. mindspore/common/mindir_util.py +101 -0
  78. mindspore/common/mutable.py +10 -13
  79. mindspore/common/parameter.py +246 -55
  80. mindspore/common/seed.py +13 -7
  81. mindspore/common/sparse_tensor.py +29 -33
  82. mindspore/common/tensor.py +907 -251
  83. mindspore/communication/__init__.py +7 -4
  84. mindspore/communication/_comm_helper.py +84 -4
  85. mindspore/communication/management.py +160 -88
  86. mindspore/config/op_info.config +99 -75
  87. mindspore/config/super_bar_config.json +36 -4
  88. mindspore/context.py +526 -219
  89. mindspore/dataset/__init__.py +9 -46
  90. mindspore/dataset/audio/__init__.py +4 -19
  91. mindspore/dataset/audio/transforms.py +545 -233
  92. mindspore/dataset/audio/utils.py +21 -18
  93. mindspore/dataset/callback/ds_callback.py +42 -13
  94. mindspore/dataset/core/config.py +158 -100
  95. mindspore/dataset/core/validator_helpers.py +1 -63
  96. mindspore/dataset/debug/debug_hook.py +45 -13
  97. mindspore/dataset/debug/pre_defined_hook.py +5 -5
  98. mindspore/dataset/engine/__init__.py +0 -5
  99. mindspore/dataset/engine/cache_client.py +38 -15
  100. mindspore/dataset/engine/datasets.py +615 -278
  101. mindspore/dataset/engine/datasets_audio.py +154 -283
  102. mindspore/dataset/engine/datasets_standard_format.py +104 -116
  103. mindspore/dataset/engine/datasets_text.py +443 -326
  104. mindspore/dataset/engine/datasets_user_defined.py +251 -164
  105. mindspore/dataset/engine/datasets_vision.py +839 -1443
  106. mindspore/dataset/engine/iterators.py +11 -4
  107. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +7 -3
  108. mindspore/dataset/engine/obs/util.py +3 -0
  109. mindspore/dataset/engine/offload.py +6 -6
  110. mindspore/dataset/engine/queue.py +15 -14
  111. mindspore/dataset/engine/samplers.py +39 -23
  112. mindspore/dataset/engine/serializer_deserializer.py +22 -6
  113. mindspore/dataset/engine/validators.py +21 -331
  114. mindspore/dataset/text/__init__.py +5 -33
  115. mindspore/dataset/text/transforms.py +334 -165
  116. mindspore/dataset/text/utils.py +215 -145
  117. mindspore/dataset/transforms/__init__.py +1 -1
  118. mindspore/dataset/transforms/c_transforms.py +3 -2
  119. mindspore/dataset/transforms/py_transforms_util.py +40 -12
  120. mindspore/dataset/transforms/transforms.py +174 -71
  121. mindspore/dataset/utils/browse_dataset.py +25 -17
  122. mindspore/dataset/utils/line_reader.py +24 -21
  123. mindspore/dataset/vision/__init__.py +5 -26
  124. mindspore/dataset/vision/c_transforms.py +177 -165
  125. mindspore/dataset/vision/py_transforms.py +114 -119
  126. mindspore/dataset/vision/py_transforms_util.py +54 -51
  127. mindspore/dataset/vision/transforms.py +1127 -381
  128. mindspore/dataset/vision/utils.py +54 -38
  129. mindspore/dataset/vision/validators.py +12 -2
  130. mindspore/experimental/map_parameter.py +38 -4
  131. mindspore/{dataset/datapreprocess → experimental/optim}/__init__.py +14 -4
  132. mindspore/experimental/optim/adam.py +192 -0
  133. mindspore/experimental/optim/adamw.py +181 -0
  134. mindspore/experimental/optim/lr_scheduler.py +1427 -0
  135. mindspore/experimental/optim/optimizer.py +252 -0
  136. mindspore/experimental/optim/sgd.py +147 -0
  137. mindspore/gen_ops.py +273 -0
  138. mindspore/include/OWNERS +1 -2
  139. mindspore/include/api/context.h +21 -1
  140. mindspore/include/api/data_type.h +2 -1
  141. mindspore/include/api/graph.h +0 -15
  142. mindspore/include/api/kernel.h +2 -0
  143. mindspore/include/api/kernel_api.h +37 -12
  144. mindspore/include/api/model.h +29 -42
  145. mindspore/include/api/model_group.h +14 -3
  146. mindspore/include/api/model_parallel_runner.h +18 -2
  147. mindspore/include/api/serialization.h +26 -0
  148. mindspore/include/api/status.h +1 -0
  149. mindspore/include/api/types.h +38 -4
  150. mindspore/include/c_api/ms/abstract.h +67 -0
  151. mindspore/include/c_api/ms/attribute.h +197 -0
  152. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  153. mindspore/include/c_api/ms/base/macros.h +32 -0
  154. mindspore/include/c_api/ms/base/status.h +33 -0
  155. mindspore/include/c_api/ms/base/types.h +282 -0
  156. mindspore/include/c_api/ms/context.h +102 -0
  157. mindspore/include/c_api/ms/graph.h +160 -0
  158. mindspore/include/c_api/ms/node.h +606 -0
  159. mindspore/include/c_api/ms/tensor.h +161 -0
  160. mindspore/include/c_api/ms/value.h +84 -0
  161. mindspore/include/c_api/status_c.h +3 -0
  162. mindspore/include/dataset/constants.h +6 -12
  163. mindspore/include/dataset/execute.h +23 -13
  164. mindspore/include/dataset/text.h +26 -26
  165. mindspore/include/dataset/transforms.h +25 -31
  166. mindspore/include/dataset/vision.h +60 -60
  167. mindspore/include/dataset/vision_ascend.h +5 -6
  168. mindspore/include/dataset/vision_lite.h +17 -17
  169. mindspore/include/mindapi/base/format.h +0 -1
  170. mindspore/include/mindapi/base/type_id.h +2 -1
  171. mindspore/include/mindapi/base/types.h +5 -1
  172. mindspore/lib/libdnnl.so.2 +0 -0
  173. mindspore/lib/libjemalloc.so.2 +0 -0
  174. mindspore/lib/libmindspore.so +0 -0
  175. mindspore/lib/libmindspore_backend.so +0 -0
  176. mindspore/lib/libmindspore_common.so +0 -0
  177. mindspore/lib/libmindspore_core.so +0 -0
  178. mindspore/lib/libmindspore_glog.so.0 +0 -0
  179. mindspore/lib/libmindspore_gpr.so.15 +0 -0
  180. mindspore/lib/libmindspore_grpc++.so.1 +0 -0
  181. mindspore/lib/libmindspore_grpc.so.15 +0 -0
  182. mindspore/lib/libmindspore_shared_lib.so +0 -0
  183. mindspore/lib/libmpi_adapter.so +0 -0
  184. mindspore/lib/libnnacl.so +0 -0
  185. mindspore/lib/libopencv_core.so.4.5 +0 -0
  186. mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
  187. mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
  188. mindspore/lib/libps_cache.so +0 -0
  189. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
  190. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
  191. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +9000 -0
  192. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
  193. mindspore/lib/plugin/ascend/libakg.so +0 -0
  194. mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
  195. mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
  196. mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
  197. mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
  198. mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
  199. mindspore/lib/plugin/cpu/libakg.so +0 -0
  200. mindspore/lib/plugin/gpu/libcuda_ops.so.10 +0 -0
  201. mindspore/lib/plugin/gpu/libcuda_ops.so.11 +0 -0
  202. mindspore/lib/plugin/gpu10.1/libakg.so +0 -0
  203. mindspore/lib/plugin/gpu10.1/libnccl.so.2 +0 -0
  204. mindspore/lib/plugin/gpu10.1/libnvidia_collective.so +0 -0
  205. mindspore/lib/plugin/gpu11.1/libakg.so +0 -0
  206. mindspore/lib/plugin/gpu11.1/libnccl.so.2 +0 -0
  207. mindspore/lib/plugin/gpu11.1/libnvidia_collective.so +0 -0
  208. mindspore/lib/plugin/gpu11.6/libakg.so +0 -0
  209. mindspore/lib/plugin/gpu11.6/libnccl.so.2 +0 -0
  210. mindspore/lib/plugin/gpu11.6/libnvidia_collective.so +0 -0
  211. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  212. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  213. mindspore/lib/plugin/libmindspore_gpu.so.10.1 +0 -0
  214. mindspore/lib/plugin/libmindspore_gpu.so.11.1 +0 -0
  215. mindspore/lib/plugin/libmindspore_gpu.so.11.6 +0 -0
  216. mindspore/log.py +9 -6
  217. mindspore/mindrecord/filereader.py +33 -4
  218. mindspore/mindrecord/filewriter.py +70 -35
  219. mindspore/mindrecord/mindpage.py +40 -34
  220. mindspore/mindrecord/shardreader.py +1 -1
  221. mindspore/mindrecord/shardsegment.py +1 -1
  222. mindspore/mindrecord/tools/cifar100_to_mr.py +25 -18
  223. mindspore/mindrecord/tools/cifar10_to_mr.py +25 -18
  224. mindspore/mindrecord/tools/csv_to_mr.py +29 -13
  225. mindspore/mindrecord/tools/imagenet_to_mr.py +24 -10
  226. mindspore/mindrecord/tools/mnist_to_mr.py +24 -11
  227. mindspore/mindrecord/tools/tfrecord_to_mr.py +31 -26
  228. mindspore/nn/cell.py +463 -169
  229. mindspore/nn/dynamic_lr.py +47 -43
  230. mindspore/nn/layer/activation.py +225 -82
  231. mindspore/nn/layer/basic.py +121 -79
  232. mindspore/nn/layer/channel_shuffle.py +21 -21
  233. mindspore/nn/layer/combined.py +33 -26
  234. mindspore/nn/layer/container.py +277 -22
  235. mindspore/nn/layer/conv.py +441 -304
  236. mindspore/nn/layer/dense.py +19 -13
  237. mindspore/nn/layer/embedding.py +62 -49
  238. mindspore/nn/layer/flash_attention.py +264 -0
  239. mindspore/nn/layer/image.py +50 -39
  240. mindspore/nn/layer/math.py +62 -51
  241. mindspore/nn/layer/normalization.py +219 -167
  242. mindspore/nn/layer/padding.py +58 -70
  243. mindspore/nn/layer/pooling.py +334 -287
  244. mindspore/nn/layer/rnn_cells.py +53 -38
  245. mindspore/nn/layer/rnns.py +59 -56
  246. mindspore/nn/layer/thor_layer.py +52 -44
  247. mindspore/nn/layer/timedistributed.py +6 -4
  248. mindspore/nn/layer/transformer.py +284 -164
  249. mindspore/nn/learning_rate_schedule.py +34 -25
  250. mindspore/nn/loss/__init__.py +3 -2
  251. mindspore/nn/loss/loss.py +554 -311
  252. mindspore/nn/optim/ada_grad.py +12 -9
  253. mindspore/nn/optim/adadelta.py +14 -11
  254. mindspore/nn/optim/adafactor.py +19 -16
  255. mindspore/nn/optim/adam.py +62 -47
  256. mindspore/nn/optim/adamax.py +13 -10
  257. mindspore/nn/optim/adasum.py +12 -8
  258. mindspore/nn/optim/asgd.py +10 -9
  259. mindspore/nn/optim/ftrl.py +20 -17
  260. mindspore/nn/optim/lamb.py +16 -12
  261. mindspore/nn/optim/lars.py +8 -6
  262. mindspore/nn/optim/lazyadam.py +25 -20
  263. mindspore/nn/optim/momentum.py +10 -7
  264. mindspore/nn/optim/optimizer.py +61 -9
  265. mindspore/nn/optim/proximal_ada_grad.py +14 -13
  266. mindspore/nn/optim/rmsprop.py +17 -13
  267. mindspore/nn/optim/rprop.py +30 -17
  268. mindspore/nn/optim/sgd.py +40 -23
  269. mindspore/nn/optim/thor.py +24 -26
  270. mindspore/nn/probability/bijector/bijector.py +11 -11
  271. mindspore/nn/probability/bijector/exp.py +1 -1
  272. mindspore/nn/probability/bijector/gumbel_cdf.py +3 -3
  273. mindspore/nn/probability/bijector/invert.py +1 -1
  274. mindspore/nn/probability/bijector/power_transform.py +29 -29
  275. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  276. mindspore/nn/probability/bijector/softplus.py +5 -5
  277. mindspore/nn/probability/bnn_layers/bnn_cell_wrapper.py +4 -2
  278. mindspore/nn/probability/bnn_layers/conv_variational.py +13 -13
  279. mindspore/nn/probability/bnn_layers/dense_variational.py +12 -12
  280. mindspore/nn/probability/bnn_layers/layer_distribution.py +9 -8
  281. mindspore/nn/probability/distribution/_utils/custom_ops.py +19 -3
  282. mindspore/nn/probability/distribution/_utils/utils.py +1 -1
  283. mindspore/nn/probability/distribution/bernoulli.py +9 -9
  284. mindspore/nn/probability/distribution/beta.py +8 -8
  285. mindspore/nn/probability/distribution/categorical.py +23 -15
  286. mindspore/nn/probability/distribution/cauchy.py +5 -6
  287. mindspore/nn/probability/distribution/distribution.py +3 -3
  288. mindspore/nn/probability/distribution/exponential.py +4 -4
  289. mindspore/nn/probability/distribution/gamma.py +10 -10
  290. mindspore/nn/probability/distribution/geometric.py +8 -8
  291. mindspore/nn/probability/distribution/gumbel.py +8 -9
  292. mindspore/nn/probability/distribution/half_normal.py +5 -5
  293. mindspore/nn/probability/distribution/laplace.py +5 -5
  294. mindspore/nn/probability/distribution/log_normal.py +12 -11
  295. mindspore/nn/probability/distribution/logistic.py +8 -8
  296. mindspore/nn/probability/distribution/normal.py +6 -5
  297. mindspore/nn/probability/distribution/poisson.py +10 -11
  298. mindspore/nn/probability/distribution/student_t.py +8 -9
  299. mindspore/nn/probability/distribution/transformed_distribution.py +5 -5
  300. mindspore/nn/probability/distribution/uniform.py +11 -11
  301. mindspore/nn/reinforcement/tensor_array.py +2 -2
  302. mindspore/nn/sparse/sparse.py +9 -9
  303. mindspore/nn/wrap/cell_wrapper.py +188 -63
  304. mindspore/nn/wrap/grad_reducer.py +21 -12
  305. mindspore/nn/wrap/loss_scale.py +136 -49
  306. mindspore/numpy/__init__.py +4 -4
  307. mindspore/numpy/array_creations.py +55 -56
  308. mindspore/numpy/array_ops.py +134 -35
  309. mindspore/numpy/logic_ops.py +66 -20
  310. mindspore/numpy/math_ops.py +142 -139
  311. mindspore/numpy/utils_const.py +2 -2
  312. mindspore/offline_debug/convert_async.py +2 -2
  313. mindspore/ops/_grad_experimental/__init__.py +7 -5
  314. mindspore/ops/_grad_experimental/grad_array_ops.py +231 -348
  315. mindspore/ops/{_grad → _grad_experimental}/grad_base.py +1 -33
  316. mindspore/ops/{_grad → _grad_experimental}/grad_comm_ops.py +25 -13
  317. mindspore/ops/{_grad/__init__.py → _grad_experimental/grad_debug_ops.py} +15 -7
  318. mindspore/ops/{_grad → _grad_experimental}/grad_implementations.py +17 -11
  319. mindspore/ops/_grad_experimental/grad_inner_ops.py +33 -52
  320. mindspore/ops/_grad_experimental/grad_math_ops.py +151 -1224
  321. mindspore/ops/_grad_experimental/grad_nn_ops.py +141 -414
  322. mindspore/ops/{_grad → _grad_experimental}/grad_quant_ops.py +10 -6
  323. mindspore/ops/_grad_experimental/grad_sparse.py +317 -2
  324. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -13
  325. mindspore/ops/{_grad → _grad_experimental}/taylor_rule.py +1 -1
  326. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  327. mindspore/ops/_op_impl/_custom_op/flash_attention/__init__.py +0 -0
  328. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +406 -0
  329. mindspore/{_extends/graph_kernel/expanders/complex/__init__.py → ops/_op_impl/_custom_op/flash_attention/constants.py} +27 -8
  330. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +467 -0
  331. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +563 -0
  332. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +193 -0
  333. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +435 -0
  334. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/__init__.py +0 -0
  335. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/sparse_tiling.py +45 -0
  336. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/strategy.py +67 -0
  337. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +62 -0
  338. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +2 -2
  339. mindspore/ops/_op_impl/aicpu/__init__.py +41 -1
  340. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d.py +37 -0
  341. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  342. mindspore/ops/_op_impl/aicpu/cast.py +52 -0
  343. mindspore/ops/_op_impl/aicpu/coalesce.py +2 -0
  344. mindspore/ops/_op_impl/aicpu/col2im.py +3 -1
  345. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  346. mindspore/ops/_op_impl/aicpu/dropout_genmask.py +6 -0
  347. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  348. mindspore/ops/_op_impl/aicpu/eye.py +4 -4
  349. mindspore/ops/_op_impl/aicpu/fft_with_size.py +6 -0
  350. mindspore/ops/_op_impl/aicpu/fill_diagonal.py +5 -0
  351. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  352. mindspore/ops/_op_impl/aicpu/im2col.py +3 -5
  353. mindspore/ops/_op_impl/aicpu/lgamma.py +1 -0
  354. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  355. mindspore/ops/_op_impl/aicpu/lu.py +39 -0
  356. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  357. mindspore/ops/_op_impl/aicpu/masked_scatter.py +1 -0
  358. mindspore/ops/_op_impl/aicpu/masked_select_grad.py +3 -0
  359. mindspore/ops/_op_impl/aicpu/matrix_band_part.py +59 -0
  360. mindspore/ops/_op_impl/aicpu/matrix_power.py +6 -1
  361. mindspore/ops/_op_impl/aicpu/median.py +1 -0
  362. mindspore/ops/_op_impl/aicpu/multinomial.py +9 -9
  363. mindspore/ops/_op_impl/aicpu/not_equal.py +0 -5
  364. mindspore/ops/_op_impl/aicpu/pad_v3.py +3 -1
  365. mindspore/ops/_op_impl/aicpu/pad_v3_grad.py +2 -0
  366. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  367. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  368. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  369. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  370. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  371. mindspore/ops/_op_impl/aicpu/resize_bilinear_grad.py +0 -1
  372. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2.py +0 -6
  373. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2_grad.py +0 -7
  374. mindspore/ops/_op_impl/aicpu/scatter_nd.py +2 -0
  375. mindspore/ops/_op_impl/aicpu/sequence_concat.py +40 -0
  376. mindspore/ops/_op_impl/aicpu/sequence_stack.py +40 -0
  377. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  378. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  379. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -4
  380. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -4
  381. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  382. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  383. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  384. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  385. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  386. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d.py +14 -6
  387. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d_grad.py +22 -8
  388. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d.py +11 -6
  389. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d_grad.py +21 -10
  390. mindspore/ops/_op_impl/tbe/__init__.py +6 -4
  391. mindspore/ops/_op_impl/tbe/atomic_addr_clean.py +1 -1
  392. mindspore/ops/_op_impl/tbe/avg_pool.py +2 -2
  393. mindspore/ops/_op_impl/tbe/avg_pool_3d.py +3 -3
  394. mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +4 -4
  395. mindspore/ops/_op_impl/tbe/avg_pool_ds.py +2 -2
  396. mindspore/ops/_op_impl/tbe/avg_pool_grad.py +3 -3
  397. mindspore/ops/_op_impl/tbe/avg_pool_grad_vm.py +3 -3
  398. mindspore/ops/_op_impl/tbe/batch_to_space.py +1 -1
  399. mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +2 -2
  400. mindspore/ops/_op_impl/tbe/bn_infer.py +2 -2
  401. mindspore/ops/_op_impl/tbe/bn_infer_ds.py +3 -2
  402. mindspore/ops/_op_impl/tbe/broadcast_to.py +1 -1
  403. mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +3 -3
  404. mindspore/ops/_op_impl/tbe/expand_dims.py +1 -1
  405. mindspore/ops/_op_impl/tbe/gather_v2.py +56 -0
  406. mindspore/ops/_op_impl/tbe/im2col.py +4 -4
  407. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  408. mindspore/ops/_op_impl/tbe/mem_set.py +38 -0
  409. mindspore/ops/_op_impl/tbe/scatter_nd_add.py +3 -0
  410. mindspore/ops/_op_impl/tbe/scatter_nd_d.py +1 -1
  411. mindspore/ops/_op_impl/tbe/space_to_batch.py +1 -1
  412. mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +2 -2
  413. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  414. mindspore/ops/_primitive_cache.py +1 -1
  415. mindspore/ops/_tracefunc.py +241 -0
  416. mindspore/ops/_utils/utils.py +10 -2
  417. mindspore/ops/_vmap/vmap_array_ops.py +5 -3
  418. mindspore/ops/_vmap/vmap_base.py +5 -4
  419. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  420. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  421. mindspore/ops/_vmap/vmap_grad_nn_ops.py +11 -6
  422. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  423. mindspore/ops/_vmap/vmap_nn_ops.py +135 -11
  424. mindspore/ops/arg_dtype_cast.py +54 -0
  425. mindspore/ops/composite/__init__.py +7 -5
  426. mindspore/ops/composite/base.py +78 -34
  427. mindspore/ops/composite/math_ops.py +5 -695
  428. mindspore/ops/composite/multitype_ops/_compile_utils.py +403 -97
  429. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +28 -22
  430. mindspore/ops/composite/multitype_ops/add_impl.py +69 -7
  431. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  432. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  433. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -0
  434. mindspore/ops/composite/multitype_ops/div_impl.py +1 -0
  435. mindspore/ops/composite/multitype_ops/floordiv_impl.py +1 -0
  436. mindspore/ops/composite/multitype_ops/getitem_impl.py +48 -10
  437. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +2 -0
  438. mindspore/ops/composite/multitype_ops/greater_impl.py +2 -0
  439. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -0
  440. mindspore/ops/composite/multitype_ops/less_equal_impl.py +2 -0
  441. mindspore/ops/composite/multitype_ops/less_impl.py +2 -0
  442. mindspore/ops/composite/multitype_ops/logic_not_impl.py +2 -2
  443. mindspore/ops/composite/multitype_ops/mod_impl.py +1 -0
  444. mindspore/ops/composite/multitype_ops/mul_impl.py +1 -0
  445. mindspore/ops/composite/multitype_ops/negative_impl.py +1 -0
  446. mindspore/ops/composite/multitype_ops/not_in_impl.py +1 -0
  447. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  448. mindspore/ops/composite/multitype_ops/pow_impl.py +1 -0
  449. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -0
  450. mindspore/ops/composite/multitype_ops/setitem_impl.py +10 -7
  451. mindspore/ops/composite/multitype_ops/sub_impl.py +1 -0
  452. mindspore/ops/composite/multitype_ops/uadd_impl.py +2 -0
  453. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  454. mindspore/ops/deprecated.py +304 -0
  455. mindspore/ops/function/__init__.py +41 -4
  456. mindspore/ops/function/array_func.py +1108 -467
  457. mindspore/ops/function/clip_func.py +94 -27
  458. mindspore/ops/function/debug_func.py +3 -1
  459. mindspore/ops/function/grad/grad_func.py +82 -73
  460. mindspore/ops/function/image_func.py +28 -12
  461. mindspore/ops/function/linalg_func.py +135 -39
  462. mindspore/ops/function/math_func.py +3779 -894
  463. mindspore/ops/function/nn_func.py +1584 -657
  464. mindspore/ops/function/parameter_func.py +13 -3
  465. mindspore/ops/function/random_func.py +247 -153
  466. mindspore/ops/function/sparse_func.py +14 -11
  467. mindspore/ops/function/sparse_unary_func.py +173 -47
  468. mindspore/ops/function/spectral_func.py +8 -4
  469. mindspore/ops/function/vmap_func.py +8 -7
  470. mindspore/ops/functional.py +47 -16
  471. mindspore/ops/op_info_register.py +346 -86
  472. mindspore/ops/operations/__init__.py +38 -22
  473. mindspore/ops/operations/_grad_ops.py +145 -149
  474. mindspore/ops/operations/_inner_ops.py +298 -56
  475. mindspore/ops/operations/_ms_kernel.py +3 -3
  476. mindspore/ops/operations/_quant_ops.py +24 -28
  477. mindspore/ops/operations/_rl_inner_ops.py +9 -7
  478. mindspore/ops/operations/_scalar_ops.py +115 -0
  479. mindspore/ops/operations/_sequence_ops.py +148 -10
  480. mindspore/ops/operations/_tensor_array.py +1 -1
  481. mindspore/ops/operations/_thor_ops.py +2 -2
  482. mindspore/ops/operations/array_ops.py +1239 -561
  483. mindspore/ops/operations/comm_ops.py +166 -90
  484. mindspore/ops/operations/control_ops.py +3 -3
  485. mindspore/ops/operations/custom_ops.py +124 -102
  486. mindspore/ops/operations/debug_ops.py +24 -11
  487. mindspore/ops/operations/image_ops.py +86 -71
  488. mindspore/ops/operations/inner_ops.py +18 -13
  489. mindspore/ops/operations/linalg_ops.py +30 -11
  490. mindspore/ops/operations/math_ops.py +1730 -435
  491. mindspore/ops/operations/nn_ops.py +1953 -943
  492. mindspore/ops/operations/other_ops.py +65 -43
  493. mindspore/ops/operations/random_ops.py +258 -98
  494. mindspore/ops/operations/rl_ops.py +4 -36
  495. mindspore/ops/operations/sparse_ops.py +38 -33
  496. mindspore/ops/operations/spectral_ops.py +8 -4
  497. mindspore/ops/primitive.py +66 -44
  498. mindspore/ops/signature.py +5 -5
  499. mindspore/parallel/_auto_parallel_context.py +80 -19
  500. mindspore/parallel/_cost_model_context.py +42 -0
  501. mindspore/parallel/_offload_context.py +162 -72
  502. mindspore/parallel/_parallel_serialization.py +2 -2
  503. mindspore/parallel/_ps_context.py +16 -4
  504. mindspore/parallel/_recovery_context.py +2 -1
  505. mindspore/parallel/_tensor.py +15 -13
  506. mindspore/parallel/_transformer/layers.py +8 -6
  507. mindspore/parallel/_transformer/loss.py +1 -0
  508. mindspore/parallel/_transformer/moe.py +7 -7
  509. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  510. mindspore/parallel/_transformer/transformer.py +34 -14
  511. mindspore/parallel/_utils.py +36 -14
  512. mindspore/parallel/algo_parameter_config.py +114 -20
  513. mindspore/parallel/checkpoint_transform.py +16 -18
  514. mindspore/parallel/shard.py +16 -13
  515. mindspore/profiler/__init__.py +1 -1
  516. mindspore/profiler/common/struct_type.py +3 -3
  517. mindspore/profiler/common/util.py +3 -2
  518. mindspore/profiler/envprofiling.py +11 -4
  519. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  520. mindspore/profiler/parser/ascend_flops_generator.py +94 -0
  521. mindspore/profiler/parser/ascend_fpbp_generator.py +76 -0
  522. mindspore/profiler/parser/ascend_hccl_generator.py +288 -0
  523. mindspore/profiler/parser/ascend_msprof_exporter.py +213 -0
  524. mindspore/profiler/parser/ascend_msprof_generator.py +199 -0
  525. mindspore/profiler/parser/ascend_op_generator.py +276 -0
  526. mindspore/profiler/parser/ascend_steptrace_generator.py +94 -0
  527. mindspore/profiler/parser/ascend_timeline_generator.py +110 -54
  528. mindspore/profiler/parser/base_timeline_generator.py +11 -7
  529. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +45 -46
  530. mindspore/profiler/parser/flops_parser.py +15 -11
  531. mindspore/profiler/parser/framework_parser.py +92 -73
  532. mindspore/profiler/parser/hccl_parser.py +16 -12
  533. mindspore/profiler/parser/integrator.py +22 -11
  534. mindspore/profiler/parser/memory_usage_parser.py +36 -11
  535. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  536. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  537. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  538. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  539. mindspore/profiler/parser/optime_parser.py +1 -1
  540. mindspore/profiler/parser/profiler_info.py +4 -5
  541. mindspore/profiler/parser/step_trace_parser.py +11 -14
  542. mindspore/profiler/profiling.py +678 -377
  543. mindspore/rewrite/api/node.py +211 -54
  544. mindspore/rewrite/api/node_type.py +5 -0
  545. mindspore/rewrite/api/pattern_engine.py +22 -23
  546. mindspore/rewrite/api/scoped_value.py +20 -17
  547. mindspore/rewrite/api/symbol_tree.py +252 -106
  548. mindspore/rewrite/api/tree_node_helper.py +3 -0
  549. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  550. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  551. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  552. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +97 -46
  553. mindspore/rewrite/common/rewrite_elog.py +5 -1
  554. mindspore/rewrite/namer.py +51 -51
  555. mindspore/rewrite/namespace.py +14 -5
  556. mindspore/{ops/bprop_mindir → rewrite/node}/__init__.py +9 -4
  557. mindspore/rewrite/node/call_function.py +79 -0
  558. mindspore/rewrite/node/cell_container.py +135 -0
  559. mindspore/rewrite/node/control_flow.py +88 -0
  560. mindspore/rewrite/{node.py → node/node.py} +313 -247
  561. mindspore/rewrite/node/node_manager.py +254 -0
  562. mindspore/rewrite/node/node_topological_manager.py +243 -0
  563. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  564. mindspore/rewrite/parsers/assign_parser.py +225 -239
  565. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  566. mindspore/rewrite/parsers/class_def_parser.py +179 -218
  567. mindspore/rewrite/parsers/constant_parser.py +9 -6
  568. mindspore/rewrite/parsers/container_parser.py +9 -7
  569. mindspore/rewrite/parsers/for_parser.py +36 -15
  570. mindspore/rewrite/parsers/function_def_parser.py +23 -20
  571. mindspore/rewrite/parsers/if_parser.py +28 -24
  572. mindspore/rewrite/parsers/module_parser.py +202 -25
  573. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  574. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  575. mindspore/rewrite/parsers/return_parser.py +6 -6
  576. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  577. mindspore/rewrite/sparsify/sparsify.py +4 -1
  578. mindspore/rewrite/sparsify/utils.py +11 -5
  579. mindspore/rewrite/symbol_tree.py +577 -732
  580. mindspore/rewrite/symbol_tree_builder.py +9 -175
  581. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  582. mindspore/run_check/_check_version.py +46 -39
  583. mindspore/run_check/run_check.py +3 -2
  584. mindspore/{scipy/sparse → safeguard}/__init__.py +4 -5
  585. mindspore/safeguard/rewrite_obfuscation.py +517 -0
  586. mindspore/scipy/__init__.py +1 -1
  587. mindspore/scipy/linalg.py +67 -61
  588. mindspore/scipy/ops.py +5 -41
  589. mindspore/scipy/ops_grad.py +3 -2
  590. mindspore/scipy/ops_wrapper.py +5 -5
  591. mindspore/scipy/optimize/line_search.py +8 -8
  592. mindspore/scipy/optimize/linear_sum_assignment.py +4 -4
  593. mindspore/scipy/optimize/minimize.py +16 -12
  594. mindspore/scipy/utils.py +1 -52
  595. mindspore/scipy/utils_const.py +4 -4
  596. mindspore/train/__init__.py +4 -4
  597. mindspore/train/_utils.py +13 -5
  598. mindspore/train/amp.py +410 -148
  599. mindspore/train/anf_ir_pb2.py +16 -4
  600. mindspore/train/callback/_backup_and_restore.py +8 -11
  601. mindspore/train/callback/_callback.py +80 -3
  602. mindspore/train/callback/_checkpoint.py +82 -51
  603. mindspore/train/callback/_early_stop.py +12 -15
  604. mindspore/train/callback/_history.py +1 -1
  605. mindspore/train/callback/_lambda_callback.py +13 -13
  606. mindspore/train/callback/_landscape.py +21 -17
  607. mindspore/train/callback/_loss_monitor.py +9 -10
  608. mindspore/train/callback/_on_request_exit.py +16 -33
  609. mindspore/train/callback/_reduce_lr_on_plateau.py +21 -24
  610. mindspore/train/callback/_summary_collector.py +44 -30
  611. mindspore/train/callback/_time_monitor.py +62 -12
  612. mindspore/train/data_sink.py +10 -16
  613. mindspore/train/dataset_helper.py +154 -86
  614. mindspore/train/loss_scale_manager.py +14 -9
  615. mindspore/train/metrics/__init__.py +10 -2
  616. mindspore/train/metrics/accuracy.py +1 -1
  617. mindspore/train/metrics/auc.py +1 -1
  618. mindspore/train/metrics/bleu_score.py +2 -2
  619. mindspore/train/metrics/confusion_matrix.py +14 -14
  620. mindspore/train/metrics/cosine_similarity.py +3 -3
  621. mindspore/train/metrics/dice.py +1 -1
  622. mindspore/train/metrics/fbeta.py +1 -1
  623. mindspore/train/metrics/hausdorff_distance.py +8 -6
  624. mindspore/train/metrics/mean_surface_distance.py +5 -4
  625. mindspore/train/metrics/metric.py +49 -17
  626. mindspore/train/metrics/occlusion_sensitivity.py +4 -4
  627. mindspore/train/metrics/perplexity.py +1 -1
  628. mindspore/train/metrics/precision.py +2 -2
  629. mindspore/train/metrics/recall.py +2 -3
  630. mindspore/train/metrics/roc.py +7 -7
  631. mindspore/train/metrics/root_mean_square_surface_distance.py +5 -4
  632. mindspore/train/metrics/topk.py +7 -4
  633. mindspore/train/mind_ir_pb2.py +193 -48
  634. mindspore/train/model.py +377 -133
  635. mindspore/train/serialization.py +697 -245
  636. mindspore/train/summary/_summary_adapter.py +5 -2
  637. mindspore/train/summary/_writer_pool.py +4 -3
  638. mindspore/train/summary/summary_record.py +25 -23
  639. mindspore/train/train_thor/convert_utils.py +39 -23
  640. mindspore/train/train_thor/dataset_helper.py +4 -3
  641. mindspore/train/train_thor/model_thor.py +8 -8
  642. mindspore/version.py +1 -1
  643. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/METADATA +7 -8
  644. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/RECORD +647 -818
  645. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/entry_points.txt +0 -1
  646. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  647. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  648. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  649. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  650. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  651. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  652. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  653. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  654. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  655. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  656. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  657. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  658. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  659. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  660. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  661. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  662. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  663. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  664. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  665. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  666. mindspore/_extends/graph_kernel/expander.py +0 -80
  667. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -57
  668. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  669. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  670. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  671. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  672. mindspore/_extends/graph_kernel/expanders/bias_add_grad.py +0 -49
  673. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  674. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  675. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  676. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  677. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  678. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  679. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  680. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  681. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  682. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  683. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  684. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  685. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  686. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  687. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  688. mindspore/_extends/graph_kernel/expanders/gather.py +0 -43
  689. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  690. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  691. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  692. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  693. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  694. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  695. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  696. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  697. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  698. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  699. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  700. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  701. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  702. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  703. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  704. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  705. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  706. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  707. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  708. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  709. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  710. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  711. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  712. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  713. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  714. mindspore/_extends/graph_kernel/expanders/tile.py +0 -54
  715. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  716. mindspore/_extends/parse/jit_fallback_modules.py +0 -51
  717. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  718. mindspore/dataset/engine/graphdata.py +0 -1586
  719. mindspore/include/api/net.h +0 -142
  720. mindspore/ops/_grad/grad_array_ops.py +0 -1347
  721. mindspore/ops/_grad/grad_clip_ops.py +0 -84
  722. mindspore/ops/_grad/grad_debug_ops.py +0 -68
  723. mindspore/ops/_grad/grad_inner_ops.py +0 -235
  724. mindspore/ops/_grad/grad_math_ops.py +0 -1684
  725. mindspore/ops/_grad/grad_nn_ops.py +0 -1529
  726. mindspore/ops/_grad/grad_other_ops.py +0 -89
  727. mindspore/ops/_grad/grad_sequence_ops.py +0 -296
  728. mindspore/ops/_grad/grad_sparse.py +0 -323
  729. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -249
  730. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -195
  731. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  732. mindspore/ops/bprop_mindir/AdaptiveAvgPool2D_bprop.mindir +0 -0
  733. mindspore/ops/bprop_mindir/AdaptiveMaxPool2D_bprop.mindir +0 -0
  734. mindspore/ops/bprop_mindir/ApproximateEqual_bprop.mindir +0 -19
  735. mindspore/ops/bprop_mindir/Argmax_bprop.mindir +0 -15
  736. mindspore/ops/bprop_mindir/Argmin_bprop.mindir +0 -15
  737. mindspore/ops/bprop_mindir/AssignSub_bprop.mindir +0 -19
  738. mindspore/ops/bprop_mindir/Assign_bprop.mindir +0 -17
  739. mindspore/ops/bprop_mindir/AvgPool3D_bprop.mindir +0 -150
  740. mindspore/ops/bprop_mindir/AvgPool_bprop.mindir +0 -66
  741. mindspore/ops/bprop_mindir/BCEWithLogitsLoss_bprop.mindir +0 -0
  742. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -15
  743. mindspore/ops/bprop_mindir/BatchNormGrad_bprop.mindir +0 -0
  744. mindspore/ops/bprop_mindir/BatchToSpaceND_bprop.mindir +0 -28
  745. mindspore/ops/bprop_mindir/BiasAddGrad_bprop.mindir +0 -0
  746. mindspore/ops/bprop_mindir/BinaryCrossEntropy_bprop.mindir +0 -33
  747. mindspore/ops/bprop_mindir/BroadcastTo_bprop.mindir +0 -306
  748. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -13
  749. mindspore/ops/bprop_mindir/CTCLoss_bprop.mindir +0 -0
  750. mindspore/ops/bprop_mindir/Concat_bprop.mindir +0 -0
  751. mindspore/ops/bprop_mindir/Conv2DBackpropFilter_bprop.mindir +0 -240
  752. mindspore/ops/bprop_mindir/Conv2DBackpropInput_bprop.mindir +0 -247
  753. mindspore/ops/bprop_mindir/Conv2DTranspose_bprop.mindir +0 -247
  754. mindspore/ops/bprop_mindir/Conv3DTranspose_bprop.mindir +0 -315
  755. mindspore/ops/bprop_mindir/Conv3D_bprop.mindir +0 -278
  756. mindspore/ops/bprop_mindir/DType_bprop.mindir +0 -14
  757. mindspore/ops/bprop_mindir/DeformableOffsets_bprop.mindir +0 -58
  758. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -13
  759. mindspore/ops/bprop_mindir/DepthToSpace_bprop.mindir +0 -23
  760. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  761. mindspore/ops/bprop_mindir/DiagPart_bprop.mindir +0 -15
  762. mindspore/ops/bprop_mindir/Dropout2D_bprop.mindir +0 -0
  763. mindspore/ops/bprop_mindir/Dropout3D_bprop.mindir +0 -0
  764. mindspore/ops/bprop_mindir/DropoutDoMask_bprop.mindir +0 -25
  765. mindspore/ops/bprop_mindir/DropoutGenMask_bprop.mindir +0 -18
  766. mindspore/ops/bprop_mindir/DropoutGrad_bprop.mindir +0 -27
  767. mindspore/ops/bprop_mindir/Dropout_bprop.mindir +0 -0
  768. mindspore/ops/bprop_mindir/DynamicGRUV2_bprop.mindir +0 -0
  769. mindspore/ops/bprop_mindir/DynamicRNN_bprop.mindir +0 -0
  770. mindspore/ops/bprop_mindir/DynamicShape_bprop.mindir +0 -14
  771. mindspore/ops/bprop_mindir/Elu_bprop.mindir +0 -16
  772. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  773. mindspore/ops/bprop_mindir/Equal_bprop.mindir +0 -19
  774. mindspore/ops/bprop_mindir/ExpandDims_bprop.mindir +0 -58
  775. mindspore/ops/bprop_mindir/FastGeLU_bprop.mindir +0 -16
  776. mindspore/ops/bprop_mindir/Flatten_bprop.mindir +0 -54
  777. mindspore/ops/bprop_mindir/FloorDiv_bprop.mindir +0 -19
  778. mindspore/ops/bprop_mindir/GatherD_bprop.mindir +0 -26
  779. mindspore/ops/bprop_mindir/GatherNd_bprop.mindir +0 -57
  780. mindspore/ops/bprop_mindir/Gather_bprop.mindir +0 -0
  781. mindspore/ops/bprop_mindir/GreaterEqual_bprop.mindir +0 -19
  782. mindspore/ops/bprop_mindir/Greater_bprop.mindir +0 -19
  783. mindspore/ops/bprop_mindir/HSigmoid_bprop.mindir +0 -16
  784. mindspore/ops/bprop_mindir/HSwish_bprop.mindir +0 -16
  785. mindspore/ops/bprop_mindir/IOU_bprop.mindir +0 -19
  786. mindspore/ops/bprop_mindir/InstanceNorm_bprop.mindir +0 -0
  787. mindspore/ops/bprop_mindir/IsFinite_bprop.mindir +0 -15
  788. mindspore/ops/bprop_mindir/IsInf_bprop.mindir +0 -15
  789. mindspore/ops/bprop_mindir/IsNan_bprop.mindir +0 -15
  790. mindspore/ops/bprop_mindir/KLDivLoss_bprop.mindir +0 -126
  791. mindspore/ops/bprop_mindir/L2Loss_bprop.mindir +0 -15
  792. mindspore/ops/bprop_mindir/L2Normalize_bprop.mindir +0 -30
  793. mindspore/ops/bprop_mindir/LRN_bprop.mindir +0 -43
  794. mindspore/ops/bprop_mindir/LayerNormGrad_bprop.mindir +0 -0
  795. mindspore/ops/bprop_mindir/LessEqual_bprop.mindir +0 -19
  796. mindspore/ops/bprop_mindir/Less_bprop.mindir +0 -19
  797. mindspore/ops/bprop_mindir/LinSpace_bprop.mindir +0 -23
  798. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -13
  799. mindspore/ops/bprop_mindir/LogSoftmax_bprop.mindir +0 -23
  800. mindspore/ops/bprop_mindir/LogicalAnd_bprop.mindir +0 -19
  801. mindspore/ops/bprop_mindir/LogicalNot_bprop.mindir +0 -15
  802. mindspore/ops/bprop_mindir/MaskedSelect_bprop.mindir +0 -21
  803. mindspore/ops/bprop_mindir/MaxPool3DGradGrad_bprop.mindir +0 -74
  804. mindspore/ops/bprop_mindir/MaxPool3DGrad_bprop.mindir +0 -74
  805. mindspore/ops/bprop_mindir/MaxPool3D_bprop.mindir +0 -75
  806. mindspore/ops/bprop_mindir/MaxPoolGradGrad_bprop.mindir +0 -65
  807. mindspore/ops/bprop_mindir/MaxPoolWithArgmax_bprop.mindir +0 -0
  808. mindspore/ops/bprop_mindir/Maximum_bprop.mindir +0 -0
  809. mindspore/ops/bprop_mindir/Minimum_bprop.mindir +0 -0
  810. mindspore/ops/bprop_mindir/MirrorPad_bprop.mindir +0 -27
  811. mindspore/ops/bprop_mindir/Mish_bprop.mindir +0 -35
  812. mindspore/ops/bprop_mindir/MulNoNan_bprop.mindir +0 -0
  813. mindspore/ops/bprop_mindir/NLLLoss_bprop.mindir +0 -0
  814. mindspore/ops/bprop_mindir/NonZero_bprop.mindir +0 -14
  815. mindspore/ops/bprop_mindir/NotEqual_bprop.mindir +0 -19
  816. mindspore/ops/bprop_mindir/OneHot_bprop.mindir +0 -26
  817. mindspore/ops/bprop_mindir/OnesLike_bprop.mindir +0 -14
  818. mindspore/ops/bprop_mindir/PReLU_bprop.mindir +0 -0
  819. mindspore/ops/bprop_mindir/Pad_bprop.mindir +0 -0
  820. mindspore/ops/bprop_mindir/Padding_bprop.mindir +0 -0
  821. mindspore/ops/bprop_mindir/RNNTLoss_bprop.mindir +0 -29
  822. mindspore/ops/bprop_mindir/ROIAlign_bprop.mindir +0 -82
  823. mindspore/ops/bprop_mindir/Range_bprop.mindir +0 -22
  824. mindspore/ops/bprop_mindir/Rank_bprop.mindir +0 -14
  825. mindspore/ops/bprop_mindir/ReLU6_bprop.mindir +0 -16
  826. mindspore/ops/bprop_mindir/ReLUV2_bprop.mindir +0 -0
  827. mindspore/ops/bprop_mindir/ReduceAll_bprop.mindir +0 -19
  828. mindspore/ops/bprop_mindir/ReduceAny_bprop.mindir +0 -19
  829. mindspore/ops/bprop_mindir/ReluGrad_bprop.mindir +0 -20
  830. mindspore/ops/bprop_mindir/Reshape_bprop.mindir +0 -60
  831. mindspore/ops/bprop_mindir/ResizeBilinear_bprop.mindir +0 -29
  832. mindspore/ops/bprop_mindir/ResizeNearestNeighbor_bprop.mindir +0 -89
  833. mindspore/ops/bprop_mindir/ReverseSequence_bprop.mindir +0 -52
  834. mindspore/ops/bprop_mindir/ReverseV2_bprop.mindir +0 -22
  835. mindspore/ops/bprop_mindir/Round_bprop.mindir +0 -15
  836. mindspore/ops/bprop_mindir/ScatterMax_bprop.mindir +0 -0
  837. mindspore/ops/bprop_mindir/ScatterMin_bprop.mindir +0 -0
  838. mindspore/ops/bprop_mindir/ScatterNdUpdate_bprop.mindir +0 -22
  839. mindspore/ops/bprop_mindir/ScatterNd_bprop.mindir +0 -24
  840. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -22
  841. mindspore/ops/bprop_mindir/ScatterUpdate_bprop.mindir +0 -0
  842. mindspore/ops/bprop_mindir/SeLU_bprop.mindir +0 -21
  843. mindspore/ops/bprop_mindir/Select_bprop.mindir +0 -31
  844. mindspore/ops/bprop_mindir/Shape_bprop.mindir +0 -14
  845. mindspore/ops/bprop_mindir/SigmoidCrossEntropyWithLogits_bprop.mindir +0 -21
  846. mindspore/ops/bprop_mindir/SigmoidGrad_bprop.mindir +0 -0
  847. mindspore/ops/bprop_mindir/Sigmoid_bprop.mindir +0 -16
  848. mindspore/ops/bprop_mindir/Sign_bprop.mindir +0 -15
  849. mindspore/ops/bprop_mindir/Slice_bprop.mindir +0 -26
  850. mindspore/ops/bprop_mindir/SmoothL1Loss_bprop.mindir +0 -36
  851. mindspore/ops/bprop_mindir/SoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  852. mindspore/ops/bprop_mindir/Softplus_bprop.mindir +0 -16
  853. mindspore/ops/bprop_mindir/Softsign_bprop.mindir +0 -33
  854. mindspore/ops/bprop_mindir/Sort_bprop.mindir +0 -0
  855. mindspore/ops/bprop_mindir/SpaceToBatchND_bprop.mindir +0 -28
  856. mindspore/ops/bprop_mindir/SpaceToDepth_bprop.mindir +0 -23
  857. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  858. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  859. mindspore/ops/bprop_mindir/Split_bprop.mindir +0 -22
  860. mindspore/ops/bprop_mindir/Squeeze_bprop.mindir +0 -54
  861. mindspore/ops/bprop_mindir/StridedSliceGrad_bprop.mindir +0 -95
  862. mindspore/ops/bprop_mindir/StridedSlice_bprop.mindir +0 -98
  863. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -29
  864. mindspore/ops/bprop_mindir/TanhGrad_bprop.mindir +0 -0
  865. mindspore/ops/bprop_mindir/Tanh_bprop.mindir +0 -66
  866. mindspore/ops/bprop_mindir/TensorScatterAdd_bprop.mindir +0 -22
  867. mindspore/ops/bprop_mindir/TensorScatterUpdate_bprop.mindir +0 -29
  868. mindspore/ops/bprop_mindir/TensorShape_bprop.mindir +0 -14
  869. mindspore/ops/bprop_mindir/Tile_bprop.mindir +0 -0
  870. mindspore/ops/bprop_mindir/TopK_bprop.mindir +0 -0
  871. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -23
  872. mindspore/ops/bprop_mindir/TruncateDiv_bprop.mindir +0 -19
  873. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -20
  874. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -16
  875. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -22
  876. mindspore/ops/bprop_mindir/UpsampleNearest3D_bprop.mindir +0 -32
  877. mindspore/ops/bprop_mindir/UpsampleTrilinear3D_bprop.mindir +0 -38
  878. mindspore/ops/bprop_mindir/ZerosLike_bprop.mindir +0 -15
  879. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  880. mindspore/rewrite/node_visitor.py +0 -44
  881. mindspore/rewrite/topological_manager.py +0 -203
  882. mindspore/scipy/sparse/linalg.py +0 -192
  883. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/WHEEL +0 -0
  884. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/top_level.txt +0 -0
@@ -14,37 +14,39 @@
14
14
  # ============================================================================
15
15
  """Parse ast.Assign in construct function to node of SymbolTree."""
16
16
  from typing import Union
17
+ import os
17
18
  import ast
18
19
  import sys
19
20
  import inspect
20
- import astunparse
21
21
 
22
22
  from mindspore import log as logger
23
- from mindspore._extends.parse.namespace import CellNamespace
24
23
  from mindspore.nn import Cell, SequentialCell
25
- from mindspore.ops import operations as P
26
24
  from mindspore.ops import Primitive
27
- from mindspore.rewrite.parser_register import ParserRegister
25
+ from mindspore.rewrite.parsers.parser_register import ParserRegister, reg_parser
28
26
  from mindspore.rewrite.namespace import is_subtree, is_functional, get_functional
29
27
  from mindspore.rewrite.symbol_tree import SymbolTree
30
- from mindspore.rewrite.node import Node, TreeNode, CellContainer
31
- from mindspore.rewrite.parser import Parser
32
- from mindspore.rewrite.parser_register import reg_parser
28
+ from mindspore.rewrite.node.node import Node, TreeNode
29
+ from mindspore.rewrite.node.node_manager import NodeManager
30
+ from mindspore.rewrite.node.call_function import CallFunction
31
+ from mindspore.rewrite.node.cell_container import CellContainer
32
+ from mindspore.rewrite.parsers.parser import Parser
33
33
  from mindspore.rewrite.api.scoped_value import ScopedValue, ValueType
34
- from mindspore.rewrite.symbol_tree_builder import SymbolTreeBuilder, FunctionSymbolTreeBuilder
35
- from mindspore.rewrite.ast_helpers import AstReplacer, AstModifier
36
- from mindspore.rewrite.common.event import Event
34
+ from mindspore.rewrite.symbol_tree_builder import SymbolTreeBuilder
35
+ from mindspore.rewrite.ast_transformers.flatten_recursive_stmt import FlattenRecursiveStmt
36
+ from mindspore.rewrite.ast_helpers import AstReplacer
37
37
  from ..common import error_str
38
38
 
39
+ if sys.version_info >= (3, 9):
40
+ import ast as astunparse # pylint: disable=reimported, ungrouped-imports
41
+ else:
42
+ import astunparse
43
+
39
44
 
40
45
  class AssignParser(Parser):
41
46
  """Parse ast.Assign in construct function to node of SymbolTree."""
42
47
 
43
- def __init__(self):
44
- """Constructor"""
45
- super(AssignParser, self).__init__()
46
- self._cell_namespce = CellNamespace('mindspore.nn')
47
- self._primitive_namespce = CellNamespace('mindspore.ops.operations')
48
+ # Types for creating Cell Container node
49
+ types_for_cell_container = [SequentialCell,]
48
50
 
49
51
  def target(self):
50
52
  """Parse target type."""
@@ -68,9 +70,9 @@ class AssignParser(Parser):
68
70
  tuple_values = []
69
71
  for tuple_elt in tuple_elts:
70
72
  if not isinstance(tuple_elt, (ast.Constant, ast.Name, ast.Attribute)):
71
- raise RuntimeError(f"Only support ast.Constant or ast.Name as elts of ast.Tuple, "
72
- f"but got ast type {type(tuple_elt).__name__}",
73
- child_node=tuple_elt, father_node=node)
73
+ raise RuntimeError(error_str(f"Only support ast.Constant or ast.Name as elts of ast.Tuple, "
74
+ f"but got ast type {type(tuple_elt).__name__}",
75
+ child_node=tuple_elt, father_node=node))
74
76
  if isinstance(tuple_elt, ast.Constant):
75
77
  tuple_values.append(tuple_elt.value)
76
78
  elif isinstance(tuple_elt, ast.Name):
@@ -105,7 +107,7 @@ class AssignParser(Parser):
105
107
  return ScopedValue.create_naming_value(node.attr, scope.id)
106
108
  if isinstance(node, ast.Tuple):
107
109
  return AssignParser._create_scopedvalue_from_tuple_ast(node)
108
- if isinstance(node, ast.Constant):
110
+ if isinstance(node, (ast.Constant, ast.NameConstant)):
109
111
  return ScopedValue.create_variable_value(node.value)
110
112
  if isinstance(node, ast.Num):
111
113
  return ScopedValue.create_variable_value(node.n)
@@ -116,12 +118,12 @@ class AssignParser(Parser):
116
118
  father_node=node))
117
119
 
118
120
  @staticmethod
119
- def _get_func_name(ast_node: ast.Call) -> str:
121
+ def _get_func_name(ast_call: ast.Call) -> str:
120
122
  """
121
123
  Get the func name from ast.Call.
122
124
 
123
125
  Args:
124
- ast_node (ast.Call): Input ast.Call node.
126
+ ast_call (ast.Call): Input ast.Call node.
125
127
 
126
128
  Returns:
127
129
  Func name.
@@ -129,7 +131,7 @@ class AssignParser(Parser):
129
131
  Raises:
130
132
  RuntimeError: Func of input ast node is not ast.Name or ast.Attribute.
131
133
  """
132
- func = ast_node.func
134
+ func = ast_call.func
133
135
  if isinstance(func, ast.Name):
134
136
  return func.id
135
137
  if isinstance(func, ast.Attribute):
@@ -137,15 +139,16 @@ class AssignParser(Parser):
137
139
  if isinstance(func, ast.Call):
138
140
  return AssignParser._get_func_name(func)
139
141
  raise RuntimeError(error_str(f"funcValue should be Name or a Attribute or a Call, but got ast type "
140
- f"'{type(func).__name__}'", child_node=func, father_node=ast_node))
142
+ f"'{type(func).__name__}'", child_node=func, father_node=ast_call))
141
143
 
142
144
  @staticmethod
143
- def _get_func_scope(ast_node: ast.Call) -> str:
145
+ def _get_func_scope(ast_call: ast.Call, node_manager: NodeManager = None) -> str:
144
146
  """
145
147
  Get the func scope from ast.Call.
146
148
 
147
149
  Args:
148
- ast_node (ast.Call): Input ast.Call node.
150
+ ast_call (ast.Call): Input ast.Call node.
151
+ node_manager (NodeManager): NodeManager those asts belong to.
149
152
 
150
153
  Returns:
151
154
  Func scope.
@@ -154,17 +157,17 @@ class AssignParser(Parser):
154
157
  RuntimeError: FuncValue is not an ast.Name when func is an ast.Attribute.
155
158
  RuntimeError: Func of input ast node is not ast.Name or ast.Attribute.
156
159
  """
157
- func = ast_node.func
160
+ func = ast_call.func
158
161
  if isinstance(func, ast.Name):
159
162
  return ""
160
163
  if isinstance(func, ast.Attribute):
161
164
  parser = ParserRegister.instance().get_parser(type(func))
162
- value = parser.process(None, func)
165
+ value = parser.process(None, func, node_manager)
163
166
  return value.rsplit(".", 1)[0]
164
167
  if isinstance(func, ast.Call):
165
- return AssignParser._get_func_scope(func)
168
+ return AssignParser._get_func_scope(func, node_manager)
166
169
  raise RuntimeError(error_str(f"funcValue should be Name or a Attribute or a Call, but got ast type "
167
- f"'{type(func).__name__}'", child_node=func, father_node=ast_node))
170
+ f"'{type(func).__name__}'", child_node=func, father_node=ast_call))
168
171
 
169
172
  @staticmethod
170
173
  def _get_symbol_object(symbol_name, origin_net):
@@ -205,9 +208,9 @@ class AssignParser(Parser):
205
208
  return results
206
209
 
207
210
  @staticmethod
208
- def _find_op_and_type(func_scope, func_name, stree: SymbolTree):
211
+ def _get_call_instance(func_scope, func_name, stree: SymbolTree):
209
212
  """
210
- Get the func scope from ast.Call.
213
+ Get object instance from ast.Call with type of Cell or Primitive.
211
214
 
212
215
  Args:
213
216
  func_scope (str): Func scope.
@@ -215,21 +218,21 @@ class AssignParser(Parser):
215
218
  stree (SymbolTree): Belong SymbolTree.
216
219
 
217
220
  Returns:
218
- A type represents type of op and an instance represents operator instance.
221
+ An instance represents operator instance.
219
222
  """
220
-
221
223
  if func_scope != "self":
222
- logger.warning("Not support parse operator which is instantiated at runtime now: %s; name: %s", func_scope,
223
- func_name)
224
+ return None
224
225
  var_dict = stree.get_origin_network().__dict__
226
+ # Instance is of type Cell
225
227
  for key, value in var_dict["_cells"].items():
226
228
  if key == func_name:
227
- return type(value), value
228
-
229
+ return value
230
+ # Instance is of type Primitive
229
231
  for key, value in var_dict["_primitives"].items():
230
232
  if key == func_name:
231
- return type(value), value
232
- return type(None), None
233
+ return value
234
+ # Instance is of other type.
235
+ return None
233
236
 
234
237
  @staticmethod
235
238
  def _get_targets(all_targets: ScopedValue) -> [Union[ScopedValue, str]]:
@@ -240,6 +243,8 @@ class AssignParser(Parser):
240
243
  if not isinstance(single_target, ScopedValue) and not isinstance(single_target.value, str):
241
244
  raise RuntimeError(f"For MindSpore Rewrite, only support str target in tuple, but got type "
242
245
  f"{type(single_target).__name__}")
246
+ if single_target.type == ValueType.ConstantValue and isinstance(single_target.value, str):
247
+ single_target.type = ValueType.NamingValue
243
248
  targets.append(single_target)
244
249
  else:
245
250
  targets.append(all_targets)
@@ -249,18 +254,7 @@ class AssignParser(Parser):
249
254
  def _update_field_in_init(func_scope, func_name, stree: SymbolTree, sub_tree: SymbolTree) -> bool:
250
255
  """
251
256
  When node is an invoking to sub-network, update value of ast.Assign of corresponding field in `__init__` method.
252
-
253
- Update from:
254
-
255
- .. code-block::
256
-
257
- self.field = getattr(self._handler, "field")
258
-
259
- to:
260
-
261
- .. code-block::
262
-
263
- self.field = SubNetwork(global_vars.get("field_args"))
257
+ Add the code like: `self.field = SubNetwork(self.field)`
264
258
 
265
259
  Args:
266
260
  func_scope (str): A string represents scope of function symbol.
@@ -272,53 +266,28 @@ class AssignParser(Parser):
272
266
  NotImplementedError: If `func_scope` is not "self", it means corresponding op is inited in forward method.
273
267
  NotImplementedError: If targets of ast.Assign of corresponding field in `__init__` method.
274
268
  """
275
-
276
- changed = False
277
269
  if func_scope != "self":
278
270
  logger.warning("Not support parse operator which is instantiated at runtime now: %s; name: %s", func_scope,
279
271
  func_name)
280
272
  init_func_ast = stree.get_init_func_ast()
281
- class_name = sub_tree.get_opt_cls_name()
282
- for body in init_func_ast.body:
283
- if not isinstance(body, ast.Assign):
284
- continue
285
- if len(body.targets) > 1:
286
- raise NotImplementedError(error_str("not support multi-targets in assign now!", father_node=body))
287
- target = body.targets[0]
288
- if not isinstance(target, ast.Attribute) or not isinstance(target.value, ast.Name):
289
- continue
290
- if target.value.id != "self" or target.attr != func_name:
291
- continue
292
- changed = True
293
- setattr(stree.get_origin_network(), func_name, sub_tree.get_origin_network())
294
- args_call = AstModifier.create_call(ScopedValue(ValueType.NamingValue, "", "getattr"),
295
- [ScopedValue(ValueType.NamingValue, "", "obj"),
296
- ScopedValue(ValueType.StringValue, "", func_name)])
297
- body.value = ast.Call(func=ast.Name(class_name, ast.Store()), args=[args_call], keywords=[])
298
- break
299
- return changed
273
+ sub_net_obj = sub_tree.get_origin_network()
274
+ sub_net_opt_name = sub_tree.get_opt_cls_name()
275
+ # Add .to_float(mindspore.float16) if origin subnet has this attribute
276
+ new_code = f"{func_scope}.{func_name} = {sub_net_opt_name}({func_scope}.{func_name})"
277
+ if hasattr(sub_net_obj, "fp16") and sub_net_obj.fp16:
278
+ new_code = f"{new_code}.to_float(mindspore.float16)"
279
+ elif hasattr(sub_net_obj, "bf16") and sub_net_obj.bf16:
280
+ new_code = f"{new_code}.to_float(mindspore.bfloat16)"
281
+ new_ast = ast.parse(new_code).body[0]
282
+ init_func_ast.body.append(new_ast)
300
283
 
301
284
  @staticmethod
302
- def _convert_ast_binop_to_node(ast_node: ast.BinOp, father_ast_node: ast.Assign) -> Node:
303
- """convert ast.BinOp to Node"""
304
-
305
- # only support ast.Add now
306
- op = P.Add()
307
- func_ast = ast.Attribute(value=ast.Name(id='F', ctx=ast.Load()), attr='add', ctx=ast.Load())
308
- func = ScopedValue.create_naming_value('add', 'F')
309
-
310
- father_ast_node.value = ast.Call(func=func_ast, args=[ast_node.left, ast_node.right], keywords=[])
311
- targets = AssignParser._get_targets(AssignParser._create_scopedvalue(father_ast_node.targets[0]))
312
- call_args = [AssignParser._create_scopedvalue(arg) for arg in father_ast_node.value.args]
313
- return Node.create_call_buildin_op(op, father_ast_node, targets, func, call_args, {})
314
-
315
- @staticmethod
316
- def _create_inputs_for_cell_container(father_ast_node) -> ['Node']:
285
+ def _create_inputs_for_cell_container(ast_assign) -> ['Node']:
317
286
  """Create inputs for cell container first node."""
318
- call_ast_node = father_ast_node.value
287
+ call_ast_node = ast_assign.value
319
288
  if not isinstance(call_ast_node, ast.Call):
320
289
  raise RuntimeError(error_str(f"when creating input node for cellcontainer, value of input father ast node"
321
- "is not ast.Call!'", child_node=call_ast_node, father_node=father_ast_node))
290
+ "is not ast.Call!'", child_node=call_ast_node, father_node=ast_assign))
322
291
  first_node_inputs: ['Node'] = []
323
292
  exist_param_name = []
324
293
  for arg in call_ast_node.args:
@@ -338,73 +307,114 @@ class AssignParser(Parser):
338
307
 
339
308
  if call_ast_node.keywords:
340
309
  raise RuntimeError(error_str(f"Not support keyword input for cellcontainer now.",
341
- child_node=call_ast_node, father_node=father_ast_node))
310
+ child_node=call_ast_node, father_node=ast_assign))
342
311
 
343
312
  return first_node_inputs
344
313
 
345
- def _cell_container_process(self, ast_node, stree, targets, func, call_args, call_kwargs, op_name, container_obj):
314
+ @staticmethod
315
+ def _update_cell_container_in_init(stree, container_name, container_idx, subnet_opt_name):
316
+ """
317
+ When nn.SequentialCell include sub-symboltree, the new class definition will be used to create object.
318
+ So the assign code will be got from origin code first, and then be modified to new class name.
319
+
320
+ Codes like:
321
+
322
+ `self.container = nn.SequentialCell([ReLU(), MyNet()])`
323
+
324
+ will be updated by add codes:
325
+
326
+ `self.container[1] = MyNetOpt(self.container[1])`
327
+
328
+ """
329
+ new_code = f"{container_name}[{container_idx}] = {subnet_opt_name}({container_name}[{container_idx}])"
330
+ new_ast = ast.parse(new_code).body[0]
331
+ stree.get_init_func_ast().body.append(new_ast)
332
+
333
+ @staticmethod
334
+ def cell_container_process(ast_assign, stree, targets, func_scope_name, call_args, call_kwargs,
335
+ op_name, container_obj):
346
336
  """ parse cell container object."""
347
- cell_container = CellContainer(ast_node, targets, func, call_args, call_kwargs, op_name, container_obj)
348
- cell_container.set_belong_symbol_tree(stree)
349
- first_node_inputs = AssignParser._create_inputs_for_cell_container(ast_node)
337
+ cell_container = CellContainer(ast_assign, targets, func_scope_name, call_args, call_kwargs,
338
+ op_name, stree, container_obj)
339
+ first_node_inputs = AssignParser._create_inputs_for_cell_container(ast_assign)
350
340
  for i, cell in enumerate(container_obj):
351
- is_sub_tree = is_subtree(type(cell).__name__)
341
+ cell_name = type(cell).__name__
342
+ is_sub_tree = is_subtree(cell)
352
343
  if is_sub_tree:
353
344
  stb = SymbolTreeBuilder(cell)
354
345
  new_stree = stb.build()
355
- replacer = AstReplacer(new_stree.get_class_ast())
356
- replacer.replace_all(new_stree.get_ori_cls_name(), new_stree.get_opt_cls_name())
357
- sub_node = TreeNode.create_tree_node(new_stree, ast_node, targets, func, call_args, call_kwargs,
358
- type(cell).__name__, cell)
346
+ sub_node = TreeNode.create_tree_node(new_stree, None, targets, cell_name, call_args,
347
+ call_kwargs, cell_name, cell)
348
+ AssignParser._update_cell_container_in_init(stree, func_scope_name, i, new_stree.get_opt_cls_name())
359
349
  else:
360
- sub_node = Node.create_call_buildin_op(cell, ast_node, targets, func, call_args, call_kwargs,
361
- type(cell).__name__)
350
+ sub_node = Node.create_call_buildin_op(cell, None, targets, cell_name, call_args,
351
+ call_kwargs, cell_name)
362
352
  # add sub node to cell_container
363
- cell_container.append(sub_node)
364
- # set node inputs
353
+ cell_container.append(sub_node, False)
354
+ # set node inputs, those input nodes are NOT inserted in container, only
355
+ # topological relationship is updated.
365
356
  if i == 0:
366
- sub_node.set_inputs(first_node_inputs)
357
+ for idx, arg_provider in enumerate(first_node_inputs):
358
+ sub_node.set_arg_providers(idx, (arg_provider, 0))
367
359
  else:
368
- sub_node.set_inputs([cell_container.node_list[i-1]])
360
+ sub_node.set_arg_providers(0, (cell_container.node_list[i-1], 0))
369
361
  return cell_container
370
362
 
371
- def _process_external_function(self, stree, func_name):
372
- """Process external function."""
363
+ @staticmethod
364
+ def process_external_function(stree, func_name, file_path):
365
+ """
366
+ Process external function.
367
+ Ast of external function defined in specifical file_path will be saved to generate codes.
368
+ """
373
369
  for k, m in sys.modules.items():
374
370
  if k in ("_ast", "ast"):
375
371
  continue
376
372
  if hasattr(m, func_name):
377
373
  func = getattr(m, func_name)
374
+ if not inspect.isfunction(func):
375
+ continue
376
+ func_source_code_file = inspect.getfile(func)
377
+ if func_source_code_file != file_path:
378
+ continue
378
379
  source_code = inspect.getsource(func)
379
380
  ast_root: ast.Module = ast.parse(source_code)
380
- stree._external_func_ast.append(ast_root.body[0]) # pylint: disable=protected-access
381
+ stree.get_external_ast().append(ast_root.body[0])
381
382
  return func, ast_root.body[0]
382
- return None, None
383
+ logger.info(f"Cannot get ast of function {func_name} from {file_path}.")
384
+ return None, None
383
385
 
384
386
  def _process_internal_function(self, stree: SymbolTree, func_name):
385
387
  """Process internal function."""
386
- func = getattr(stree._origin_network, func_name) # pylint: disable=protected-access
387
- ast_node = None
388
- for body in stree._class_ast.body: # pylint: disable=protected-access
388
+ func_inst = getattr(stree.get_origin_network(), func_name)
389
+ ast_functiondef = None
390
+ for body in stree.get_class_ast().body:
389
391
  if isinstance(body, ast.FunctionDef) and func_name == body.name:
390
- ast_node = body
391
- return func, ast_node
392
-
393
- def _create_func_subtree(self, op, targets, father_ast_node, ast_node, call_args, call_kwargs, func_name):
394
- """Create subtree of function."""
395
- stb = FunctionSymbolTreeBuilder(op, ast_node)
396
- new_stree = stb.build()
397
- return TreeNode.create_tree_node(new_stree, father_ast_node, targets, func_name, call_args, call_kwargs,
398
- func_name, op)
399
-
400
- def _convert_ast_call_to_node(self, ast_node: ast.Call, father_ast_node: ast.Assign, stree: SymbolTree) -> Node:
392
+ ast_functiondef = body
393
+ return func_inst, ast_functiondef
394
+
395
+ def _create_callfunction_node(self, targets: [ScopedValue], func_scope_name: ScopedValue, args: [ScopedValue],
396
+ kwargs: {str: ScopedValue}, node_name: str, ast_assign: ast.Assign,
397
+ ast_functiondef: ast.FunctionDef, stree: SymbolTree, instance):
398
+ """Create CallFunction node for class internal function."""
399
+ node = CallFunction(targets, func_scope_name, args, kwargs, node_name, ast_assign, ast_functiondef,
400
+ stree, instance)
401
+ # expand ast codes
402
+ ast_functiondef = FlattenRecursiveStmt().transform(ast_functiondef, [func_scope_name.value], stree)
403
+ # parse ast codes into CallFunction Node
404
+ parser = ParserRegister.instance().get_parser(ast.FunctionDef)
405
+ parser.process(stree, ast_functiondef, node_manager=node)
406
+ return node
407
+
408
+ def _convert_ast_call_to_node(self, ast_call: ast.Call, ast_assign: ast.Assign, stree: SymbolTree,
409
+ node_manager: NodeManager) -> Node:
401
410
  """
402
411
  Convert ast.Call to a symbol tree node.
403
412
 
404
413
  Args:
405
- ast_node (ast.Call): An ast.Call of assign node in construct.
406
- father_ast_node (ast.Assign): Assign node in construct.
414
+ ast_call (ast.Call): An ast.Call of assign node in construct.
415
+ ast_assign (ast.Assign): Assign node in construct.
407
416
  stree (SymbolTree): Symbol Tree under parsing.
417
+ node_manager (NodeManager): NodeManager those asts belong to.
408
418
 
409
419
  Returns:
410
420
  An instance of Node in Symbol Tree.
@@ -412,86 +422,63 @@ class AssignParser(Parser):
412
422
  Raises:
413
423
  RuntimeError: If operator instance invoked by assign is undefined.
414
424
  """
415
- targets = AssignParser._get_targets(AssignParser._create_scopedvalue(father_ast_node.targets[0]))
416
- func_name = AssignParser._get_func_name(ast_node)
425
+ targets = AssignParser._get_targets(AssignParser._create_scopedvalue(ast_assign.targets[0]))
426
+ func_name = AssignParser._get_func_name(ast_call)
417
427
  if func_name is None or func_name == "":
418
428
  raise RuntimeError("function name not exist")
419
- func_scope = AssignParser._get_func_scope(ast_node)
420
- func = ScopedValue.create_naming_value(func_name, func_scope)
421
- call_args = [AssignParser._create_scopedvalue(arg) for arg in ast_node.args]
422
- call_kwargs = AssignParser._create_kwargs(ast_node.keywords)
423
-
424
- _, op = AssignParser._find_op_and_type(func_scope, func_name, stree)
425
- if op is None:
426
- if is_functional(func_name):
427
- parser = ParserRegister.instance().get_parser(type(ast_node.func))
428
- func_name = parser.process(stree, ast_node.func)
429
- func = get_functional(func_name.split(".")[-1])
430
- node = stree.inner_create_call_function(func_name, father_ast_node, func_name, func, targets,
431
- call_args, call_kwargs)
432
- elif hasattr(stree._origin_network, func_name): # pylint: disable=protected-access
433
- func, ast_node = self._process_internal_function(stree, func_name)
434
- node = self._create_func_subtree(func, targets, father_ast_node, ast_node, call_args, call_kwargs,
435
- func_name)
429
+ func_scope = AssignParser._get_func_scope(ast_call, node_manager)
430
+ func_scope_name = ScopedValue.create_naming_value(func_name, func_scope)
431
+ call_args = [AssignParser._create_scopedvalue(arg) for arg in ast_call.args]
432
+ call_kwargs = AssignParser._create_kwargs(ast_call.keywords)
433
+
434
+ func_inst = AssignParser._get_call_instance(func_scope, func_name, stree)
435
+ if func_inst is None:
436
+ # Function is not Cell and Primitive
437
+ if func_scope in ('self', stree.get_opt_cls_name()) and hasattr(stree.get_origin_network(), func_name):
438
+ # Function defined in current class
439
+ func_inst, ast_functiondef = self._process_internal_function(stree, func_name)
440
+ if ast_functiondef is None:
441
+ raise RuntimeError(f"Find ast of function {func_scope}.{func_name} in symbol tree class failed.")
442
+ node = self._create_callfunction_node(targets, func_scope_name, call_args, call_kwargs, func_name,
443
+ ast_assign, ast_functiondef, stree, func_inst)
444
+ elif is_functional(func_name):
445
+ # Function defined in mindspore.ops.functional
446
+ parser = ParserRegister.instance().get_parser(type(ast_call.func)) # ast.Name or ast.Attribute
447
+ func_name = parser.process(stree, ast_call.func, node_manager).split(".")[-1]
448
+ func_inst = get_functional(func_name)
449
+ node = Node.inner_create_call_function(func_name, ast_assign, func_name, func_inst, targets,
450
+ call_args, call_kwargs)
436
451
  else:
437
- func, ast_node = self._process_external_function(stree, func_name)
438
- node = self._create_func_subtree(func, targets, father_ast_node, ast_node, call_args, call_kwargs,
439
- func_name)
452
+ origin_net_file = inspect.getfile(type(stree.get_origin_network()))
453
+ if not os.path.exists(origin_net_file):
454
+ raise RuntimeError(f"For MindSpore Rewrite, in assign parser, origin_net_file "
455
+ f"{origin_net_file} not exist")
456
+ func_inst, ast_functiondef = AssignParser.process_external_function(stree, func_name, origin_net_file)
457
+ node = Node.inner_create_call_function(func_name, ast_assign, func_name, func_inst, targets,
458
+ call_args, call_kwargs)
440
459
  return node
441
- if isinstance(op, SequentialCell):
442
- node = self._cell_container_process(father_ast_node, stree, targets, func, call_args, call_kwargs,
443
- func_name, op)
460
+ if isinstance(func_inst, tuple(AssignParser.types_for_cell_container)):
461
+ node = AssignParser.cell_container_process(ast_assign, stree, targets, func_scope_name, call_args,
462
+ call_kwargs, func_name, func_inst)
444
463
  return node
445
- if isinstance(op, Primitive):
446
- return Node.create_call_buildin_op(op, father_ast_node, targets, func, call_args, call_kwargs, func_name)
447
- if isinstance(op, Cell):
448
- is_sub_tree = is_subtree(type(op).__name__)
449
- if is_sub_tree:
450
- stb = SymbolTreeBuilder(op)
464
+ if isinstance(func_inst, Primitive):
465
+ return Node.create_call_buildin_op(func_inst, ast_assign, targets, func_scope_name, call_args, call_kwargs,
466
+ func_name)
467
+ if isinstance(func_inst, Cell):
468
+ if is_subtree(func_inst):
469
+ # Instance of function is user custom network, create sub-symboltree
470
+ stb = SymbolTreeBuilder(func_inst)
451
471
  new_stree = stb.build()
452
- changed = AssignParser._update_field_in_init(func_scope, func_name, stree, new_stree)
453
- if changed:
454
- # class SubSubNet:
455
- # def __init__(self, global_vars):
456
- # self._handler = global_vars.get("handler")
457
- #
458
- # class SubNet:
459
- # def __init__(self, global_vars):
460
- # self._handler = global_vars.get("handler")
461
- # self._subsubnet = None
462
- # if xxx:
463
- # self._subsubnet = SubSubNet(xxx)
464
- #
465
- # Assuming there are two instance of SubNet A and B. "if xxx" in A is True, and in B is False.
466
- # So self._subsubnet in A is an instance of SubSubNet, and in B is None.
467
- # So After rewrite, A's code:
468
- # class SubNetA:
469
- # def __init__(self, global_vars):
470
- # self._handler = global_vars.get("handler")
471
- # self._subsubnet = SubSubNet(global_vars.get("subsubnet_args"))
472
- # while B's code:
473
- # class SubNetB:
474
- # def __init__(self, global_vars):
475
- # self._handler = global_vars.get("handler")
476
- # self._subsubnet = getattr(self._handler, "_subsubnet")
477
- # So SubNet should use SubNetA as its code when _update_field_in_init return True.
478
- # So SubNet should use SubNetB as its code when _update_field_in_init return False or undefined
479
- # error will occur to "global_vars.get("subsubnet_args")".
480
- stree.on_change(Event.CodeChangeEvent)
481
- # Sub-network in main-network is expressed as:
482
- # self._subnet = SubNet(global_vars.get("subnet_args"))
483
- # when subnet is changed, its class will change, take SubNet1 as new class-name, so code main-network
484
- # also need to change:
485
- # self._subnet = SubNet1(global_vars.get("subnet_args"))
486
- # so a change in sub-network should also be identified as a change in main-network.
487
- # so main-network should observe sub-network
472
+ AssignParser._update_field_in_init(func_scope, func_name, stree, new_stree)
488
473
  replacer = AstReplacer(new_stree.get_class_ast())
489
474
  replacer.replace_all(new_stree.get_ori_cls_name(), new_stree.get_opt_cls_name())
490
- return TreeNode.create_tree_node(new_stree, father_ast_node, targets, func, call_args, call_kwargs,
491
- func_name, new_stree.get_origin_network())
492
- return Node.create_call_buildin_op(op, father_ast_node, targets, func, call_args, call_kwargs, func_name)
493
- raise RuntimeError("For MindSpore Rewrite, only support Primitive or Cell operator or Primitive operator, got ",
494
- type(op).__name__)
475
+ return TreeNode.create_tree_node(new_stree, ast_assign, targets, func_scope_name, call_args,
476
+ call_kwargs, func_name, new_stree.get_origin_network())
477
+ # Instance of function is buildin cells
478
+ return Node.create_call_buildin_op(func_inst, ast_assign, targets, func_scope_name, call_args, call_kwargs,
479
+ func_name)
480
+ raise RuntimeError("For MindSpore Rewrite, unsupported operation in ast.Call found: ",
481
+ type(func_inst).__name__)
495
482
 
496
483
  @staticmethod
497
484
  def _tuple_elts_support_scopledvalue(value: ast.Tuple) -> bool:
@@ -506,62 +493,62 @@ class AssignParser(Parser):
506
493
  return True
507
494
 
508
495
  @staticmethod
509
- def _convert_ast_mathops_to_node(ast_node: Union[ast.BinOp, ast.UnaryOp, ast.BoolOp, ast.Compare],
510
- father_ast_node: ast.Assign) -> Node:
496
+ def _convert_ast_mathops_to_node(ast_op: Union[ast.BinOp, ast.UnaryOp, ast.BoolOp, ast.Compare],
497
+ ast_assign: ast.Assign) -> Node:
511
498
  """
512
499
  Convert ast node of math operations(ast.BinOp, ast.UnaryOp, ast.BoolOp, ast.Compare) to
513
500
  a symbol tree node.
514
501
 
515
502
  Args:
516
- ast_node (Union[ast.BinOp, ast.UnaryOp, ast.BoolOp, ast.Compare]): An assign node with mathematival
503
+ ast_op (Union[ast.BinOp, ast.UnaryOp, ast.BoolOp, ast.Compare]): An assign node with mathematival
517
504
  operation in construct function.
518
- father_ast_node (ast.Assign): Assign node in construct.
505
+ ast_assign (ast.Assign): Assign node in construct.
519
506
 
520
507
  Returns:
521
508
  An instance of Node in Symbol Tree.
522
509
 
523
510
  Raises:
524
- TypeError: The type of parameter 'ast_node' is not in (ast.BinOp, ast.UnaryOp, ast.BoolOp, ast.Compare).
511
+ TypeError: The type of parameter 'ast_op' is not in (ast.BinOp, ast.UnaryOp, ast.BoolOp, ast.Compare).
525
512
 
526
513
  """
527
- if not isinstance(ast_node, (ast.BinOp, ast.UnaryOp, ast.BoolOp, ast.Compare)):
528
- raise TypeError("The type of parameter 'ast_node' must be one of (ast.BinOp, ast.UnaryOp, "
529
- "ast.BoolOp, ast.Compare), but got ", type(ast_node))
514
+ if not isinstance(ast_op, (ast.BinOp, ast.UnaryOp, ast.BoolOp, ast.Compare)):
515
+ raise TypeError("The type of parameter 'ast_op' must be one of (ast.BinOp, ast.UnaryOp, "
516
+ "ast.BoolOp, ast.Compare), but got ", type(ast_op))
530
517
 
531
- targets = AssignParser._get_targets(AssignParser._create_scopedvalue(father_ast_node.targets[0]))
518
+ targets = AssignParser._get_targets(AssignParser._create_scopedvalue(ast_assign.targets[0]))
532
519
  args = []
533
- op_type_str = type(ast_node).__name__
520
+ op_type_str = type(ast_op).__name__
534
521
  op_type = ScopedValue.create_naming_value(op_type_str)
535
522
  ops = {}
536
523
  name = op_type_str
537
- if isinstance(ast_node, ast.BinOp):
538
- op = type(ast_node.op).__name__
524
+ if isinstance(ast_op, ast.BinOp):
525
+ op = type(ast_op.op).__name__
539
526
  name = f'{name}_{op}'
540
527
  ops['0'] = ScopedValue.create_naming_value(op)
541
- args.append(AssignParser._create_scopedvalue(ast_node.left))
542
- args.append(AssignParser._create_scopedvalue(ast_node.right))
543
- elif isinstance(ast_node, ast.UnaryOp):
544
- op = type(ast_node.op).__name__
528
+ args.append(AssignParser._create_scopedvalue(ast_op.left))
529
+ args.append(AssignParser._create_scopedvalue(ast_op.right))
530
+ elif isinstance(ast_op, ast.UnaryOp):
531
+ op = type(ast_op.op).__name__
545
532
  name = f'{name}_{op}'
546
533
  ops['0'] = ScopedValue.create_naming_value(op)
547
- args.append(AssignParser._create_scopedvalue(ast_node.operand))
548
- elif isinstance(ast_node, ast.BoolOp):
549
- op = type(ast_node.op).__name__
534
+ args.append(AssignParser._create_scopedvalue(ast_op.operand))
535
+ elif isinstance(ast_op, ast.BoolOp):
536
+ op = type(ast_op.op).__name__
550
537
  name = f'{name}_{op}'
551
538
  ops['0'] = ScopedValue.create_naming_value(op)
552
- for value in ast_node.values:
539
+ for value in ast_op.values:
553
540
  args.append(AssignParser._create_scopedvalue(value))
554
- elif isinstance(ast_node, ast.Compare):
555
- args.append(AssignParser._create_scopedvalue(ast_node.left))
556
- for idx, ast_op in enumerate(ast_node.ops):
557
- op = type(ast_op).__name__
541
+ elif isinstance(ast_op, ast.Compare):
542
+ args.append(AssignParser._create_scopedvalue(ast_op.left))
543
+ for idx, ast_cmp_op in enumerate(ast_op.ops):
544
+ op = type(ast_cmp_op).__name__
558
545
  name = f'{name}_{op}'
559
546
  ops[str(idx)] = ScopedValue.create_naming_value(op)
560
- args.append(AssignParser._create_scopedvalue(ast_node.comparators[idx]))
547
+ args.append(AssignParser._create_scopedvalue(ast_op.comparators[idx]))
561
548
  name = name.lower()
562
- return Node.create_mathops_node(father_ast_node, targets, op_type, args, ops, name)
549
+ return Node.create_mathops_node(ast_assign, targets, op_type, args, ops, name)
563
550
 
564
- def process(self, stree: SymbolTree, node: ast.Assign):
551
+ def process(self, stree: SymbolTree, node: ast.Assign, node_manager: NodeManager):
565
552
  """
566
553
  Parse ast.Assign and create a node in symbol tree.
567
554
 
@@ -573,6 +560,7 @@ class AssignParser(Parser):
573
560
  Args:
574
561
  stree ([SymbolTree]): Symbol Tree under parsing.
575
562
  node ([ast.Assign]): An ast.Assign node.
563
+ node_manager (NodeManager): NodeManager those asts belong to.
576
564
 
577
565
  Raises:
578
566
  RuntimeError: Only support one target in assign now.
@@ -583,19 +571,18 @@ class AssignParser(Parser):
583
571
  try:
584
572
  if len(targets) != 1:
585
573
  raise RuntimeError(
586
- error_str(f"only support one target in assign now.", child_node=targets, father_node=node))
574
+ error_str(f"only support one target in assign now.", targets, node))
587
575
  value = node.value
588
576
  if isinstance(value, ast.Call):
589
- stree.update_scope_for_unique(value)
590
- node_ = self._convert_ast_call_to_node(value, node, stree)
591
- stree.append_origin_field(node_)
577
+ node_ = self._convert_ast_call_to_node(value, node, stree, node_manager)
578
+ stree.append_origin_field(node_, node_manager)
592
579
  elif isinstance(value, (ast.BinOp, ast.UnaryOp, ast.BoolOp, ast.Compare)):
593
580
  node_ = AssignParser._convert_ast_mathops_to_node(value, node)
594
- stree.append_origin_field(node_)
581
+ stree.append_origin_field(node_, node_manager)
595
582
  elif isinstance(value, ast.Subscript):
596
583
  logger.info(f"ops-call({astunparse.unparse(node)}) in assign will be supported in near feature, "
597
584
  f"ignored as a python node now")
598
- stree.try_append_python_node(node, node)
585
+ stree.try_append_python_node(node, node, node_manager)
599
586
  elif isinstance(value, (ast.Name, ast.Constant, ast.Attribute, ast.Num, ast.NameConstant,
600
587
  ast.Bytes, ast.Str)):
601
588
  if isinstance(value, ast.Name):
@@ -604,13 +591,12 @@ class AssignParser(Parser):
604
591
  node_name = "constant_assign"
605
592
  elif isinstance(value, ast.Attribute):
606
593
  node_name = "attribute_assign"
607
- stree.update_scope_for_unique(value)
608
594
  else:
609
595
  node_name = "other_assign"
610
596
  targets = AssignParser._get_targets(AssignParser._create_scopedvalue(node.targets[0]))
611
597
  call_args = [AssignParser._create_scopedvalue(value)]
612
598
  node_ = Node.create_call_pass_through_method(node, targets, call_args, {}, node_name)
613
- stree.append_origin_field(node_)
599
+ stree.append_origin_field(node_, node_manager)
614
600
  elif isinstance(value, ast.Tuple):
615
601
  if AssignParser._tuple_elts_support_scopledvalue(value):
616
602
  # ensure that each element's type in tuple is supported by scopled value
@@ -620,14 +606,14 @@ class AssignParser(Parser):
620
606
  args.append(AssignParser._create_scopedvalue(elt))
621
607
  node_ = Node.create_call_method(node, targets, ScopedValue.create_naming_value("tuple"),
622
608
  args, {}, "tuple")
623
- stree.append_origin_field(node_)
609
+ stree.append_origin_field(node_, node_manager)
624
610
  else:
625
- logger.warning(f"some elements in Tuple of assign({astunparse.unparse(node)}) are not supported "
626
- "in rewrite, fallback to python")
627
- stree.try_append_python_node(node, node)
611
+ logger.info(f"some elements in Tuple of assign({astunparse.unparse(node)}) are not supported "
612
+ "in rewrite, fallback to python")
613
+ stree.try_append_python_node(node, node, node_manager)
628
614
  elif isinstance(value, (ast.List, ast.Dict)):
629
615
  # add these as callmethod node if necessary
630
- stree.try_append_python_node(node, node)
616
+ stree.try_append_python_node(node, node, node_manager)
631
617
  else:
632
618
  raise RuntimeError(
633
619
  error_str(f"only support (ast.Call, ast.BinOp, ast.BoolOp, ast.Subscript, ast.Name, ast.Constant, "
@@ -635,8 +621,8 @@ class AssignParser(Parser):
635
621
  f"ast.Dict) as value of ast.assign, but got ast type '{type(value).__name__}'",
636
622
  child_node=value, father_node=node))
637
623
  except RuntimeError:
638
- logger.info(f"ops-call({astunparse.unparse(node)}) not supported in rewrite, fallback to python")
639
- stree.try_append_python_node(node, node)
624
+ logger.info(f"ops-call({astunparse.unparse(node).strip()}) not supported in rewrite, fallback to python")
625
+ stree.try_append_python_node(node, node, node_manager)
640
626
 
641
627
 
642
628
  g_assign_parser = reg_parser(AssignParser())