mindspore 2.1.0__cp37-cp37m-win_amd64.whl → 2.2.11__cp37-cp37m-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 (511) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
  3. mindspore/Newtonsoft.Json.dll +0 -0
  4. mindspore/__init__.py +4 -1
  5. mindspore/_c_dataengine.cp37-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp37-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp37-win_amd64.pyd +0 -0
  8. mindspore/_check_jit_forbidden_api.py +3 -1
  9. mindspore/_checkparam.py +23 -29
  10. mindspore/_extends/graph_kernel/__init__.py +0 -1
  11. mindspore/_extends/graph_kernel/model/graph_split.py +84 -76
  12. mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
  13. mindspore/_extends/graph_kernel/splitter.py +4 -11
  14. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
  15. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +84 -67
  16. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
  17. mindspore/_extends/parallel_compile/akg_compiler/util.py +10 -7
  18. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
  19. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +6 -5
  20. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
  21. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
  22. mindspore/_extends/parse/__init__.py +13 -15
  23. mindspore/_extends/parse/namespace.py +7 -33
  24. mindspore/_extends/parse/parser.py +67 -72
  25. mindspore/_extends/parse/resources.py +1 -1
  26. mindspore/_extends/parse/standard_method.py +86 -106
  27. mindspore/_extends/parse/trope.py +1 -1
  28. mindspore/_extends/remote/kernel_build_server.py +25 -7
  29. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  30. mindspore/_install_custom.py +43 -0
  31. mindspore/amp.py +47 -11
  32. mindspore/atlprov.dll +0 -0
  33. mindspore/boost/boost.py +1 -8
  34. mindspore/boost/boost_cell_wrapper.py +3 -2
  35. mindspore/boost/grad_accumulation.py +1 -1
  36. mindspore/boost/group_loss_scale_manager.py +8 -7
  37. mindspore/c1.dll +0 -0
  38. mindspore/c1xx.dll +0 -0
  39. mindspore/c2.dll +0 -0
  40. mindspore/common/__init__.py +5 -3
  41. mindspore/common/_jit_fallback_utils.py +6 -0
  42. mindspore/common/_register_for_adapter.py +2 -0
  43. mindspore/common/_register_for_tensor.py +2 -2
  44. mindspore/common/_stub_tensor.py +13 -0
  45. mindspore/common/_utils.py +29 -0
  46. mindspore/common/api.py +174 -259
  47. mindspore/common/auto_dynamic_shape.py +494 -0
  48. mindspore/common/dtype.py +18 -11
  49. mindspore/common/dump.py +6 -4
  50. mindspore/common/initializer.py +14 -14
  51. mindspore/common/jit_config.py +33 -15
  52. mindspore/common/lazy_inline.py +126 -7
  53. mindspore/common/mindir_util.py +101 -0
  54. mindspore/common/parameter.py +51 -41
  55. mindspore/common/seed.py +4 -4
  56. mindspore/common/sparse_tensor.py +13 -14
  57. mindspore/common/tensor.py +243 -165
  58. mindspore/communication/__init__.py +7 -4
  59. mindspore/communication/_comm_helper.py +83 -4
  60. mindspore/communication/management.py +152 -84
  61. mindspore/config/op_info.config +14 -3
  62. mindspore/context.py +152 -61
  63. mindspore/dataset/__init__.py +5 -5
  64. mindspore/dataset/audio/__init__.py +2 -2
  65. mindspore/dataset/audio/transforms.py +52 -52
  66. mindspore/dataset/callback/ds_callback.py +16 -2
  67. mindspore/dataset/core/config.py +68 -51
  68. mindspore/dataset/engine/cache_client.py +33 -7
  69. mindspore/dataset/engine/datasets.py +250 -112
  70. mindspore/dataset/engine/datasets_audio.py +43 -211
  71. mindspore/dataset/engine/datasets_standard_format.py +16 -35
  72. mindspore/dataset/engine/datasets_text.py +43 -67
  73. mindspore/dataset/engine/datasets_user_defined.py +86 -100
  74. mindspore/dataset/engine/datasets_vision.py +219 -1029
  75. mindspore/dataset/engine/iterators.py +11 -4
  76. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
  77. mindspore/dataset/engine/obs/util.py +3 -0
  78. mindspore/dataset/engine/samplers.py +1 -1
  79. mindspore/dataset/engine/validators.py +19 -5
  80. mindspore/dataset/text/__init__.py +3 -3
  81. mindspore/dataset/text/transforms.py +101 -127
  82. mindspore/dataset/text/utils.py +205 -138
  83. mindspore/dataset/transforms/__init__.py +1 -1
  84. mindspore/dataset/transforms/py_transforms_util.py +40 -12
  85. mindspore/dataset/transforms/transforms.py +95 -40
  86. mindspore/dataset/utils/browse_dataset.py +8 -2
  87. mindspore/dataset/utils/line_reader.py +17 -19
  88. mindspore/dataset/vision/__init__.py +3 -3
  89. mindspore/dataset/vision/c_transforms.py +6 -3
  90. mindspore/dataset/vision/transforms.py +409 -287
  91. mindspore/dataset/vision/utils.py +13 -14
  92. mindspore/dataset/vision/validators.py +11 -1
  93. mindspore/dnnl.dll +0 -0
  94. mindspore/dpcmi.dll +0 -0
  95. mindspore/experimental/map_parameter.py +14 -0
  96. mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
  97. mindspore/{nn/optim_ex → experimental/optim}/adam.py +60 -67
  98. mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
  99. mindspore/experimental/optim/lr_scheduler.py +1427 -0
  100. mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
  101. mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
  102. mindspore/gen_ops.py +273 -0
  103. mindspore/include/OWNERS +0 -1
  104. mindspore/include/api/data_type.h +2 -1
  105. mindspore/include/api/graph.h +0 -15
  106. mindspore/include/api/kernel.h +2 -0
  107. mindspore/include/api/kernel_api.h +37 -12
  108. mindspore/include/api/model.h +17 -14
  109. mindspore/include/api/status.h +8 -3
  110. mindspore/include/api/types.h +37 -4
  111. mindspore/include/c_api/ms/abstract.h +67 -0
  112. mindspore/include/c_api/ms/attribute.h +197 -0
  113. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  114. mindspore/include/c_api/ms/base/macros.h +32 -0
  115. mindspore/include/c_api/ms/base/status.h +33 -0
  116. mindspore/include/c_api/ms/base/types.h +282 -0
  117. mindspore/include/c_api/ms/context.h +102 -0
  118. mindspore/include/c_api/ms/graph.h +160 -0
  119. mindspore/include/c_api/ms/node.h +606 -0
  120. mindspore/include/c_api/ms/tensor.h +161 -0
  121. mindspore/include/c_api/ms/value.h +84 -0
  122. mindspore/include/dataset/constants.h +6 -5
  123. mindspore/include/dataset/execute.h +23 -13
  124. mindspore/include/dataset/text.h +26 -26
  125. mindspore/include/dataset/transforms.h +13 -13
  126. mindspore/include/dataset/vision.h +60 -60
  127. mindspore/include/dataset/vision_ascend.h +5 -6
  128. mindspore/include/dataset/vision_lite.h +17 -17
  129. mindspore/jpeg62.dll +0 -0
  130. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  131. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  132. mindspore/mindspore_backend.dll +0 -0
  133. mindspore/mindspore_common.dll +0 -0
  134. mindspore/mindspore_core.dll +0 -0
  135. mindspore/mindspore_glog.dll +0 -0
  136. mindspore/mindspore_shared_lib.dll +0 -0
  137. mindspore/msobj140.dll +0 -0
  138. mindspore/mspdb140.dll +0 -0
  139. mindspore/mspdbcore.dll +0 -0
  140. mindspore/mspdbst.dll +0 -0
  141. mindspore/mspft140.dll +0 -0
  142. mindspore/msvcdis140.dll +0 -0
  143. mindspore/msvcp140_1.dll +0 -0
  144. mindspore/msvcp140_2.dll +0 -0
  145. mindspore/msvcp140_atomic_wait.dll +0 -0
  146. mindspore/msvcp140_codecvt_ids.dll +0 -0
  147. mindspore/nn/__init__.py +0 -2
  148. mindspore/nn/cell.py +313 -74
  149. mindspore/nn/dynamic_lr.py +21 -21
  150. mindspore/nn/layer/activation.py +22 -30
  151. mindspore/nn/layer/basic.py +15 -13
  152. mindspore/nn/layer/channel_shuffle.py +1 -1
  153. mindspore/nn/layer/container.py +271 -9
  154. mindspore/nn/layer/conv.py +323 -204
  155. mindspore/nn/layer/dense.py +8 -5
  156. mindspore/nn/layer/embedding.py +33 -27
  157. mindspore/nn/layer/flash_attention.py +61 -95
  158. mindspore/nn/layer/image.py +8 -6
  159. mindspore/nn/layer/math.py +16 -25
  160. mindspore/nn/layer/normalization.py +107 -66
  161. mindspore/nn/layer/padding.py +1 -1
  162. mindspore/nn/layer/pooling.py +131 -109
  163. mindspore/nn/layer/rnn_cells.py +27 -22
  164. mindspore/nn/layer/rnns.py +13 -16
  165. mindspore/nn/layer/thor_layer.py +1 -1
  166. mindspore/nn/layer/transformer.py +221 -154
  167. mindspore/nn/learning_rate_schedule.py +9 -1
  168. mindspore/nn/loss/loss.py +235 -174
  169. mindspore/nn/optim/ada_grad.py +2 -1
  170. mindspore/nn/optim/adadelta.py +1 -0
  171. mindspore/nn/optim/adafactor.py +2 -1
  172. mindspore/nn/optim/adam.py +7 -4
  173. mindspore/nn/optim/adamax.py +3 -2
  174. mindspore/nn/optim/adasum.py +2 -2
  175. mindspore/nn/optim/asgd.py +2 -3
  176. mindspore/nn/optim/ftrl.py +6 -5
  177. mindspore/nn/optim/lamb.py +7 -4
  178. mindspore/nn/optim/lars.py +1 -1
  179. mindspore/nn/optim/lazyadam.py +5 -3
  180. mindspore/nn/optim/momentum.py +2 -1
  181. mindspore/nn/optim/optimizer.py +53 -4
  182. mindspore/nn/optim/proximal_ada_grad.py +3 -4
  183. mindspore/nn/optim/rmsprop.py +4 -3
  184. mindspore/nn/optim/rprop.py +23 -12
  185. mindspore/nn/optim/sgd.py +26 -11
  186. mindspore/nn/optim/thor.py +9 -7
  187. mindspore/nn/probability/bijector/bijector.py +5 -5
  188. mindspore/nn/probability/bijector/power_transform.py +27 -27
  189. mindspore/nn/probability/bijector/softplus.py +3 -3
  190. mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
  191. mindspore/nn/probability/distribution/bernoulli.py +5 -5
  192. mindspore/nn/probability/distribution/beta.py +3 -3
  193. mindspore/nn/probability/distribution/categorical.py +7 -7
  194. mindspore/nn/probability/distribution/cauchy.py +0 -1
  195. mindspore/nn/probability/distribution/distribution.py +3 -3
  196. mindspore/nn/probability/distribution/gamma.py +3 -3
  197. mindspore/nn/probability/distribution/geometric.py +4 -4
  198. mindspore/nn/probability/distribution/gumbel.py +4 -4
  199. mindspore/nn/probability/distribution/log_normal.py +2 -2
  200. mindspore/nn/probability/distribution/logistic.py +2 -2
  201. mindspore/nn/probability/distribution/poisson.py +4 -4
  202. mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
  203. mindspore/nn/probability/distribution/uniform.py +6 -6
  204. mindspore/nn/wrap/__init__.py +4 -2
  205. mindspore/nn/wrap/cell_wrapper.py +87 -34
  206. mindspore/nn/wrap/grad_reducer.py +8 -5
  207. mindspore/nn/wrap/loss_scale.py +105 -42
  208. mindspore/numpy/array_creations.py +1 -2
  209. mindspore/numpy/array_ops.py +3 -2
  210. mindspore/numpy/utils_const.py +5 -5
  211. mindspore/opencv_core452.dll +0 -0
  212. mindspore/opencv_imgcodecs452.dll +0 -0
  213. mindspore/opencv_imgproc452.dll +0 -0
  214. mindspore/ops/_grad_experimental/__init__.py +0 -5
  215. mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
  216. mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
  217. mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
  218. mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
  219. mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
  220. mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
  221. mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
  222. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
  223. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  224. mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
  225. mindspore/ops/_op_impl/aicpu/add.py +3 -3
  226. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  227. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  228. mindspore/ops/_op_impl/{_custom_op/flash_attention/constants.py → aicpu/eps.py} +18 -27
  229. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  230. mindspore/ops/_op_impl/aicpu/linear_sum_assignment.py +21 -2
  231. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  232. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  233. mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
  234. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  235. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  236. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  237. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  238. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  239. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  240. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  241. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
  242. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
  243. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  244. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  245. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  246. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  247. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  248. mindspore/ops/_op_impl/tbe/__init__.py +4 -4
  249. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  250. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  251. mindspore/ops/_primitive_cache.py +1 -1
  252. mindspore/ops/_tracefunc.py +45 -13
  253. mindspore/ops/_utils/utils.py +6 -1
  254. mindspore/ops/_vmap/vmap_array_ops.py +3 -3
  255. mindspore/ops/_vmap/vmap_base.py +3 -3
  256. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  257. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  258. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  259. mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
  260. mindspore/ops/arg_dtype_cast.py +54 -0
  261. mindspore/ops/composite/base.py +37 -10
  262. mindspore/ops/composite/math_ops.py +5 -4
  263. mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
  264. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
  265. mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
  266. mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
  267. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  268. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  269. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  270. mindspore/ops/deprecated.py +304 -0
  271. mindspore/ops/function/__init__.py +4 -1
  272. mindspore/ops/function/array_func.py +174 -193
  273. mindspore/ops/function/clip_func.py +81 -13
  274. mindspore/ops/function/debug_func.py +1 -1
  275. mindspore/ops/function/grad/grad_func.py +18 -9
  276. mindspore/ops/function/image_func.py +10 -4
  277. mindspore/ops/function/linalg_func.py +5 -5
  278. mindspore/ops/function/math_func.py +575 -386
  279. mindspore/ops/function/nn_func.py +568 -260
  280. mindspore/ops/function/random_func.py +88 -57
  281. mindspore/ops/function/sparse_func.py +1 -1
  282. mindspore/ops/function/sparse_unary_func.py +14 -12
  283. mindspore/ops/function/vmap_func.py +6 -5
  284. mindspore/ops/functional.py +15 -10
  285. mindspore/ops/op_info_register.py +244 -25
  286. mindspore/ops/operations/__init__.py +31 -19
  287. mindspore/ops/operations/_grad_ops.py +71 -7
  288. mindspore/ops/operations/_inner_ops.py +350 -17
  289. mindspore/ops/operations/_quant_ops.py +4 -8
  290. mindspore/ops/operations/_sequence_ops.py +42 -0
  291. mindspore/ops/operations/array_ops.py +68 -282
  292. mindspore/ops/operations/comm_ops.py +107 -59
  293. mindspore/ops/operations/custom_ops.py +94 -70
  294. mindspore/ops/operations/debug_ops.py +8 -4
  295. mindspore/ops/operations/image_ops.py +18 -12
  296. mindspore/ops/operations/inner_ops.py +26 -3
  297. mindspore/ops/operations/math_ops.py +192 -144
  298. mindspore/ops/operations/nn_ops.py +857 -489
  299. mindspore/ops/operations/other_ops.py +0 -22
  300. mindspore/ops/operations/random_ops.py +53 -111
  301. mindspore/ops/operations/sparse_ops.py +3 -1
  302. mindspore/ops/primitive.py +24 -18
  303. mindspore/parallel/_auto_parallel_context.py +68 -8
  304. mindspore/parallel/_cost_model_context.py +2 -2
  305. mindspore/parallel/_offload_context.py +17 -3
  306. mindspore/parallel/_parallel_serialization.py +12 -5
  307. mindspore/parallel/_ps_context.py +12 -0
  308. mindspore/parallel/_tensor.py +18 -13
  309. mindspore/parallel/_transformer/layers.py +5 -3
  310. mindspore/parallel/_transformer/loss.py +1 -0
  311. mindspore/parallel/_transformer/moe.py +2 -2
  312. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  313. mindspore/parallel/_transformer/transformer.py +23 -3
  314. mindspore/parallel/_utils.py +11 -7
  315. mindspore/parallel/algo_parameter_config.py +85 -5
  316. mindspore/parallel/checkpoint_transform.py +19 -12
  317. mindspore/parallel/shard.py +21 -14
  318. mindspore/pgodb140.dll +0 -0
  319. mindspore/pgort140.dll +0 -0
  320. mindspore/profiler/common/struct_type.py +3 -3
  321. mindspore/profiler/common/util.py +4 -2
  322. mindspore/profiler/envprofiling.py +1 -1
  323. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  324. mindspore/profiler/parser/ascend_flops_generator.py +2 -2
  325. mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
  326. mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
  327. mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
  328. mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
  329. mindspore/profiler/parser/ascend_op_generator.py +6 -6
  330. mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
  331. mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
  332. mindspore/profiler/parser/base_timeline_generator.py +10 -8
  333. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
  334. mindspore/profiler/parser/flops_parser.py +15 -11
  335. mindspore/profiler/parser/framework_parser.py +38 -22
  336. mindspore/profiler/parser/hccl_parser.py +16 -12
  337. mindspore/profiler/parser/integrator.py +22 -11
  338. mindspore/profiler/parser/memory_usage_parser.py +2 -2
  339. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  340. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  341. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  342. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  343. mindspore/profiler/parser/optime_parser.py +1 -1
  344. mindspore/profiler/parser/profiler_info.py +21 -2
  345. mindspore/profiler/parser/step_trace_parser.py +11 -14
  346. mindspore/profiler/profiling.py +179 -89
  347. mindspore/rewrite/api/node.py +102 -19
  348. mindspore/rewrite/api/node_type.py +5 -1
  349. mindspore/rewrite/api/pattern_engine.py +1 -1
  350. mindspore/rewrite/api/scoped_value.py +9 -17
  351. mindspore/rewrite/api/symbol_tree.py +131 -47
  352. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  353. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  354. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  355. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
  356. mindspore/rewrite/common/rewrite_elog.py +5 -1
  357. mindspore/rewrite/namer.py +33 -24
  358. mindspore/rewrite/namespace.py +14 -5
  359. mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
  360. mindspore/rewrite/node/call_function.py +79 -0
  361. mindspore/rewrite/node/cell_container.py +135 -0
  362. mindspore/rewrite/node/control_flow.py +88 -0
  363. mindspore/rewrite/{node.py → node/node.py} +273 -234
  364. mindspore/rewrite/node/node_manager.py +254 -0
  365. mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
  366. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  367. mindspore/rewrite/parsers/assign_parser.py +216 -221
  368. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  369. mindspore/rewrite/parsers/class_def_parser.py +174 -113
  370. mindspore/rewrite/parsers/constant_parser.py +9 -6
  371. mindspore/rewrite/parsers/container_parser.py +9 -7
  372. mindspore/rewrite/parsers/for_parser.py +42 -21
  373. mindspore/rewrite/parsers/function_def_parser.py +24 -16
  374. mindspore/rewrite/parsers/if_parser.py +28 -24
  375. mindspore/rewrite/parsers/module_parser.py +196 -25
  376. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  377. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  378. mindspore/rewrite/parsers/return_parser.py +6 -6
  379. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  380. mindspore/rewrite/sparsify/utils.py +1 -1
  381. mindspore/rewrite/symbol_tree.py +523 -578
  382. mindspore/rewrite/symbol_tree_builder.py +9 -193
  383. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  384. mindspore/run_check/_check_version.py +6 -4
  385. mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
  386. mindspore/safeguard/rewrite_obfuscation.py +541 -0
  387. mindspore/tbbmalloc.dll +0 -0
  388. mindspore/tinyxml2.dll +0 -0
  389. mindspore/train/_utils.py +7 -3
  390. mindspore/train/amp.py +323 -123
  391. mindspore/train/anf_ir_pb2.py +14 -2
  392. mindspore/train/callback/_backup_and_restore.py +2 -12
  393. mindspore/train/callback/_callback.py +29 -4
  394. mindspore/train/callback/_checkpoint.py +23 -8
  395. mindspore/train/callback/_early_stop.py +2 -2
  396. mindspore/train/callback/_landscape.py +4 -4
  397. mindspore/train/callback/_loss_monitor.py +2 -2
  398. mindspore/train/callback/_on_request_exit.py +2 -2
  399. mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
  400. mindspore/train/callback/_summary_collector.py +15 -8
  401. mindspore/train/callback/_time_monitor.py +58 -5
  402. mindspore/train/data_sink.py +5 -11
  403. mindspore/train/dataset_helper.py +84 -57
  404. mindspore/train/loss_scale_manager.py +2 -2
  405. mindspore/train/metrics/__init__.py +3 -3
  406. mindspore/train/metrics/cosine_similarity.py +1 -1
  407. mindspore/train/metrics/hausdorff_distance.py +3 -2
  408. mindspore/train/metrics/mean_surface_distance.py +3 -2
  409. mindspore/train/metrics/metric.py +39 -19
  410. mindspore/train/metrics/roc.py +2 -2
  411. mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
  412. mindspore/train/mind_ir_pb2.py +85 -36
  413. mindspore/train/model.py +187 -47
  414. mindspore/train/serialization.py +487 -161
  415. mindspore/train/summary/_summary_adapter.py +1 -1
  416. mindspore/train/summary/_writer_pool.py +3 -2
  417. mindspore/train/summary/summary_record.py +37 -17
  418. mindspore/train/train_thor/convert_utils.py +3 -3
  419. mindspore/train/train_thor/dataset_helper.py +1 -1
  420. mindspore/turbojpeg.dll +0 -0
  421. mindspore/vcmeta.dll +0 -0
  422. mindspore/vcruntime140.dll +0 -0
  423. mindspore/vcruntime140_1.dll +0 -0
  424. mindspore/version.py +1 -1
  425. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/METADATA +7 -4
  426. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/RECORD +429 -486
  427. mindspore/_extends/graph_kernel/expander.py +0 -80
  428. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
  429. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  430. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  431. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  432. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  433. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  434. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  435. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  436. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  437. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  438. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  439. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  440. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  441. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  442. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  443. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  444. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  445. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  446. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  447. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  448. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  449. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  450. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  451. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  452. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  453. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  454. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  455. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  456. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  457. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  458. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  459. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  460. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  461. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  462. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  463. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  464. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  465. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  466. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  467. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  468. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  469. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  470. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  471. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  472. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  473. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  474. mindspore/dataset/datapreprocess/__init__.py +0 -20
  475. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  476. mindspore/include/api/net.h +0 -142
  477. mindspore/nn/lr_scheduler.py +0 -262
  478. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
  479. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
  480. mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
  481. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  482. mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
  483. mindspore/ops/_op_impl/_custom_op/flash_attention/__init__.py +0 -0
  484. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +0 -350
  485. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +0 -409
  486. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +0 -578
  487. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +0 -199
  488. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +0 -446
  489. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/__init__.py +0 -0
  490. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/sparse_tiling.py +0 -45
  491. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/strategy.py +0 -67
  492. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +0 -62
  493. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
  494. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
  495. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
  496. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  497. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  498. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
  499. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
  500. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  501. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  502. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
  503. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
  504. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
  505. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
  506. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
  507. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  508. mindspore/rewrite/node_visitor.py +0 -44
  509. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/WHEEL +0 -0
  510. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/entry_points.txt +0 -0
  511. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- # Copyright 2022 Huawei Technologies Co., Ltd
