mindspore 2.0.0a0__cp39-cp39-win_amd64.whl → 2.0.0rc1__cp39-cp39-win_amd64.whl

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

Potentially problematic release.


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

Files changed (655) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +4 -2
  3. mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
  4. mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
  5. mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
  6. mindspore/_check_jit_forbidden_api.py +102 -0
  7. mindspore/_checkparam.py +1066 -1001
  8. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +4 -3
  9. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +50 -48
  10. mindspore/_extends/parallel_compile/akg_compiler/util.py +9 -4
  11. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +4 -4
  12. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +9 -4
  13. mindspore/_extends/parse/__init__.py +5 -3
  14. mindspore/_extends/parse/namespace.py +16 -1
  15. mindspore/_extends/parse/parser.py +107 -22
  16. mindspore/_extends/parse/resources.py +0 -7
  17. mindspore/_extends/parse/standard_method.py +885 -413
  18. mindspore/amp.py +52 -57
  19. mindspore/boost/boost.py +2 -2
  20. mindspore/boost/boost_cell_wrapper.py +38 -20
  21. mindspore/boost/dim_reduce.py +3 -3
  22. mindspore/boost/group_loss_scale_manager.py +1 -1
  23. mindspore/common/__init__.py +4 -6
  24. mindspore/common/_decorator.py +2 -0
  25. mindspore/common/_register_for_adapter.py +55 -0
  26. mindspore/common/_stub_tensor.py +201 -0
  27. mindspore/common/_utils.py +41 -7
  28. mindspore/common/api.py +215 -141
  29. mindspore/common/dtype.py +8 -1
  30. mindspore/common/dump.py +2 -2
  31. mindspore/common/initializer.py +4 -2
  32. mindspore/common/jit_config.py +17 -13
  33. mindspore/common/mutable.py +33 -13
  34. mindspore/common/parameter.py +23 -21
  35. mindspore/common/seed.py +8 -24
  36. mindspore/common/sparse_tensor.py +62 -41
  37. mindspore/common/tensor.py +852 -1154
  38. mindspore/communication/__init__.py +2 -2
  39. mindspore/communication/_comm_helper.py +11 -4
  40. mindspore/communication/management.py +22 -21
  41. mindspore/config/op_info.config +501 -1008
  42. mindspore/context.py +201 -23
  43. mindspore/dataset/__init__.py +6 -6
  44. mindspore/dataset/audio/__init__.py +7 -7
  45. mindspore/dataset/audio/transforms.py +670 -30
  46. mindspore/dataset/audio/utils.py +47 -4
  47. mindspore/dataset/audio/validators.py +223 -1
  48. mindspore/dataset/callback/ds_callback.py +2 -2
  49. mindspore/dataset/core/config.py +210 -14
  50. mindspore/dataset/core/validator_helpers.py +2 -2
  51. mindspore/{parallel/nn/layers.py → dataset/debug/__init__.py} +7 -8
  52. mindspore/dataset/debug/debug_hook.py +65 -0
  53. mindspore/dataset/debug/pre_defined_hook.py +67 -0
  54. mindspore/dataset/engine/__init__.py +7 -3
  55. mindspore/dataset/engine/cache_client.py +1 -1
  56. mindspore/dataset/engine/datasets.py +322 -66
  57. mindspore/dataset/engine/datasets_audio.py +80 -76
  58. mindspore/dataset/engine/datasets_standard_format.py +51 -38
  59. mindspore/dataset/engine/datasets_text.py +232 -118
  60. mindspore/dataset/engine/datasets_user_defined.py +41 -17
  61. mindspore/dataset/engine/datasets_vision.py +746 -225
  62. mindspore/dataset/engine/graphdata.py +75 -10
  63. mindspore/dataset/engine/iterators.py +45 -5
  64. mindspore/dataset/engine/offload.py +48 -28
  65. mindspore/dataset/engine/validators.py +117 -8
  66. mindspore/dataset/text/__init__.py +6 -5
  67. mindspore/dataset/text/transforms.py +86 -3
  68. mindspore/dataset/text/utils.py +6 -4
  69. mindspore/dataset/text/validators.py +25 -0
  70. mindspore/dataset/transforms/__init__.py +3 -2
  71. mindspore/dataset/transforms/c_transforms.py +1 -1
  72. mindspore/dataset/transforms/transforms.py +2 -2
  73. mindspore/dataset/utils/__init__.py +2 -1
  74. mindspore/dataset/utils/line_reader.py +121 -0
  75. mindspore/dataset/vision/__init__.py +2 -3
  76. mindspore/dataset/vision/c_transforms.py +9 -9
  77. mindspore/dataset/vision/py_transforms.py +5 -5
  78. mindspore/dataset/vision/py_transforms_util.py +2 -0
  79. mindspore/dataset/vision/transforms.py +160 -161
  80. mindspore/dataset/vision/utils.py +3 -3
  81. mindspore/experimental/map_parameter.py +38 -26
  82. mindspore/include/OWNERS +0 -1
  83. mindspore/include/api/callback/callback.h +9 -13
  84. mindspore/include/api/callback/ckpt_saver.h +2 -2
  85. mindspore/include/api/callback/loss_monitor.h +2 -2
  86. mindspore/include/api/callback/lr_scheduler.h +5 -5
  87. mindspore/include/api/callback/time_monitor.h +2 -2
  88. mindspore/include/api/callback/train_accuracy.h +4 -6
  89. mindspore/include/api/cfg.h +19 -6
  90. mindspore/include/api/context.h +44 -9
  91. mindspore/include/api/delegate.h +1 -1
  92. mindspore/include/api/metrics/accuracy.h +2 -2
  93. mindspore/include/api/metrics/metrics.h +4 -3
  94. mindspore/include/api/model.h +9 -4
  95. mindspore/include/api/model_parallel_runner.h +2 -2
  96. mindspore/include/api/net.h +12 -11
  97. mindspore/include/api/serialization.h +19 -3
  98. mindspore/include/api/types.h +3 -3
  99. mindspore/include/dataset/constants.h +7 -0
  100. mindspore/include/dataset/text.h +59 -0
  101. mindspore/jpeg62.dll +0 -0
  102. mindspore/log.py +1 -1
  103. mindspore/mindrecord/filereader.py +18 -0
  104. mindspore/mindrecord/filewriter.py +197 -34
  105. mindspore/mindrecord/shardreader.py +9 -0
  106. mindspore/mindrecord/shardwriter.py +1 -1
  107. mindspore/mindrecord/tools/cifar100_to_mr.py +3 -3
  108. mindspore/mindrecord/tools/cifar10_to_mr.py +3 -3
  109. mindspore/mindrecord/tools/csv_to_mr.py +3 -3
  110. mindspore/mindrecord/tools/imagenet_to_mr.py +16 -11
  111. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  112. mindspore/mindrecord/tools/tfrecord_to_mr.py +6 -6
  113. mindspore/mindspore_backend.dll +0 -0
  114. mindspore/mindspore_common.dll +0 -0
  115. mindspore/mindspore_core.dll +0 -0
  116. mindspore/mindspore_glog.dll +0 -0
  117. mindspore/mindspore_shared_lib.dll +0 -0
  118. mindspore/nn/__init__.py +0 -4
  119. mindspore/nn/cell.py +204 -132
  120. mindspore/nn/dynamic_lr.py +1 -1
  121. mindspore/nn/grad/cell_grad.py +7 -6
  122. mindspore/nn/layer/__init__.py +5 -4
  123. mindspore/nn/layer/activation.py +40 -89
  124. mindspore/nn/layer/basic.py +255 -624
  125. mindspore/nn/layer/channel_shuffle.py +7 -6
  126. mindspore/nn/layer/combined.py +1 -1
  127. mindspore/nn/layer/container.py +41 -4
  128. mindspore/nn/layer/conv.py +64 -28
  129. mindspore/nn/layer/dense.py +9 -8
  130. mindspore/nn/layer/embedding.py +27 -25
  131. mindspore/nn/layer/image.py +53 -46
  132. mindspore/nn/layer/math.py +97 -105
  133. mindspore/nn/layer/normalization.py +117 -86
  134. mindspore/nn/layer/padding.py +185 -95
  135. mindspore/nn/layer/pooling.py +817 -414
  136. mindspore/nn/layer/rnn_cells.py +10 -15
  137. mindspore/nn/layer/rnns.py +37 -38
  138. mindspore/nn/layer/thor_layer.py +11 -12
  139. mindspore/nn/layer/timedistributed.py +5 -5
  140. mindspore/nn/layer/transformer.py +701 -0
  141. mindspore/nn/learning_rate_schedule.py +8 -8
  142. mindspore/nn/loss/__init__.py +5 -4
  143. mindspore/nn/loss/loss.py +334 -199
  144. mindspore/nn/optim/ada_grad.py +6 -6
  145. mindspore/nn/optim/adadelta.py +2 -3
  146. mindspore/nn/optim/adafactor.py +4 -5
  147. mindspore/nn/optim/adam.py +126 -62
  148. mindspore/nn/optim/adamax.py +3 -4
  149. mindspore/nn/optim/adasum.py +6 -6
  150. mindspore/nn/optim/asgd.py +2 -2
  151. mindspore/nn/optim/ftrl.py +67 -38
  152. mindspore/nn/optim/lamb.py +4 -5
  153. mindspore/nn/optim/lars.py +2 -2
  154. mindspore/nn/optim/lazyadam.py +43 -4
  155. mindspore/nn/optim/momentum.py +6 -5
  156. mindspore/nn/optim/optimizer.py +3 -1
  157. mindspore/nn/optim/proximal_ada_grad.py +2 -2
  158. mindspore/nn/optim/rmsprop.py +1 -1
  159. mindspore/nn/optim/rprop.py +8 -9
  160. mindspore/nn/optim/sgd.py +19 -13
  161. mindspore/nn/optim/thor.py +10 -15
  162. mindspore/nn/probability/__init__.py +0 -2
  163. mindspore/nn/probability/bijector/bijector.py +4 -4
  164. mindspore/nn/probability/bijector/invert.py +1 -1
  165. mindspore/nn/probability/bijector/softplus.py +2 -2
  166. mindspore/nn/probability/bnn_layers/dense_variational.py +1 -1
  167. mindspore/nn/probability/bnn_layers/layer_distribution.py +2 -2
  168. mindspore/nn/probability/distribution/_utils/utils.py +9 -15
  169. mindspore/nn/probability/distribution/bernoulli.py +3 -3
  170. mindspore/nn/probability/distribution/beta.py +1 -1
  171. mindspore/nn/probability/distribution/categorical.py +5 -7
  172. mindspore/nn/probability/distribution/cauchy.py +3 -3
  173. mindspore/nn/probability/distribution/distribution.py +2 -2
  174. mindspore/nn/probability/distribution/exponential.py +2 -2
  175. mindspore/nn/probability/distribution/gamma.py +3 -3
  176. mindspore/nn/probability/distribution/geometric.py +1 -1
  177. mindspore/nn/probability/distribution/gumbel.py +3 -3
  178. mindspore/nn/probability/distribution/half_normal.py +15 -11
  179. mindspore/nn/probability/distribution/laplace.py +16 -13
  180. mindspore/nn/probability/distribution/logistic.py +2 -2
  181. mindspore/nn/probability/distribution/normal.py +1 -1
  182. mindspore/nn/probability/distribution/poisson.py +1 -1
  183. mindspore/nn/probability/distribution/student_t.py +20 -15
  184. mindspore/nn/probability/distribution/transformed_distribution.py +4 -4
  185. mindspore/nn/probability/distribution/uniform.py +2 -2
  186. mindspore/nn/reinforcement/_tensors_queue.py +3 -3
  187. mindspore/nn/reinforcement/tensor_array.py +2 -2
  188. mindspore/nn/sparse/sparse.py +2 -2
  189. mindspore/nn/wrap/cell_wrapper.py +27 -10
  190. mindspore/nn/wrap/grad_reducer.py +2 -2
  191. mindspore/nn/wrap/loss_scale.py +40 -24
  192. mindspore/numpy/array_creations.py +33 -22
  193. mindspore/numpy/array_ops.py +35 -30
  194. mindspore/numpy/logic_ops.py +6 -27
  195. mindspore/numpy/math_ops.py +22 -19
  196. mindspore/numpy/utils.py +1 -1
  197. mindspore/numpy/utils_const.py +108 -58
  198. mindspore/opencv_core452.dll +0 -0
  199. mindspore/opencv_imgcodecs452.dll +0 -0
  200. mindspore/opencv_imgproc452.dll +0 -0
  201. mindspore/ops/_constants.py +0 -6
  202. mindspore/ops/_grad/__init__.py +2 -1
  203. mindspore/ops/_grad/grad_array_ops.py +86 -117
  204. mindspore/ops/_grad/grad_base.py +23 -1
  205. mindspore/ops/_grad/grad_clip_ops.py +2 -3
  206. mindspore/ops/_grad/grad_comm_ops.py +34 -24
  207. mindspore/ops/_grad/grad_implementations.py +9 -45
  208. mindspore/ops/_grad/grad_inner_ops.py +47 -4
  209. mindspore/ops/_grad/grad_math_ops.py +142 -117
  210. mindspore/ops/_grad/grad_nn_ops.py +71 -165
  211. mindspore/ops/_grad/grad_sequence_ops.py +296 -0
  212. mindspore/ops/_grad/grad_sparse.py +7 -6
  213. mindspore/ops/_grad_experimental/__init__.py +1 -0
  214. mindspore/ops/_grad_experimental/grad_array_ops.py +150 -15
  215. mindspore/ops/_grad_experimental/grad_image_ops.py +16 -7
  216. mindspore/ops/_grad_experimental/grad_inner_ops.py +1 -22
  217. mindspore/ops/_grad_experimental/grad_linalg_ops.py +4 -11
  218. mindspore/ops/_grad_experimental/grad_math_ops.py +210 -89
  219. mindspore/ops/_grad_experimental/grad_nn_ops.py +26 -22
  220. mindspore/ops/_grad_experimental/grad_scalar_ops.py +112 -0
  221. mindspore/ops/_grad_experimental/grad_sparse_ops.py +49 -8
  222. mindspore/ops/_op_impl/_custom_op/batch_matmul_impl.py +1 -1
  223. mindspore/ops/_op_impl/_custom_op/batchnorm_fold.py +2 -2
  224. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2.py +2 -2
  225. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad.py +2 -2
  226. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad_reduce.py +4 -4
  227. mindspore/ops/_op_impl/_custom_op/batchnorm_fold_grad.py +3 -3
  228. mindspore/ops/_op_impl/_custom_op/cholesky_trsm_impl.py +1 -1
  229. mindspore/ops/_op_impl/_custom_op/correction_mul.py +2 -2
  230. mindspore/ops/_op_impl/_custom_op/correction_mul_grad.py +2 -2
  231. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -5
  232. mindspore/ops/_op_impl/_custom_op/dsd_impl.py +1 -1
  233. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel.py +2 -2
  234. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad.py +2 -2
  235. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad_reduce.py +2 -2
  236. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer.py +2 -2
  237. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad.py +2 -2
  238. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad_reduce.py +2 -2
  239. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel.py +2 -2
  240. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel_grad.py +2 -2
  241. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer.py +2 -2
  242. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer_grad.py +2 -2
  243. mindspore/ops/_op_impl/_custom_op/fused_abs_max1_impl.py +1 -1
  244. mindspore/ops/_op_impl/_custom_op/img2col_impl.py +1 -1
  245. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +2 -2
  246. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_right_impl.py +1 -1
  247. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_left_cast_impl.py +1 -1
  248. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_right_mul_impl.py +1 -1
  249. mindspore/ops/_op_impl/_custom_op/matmul_cube_impl.py +2 -2
  250. mindspore/ops/_op_impl/_custom_op/matmul_dds_impl.py +0 -4
  251. mindspore/ops/_op_impl/_custom_op/matrix_combine_impl.py +1 -1
  252. mindspore/ops/_op_impl/_custom_op/minmax_update_perchannel.py +2 -2
  253. mindspore/ops/_op_impl/_custom_op/minmax_update_perlayer.py +2 -2
  254. mindspore/ops/_op_impl/_custom_op/transpose02314_impl.py +1 -1
  255. mindspore/ops/_op_impl/aicpu/__init__.py +236 -4
  256. mindspore/ops/_op_impl/aicpu/abs.py +36 -0
  257. mindspore/ops/_op_impl/aicpu/{adaptive_avg_pool_2d_v1.py → adaptive_avg_pool_2d.py} +6 -5
  258. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d_grad.py +34 -0
  259. mindspore/ops/_op_impl/aicpu/add.py +43 -0
  260. mindspore/ops/_op_impl/aicpu/addcdiv.py +0 -32
  261. mindspore/ops/_op_impl/aicpu/addcmul.py +0 -84
  262. mindspore/ops/_op_impl/aicpu/affine_grid_grad.py +35 -0
  263. mindspore/ops/_op_impl/aicpu/batch_matmul.py +43 -43
  264. mindspore/ops/_op_impl/aicpu/bernoulli.py +48 -0
  265. mindspore/{compression/common/__init__.py → ops/_op_impl/aicpu/bessel_i0.py} +15 -8
  266. mindspore/ops/_op_impl/aicpu/channel_shuffle.py +40 -0
  267. mindspore/ops/_op_impl/aicpu/conj.py +11 -0
  268. mindspore/ops/_op_impl/aicpu/cumulative_logsumexp.py +0 -3
  269. mindspore/ops/_op_impl/aicpu/deformable_offsets.py +38 -0
  270. mindspore/ops/_op_impl/aicpu/deformable_offsets_grad.py +43 -0
  271. mindspore/ops/_op_impl/aicpu/{adaptive_avg_pool_2d_grad_v1.py → digamma.py} +7 -9
  272. mindspore/ops/_op_impl/aicpu/flatten.py +1 -0
  273. mindspore/ops/_op_impl/aicpu/fmax.py +36 -0
  274. mindspore/ops/_op_impl/aicpu/fmin.py +37 -0
  275. mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_with_fixed_ksize.py +1 -1
  276. mindspore/ops/_op_impl/aicpu/fse_decode.py +43 -0
  277. mindspore/ops/_op_impl/aicpu/greater.py +41 -0
  278. mindspore/ops/_op_impl/aicpu/greater_equal.py +41 -0
  279. mindspore/ops/_op_impl/aicpu/index_put.py +50 -0
  280. mindspore/ops/_op_impl/aicpu/less.py +41 -0
  281. mindspore/{nn/probability/infer/variational/__init__.py → ops/_op_impl/aicpu/lgamma.py} +16 -10
  282. mindspore/ops/_op_impl/aicpu/mirror_pad.py +0 -4
  283. mindspore/ops/_op_impl/aicpu/mirror_pad_grad.py +0 -4
  284. mindspore/ops/_op_impl/aicpu/mul.py +3 -1
  285. mindspore/ops/_op_impl/aicpu/multinomial.py +14 -6
  286. mindspore/ops/_op_impl/aicpu/nllloss.py +38 -0
  287. mindspore/ops/_op_impl/aicpu/nllloss_grad.py +39 -0
  288. mindspore/ops/_op_impl/aicpu/ones_like.py +0 -2
  289. mindspore/ops/_op_impl/aicpu/polar.py +32 -0
  290. mindspore/ops/_op_impl/aicpu/polygamma.py +34 -0
  291. mindspore/ops/_op_impl/aicpu/quant_dtype_cast.py +40 -0
  292. mindspore/ops/_op_impl/aicpu/quantile.py +35 -0
  293. mindspore/ops/_op_impl/aicpu/ragged_tensor_to_sparse.py +73 -0
  294. mindspore/ops/_op_impl/aicpu/randperm_v2.py +41 -0
  295. mindspore/ops/_op_impl/aicpu/resize_bicubic.py +2 -8
  296. mindspore/ops/_op_impl/aicpu/resize_bicubic_grad.py +1 -1
  297. mindspore/ops/_op_impl/aicpu/resize_v2.py +68 -0
  298. mindspore/ops/_op_impl/aicpu/resize_v2_grad.py +68 -0
  299. mindspore/ops/_op_impl/aicpu/scatter_elements.py +4 -0
  300. mindspore/ops/_op_impl/aicpu/scatter_nd_update.py +2 -0
  301. mindspore/ops/_op_impl/aicpu/sequence_add.py +34 -0
  302. mindspore/ops/_op_impl/aicpu/sequence_add_offset.py +34 -0
  303. mindspore/ops/_op_impl/aicpu/sequence_addn.py +38 -0
  304. mindspore/ops/_op_impl/aicpu/smooth_l1_loss.py +35 -0
  305. mindspore/ops/_op_impl/aicpu/smooth_l1_loss_grad.py +37 -0
  306. mindspore/ops/_op_impl/aicpu/sparse_apply_adagrad_da.py +0 -24
  307. mindspore/ops/_op_impl/aicpu/sparse_cross.py +42 -0
  308. mindspore/ops/_op_impl/aicpu/sparse_slice.py +4 -0
  309. mindspore/ops/_op_impl/aicpu/sparse_slice_grad.py +6 -0
  310. mindspore/ops/_op_impl/aicpu/tensor_scatter_update.py +59 -0
  311. mindspore/ops/_op_impl/aicpu/trans_data.py +1 -0
  312. mindspore/ops/_op_impl/aicpu/tril_indices.py +34 -0
  313. mindspore/ops/_op_impl/aicpu/uniform.py +34 -0
  314. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +1 -0
  315. mindspore/ops/_op_impl/aicpu/unique_consecutive.py +10 -2
  316. mindspore/ops/_op_impl/cpu/dynamic_shape.py +5 -1
  317. mindspore/ops/_op_impl/cpu/sparse_slice.py +4 -0
  318. mindspore/ops/_op_impl/cpu/sparse_slice_grad.py +6 -0
  319. mindspore/ops/_op_impl/cpu/tensor_shape.py +5 -1
  320. mindspore/ops/_op_impl/tbe/__init__.py +27 -611
  321. mindspore/ops/_op_impl/tbe/assign_add_ds.py +1 -0
  322. mindspore/ops/_op_impl/tbe/atomic_addr_clean.py +1 -1
  323. mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +1 -1
  324. mindspore/ops/_op_impl/tbe/batch_matmul_ds.py +1 -0
  325. mindspore/ops/_op_impl/tbe/batch_to_space.py +1 -1
  326. mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +1 -1
  327. mindspore/ops/_op_impl/tbe/bn_infer_grad.py +4 -2
  328. mindspore/ops/_op_impl/tbe/bn_training_update.py +0 -1
  329. mindspore/ops/_op_impl/tbe/bn_training_update_ds.py +0 -1
  330. mindspore/ops/_op_impl/tbe/broadcast_to_ds.py +6 -4
  331. mindspore/ops/_op_impl/tbe/cast.py +0 -2
  332. mindspore/ops/_op_impl/tbe/cast_ds.py +3 -3
  333. mindspore/ops/_op_impl/tbe/data_format_dim_map_ds.py +1 -0
  334. mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +2 -2
  335. mindspore/ops/_op_impl/tbe/dynamic_atomic_addr_clean.py +1 -1
  336. mindspore/ops/_op_impl/tbe/gather_nd.py +1 -0
  337. mindspore/ops/_op_impl/tbe/{index_add.py → inplace_index_add.py} +3 -6
  338. mindspore/ops/_op_impl/tbe/matmul_ds.py +2 -0
  339. mindspore/ops/_op_impl/tbe/npu_clear_float_status_v2.py +35 -0
  340. mindspore/ops/_op_impl/tbe/npu_get_float_status_v2.py +35 -0
  341. mindspore/ops/_op_impl/tbe/scatter_mul.py +2 -0
  342. mindspore/ops/_op_impl/tbe/scatter_nd_add.py +0 -2
  343. mindspore/ops/_op_impl/tbe/space_to_batch.py +1 -1
  344. mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +1 -1
  345. mindspore/ops/_op_impl/tbe/trans_data_ds.py +15 -5
  346. mindspore/ops/_register_for_op.py +1 -0
  347. mindspore/ops/_utils/__init__.py +1 -2
  348. mindspore/ops/_utils/utils.py +19 -40
  349. mindspore/ops/_vmap/vmap_array_ops.py +116 -38
  350. mindspore/ops/_vmap/vmap_base.py +16 -9
  351. mindspore/ops/_vmap/vmap_convolution_ops.py +7 -10
  352. mindspore/ops/_vmap/vmap_grad_math_ops.py +4 -4
  353. mindspore/ops/_vmap/vmap_grad_nn_ops.py +7 -5
  354. mindspore/ops/_vmap/vmap_image_ops.py +12 -5
  355. mindspore/ops/_vmap/vmap_math_ops.py +46 -5
  356. mindspore/ops/_vmap/vmap_nn_ops.py +15 -21
  357. mindspore/ops/_vmap/vmap_random_ops.py +1 -1
  358. mindspore/ops/bprop_mindir/AdaptiveAvgPool2D_bprop.mindir +0 -0
  359. mindspore/ops/bprop_mindir/AdaptiveMaxPool2D_bprop.mindir +0 -0
  360. mindspore/ops/bprop_mindir/AvgPool3D_bprop.mindir +150 -0
  361. mindspore/ops/bprop_mindir/AvgPool_bprop.mindir +66 -0
  362. mindspore/ops/bprop_mindir/BCEWithLogitsLoss_bprop.mindir +0 -0
  363. mindspore/ops/bprop_mindir/BatchNormGrad_bprop.mindir +0 -0
  364. mindspore/ops/bprop_mindir/BiasAddGrad_bprop.mindir +0 -0
  365. mindspore/ops/bprop_mindir/BinaryCrossEntropy_bprop.mindir +33 -0
  366. mindspore/ops/bprop_mindir/BroadcastTo_bprop.mindir +220 -106
  367. mindspore/ops/bprop_mindir/CTCLoss_bprop.mindir +0 -0
  368. mindspore/ops/bprop_mindir/Conv2DBackpropFilter_bprop.mindir +240 -0
  369. mindspore/ops/bprop_mindir/Conv2DBackpropInput_bprop.mindir +247 -0
  370. mindspore/ops/bprop_mindir/Conv2DTranspose_bprop.mindir +247 -0
  371. mindspore/ops/bprop_mindir/Conv3DTranspose_bprop.mindir +315 -0
  372. mindspore/ops/bprop_mindir/Conv3D_bprop.mindir +278 -0
  373. mindspore/ops/bprop_mindir/DeformableOffsets_bprop.mindir +58 -0
  374. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +138 -0
  375. mindspore/ops/bprop_mindir/Dropout2D_bprop.mindir +0 -0
  376. mindspore/ops/bprop_mindir/Dropout3D_bprop.mindir +0 -0
  377. mindspore/ops/bprop_mindir/DropoutDoMask_bprop.mindir +22 -23
  378. mindspore/ops/bprop_mindir/DropoutGenMask_bprop.mindir +16 -17
  379. mindspore/ops/bprop_mindir/DropoutGrad_bprop.mindir +27 -0
  380. mindspore/ops/bprop_mindir/Dropout_bprop.mindir +0 -0
  381. mindspore/ops/bprop_mindir/DynamicGRUV2_bprop.mindir +0 -0
  382. mindspore/ops/bprop_mindir/DynamicRNN_bprop.mindir +0 -0
  383. mindspore/ops/bprop_mindir/Elu_bprop.mindir +16 -0
  384. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  385. mindspore/ops/bprop_mindir/ExpandDims_bprop.mindir +39 -41
  386. mindspore/ops/bprop_mindir/FastGeLU_bprop.mindir +16 -0
  387. mindspore/ops/bprop_mindir/Flatten_bprop.mindir +41 -43
  388. mindspore/ops/bprop_mindir/GatherNd_bprop.mindir +51 -57
  389. mindspore/ops/bprop_mindir/Gather_bprop.mindir +0 -0
  390. mindspore/ops/bprop_mindir/HSigmoid_bprop.mindir +16 -0
  391. mindspore/ops/bprop_mindir/HSwish_bprop.mindir +16 -0
  392. mindspore/ops/bprop_mindir/InstanceNorm_bprop.mindir +0 -0
  393. mindspore/ops/bprop_mindir/KLDivLoss_bprop.mindir +126 -0
  394. mindspore/ops/bprop_mindir/L2Loss_bprop.mindir +15 -0
  395. mindspore/ops/bprop_mindir/L2Normalize_bprop.mindir +30 -0
  396. mindspore/ops/bprop_mindir/LRN_bprop.mindir +43 -0
  397. mindspore/ops/bprop_mindir/LayerNormGrad_bprop.mindir +0 -0
  398. mindspore/ops/bprop_mindir/LogSoftmax_bprop.mindir +23 -0
  399. mindspore/ops/bprop_mindir/MaxPool3DGradGrad_bprop.mindir +74 -0
  400. mindspore/ops/bprop_mindir/MaxPool3DGrad_bprop.mindir +74 -0
  401. mindspore/ops/bprop_mindir/MaxPool3D_bprop.mindir +75 -0
  402. mindspore/ops/bprop_mindir/MaxPoolGradGrad_bprop.mindir +65 -0
  403. mindspore/ops/bprop_mindir/MaxPoolWithArgmax_bprop.mindir +0 -0
  404. mindspore/ops/bprop_mindir/MirrorPad_bprop.mindir +27 -0
  405. mindspore/ops/bprop_mindir/Mish_bprop.mindir +35 -0
  406. mindspore/ops/bprop_mindir/MulNoNan_bprop.mindir +0 -0
  407. mindspore/ops/bprop_mindir/NLLLoss_bprop.mindir +0 -0
  408. mindspore/ops/bprop_mindir/OneHot_bprop.mindir +24 -25
  409. mindspore/ops/bprop_mindir/PReLU_bprop.mindir +0 -0
  410. mindspore/ops/bprop_mindir/Pad_bprop.mindir +0 -0
  411. mindspore/ops/bprop_mindir/Padding_bprop.mindir +0 -0
  412. mindspore/ops/bprop_mindir/RNNTLoss_bprop.mindir +29 -0
  413. mindspore/ops/bprop_mindir/ROIAlign_bprop.mindir +82 -0
  414. mindspore/ops/bprop_mindir/ReLU6_bprop.mindir +16 -0
  415. mindspore/ops/bprop_mindir/ReLUV2_bprop.mindir +0 -0
  416. mindspore/ops/bprop_mindir/ReluGrad_bprop.mindir +18 -19
  417. mindspore/ops/bprop_mindir/Reshape_bprop.mindir +53 -53
  418. mindspore/ops/bprop_mindir/ResizeBilinear_bprop.mindir +29 -0
  419. mindspore/ops/bprop_mindir/ResizeNearestNeighbor_bprop.mindir +77 -85
  420. mindspore/ops/bprop_mindir/SeLU_bprop.mindir +21 -0
  421. mindspore/ops/bprop_mindir/SigmoidCrossEntropyWithLogits_bprop.mindir +21 -0
  422. mindspore/ops/bprop_mindir/SigmoidGrad_bprop.mindir +0 -0
  423. mindspore/ops/bprop_mindir/Sigmoid_bprop.mindir +16 -0
  424. mindspore/ops/bprop_mindir/SmoothL1Loss_bprop.mindir +36 -0
  425. mindspore/ops/bprop_mindir/SoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  426. mindspore/ops/bprop_mindir/Softplus_bprop.mindir +16 -0
  427. mindspore/ops/bprop_mindir/Softsign_bprop.mindir +33 -0
  428. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  429. mindspore/ops/bprop_mindir/Squeeze_bprop.mindir +37 -39
  430. mindspore/ops/bprop_mindir/StridedSlice_bprop.mindir +70 -72
  431. mindspore/ops/bprop_mindir/TanhGrad_bprop.mindir +0 -0
  432. mindspore/ops/bprop_mindir/Tanh_bprop.mindir +66 -0
  433. mindspore/ops/bprop_mindir/Tile_bprop.mindir +0 -0
  434. mindspore/ops/bprop_mindir/TopK_bprop.mindir +0 -0
  435. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +17 -17
  436. mindspore/ops/bprop_mindir/UpsampleNearest3D_bprop.mindir +32 -0
  437. mindspore/ops/bprop_mindir/UpsampleTrilinear3D_bprop.mindir +38 -0
  438. mindspore/ops/bprop_mindir/generate_mindir.py +2 -0
  439. mindspore/ops/composite/__init__.py +7 -8
  440. mindspore/ops/composite/base.py +101 -47
  441. mindspore/ops/composite/math_ops.py +188 -158
  442. mindspore/ops/composite/multitype_ops/_compile_utils.py +415 -170
  443. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +142 -87
  444. mindspore/ops/composite/multitype_ops/add_impl.py +6 -1
  445. mindspore/ops/composite/multitype_ops/div_impl.py +2 -3
  446. mindspore/ops/composite/multitype_ops/getitem_impl.py +31 -3
  447. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +31 -0
  448. mindspore/ops/composite/multitype_ops/greater_impl.py +31 -0
  449. mindspore/ops/composite/multitype_ops/in_impl.py +9 -0
  450. mindspore/ops/composite/multitype_ops/less_equal_impl.py +31 -0
  451. mindspore/ops/composite/multitype_ops/less_impl.py +31 -0
  452. mindspore/ops/composite/multitype_ops/mul_impl.py +21 -5
  453. mindspore/ops/composite/multitype_ops/not_in_impl.py +9 -0
  454. mindspore/ops/composite/multitype_ops/ones_like_impl.py +2 -4
  455. mindspore/ops/composite/multitype_ops/setitem_impl.py +21 -3
  456. mindspore/ops/composite/multitype_ops/sub_impl.py +1 -1
  457. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +35 -4
  458. mindspore/ops/function/__init__.py +152 -8
  459. mindspore/ops/function/array_func.py +2555 -674
  460. mindspore/ops/function/clip_func.py +209 -13
  461. mindspore/ops/function/debug_func.py +2 -2
  462. mindspore/ops/function/grad/__init__.py +2 -1
  463. mindspore/ops/function/grad/grad_func.py +147 -62
  464. mindspore/ops/function/image_func.py +54 -38
  465. mindspore/ops/function/linalg_func.py +167 -16
  466. mindspore/ops/function/math_func.py +4849 -1492
  467. mindspore/ops/function/nn_func.py +2573 -988
  468. mindspore/ops/function/other_func.py +115 -0
  469. mindspore/ops/function/parameter_func.py +3 -3
  470. mindspore/ops/function/random_func.py +790 -73
  471. mindspore/ops/function/sparse_func.py +98 -78
  472. mindspore/ops/function/sparse_unary_func.py +54 -53
  473. mindspore/ops/function/spectral_func.py +27 -24
  474. mindspore/ops/function/vmap_func.py +22 -2
  475. mindspore/ops/functional.py +97 -37
  476. mindspore/ops/op_info_register.py +70 -28
  477. mindspore/ops/operations/__init__.py +47 -14
  478. mindspore/ops/operations/_csr_ops.py +7 -7
  479. mindspore/ops/operations/_embedding_cache_ops.py +5 -5
  480. mindspore/ops/operations/_grad_ops.py +276 -187
  481. mindspore/ops/operations/_inner_ops.py +319 -113
  482. mindspore/ops/operations/_ms_kernel.py +10 -8
  483. mindspore/ops/operations/_ocr_ops.py +9 -9
  484. mindspore/ops/operations/_opaque_predicate_registry.py +4 -0
  485. mindspore/ops/operations/_quant_ops.py +137 -102
  486. mindspore/ops/operations/_rl_inner_ops.py +121 -60
  487. mindspore/ops/operations/_scalar_ops.py +466 -0
  488. mindspore/ops/operations/_sequence_ops.py +1004 -2
  489. mindspore/ops/operations/_tensor_array.py +10 -11
  490. mindspore/ops/operations/_thor_ops.py +1 -1
  491. mindspore/ops/operations/array_ops.py +801 -466
  492. mindspore/ops/operations/comm_ops.py +51 -49
  493. mindspore/ops/operations/control_ops.py +2 -2
  494. mindspore/ops/operations/custom_ops.py +123 -44
  495. mindspore/ops/operations/debug_ops.py +24 -24
  496. mindspore/ops/operations/image_ops.py +240 -153
  497. mindspore/ops/operations/inner_ops.py +34 -50
  498. mindspore/ops/operations/linalg_ops.py +31 -9
  499. mindspore/ops/operations/math_ops.py +988 -757
  500. mindspore/ops/operations/nn_ops.py +965 -819
  501. mindspore/ops/operations/other_ops.py +51 -40
  502. mindspore/ops/operations/random_ops.py +204 -122
  503. mindspore/ops/operations/rl_ops.py +8 -9
  504. mindspore/ops/operations/sparse_ops.py +254 -93
  505. mindspore/ops/operations/spectral_ops.py +35 -3
  506. mindspore/ops/primitive.py +111 -9
  507. mindspore/parallel/_auto_parallel_context.py +189 -83
  508. mindspore/parallel/_offload_context.py +185 -0
  509. mindspore/parallel/_parallel_serialization.py +99 -7
  510. mindspore/parallel/_ps_context.py +9 -5
  511. mindspore/parallel/_recovery_context.py +1 -1
  512. mindspore/parallel/_tensor.py +7 -1
  513. mindspore/{nn/transformer → parallel/_transformer}/__init__.py +6 -6
  514. mindspore/{nn/transformer → parallel/_transformer}/layers.py +6 -37
  515. mindspore/{nn/transformer → parallel/_transformer}/loss.py +4 -7
  516. mindspore/{nn/transformer → parallel/_transformer}/moe.py +20 -16
  517. mindspore/{nn/transformer → parallel/_transformer}/op_parallel_config.py +3 -3
  518. mindspore/{nn/transformer → parallel/_transformer}/transformer.py +48 -111
  519. mindspore/parallel/_utils.py +1 -2
  520. mindspore/parallel/algo_parameter_config.py +1 -1
  521. mindspore/parallel/checkpoint_transform.py +37 -34
  522. mindspore/parallel/shard.py +17 -18
  523. mindspore/profiler/common/validator/validate_path.py +2 -2
  524. mindspore/profiler/envprofiling.py +69 -47
  525. mindspore/profiler/parser/ascend_timeline_generator.py +49 -42
  526. mindspore/profiler/parser/base_timeline_generator.py +49 -56
  527. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +98 -78
  528. mindspore/profiler/parser/hwts_log_parser.py +1 -1
  529. mindspore/profiler/parser/integrator.py +15 -14
  530. mindspore/profiler/parser/minddata_analyzer.py +2 -2
  531. mindspore/profiler/parser/msadvisor_analyzer.py +12 -25
  532. mindspore/profiler/parser/msadvisor_parser.py +2 -4
  533. mindspore/profiler/parser/optime_parser.py +17 -18
  534. mindspore/profiler/parser/profiler_info.py +2 -1
  535. mindspore/profiler/profiling.py +218 -186
  536. mindspore/rewrite/__init__.py +3 -1
  537. mindspore/rewrite/api/node.py +1 -114
  538. mindspore/rewrite/api/node_type.py +3 -0
  539. mindspore/rewrite/api/pattern_engine.py +31 -1
  540. mindspore/rewrite/api/scoped_value.py +4 -4
  541. mindspore/rewrite/api/symbol_tree.py +3 -78
  542. mindspore/rewrite/api/tree_node_helper.py +1 -1
  543. mindspore/rewrite/ast_creator_register.py +1 -0
  544. mindspore/rewrite/ast_helpers/__init__.py +2 -2
  545. mindspore/rewrite/ast_helpers/ast_creator.py +1 -2
  546. mindspore/rewrite/ast_helpers/ast_finder.py +65 -0
  547. mindspore/rewrite/ast_helpers/ast_modifier.py +11 -3
  548. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +18 -2
  549. mindspore/rewrite/namespace.py +0 -2
  550. mindspore/rewrite/node.py +157 -11
  551. mindspore/rewrite/parsers/assign_parser.py +231 -53
  552. mindspore/rewrite/parsers/class_def_parser.py +187 -109
  553. mindspore/rewrite/parsers/for_parser.py +24 -14
  554. mindspore/rewrite/parsers/function_def_parser.py +21 -4
  555. mindspore/rewrite/parsers/if_parser.py +6 -2
  556. mindspore/rewrite/sparsify/__init__.py +0 -0
  557. mindspore/rewrite/sparsify/sparse_transformer.py +448 -0
  558. mindspore/rewrite/sparsify/sparsify.py +109 -0
  559. mindspore/rewrite/sparsify/utils.py +173 -0
  560. mindspore/rewrite/symbol_tree.py +256 -133
  561. mindspore/rewrite/symbol_tree_builder.py +38 -1
  562. mindspore/run_check/_check_version.py +69 -63
  563. mindspore/run_check/run_check.py +2 -1
  564. mindspore/tinyxml2.dll +0 -0
  565. mindspore/train/__init__.py +1 -1
  566. mindspore/train/_utils.py +28 -5
  567. mindspore/train/amp.py +273 -102
  568. mindspore/train/callback/_backup_and_restore.py +5 -5
  569. mindspore/train/callback/_callback.py +2 -2
  570. mindspore/train/callback/_checkpoint.py +3 -3
  571. mindspore/train/callback/_early_stop.py +3 -3
  572. mindspore/train/callback/_lambda_callback.py +2 -2
  573. mindspore/train/callback/_landscape.py +29 -31
  574. mindspore/train/callback/_loss_monitor.py +3 -3
  575. mindspore/train/callback/_on_request_exit.py +3 -3
  576. mindspore/train/callback/_reduce_lr_on_plateau.py +4 -4
  577. mindspore/train/callback/_summary_collector.py +23 -16
  578. mindspore/train/callback/_time_monitor.py +3 -3
  579. mindspore/train/checkpoint_pb2.py +68 -8
  580. mindspore/train/data_sink.py +15 -3
  581. mindspore/train/dataset_helper.py +10 -15
  582. mindspore/train/loss_scale_manager.py +8 -11
  583. mindspore/train/metrics/__init__.py +1 -1
  584. mindspore/train/metrics/bleu_score.py +1 -1
  585. mindspore/train/metrics/confusion_matrix.py +1 -1
  586. mindspore/train/metrics/cosine_similarity.py +1 -1
  587. mindspore/train/metrics/dice.py +2 -2
  588. mindspore/train/metrics/fbeta.py +1 -1
  589. mindspore/train/metrics/hausdorff_distance.py +4 -3
  590. mindspore/train/metrics/mean_surface_distance.py +2 -2
  591. mindspore/train/metrics/occlusion_sensitivity.py +1 -1
  592. mindspore/train/metrics/perplexity.py +1 -1
  593. mindspore/train/metrics/precision.py +1 -1
  594. mindspore/train/metrics/recall.py +1 -1
  595. mindspore/train/metrics/roc.py +2 -2
  596. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  597. mindspore/train/mind_ir_pb2.py +116 -37
  598. mindspore/train/model.py +45 -28
  599. mindspore/train/serialization.py +295 -188
  600. mindspore/train/summary/_summary_adapter.py +1 -1
  601. mindspore/train/summary/summary_record.py +43 -13
  602. mindspore/train/train_thor/convert_utils.py +2 -2
  603. mindspore/train/train_thor/dataset_helper.py +3 -3
  604. mindspore/turbojpeg.dll +0 -0
  605. mindspore/version.py +1 -1
  606. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/METADATA +3 -2
  607. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/RECORD +610 -541
  608. mindspore/compression/__init__.py +0 -19
  609. mindspore/compression/common/constant.py +0 -124
  610. mindspore/compression/export/__init__.py +0 -19
  611. mindspore/compression/export/quant_export.py +0 -515
  612. mindspore/compression/quant/__init__.py +0 -28
  613. mindspore/compression/quant/qat.py +0 -634
  614. mindspore/compression/quant/quant_utils.py +0 -462
  615. mindspore/compression/quant/quantizer.py +0 -68
  616. mindspore/nn/layer/quant.py +0 -1868
  617. mindspore/nn/layer/rnn_utils.py +0 -90
  618. mindspore/nn/probability/dpn/__init__.py +0 -22
  619. mindspore/nn/probability/dpn/vae/__init__.py +0 -25
  620. mindspore/nn/probability/dpn/vae/cvae.py +0 -140
  621. mindspore/nn/probability/dpn/vae/vae.py +0 -124
  622. mindspore/nn/probability/infer/__init__.py +0 -22
  623. mindspore/nn/probability/infer/variational/elbo.py +0 -70
  624. mindspore/nn/probability/infer/variational/svi.py +0 -84
  625. mindspore/nn/probability/toolbox/__init__.py +0 -22
  626. mindspore/nn/probability/toolbox/anomaly_detection.py +0 -99
  627. mindspore/nn/probability/toolbox/uncertainty_evaluation.py +0 -364
  628. mindspore/nn/probability/transforms/__init__.py +0 -22
  629. mindspore/nn/probability/transforms/transform_bnn.py +0 -262
  630. mindspore/nn/probability/zhusuan/__init__.py +0 -18
  631. mindspore/nn/probability/zhusuan/framework/__init__.py +0 -18
  632. mindspore/nn/probability/zhusuan/framework/bn.py +0 -95
  633. mindspore/nn/probability/zhusuan/variational/__init__.py +0 -18
  634. mindspore/nn/probability/zhusuan/variational/elbo.py +0 -46
  635. mindspore/ops/_op_impl/aicpu/parallel_concat.py +0 -42
  636. mindspore/ops/_op_impl/tbe/gather_v2.py +0 -56
  637. mindspore/ops/bprop_mindir/AssignAdd_bprop.mindir +0 -19
  638. mindspore/ops/bprop_mindir/Cast_bprop.mindir +0 -19
  639. mindspore/ops/bprop_mindir/LogicalOr_bprop.mindir +0 -19
  640. mindspore/ops/bprop_mindir/MatMul_bprop.mindir +0 -0
  641. mindspore/ops/bprop_mindir/ReLU_bprop.mindir +0 -17
  642. mindspore/ops/bprop_mindir/Transpose_bprop.mindir +0 -0
  643. mindspore/ops/bprop_mindir/UpdateState_bprop.mindir +0 -15
  644. mindspore/ops/composite/array_ops.py +0 -241
  645. mindspore/ops/composite/clip_ops.py +0 -134
  646. mindspore/ops/composite/random_ops.py +0 -426
  647. mindspore/ops/composite/vmap_ops.py +0 -38
  648. mindspore/parallel/nn/__init__.py +0 -42
  649. mindspore/parallel/nn/loss.py +0 -22
  650. mindspore/parallel/nn/moe.py +0 -21
  651. mindspore/parallel/nn/op_parallel_config.py +0 -22
  652. mindspore/parallel/nn/transformer.py +0 -31
  653. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/WHEEL +0 -0
  654. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/entry_points.txt +0 -0
  655. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -13,16 +13,17 @@