1
+ # Copyright 2022-2023 Huawei Technologies Co., Ltd
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -19,6 +19,9 @@ import shutil
19
19
  from mindspore import log as logger
20
20
  from mindspore._extends.parallel_compile.akg_compiler.tbe_topi import get_op_reg_info
21
21
 
22
+ O_SUFFIX = ".o"
23
+ JSON_SUFFIX = ".json"
24
+
22
25
 
23
26
  def update_attr(attr, new_attr):
24
27
  """Update new_attr to attr."""
@@ -111,8 +114,8 @@ def select_best(src_dirs, dst_dir, op_name):
111
114
  max_block_dim = 1
112
115
  max_block_dim_idx = -1
113
116
  for i, src_dir in enumerate(src_dirs):
114
- o_path = os.path.join(src_dir, op_name + ".o")
115
- json_path = os.path.join(src_dir, op_name + ".json")
117
+ o_path = os.path.join(src_dir, op_name + O_SUFFIX)
118
+ json_path = os.path.join(src_dir, op_name + JSON_SUFFIX)
116
119
  if os.path.isfile(o_path) and os.path.isfile(json_path):
117
120
  with open(json_path, 'r') as f:
118
121
  json_str = f.read()
@@ -121,10 +124,10 @@ def select_best(src_dirs, dst_dir, op_name):
121
124
  max_block_dim_idx = i