13
13
  # limitations under the License.
14
14
  # ============================================================================
15
15
  """Parse ast.ClassDef which is subclass of Cell to SymbolTree."""
16
+ import sys
16
17
  import ast
17
-
18
+ import inspect
18
19
  import astunparse
19
20
  from mindspore import log as logger
20
21
  from mindspore._extends.parse.namespace import CellNamespace
22
+ from mindspore.rewrite.ast_creator_register import ast_creator_registry
21
23
  from ..symbol_tree import SymbolTree
22
24
  from ..parser import Parser
23
25
  from ..parser_register import ParserRegister, reg_parser
24
- from ..api.scoped_value import ScopedValue
25
- from ..ast_helpers import AstReplacer, AstModifier
26
+ from ..ast_helpers import AstReplacer
26
27
  from ..common import error_str
27
28
 
28
29
 
@@ -115,50 +116,88 @@ class ClassDefParser(Parser):
115
116
  """Parse target type"""
116
117
  return ast.ClassDef
117
118
 
119
+ def handle_father_class(self, stree, node: ast.ClassDef):
120
+ """Handle father class."""
121
+ for base in node.bases:
122
+ parser: Parser = ParserRegister.instance().get_parser(type(base))
123
+ father_class = parser.process(stree, base)
124
+ if "Cell" not in father_class:
125
+ for k, m in sys.modules.items():
126
+ if k in ("_ast", "ast"):
127
+ continue
128
+ if hasattr(m, father_class):
129
+ cls = getattr(m, father_class)
130
+ source_code = inspect.getsource(cls)
131
+ ast_root: ast.Module = ast.parse(source_code)
132
+ stree._father_class_ast.append(ast_root) # pylint: disable=protected-access
133
+ break
134
+
135
+ def process(self, stree: SymbolTree, node: ast.ClassDef):
136
+ """
137
+ Parse init and construct in ast.ClassDef.
138
+
139
+ Args:
140
+ stree ([SymbolTree]): Symbol Tree under parsing.
141
+ node ([ast.ClassDef]): An ast.ClassDef node.
142
+ """
143
+ replacer = AstReplacer(node)
144
+ replacer.replace_all(stree.get_ori_cls_name(), stree.get_opt_cls_name())
145
+
146
+ stree.set_class_ast(node)
147
+ self.handle_father_class(stree, node)
148
+
149
+ if self._need_add_init_func(node):
150
+ self._add_init_func(node)
151
+
152
+ for body in node.body:
153
+ if isinstance(body, ast.FunctionDef):
154
+ if body.name == "__init__":
155
+ self._process_init_func_ast(stree, node, body)
156
+ stree.set_init_func_ast(body)
157
+ elif body.name == "construct":
158
+ parser: Parser = ParserRegister.instance().get_parser(ast.FunctionDef)
159
+ parser.process(stree, body)
160
+ else:
161
+ logger.info(
162
+ "Ignoring ast.FunctionDef in ast.ClassDef except __init__ and construct function: %s",
163
+ body.name)
164
+ else:
165
+ logger.info("Ignoring unsupported node(%s) in ast.ClassDef.", type(body).__name__)
166
+
118
167
  def _is_subtree_field(self, ori_net, field) -> bool:
119
168
  op = getattr(ori_net, field)
120
169
  return not type(op).__name__ in self._cell_namespace
121
170
 
122
- def _process_init_func_ast(self, stree: SymbolTree, init_ast: ast.FunctionDef):
171
+ def _process_init_func_ast(self, stree: SymbolTree, cls_ast: ast.ClassDef, init_ast: ast.FunctionDef):
123
172
  """Process init func"""
124
- super_index = ClassDefParser._find_super_expr_of_init_func(init_ast)
125
173
  ClassDefParser._modify_arguments_of_init_func(init_ast)
126
- self._replace_ori_field_of_init_func(stree, init_ast.body, super_index)
127
- # re-find super_index for init_func changed in _replace_ori_field_of_init_func
128
- super_index = ClassDefParser._find_super_expr_of_init_func(init_ast)
129
- ClassDefParser._insert_handler_to_init_func(init_ast, super_index)
174
+ new_bodies = self._replace_ori_field_of_init_func(stree, cls_ast, init_ast.body)
175
+ init_ast.body = new_bodies
130
176
 
131
177
  @staticmethod
132
- def _find_super_expr_of_init_func(ast_init_fn: ast.FunctionDef) -> int:
133
- """Find index of super(XXnet).__init__() in body of init ast.FunctionDef"""
134
- if not ast_init_fn.body:
135
- return -1
136
- super_index = -1
137
- while True:
138
- super_index += 1
139
- expr = ast_init_fn.body[super_index]
140
- if not isinstance(expr, ast.Expr):
141
- continue
142
- expr_value = expr.value
143
- if not isinstance(expr_value, ast.Call):
144
- continue
145
- expr_value_func = expr_value.func
146
- if not isinstance(expr_value_func, ast.Attribute):
147
- continue
148
- expr_value_func_value = expr_value_func.value
149
- if expr_value_func.attr != "__init__" or not isinstance(expr_value_func_value, ast.Call):
150
- continue
151
- expr_value_func_value_func = expr_value_func_value.func
152
- if not isinstance(expr_value_func_value_func, ast.Name) or expr_value_func_value_func.id != "super":
153
- continue
154
- break
155
- return super_index
178
+ def _is_super_expr(expr: ast.AST) -> bool:
179
+ """Check whether ast node is super().__init__()"""
180
+ if not isinstance(expr, ast.Expr):
181
+ return False
182
+ expr_value = expr.value
183
+ if not isinstance(expr_value, ast.Call):
184
+ return False
185
+ expr_value_func = expr_value.func
186
+ if not isinstance(expr_value_func, ast.Attribute):
187
+ return False
188
+ expr_value_func_value = expr_value_func.value
189
+ if expr_value_func.attr != "__init__" or not isinstance(expr_value_func_value, ast.Call):
190
+ return False
191
+ expr_value_func_value_func = expr_value_func_value.func
192
+ if not isinstance(expr_value_func_value_func, ast.Name) or expr_value_func_value_func.id != "super":
193
+ return False
194
+ return True
156
195
 
157
196
  @staticmethod
158
197
  def _modify_arguments_of_init_func(ast_init_fn: ast.FunctionDef):
159
198
  """Replace init function input parameters to self and global_vars."""
160
199
  arg_self = ast.arg(arg="self", annotation="")
161
- arg_global_vars = ast.arg(arg="global_vars", annotation="")
200
+ arg_global_vars = ast.arg(arg="obj", annotation="")
162
201
  ast_init_fn.args = ast.arguments(args=[arg_self, arg_global_vars], posonlyargs=[], kwonlyargs=[],
163
202
  kw_defaults=[], defaults=[], vararg=None, kwarg=None)
164
203
  ast.fix_missing_locations(ast_init_fn)
@@ -189,7 +228,116 @@ class ClassDefParser(Parser):
189
228
  for counter, index in enumerate(body_index_to_be_deleted):
190
229
  bodies.pop(index - counter)
191
230
 
192
- def _replace_ori_field_of_init_func(self, stree: SymbolTree, bodies: [], super_index: int):
231
+ def _handle_tuple_for_replace_ori_field(self, ast_tuple: ast.Tuple, new_bodies):
232
+ """ Handle ast.Assign node with target of ast.Tuple in init func to new ast nodes. """
233
+ for e in ast_tuple.elts:
234
+ if isinstance(e, ast.Attribute):
235
+ field_name = e.attr
236
+ value = ast.Call(ast.Name('getattr', ast.Load()),
237
+ [ast.Name('obj', ast.Load()),
238
+ ast.Constant(value=field_name, kind=None)], [])
239
+ new_assign = ast_creator_registry.get("Assign")(targets=[e], value=value)
240
+ new_bodies.append(new_assign)
241
+
242
+ def _handle_express_for_replace_ori_field(self, cls_ast, ast_expr: ast.Expr, stree, new_bodies):
243
+ """ Handle ast.Expr node in init func to new ast nodes. """
244
+ ast_call = ast_expr.value
245
+ if not isinstance(ast_call.func, ast.Attribute) or not isinstance(ast_call.func.value, ast.Name)\
246
+ or ast_call.func.value.id != 'self':
247
+ return
248
+ for func_def in cls_ast.body:
249
+ if isinstance(func_def, ast.FunctionDef) and func_def.name == ast_call.func.attr:
250
+ for func_def_body in func_def.body:
251
+ self._handle_bodies_for_replace_ori_field(cls_ast, func_def_body, stree, new_bodies)
252
+ return
253
+
254
+ def _handle_assign_for_replace_ori_field(self, ast_assign: ast.Assign, stree, new_bodies):
255
+ """ Handle ast.Assign node in init func to new ast nodes. """
256
+ if len(ast_assign.targets) != 1:
257
+ raise RuntimeError("not support multi-targets in assign now!", father_node=ast_assign)
258
+ target = ast_assign.targets[0]
259
+ if isinstance(target, ast.Tuple):
260
+ self._handle_tuple_for_replace_ori_field(target, new_bodies)
261
+ return
262
+ if not isinstance(target, ast.Attribute) or not isinstance(target.value, ast.Name)\
263
+ or target.value.id != 'self':
264
+ logger.info(f"Ignoring {astunparse.unparse(target)} in __init__ function.")
265
+ return
266
+ field_name = target.attr
267
+ # Ensure that the instance has corresponding attribute
268
+ if not hasattr(stree.get_origin_network(), field_name):
269
+ return
270
+ # Check to avoid repeat code
271
+ for new_ast in new_bodies:
272
+ if isinstance(new_ast, ast.Assign) and isinstance(new_ast.targets[0], ast.Attribute)\
273
+ and new_ast.targets[0].attr == field_name:
274
+ return
275
+ value = ast.Call(ast.Name('getattr', ast.Load()),
276
+ [ast.Name('obj', ast.Load()),
277
+ ast.Constant(value=field_name, kind=None)], [])
278
+ new_assign = ast_creator_registry.get("Assign")(targets=[target], value=value)
279
+ new_bodies.append(new_assign)
280
+
281
+ def _handle_bodies_for_replace_ori_field(self, cls_ast, body, stree, new_bodies):
282
+ """ handle_bodies_for_replace_ori_field. """
283
+ if self._is_super_expr(body):
284
+ new_bodies.append(body)
285
+ return
286
+ if isinstance(body, ast.If):
287
+ for if_body in body.body + body.orelse:
288
+ self._handle_bodies_for_replace_ori_field(cls_ast, if_body, stree, new_bodies)
289
+ return
290
+ if isinstance(body, ast.Expr) and isinstance(body.value, ast.Call):
291
+ self._handle_express_for_replace_ori_field(cls_ast, body, stree, new_bodies)
292
+ return
293
+ if isinstance(body, ast.Assign): # if not assign node, delete
294
+ self._handle_assign_for_replace_ori_field(body, stree, new_bodies)
295
+ return
296
+
297
+ def _need_add_init_func(self, cls_ast: ast.ClassDef) -> bool:
298
+ """If class has base nn.Cell but not have init func, then we need to add init func"""
299
+ base_nn_cell = False
300
+ for base in cls_ast.bases:
301
+ if isinstance(base, ast.Name) and base.id == 'Cell'\
302
+ or isinstance(base, ast.Attribute) and isinstance(base.value, ast.Name)\
303
+ and base.value.id == "nn" and base.attr == 'Cell':
304
+ base_nn_cell = True
305
+ break
306
+ if not base_nn_cell:
307
+ return False
308
+ for body in cls_ast.body:
309
+ if isinstance(body, ast.FunctionDef) and body.name == '__init__':
310
+ return False
311
+ return True
312
+
313
+ def _add_init_func(self, cls_ast: ast.ClassDef):
314
+ """Add init func with super().__init__()"""
315
+ init_func_ast = ast.FunctionDef(
316
+ name='__init__',
317
+ args=ast.arguments(
318
+ posonlyargs=[],
319
+ args=[
320
+ ast.arg(arg='self')],
321
+ kwonlyargs=[],
322
+ kw_defaults=[],
323
+ defaults=[]),
324
+ body=[
325
+ ast.Expr(
326
+ value=ast.Call(
327
+ func=ast.Attribute(
328
+ value=ast.Call(
329
+ func=ast.Name(id='super', ctx=ast.Load()),
330
+ args=[],
331
+ keywords=[]),
332
+ attr='__init__',
333
+ ctx=ast.Load()),
334
+ args=[],
335
+ keywords=[]))],
336
+ decorator_list=[])
337
+ cls_ast.body.insert(0, init_func_ast)
338
+ ast.fix_missing_locations(cls_ast)
339
+
340
+ def _replace_ori_field_of_init_func(self, stree: SymbolTree, cls_ast: ast.ClassDef, bodies: []):
193
341
  """
194
342
  Replace original field in init func to self.XX = getattr(self._handler, "XX").
195
343
  Only keep following two kinds of ast nodes in bodies right now:
@@ -198,86 +346,16 @@ class ClassDefParser(Parser):
198
346
 
199
347
  Args:
200
348
  bodies ([]): bodied of init ast.FunctionDef.
201
- super_index (int): index of super().__init__() in bodies.
202
349
 
203
350
  Raises:
204
351
  RuntimeError: Not support multi-targets in assign.
205
352
  RuntimeError: Only support target.value in [ast.Name] in assign node.
206
353
  """