122
125
  max_block_dim = json_dict["blockDim"]
123
126
  if max_block_dim_idx >= 0:
124
- o_path = os.path.join(src_dirs[max_block_dim_idx], op_name + ".o")
125
- json_path = os.path.join(src_dirs[max_block_dim_idx], op_name + ".json")
126
- _copy_file(o_path, os.path.join(dst_dir, op_name + ".o"))
127
- _copy_file(json_path, os.path.join(dst_dir, op_name + ".json"))
127
+ o_path = os.path.join(src_dirs[max_block_dim_idx], op_name + O_SUFFIX)
128
+ json_path = os.path.join(src_dirs[max_block_dim_idx], op_name + JSON_SUFFIX)
129
+ _copy_file(o_path, os.path.join(dst_dir, op_name + O_SUFFIX))
130
+ _copy_file(json_path, os.path.join(dst_dir, op_name + JSON_SUFFIX))
128
131
  logger.info("{}, best compile result dir: {}".format(op_name, src_dirs[max_block_dim_idx]))
129
132
  return True
130
133
  logger.info("{}, best compile result dir not found".format(op_name))
@@ -1,4 +1,4 @@
1
- # Copyright 2023 Huawei Technologies Co., Ltd
1
+ # Copyright 2021-2023 Huawei Technologies Co., Ltd
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -116,7 +116,7 @@ def __directory_creation(path, concat_path):
116
116
  """
117
117
  path = os.path.join(path, concat_path)
118
118
  if not os.path.isdir(path):
119
- os.makedirs(path, 0o750)
119
+ os.makedirs(path, 0o700)
120
120
  return path
121
121
 
122
122
 
@@ -1,4 +1,4 @@
1
- # Copyright 2021 Huawei Technologies Co., Ltd
1
+ # Copyright 2021-2023 Huawei Technologies Co., Ltd
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -32,7 +32,7 @@ def create_dir(dir_path):
32
32
  is_exists = os.path.exists(dir_path)
33
33
  if not is_exists:
34
34
  try:
35
- os.makedirs(dir_path, 0o750, exist_ok=True)
35
+ os.makedirs(dir_path, 0o700, exist_ok=True)
36
36
  except (OSError, TypeError) as excep:
37
37
  raise excep
38
38
  finally:
@@ -53,7 +53,7 @@ def write_to_file(file_path, content=""):
53
53
  return False
54
54
 
55
55
  with os.fdopen(os.open(file_path, os.O_WRONLY | os.O_CREAT, \
56
- stat.S_IWUSR | stat.S_IRUSR | stat.S_IRGRP), 'w') as file_handler:
56
+ stat.S_IWUSR | stat.S_IRUSR), 'w') as file_handler:
57
57
  file_handler.write(content)
58
58
  return True
59
59
 
@@ -65,8 +65,9 @@ class LocalLock:
65
65
 
66
66
  def __init__(self, lock_file):
67
67
  if not os.path.exists(lock_file):
68
- write_to_file(lock_file)
69
- self.lock_fd = os.open(lock_file, os.O_WRONLY | os.O_CREAT, stat.S_IWUSR | stat.S_IRUSR | stat.S_IRGRP)
68
+ if not write_to_file(lock_file):
69
+ raise IOError("write_to_file failed.")
70
+ self.lock_fd = os.open(lock_file, os.O_WRONLY | os.O_CREAT, stat.S_IWUSR | stat.S_IRUSR)
70
71
 
71
72
  def __del__(self):
72
73
  try:
@@ -1,4 +1,4 @@
1
- # Copyright 2021 Huawei Technologies Co., Ltd
1
+ # Copyright 2021-2022 Huawei Technologies Co., Ltd
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2021 Huawei Technologies Co., Ltd
1
+ # Copyright 2021-2022 Huawei Technologies Co., Ltd
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -23,13 +23,13 @@ from .parser import (Parser, create_instance, is_supported_create_instance_type,
23
23
  get_ast_type, get_node_type, get_args, get_args_default_values, get_ast_namespace_symbol,
24
24
  get_operation_symbol, get_operation_namespace_symbol, get_parse_method_of_class, get_scope_name,
25
25
  eval_script, get_script_id_attrs, expand_expr_statement, is_class_member_of_self, parse_cb,
26
- convert_to_ms_tensor, get_object_description, get_class_attr_namespace_symbol, get_ms_class_name,
27
- is_class_type, check_obj_bool, python_isinstance, ms_isinstance, convert_to_ms_csrtensor,
28
- convert_to_ms_cootensor, convert_class_to_function, convert_cell_list_to_sequence, is_cell_list,
29
- get_obj_from_sequence, get_type, is_class_member_recursive, merge_global_params, get_global_params,
30
- get_adapter_tensor_attr, get_obj_defined_from_obj_type,
31
- is_from_third_party_library, get_const_abs, get_const_round,
32
- get_const_len, is_adapter_tensor_class, is_adapter_parameter_class)
26
+ convert_to_ms_tensor, get_object_description, get_ms_class_name, is_class_type, check_obj_bool,
27
+ python_isinstance, ms_isinstance, convert_to_ms_csrtensor, convert_to_ms_cootensor,
28
+ convert_class_to_function, convert_cell_list_to_sequence, is_cell_list, get_obj_from_sequence,
29
+ get_type, is_class_member_recursive, get_global_params, get_adapter_tensor_attr,
30
+ get_obj_defined_from_obj_type, is_from_third_party_library, get_const_abs, get_const_round,
31
+ get_const_len, is_adapter_tensor_class, is_adapter_parameter_class, convert_to_namedtuple,
32
+ is_module_list)
33
33
 
34
34
  __all__ = ['Parser', 'create_instance', 'is_supported_create_instance_type', 'generate_scope', 'get_attr_from_object',
35
35
  'get_bprop_method_of_class', 'get_class_instance_type', 'get_class_member_namespace_symbol',
@@ -37,11 +37,9 @@ __all__ = ['Parser', 'create_instance', 'is_supported_create_instance_type', 'ge
37
37
  'get_ast_type', 'get_node_type', 'get_args', 'get_args_default_values', 'get_ast_namespace_symbol',
38
38
  'get_operation_symbol', 'get_operation_namespace_symbol', 'get_parse_method_of_class', 'get_scope_name',
39
39
  'eval_script', 'get_script_id_attrs', 'expand_expr_statement', 'is_class_member_of_self', 'parse_cb',
40
- 'resolve_symbol', 'convert_to_ms_tensor', 'get_object_description', 'get_class_attr_namespace_symbol',
41
- 'get_ms_class_name', 'is_class_type', 'check_obj_bool', 'python_isinstance', 'ms_isinstance',
42
- 'convert_to_ms_csrtensor', 'convert_to_ms_cootensor', 'convert_class_to_function',
43
- 'convert_cell_list_to_sequence', 'is_cell_list', 'get_obj_from_sequence', 'get_type',
44
- 'is_class_member_recursive', 'get_adapter_tensor_attr',
45
- 'get_obj_defined_from_obj_type', 'is_from_third_party_library',
46
- 'get_const_abs', 'get_const_round', 'get_const_len', 'is_adapter_tensor_class',
47
- 'is_adapter_parameter_class',]
40
+ 'resolve_symbol', 'convert_to_ms_tensor', 'get_object_description', 'get_ms_class_name', 'is_class_type',
41
+ 'check_obj_bool', 'python_isinstance', 'ms_isinstance', 'convert_to_ms_csrtensor', 'convert_to_ms_cootensor',
42
+ 'convert_class_to_function', 'convert_cell_list_to_sequence', 'is_cell_list', 'get_obj_from_sequence',
43
+ 'get_type', 'is_class_member_recursive', 'get_adapter_tensor_attr', 'get_obj_defined_from_obj_type',
44
+ 'is_from_third_party_library', 'get_const_abs', 'get_const_round', 'get_const_len',
45
+ 'is_adapter_tensor_class', 'is_adapter_parameter_class', 'convert_to_namedtuple', 'is_module_list']
@@ -1,6 +1,6 @@
1
1
  # This is the Python adaptation and derivative work of Myia (https://github.com/mila-iqia/myia/).
2
2
  #
3
- # Copyright 2020-2022 Huawei Technologies Co., Ltd
3
+ # Copyright 2020-2023 Huawei Technologies Co., Ltd
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -30,6 +30,7 @@ class Namespace:
30
30
  name (str): The namespace's name.
31
31
  dicts (dict): A list of dict containing the namespace's variable.
32
32
  """