207
- body_index_to_be_deleted = []
208
- scope_checker = AstScopeChecker("self")
209
- for body_index, body in enumerate(bodies):
210
- if body_index == super_index:
211
- continue # ignoring super.__init__()
212
- if isinstance(body, ast.If):
213
- if scope_checker.check(body.test):
214
- self._replace_ori_field_of_init_func(stree, body.body, -1)
215
- self._replace_ori_field_of_init_func(stree, body.orelse, -1)
216
- continue
217
- else:
218
- logger.info("Ignoring un-eval-able if: %s", astunparse.unparse(body.test))
219
- if not isinstance(body, ast.Assign): # if not assign node, delete
220
- body_index_to_be_deleted.append(body_index)
221
- continue
222
- if len(body.targets) != 1:
223
- raise RuntimeError("not support multi-targets in assign now!", father_node=body)
224
- target = body.targets[0]
225
- if not isinstance(target, ast.Attribute): # only keep class member
226
- body_index_to_be_deleted.append(body_index)
227
- continue
228
- if not isinstance(target.value, ast.Name):
229
- logger.info(f"Ignoring {astunparse.unparse(target)} in __init__ function.")
230
- body_index_to_be_deleted.append(body_index)
231
- continue
232
- target_value: ast.Name = target.value
233
- if target_value.id != "self":
234
- body_index_to_be_deleted.append(body_index)
235
- continue
236
- field_name = target.attr
237
- body.value = ast.Call(ast.Name('getattr', ast.Load()),
238
- [ast.Attribute(ast.Name('self', ast.Load()), '_handler', ast.Load()),
239
- ast.Constant(value=field_name, kind=None)], [])
240
- for counter, index in enumerate(body_index_to_be_deleted):
241
- bodies.pop(index - counter)
242
- ClassDefParser._remove_empty_ast_in_init_func(bodies)
243
-
244
- @staticmethod
245
- def _insert_handler_to_init_func(ast_init_fn: ast.FunctionDef, super_index):
246
- """Insert 'self._handler = global_vars.get('handler')' to init ast.FunctionDef.body"""
247
- if super_index == -1:
248
- super_index = 0
249
- AstModifier.insert_assign_to_function(ast_init_fn, [ScopedValue.create_naming_value("_handler", "self")],
250
- ScopedValue.create_naming_value("get", "global_vars"),
251
- [ScopedValue.create_variable_value("handler")], None,
252
- ast_init_fn.body[super_index], False)
253
-
254
- def process(self, stree: SymbolTree, node: ast.ClassDef):
255
- """
256
- Parse init and construct in ast.ClassDef.
257
354
 
258
- Args:
259
- stree ([SymbolTree]): Symbol Tree under parsing.
260
- node ([ast.ClassDef]): An ast.ClassDef node.
261
- """
262
- replacer = AstReplacer(node)
263
- replacer.replace_all(stree.get_ori_cls_name(), stree.get_opt_cls_name())
264
-
265
- stree.set_class_ast(node)
266
-
267
- for body in node.body:
268
- if isinstance(body, ast.FunctionDef):
269
- if body.name == "__init__":
270
- self._process_init_func_ast(stree, body)
271
- stree.set_init_func_ast(body)
272
- elif body.name == "construct":
273
- parser: Parser = ParserRegister.instance().get_parser(ast.FunctionDef)
274
- parser.process(stree, body)
275
- else:
276
- logger.info(
277
- "Ignoring ast.FunctionDef in ast.ClassDef except __init__ and construct function: %s",
278
- body.name)
279
- else:
280
- logger.info("Ignoring unsupported node(%s) in ast.ClassDef.", type(body).__name__)
355
+ new_bodies = []
356
+ for body in bodies:
357
+ self._handle_bodies_for_replace_ori_field(cls_ast, body, stree, new_bodies)
358
+ return new_bodies
281
359
 
282
360
 
283
361
  g_classdef_parser = reg_parser(ClassDefParser())
@@ -19,6 +19,7 @@ import astunparse
19
19
  from mindspore.rewrite.api.scoped_value import ScopedValue, ValueType
20
20
  from mindspore.rewrite.ast_helpers.ast_modifier import AstModifier
21
21
  from mindspore import log as logger
22
+ from mindspore import nn
22
23
  from ..symbol_tree import SymbolTree
23
24
  from ..parser import Parser
24
25
  from ..parser_register import reg_parser
@@ -34,12 +35,13 @@ class ForParser(Parser):
34
35
  def modify_init_ast(stree, i, obj, iter_var_name):
35
36
  """Modify the ast node in init function."""
36
37
  target = f"{iter_var_name.strip()}_{str(i)}"
37
- stree.add_global_vars(target, obj)
38
+ setattr(stree.get_origin_network(), target, obj)
38
39
  stree.get_origin_network().insert_child_to_cell(target, obj)
39
40
  AstModifier.insert_assign_to_function(stree.get_init_func_ast(),
40
41
  targets=[ScopedValue(ValueType.NamingValue, "self", target)],
41
- expr=ScopedValue(ValueType.NamingValue, "global_vars", "get"),
42
- args=[ScopedValue(ValueType.StringValue, "", target)])
42
+ expr=ScopedValue(ValueType.NamingValue, "", "getattr"),
43
+ args=[ScopedValue(ValueType.NamingValue, "", "obj"),
44
+ ScopedValue(ValueType.StringValue, "", target)])
43
45
 