33
+
33
34
  def __init__(self, name, *dicts):
34
35
  self.name = name
35
36
  self.dicts = dicts
@@ -57,6 +58,7 @@ class CellNamespace(Namespace):
57
58
  Args:
58
59
  name (str): Valid module name, it can be imported.
59
60
  """
61
+
60
62
  def __init__(self, name):
61
63
  mod_dict = vars(__import__(name, fromlist=['_']))
62
64
  builtins_dict = vars(builtins)
@@ -79,6 +81,7 @@ class ClosureNamespace(Namespace):
79
81
  Args:
80
82
  fn (Function): A python function.
81
83
  """
84
+
82
85
  def __init__(self, fn):
83
86
  name = f'{fn.__module__}..<{fn.__name__}>'
84
87
  names = fn.__code__.co_freevars
@@ -101,6 +104,7 @@ class ClassMemberNamespace(Namespace):
101
104
  Args:
102
105
  obj (Object): A python class object.
103
106
  """
107
+
104
108
  def __init__(self, obj):
105
109
  self.__class_member_namespace__ = True
106
110
  label = f'{obj.__module__}..<{obj.__class__.__name__}::{id(obj)}>'
@@ -108,8 +112,6 @@ class ClassMemberNamespace(Namespace):
108
112
 
109
113
  def __getitem__(self, name):
110
114
  d, = self.dicts
111
- if name == "self":
112
- return d
113
115
  if name == "namespace":
114
116
  return self
115
117
  try:
@@ -127,36 +129,8 @@ class ClassMemberNamespace(Namespace):
127
129
  logger.warning(f"The private attribute or method '{name}' is used in '{cls.__name__}'. " + \
128
130
  f"In graph mode, '{name}' will be adjusted to '{private_member}' for parsing.")
129
131
  return getattr(d, private_member)
130
- logger.info(f"'{cls.__name__ }' object has no attribute or method: '{name}', so will return None.")
132
+ logger.info(f"'{cls.__name__}' object has no attribute or method: '{name}', so will return None.")
131
133
  raise AttributeError(name)
132
134
 
133
-
134
- class ClassAttrNamespace(Namespace):
135
- """
136
- Namespace of a class.
137
-
138
- Args:
139
- obj (Object): A python class object.
140
- """
141
- def __init__(self, obj):
142
- name = f'{obj.__module__}..<{obj.__class__.__name__}::{id(obj)}>'
143
- super().__init__(name, obj)
144
-
145
135
  def __getattr__(self, name):
146
- d, = self.dicts
147
- try:
148
- if hasattr(d, name):
149
- return getattr(d, name)
150
- return d.__dict__[name]
151
- except ValueError:
152
- raise UnboundLocalError(name)
153
- except KeyError:
154
- # Class private attribute.
155
- cls = d.__class__
156
- if name.startswith("__"):
157
- private_attr = "_" + cls.__name__ + name
158
- if hasattr(d, private_attr):
159
- logger.warning(f"The private attribute or method '{name}' is used in '{cls.__name__}'. " + \
160
- f"In graph mode, '{name}' will be adjusted to '{private_attr}' for parsing.")
161
- return getattr(d, private_attr)
162
- raise AttributeError(f"'{cls.__name__ }' object has no attribute or method: '{name}'.")
136
+ return self.__getitem__(name)
@@ -24,6 +24,8 @@ import re
24
24
  import hashlib
25
25
  import inspect
26
26
  import types
27
+ from collections import namedtuple
28
+ from typing import NamedTuple
27
29
  from textwrap import dedent
28
30
  import numpy
29
31
 
@@ -42,7 +44,7 @@ from mindspore.common import mutable
42
44
  from mindspore.common._register_for_adapter import ms_adapter_registry
43
45
  from mindspore._checkparam import is_stub_tensor
44
46
  from mindspore.ops._tracefunc import _PackSourceBuilder
45
- from .namespace import Namespace, CellNamespace, ClosureNamespace, ClassMemberNamespace, ClassAttrNamespace
47
+ from .namespace import Namespace, CellNamespace, ClosureNamespace, ClassMemberNamespace
46
48
  from .resources import parse_object_map, ops_symbol_map, convert_object_map, convert_class_to_function_map, trope_ns
47
49
  from .resources import SYMBOL_UNDEFINE
48
50
  from ...common.api import _convert_python_data
@@ -121,43 +123,15 @@ _hybrid_type = (
121
123
 
122
124
  # Unsupported python builtin type in JIT Fallback.
123
125
  _fallback_unsupported_python_builtin_type = (
124
- compile, eval, exec, input, open, delattr, setattr, super, staticmethod, classmethod, __import__,
125
- memoryview, property,
126
+ compile, eval, exec
126
127
  )
127
128
 
128
129
  _modules_from_mindspore = (
129
- "mindspore", # https://gitee.com/mindspore/mindspore
130
- "msadapter", # https://openi.pcl.ac.cn/OpenI/MSAdapter
131
- "mindocr", # https://github.com/mindspore-lab/mindocr
132
- "mindyolo", # https://github.com/mindspore-lab/mindyolo
133
- "mindnlp", # https://github.com/mindspore-lab/mindnlp
134
- "mindcv", # https://github.com/mindspore-lab/mindcv
135
- "mindspore_rec", # https://github.com/mindspore-lab/mindrec
136
- "mindaudio", # https://github.com/mindspore-lab/mindaudio
137
- "mindone", # https://github.com/mindspore-lab/mindone
138
- "mindspore_rl", # https://github.com/mindspore-lab/mindrl
139
- "mindformers", # https://github.com/mindspore-lab/mindformers
140
- "mindpet", # https://github.com/mindspore-lab/mindpet
141
- "mindpose", # https://github.com/mindspore-lab/mindpose
142
- "mindface", # https://github.com/mindspore-lab/mindface
143
- "mindsearch", # https://github.com/mindspore-lab/mindsearch
144
- "mindinsight", # https://gitee.com/mindspore/mindinsight
145
- "mindelec", # https://gitee.com/mindspore/mindscience
146
- "mindflow", # https://gitee.com/mindspore/mindscience
147
- "mindsponge", # https://gitee.com/mindspore/mindscience
148
- "mindearth", # https://gitee.com/mindspore/mindscience
149
- "sciai", # https://gitee.com/mindspore/mindscience
150
- "mindquantum", # https://gitee.com/mindspore/mindquantum
151
- "mindarmour", # https://gitee.com/mindspore/mindarmour
152
- "mindpandas", # https://gitee.com/mindspore/mindpandas
153
- "mindvision", # https://gitee.com/mindspore/vision
154
- "mindspore_gl", # https://gitee.com/mindspore/graphlearning
155
- "mindspore_federated", # https://gitee.com/mindspore/federated
156
- "mindspore_gs", # https://gitee.com/mindspore/golden-stick
157
- "mindspore_serving", # https://gitee.com/mindspore/serving
158
- "mindspore_xai", # https://gitee.com/mindspore/xai
159
- "mindspore_hub", # https://gitee.com/mindspore/hub
160
- "ringmo_framework", # https://gitee.com/mindspore/ringmo-framework
130
+ "mindspore", "msadapter", "mindocr", "mindyolo", "mindnlp", "mindcv", "mindspore_rec", "mindaudio", "mindone",
131
+ "mindspore_rl", "mindformers", "mindpet", "mindpose", "mindface", "mindsearch", "mindinsight", "mindelec",
132
+ "mindflow", "mindsponge", "mindearth", "sciai", "mindquantum", "mindarmour", "mindpandas", "mindvision",
133
+ "mindspore_gl", "mindspore_federated", "mindspore_gs", "mindspore_serving", "mindspore_xai", "mindspore_hub",
134
+ "ringmo_framework", "troubleshooter", "mindtorch",
161
135
  )
162
136
 
163
137
  _global_params = {}
@@ -190,6 +164,7 @@ def get_attr_from_object(obj, attr_name=None):
190
164
  Returns:
191
165
  Object, obj's attr.
192
166
  """
167
+
193
168
  if obj is not None and attr_name is not None and hasattr(obj, attr_name):
194
169
  return getattr(obj, attr_name)
195
170
  return None
@@ -206,6 +181,7 @@ def get_parse_method_of_class(obj, parse_method=None):
206
181
  Returns:
207
182
  Function, obj's method.
208
183
  """
184
+
209
185
  method_name = None
210
186
  if parse_method is not None:
211
187
  method_name = parse_method
@@ -229,6 +205,7 @@ def get_bprop_method_of_class(obj, parse_method=None):
229
205
  Returns:
230
206
  Function, obj's method.
231
207
  """
208
+
232
209
  if isinstance(obj, nn.Cell):
233
210
  method_name = "bprop"
234
211
  return get_attr_from_object(obj, method_name)
@@ -475,11 +452,11 @@ def create_instance(cls_type, params=None):
475
452
  def convert_class_to_function(cls_str, cls_obj):
476
453
  """Convert class to function."""
477
454
  if issubclass(cls_obj, (Parameter, ops.MultitypeFuncGraph)):
478
- raise ValueError(f"Failed to compile in GRAPH_MODE because creating {cls_str} instances is not " \
479
- f"supported in 'construct' or @jit decorated function. Try to create {cls_str} " \
480
- f"instances external such as initialized in the method '__init__' before assigning. " \
481
- f"For more details, please refer to " \
482
- f"https://www.mindspore.cn/docs/zh-CN/r2.1/design/dynamic_graph_and_static_graph.html \n")
455
+ raise ValueError(f"Failed to compile in GRAPH_MODE because creating {cls_str} instances is not "
456
+ f"supported in 'construct' or @jit decorated function. Try to create {cls_str} "
457
+ f"instances external such as initialized in the method '__init__' before assigning. "
458
+ f"For more details, please refer to "
459
+ f"https://www.mindspore.cn/docs/zh-CN/r2.2/design/dynamic_graph_and_static_graph.html \n")
483
460
  return convert_class_to_function_map.get(cls_str)