44
46
  @staticmethod
45
47
  def modify_construct_ast(stree, ast_node, old_name, new_name):
@@ -62,19 +64,24 @@ class ForParser(Parser):
62
64
  logger.warning(
63
65
  f"For MindSpore Rewrtie, illegal iteration condition for For node, it must start with{EVAL_WHITE_LIST}")
64
66
  return
65
- if iter_code.startswith("self"):
67
+ if "self" in iter_code:
66
68
  iter_code = iter_code.replace("self", "stree.get_origin_network()")
67
69
  try:
68
70
  iter_obj = eval(iter_code)
69
- except Exception as e:
70
- error_info = f"For MindSpore Rewrtie, when eval '{iter_code}' by using JIT Fallback feature, " \
71
+ except (NameError, TypeError) as e:
72
+ _info = f"For MindSpore Rewrtie, when eval '{iter_code}' by using JIT Fallback feature, " \
71
73
  f"an error occurred: {str(e)}"
72
- logger.error(error_info)
73
- raise e
74
+ logger.warning(_info)
75
+ stree.try_append_python_node(node, node)
76
+ return
74
77
 
75
78
  iter_var_name = iter_code.split(".")[-1]
76
79
  index = stree.get_ast_root().body.index(node) + 1
77
80
  if isinstance(iter_obj, list):