484
461
 
485
462
 
@@ -516,9 +493,14 @@ def is_cell_list(obj):
516
493
  return isinstance(obj, nn.CellList)
517
494
 
518
495
 
496
+ def is_module_list(obj):
497
+ """Check if obj is nn.ModuleList"""
498
+ return hasattr(obj, "__cell_as_list__") and not isinstance(obj, nn.CellList)
499
+
500
+
519
501
  def convert_cell_list_to_sequence(obj):
520
502
  """Convert nn.CellList to sequence."""
521
- if not isinstance(obj, nn.CellList):
503
+ if not hasattr(obj, "__cell_as_list__"):
522
504
  raise TypeError(f"Obj should be nn.CellList, but got {obj}")
523
505
  if not hasattr(obj, "_cells"):
524
506
  raise AttributeError(f"nn.CellList is missing _cells property.")
@@ -545,14 +527,6 @@ def get_module_namespace(obj):
545
527
  return mod_namespace
546
528
 
547
529
 
548
- def get_class_attr_namespace_symbol(obj):
549
- """Get class namespace."""
550
- logger.debug("get class namespace, object: %r", obj)
551
- class_namespace = ClassAttrNamespace(obj)
552
- logger.debug("class namespace: %r", class_namespace)
553
- return class_namespace
554
-
555
-
556
530
  def get_class_member_namespace_symbol(obj):
557
531
  """Get obj class member type."""
558
532
  logger.debug("get class instance namespace, object: %r", obj)
@@ -583,6 +557,7 @@ def get_obj_defined_from_obj_type(obj_type):
583
557
  "List": list,
584
558
  "Tuple": tuple,
585
559
  "Dictionary": dict,
560
+ "NamedTuple": NamedTuple,
586
561
  }
587
562
 
588
563
  return obj_type_defined_map.get(obj_type)
@@ -637,6 +612,12 @@ def convert_to_ms_cootensor(data):
637
612
  return COOTensor(coo_tensor=data)
638
613
 
639
614
 
615
+ def convert_to_namedtuple(type_name, key_sequeue, value_sequeue):
616
+ """Convert C++ namedtuple to python object namedtuple."""
617
+ logger.debug(f"type_name: {type_name}, key_sequeue: {key_sequeue}, value_sequeue: {value_sequeue}")
618
+ return namedtuple(type_name, [*key_sequeue])(*value_sequeue)
619
+
620
+
640
621
  def get_object_description(obj, fname, fline):
641
622
  """Return method or funcition description for error report, include location, class name, etc."""
642
623
  if isinstance(obj, types.MethodType):
@@ -793,14 +774,24 @@ def _convert_stub_tensor(data):
793
774
  if is_stub_tensor(data):
794
775
  return data.stub_sync()
795
776
  if isinstance(data, tuple):
777
+ # Handle namedtuple since its type is tuple.
778
+ if hasattr(data, "_fields"):
779
+ type_name = data.__class__.__name__
780
+ data_dict = data._asdict()
781
+ fields = data_dict.keys()
782
+ return namedtuple(type_name, fields)(**_convert_stub_tensor(data_dict))
796
783
  return tuple(_convert_stub_tensor(x) for x in data)
797
784
  if isinstance(data, list):
798
785
  # Keep the list object not change.
799
- for _, input_data in enumerate(data):
800
- input_data = _convert_stub_tensor(input_data)
786
+ for i in range(len(data)):
787
+ data[i] = _convert_stub_tensor(data[i])
801
788
  return data
802
789
  if isinstance(data, dict):
803
- return dict((_convert_stub_tensor(key), _convert_stub_tensor(value)) for key, value in data.items())
790
+ # Keep the dict object not change.
791
+ keys = tuple(data.keys())
792
+ for key in keys:
793
+ data[_convert_stub_tensor(key)] = _convert_stub_tensor(data.pop(key))
794
+ return data
804
795
  return data
805
796
 
806
797
 
@@ -844,15 +835,9 @@ def get_script_id_attrs(script):
844
835
  return res
845
836
 
846
837
 
847
- def merge_global_params(global_dict):
848
- """Merge the global parameter."""
849
- logger.debug(f'merge global_dict: {global_dict}')
850
- _global_params.update(global_dict)
851
-
852
-
853
838
  def get_global_params():
854
839
  """Get the global parameter."""
855
- logger.debug(f'get global_dict: {_global_params}')
840
+ logger.debug(f"get global_dict: {_global_params}")
856
841
  return _global_params