81
+ for obj in iter_obj:
82
+ if not isinstance(obj, nn.Cell):
83
+ stree.try_append_python_node(node, node)
84
+ return
78
85
  for i, obj in enumerate(iter_obj):
79
86
  ForParser.modify_init_ast(stree, i, obj, iter_var_name)
80
87
  for body in node.body:
@@ -84,14 +91,17 @@ class ForParser(Parser):
84
91
  index += 1
85
92
  if stree.get_ori_cls_name() == "SequentialCell":
86
93
  stree.on_change(Event.CodeChangeEvent)
87
- elif isinstance(iter_obj, range):
88
- raise NotImplementedError("For MindSpore Rewrtie, range not support")
94
+ stree.get_ast_root().body.remove(node)
95
+ return
96
+ if isinstance(iter_obj, range):
97
+ logger.warning("For MindSpore Rewrite, range not support.")
89
98
  elif isinstance(iter_obj, zip):
90
- raise NotImplementedError("For MindSpore Rewrtie, zip not support")
99
+ logger.warning("For MindSpore Rewrite, zip not support.")
91
100
  elif isinstance(iter_obj, enumerate):
92
- raise NotImplementedError("For MindSpore Rewrtie, enumerate not support")
101
+ logger.warning("For MindSpore Rewrite, enumerate not support.")
93
102
  else:
94
- raise ValueError("For MindSpore Rewrtie, not supported type: ", iter_obj)
95
-
103
+ logger.warning(f"For MindSpore Rewrite, not supported type: {type(iter_obj).__name__}")
104
+ stree.try_append_python_node(node, node)
105
+ return
96
106
 
97
107
  g_for_parser = reg_parser(ForParser())
@@ -14,10 +14,11 @@
14
14
  # ============================================================================
15
15
  """Parse bodies of ast.FunctionDef which is construct function to nodes of SymbolTree."""
16
16
  import ast
17
-
17
+ from mindspore import log as logger
18
18
  from ..parser_register import ParserRegister, reg_parser
19
19
  from ..parser import Parser
20
20
  from ..symbol_tree import SymbolTree
21
+ from ..api.node_type import NodeType
21
22
 
22
23
 
23
24
  class FunctionDefParser(Parser):
@@ -27,6 +28,24 @@ class FunctionDefParser(Parser):
27
28
  """Parse target type"""
28
29
  return ast.FunctionDef
29
30
 
31
+ def remove_dead_code(self, stree: SymbolTree):
32
+ """Remove dead codes"""
33
+ # Find out return node position
34
+ return_idx = -1
35
+ for idx, node in enumerate(stree.nodes()):
36
+ if node.get_node_type() == NodeType.Output:
37
+ return_idx = idx
38
+ break
39
+ if return_idx == -1:
40
+ return
41
+ # Remove nodes after return node.
42
+ # Reverse traversal to ensure that nodes are orphaned and can be deleted.
43
+ for idx, node in reversed(list(enumerate(stree.nodes()))):
44
+ if idx <= return_idx:
45
+ break
46
+ logger.info(f"Remove dead code node:{node.get_name()}")
47
+ stree.erase_node(node)
48
+
30
49
  def process(self, stree: SymbolTree, node: ast.FunctionDef):
31
50
  """Parse bodies of ast.FunctionDef which is construct function to nodes of SymbolTree."""
32
51
  stree.set_ast_root(node)
@@ -44,13 +63,11 @@ class FunctionDefParser(Parser):
44
63
  else:
45
64
  parser.process(stree, body)
46
65
 
47
- for body in node.body:
48
- if isinstance(body, (ast.For, ast.If)):
49
- node.body.remove(body)
50
66
  if hasattr(node, "decorator_list"):
51
67
  stree.try_append_python_node(node, node.decorator_list)
52
68
  if hasattr(node, "returns"):
53
69
  stree.try_append_python_node(node, node.returns)
70
+ self.remove_dead_code(stree)
54
71
 
55
72
 
56
73
  g_functiondef_parser = reg_parser(FunctionDefParser())
@@ -46,14 +46,18 @@ class IfParser(Parser):
46
46
  bodies = None
47
47
  try:
48
48
  test_value = eval(test_code)
49
- except NameError:
49
+ except (NameError, TypeError):
50
50
  stree.try_append_python_node(node, node)
51
51
  return
52
52
 
53
53
  bodies = node.body if test_value else node.orelse
54
54
  index = stree.get_ast_root().body.index(node) + 1
55
+ info_node = ast.Name(id=f"# If node has been replaced by {bool(test_value)} branch.",
56
+ lineno=0, col_offset=0, ctx=ast.Load)
57
+ exp_node = ast.Expr(value=info_node, lineno=0, col_offset=0, ctx=ast.Load)
58
+ stree.get_ast_root().body.insert(index-1, exp_node)
55
59
  for body in bodies:
56
60
  stree.get_ast_root().body.insert(index, body)
57
61
  index += 1
58
-
62
+ stree.get_ast_root().body.remove(node)
59
63
  g_if_parser = reg_parser(IfParser())
File without changes