857
842
 
858
843
 
@@ -877,8 +862,6 @@ class ThirdPartyLibraryChecker:
877
862
  4. Third-party libraries have 'site-packages' in their installation path.
878
863
  """
879
864
  def __init__(self):
880
- self.jit_modules = self.get_jit_modules()
881
- self.jit_ignore_modules = self.get_jit_ignore_modules()
882
865
  self.user_workspace_dir = self.get_top_level_module_path(os.getcwd())
883
866
  self.python_builtin_dir = os.path.abspath(os.path.dirname(os.__file__))
884
867
 
@@ -927,11 +910,13 @@ class ThirdPartyLibraryChecker:
927
910
  """Check if module is a third-party library."""
928
911
  module_leftmost_name = module.__name__.split('.')[0]
929
912
  # Modules in jit_ignore_modules are treated as third-party libraries, such as sys.builtin_module_names.
930
- if module_leftmost_name in self.jit_ignore_modules:
913
+ jit_ignore_modules = self.get_jit_ignore_modules()
914
+ if module_leftmost_name in jit_ignore_modules:
931
915
  logger.debug(f"Found third-party module '{module_leftmost_name}' in jit_ignore_modules.")
932
916
  return True
933
917
  # Modules in jit_modules require jit and they are considered to be in user workspace.
934
- if module_leftmost_name in self.jit_modules:
918
+ jit_modules = self.get_jit_modules()
919
+ if module_leftmost_name in jit_modules:
935
920
  logger.debug(f"Found user-defined module '{module_leftmost_name}' in jit_modules.")
936
921
  return False
937
922
  # A modules without __file__ attribute is considered to be in user workspace.
@@ -965,10 +950,13 @@ class ThirdPartyLibraryChecker:
965
950
  """Check if value is from a third-party library."""
966
951
  if inspect.ismodule(value):
967
952
  module = value
968
- elif inspect.isfunction(value) or inspect.ismethod(value):
953
+ elif (isinstance(value, types.FunctionType) and not hasattr(value, "__jit_function__")) or \
954
+ (isinstance(value, types.MethodType) and not hasattr(value.__func__, "__jit_function__")):
969
955
  if value in _convert_map():
970
956
  return False
971
957
  module = inspect.getmodule(value)
958
+ if module is None:
959
+ return False
972
960
  else:
973
961
  return False
974
962
  return self.get_module_source_location(module) == MODULE_FROM_THIRDPARTY
@@ -983,12 +971,12 @@ def is_from_third_party_library(value):
983
971
 
984
972
 
985
973
  def get_const_abs(obj):
986
- """get absolute value of const object."""
974
+ """Get absolute value of const object."""
987
975
  return abs(obj)
988
976
 
989
977
 
990
978
  def get_const_round(obj):
991
- """get round value of const object."""
979
+ """Get round value of const object."""
992
980
  if isinstance(obj, tuple):
993
981
  val = obj[0]
994
982
  point_num = obj[1]
@@ -997,7 +985,7 @@ def get_const_round(obj):
997
985
 
998
986
 
999
987
  def get_const_len(obj):
1000
- """get the length of const object."""
988
+ """Get the length of const object."""
1001
989
  return len(obj)
1002
990
 
1003
991
 
@@ -1051,6 +1039,8 @@ class Parser:
1051
1039
  if value == item:
1052
1040
  logger.debug(f"Found unsupported internal type: '{value}'.")
1053
1041
  return True
1042
+ if ms_adapter_registry.is_registered and value == ms_adapter_registry.tensor:
1043
+ return True
1054
1044
  return False
1055
1045
 
1056
1046
  @staticmethod
@@ -1161,7 +1151,11 @@ class Parser:
1161
1151
  """Get mindspore builtin namespace and symbol."""
1162
1152
  if var in self.closure_namespace:
1163
1153
  logger.debug(f"Found '{var}' in closure_namespace {self.closure_namespace.__str__()}.")
1164
- return self.closure_namespace, var
1154
+ try:
1155
+ value = self.closure_namespace[var]
1156
+ return self.closure_namespace, var, value
1157
+ except UnboundLocalError:
1158
+ return self.closure_namespace, var, None
1165
1159
  if var in self.global_namespace:
1166
1160
  logger.debug(f"Found '{var}' in global_namespace {self.global_namespace.__str__()}.")
1167
1161
  value = self.global_namespace[var]
@@ -1174,7 +1168,7 @@ class Parser:
1174
1168
  return support_info
1175
1169
 
1176
1170
  logger.debug(f"The name '{var}' is an undefined symbol.")
1177
- return None, None
1171
+ return None, None, None
1178
1172
 
1179
1173
  def check_third_party_library_side_effect(self, var, attr):
1180
1174
  """Check if value is from a third-party library."""
@@ -1192,11 +1186,12 @@ class Parser:
1192
1186
  "json": {"load", "loads", "dump", "dumps"},
1193
1187
  "pickle": {"load", "loads", "dump", "dumps"},
1194
1188
  "h5py": {"File", "Group", "Dataset"},
1195
- "os": {"listdir", "isfile", "exists", "isdir", "mkdir", "remove", "rmdir", "symlink"},
1189
+ "os": {"listdir", "isfile", "exists", "isdir", "mkdir", "remove", "rmdir", "symlink", "rename"},
1196
1190
  "shutil": {"copy", "copy2", "copytree", "move", "rmtree"},
1197
1191
  "pathlib": {"Path", "mkdir", "rmdir", "unlink", "rename", "symlink_to"},
1198
1192
  "glob": {"glob", "iglob"},
1199
- "zipfile": {"zipfile", "ZipFile", "write", "extractall"}}
1193
+ "zipfile": {"zipfile", "ZipFile", "write", "extractall"},
1194
+ "troubleshooter": {"save", "load"}}
1200
1195
  if var in self.global_namespace:
1201
1196
  logger.debug(f"Found '{var}' in global_namespace {self.global_namespace.__str__()}.")
1202
1197
  value = self.global_namespace[var]
@@ -1268,7 +1263,6 @@ class Parser:
1268
1263
  start_lineno += 1
1269
1264
  return comments
1270
1265
 
1271
-
1272
1266
  def get_source_code(self, start_lineno, start_colno, end_lineno, end_colno):
1273
1267
  """
1274
1268
  Get the script source at the location.
@@ -1282,6 +1276,7 @@ class Parser:
1282
1276
  Returns:
1283
1277
  str, the source string.
1284
1278
  """
1279
+
1285
1280
  if start_lineno == 0:
1286
1281
  logger.critical('start_lineno should not be 0')
1287
1282
 
@@ -1,6 +1,6 @@
1
1
  # This is the Python adaptation and derivative work of Myia (https://github.com/mila-iqia/myia/).
2
2
  #
3
- # Copyright 2020-2022 Huawei Technologies Co., Ltd
3
+ # Copyright 2020-2023 Huawei Technologies Co., Ltd
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.