mindspore 2.1.0__cp37-none-any.whl → 2.2.10__cp37-none-any.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 (569) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +4 -1
  3. mindspore/_akg/akg/build_module.py +5 -6
  4. mindspore/_akg/akg/composite/build_module.py +46 -19
  5. mindspore/_akg/akg/composite/split_stitch.py +10 -11
  6. mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
  7. mindspore/_akg/akg/tvm/api.py +4 -3
  8. mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
  9. mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
  10. mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
  11. mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
  12. mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
  13. mindspore/_akg/akg/tvm/build_module.py +16 -1
  14. mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
  15. mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
  16. mindspore/_akg/akg/tvm/ir_builder.py +1 -1
  17. mindspore/_akg/akg/tvm/module.py +1 -2
  18. mindspore/_akg/akg/tvm/stmt.py +2 -2
  19. mindspore/_akg/akg/utils/ascend_profilier/__init__.py +0 -0
  20. mindspore/_akg/akg/utils/ascend_profilier/cann_file_parser.py +76 -0
  21. mindspore/_akg/akg/utils/ascend_profilier/file_manager.py +56 -0
  22. mindspore/_akg/akg/utils/ascend_profilier/op_summary_bean.py +23 -0
  23. mindspore/_akg/akg/utils/ascend_profilier/op_summary_headers.py +8 -0
  24. mindspore/_akg/akg/utils/ascend_profilier/op_summary_parser.py +42 -0
  25. mindspore/_akg/akg/utils/ascend_profilier/path_manager.py +65 -0
  26. mindspore/_akg/akg/utils/composite_op_helper.py +9 -10
  27. mindspore/_akg/akg/utils/kernel_exec.py +98 -274
  28. mindspore/_akg/akg/utils/result_analysis.py +4 -24
  29. mindspore/_akg/akg/utils/tbe_codegen_utils.py +219 -0
  30. mindspore/_akg/akg/utils/util.py +38 -0
  31. mindspore/_c_dataengine.cpython-37m-aarch64-linux-gnu.so +0 -0
  32. mindspore/_c_expression.cpython-37m-aarch64-linux-gnu.so +0 -0
  33. mindspore/_c_mindrecord.cpython-37m-aarch64-linux-gnu.so +0 -0
  34. mindspore/_check_jit_forbidden_api.py +3 -1
  35. mindspore/_checkparam.py +23 -29
  36. mindspore/_extends/graph_kernel/__init__.py +0 -1
  37. mindspore/_extends/graph_kernel/model/graph_split.py +84 -76
  38. mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
  39. mindspore/_extends/graph_kernel/splitter.py +4 -11
  40. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
  41. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +84 -67
  42. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
  43. mindspore/_extends/parallel_compile/akg_compiler/util.py +10 -7
  44. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
  45. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +6 -5
  46. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
  47. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
  48. mindspore/_extends/parse/__init__.py +12 -15
  49. mindspore/_extends/parse/namespace.py +7 -33
  50. mindspore/_extends/parse/parser.py +61 -71
  51. mindspore/_extends/parse/resources.py +1 -1
  52. mindspore/_extends/parse/standard_method.py +74 -104
  53. mindspore/_extends/parse/trope.py +1 -1
  54. mindspore/_extends/remote/kernel_build_server.py +25 -7
  55. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  56. mindspore/_install_custom.py +43 -0
  57. mindspore/_mindspore_offline_debug.cpython-37m-aarch64-linux-gnu.so +0 -0
  58. mindspore/amp.py +47 -11
  59. mindspore/bin/cache_admin +0 -0
  60. mindspore/bin/cache_server +0 -0
  61. mindspore/boost/boost.py +1 -8
  62. mindspore/boost/boost_cell_wrapper.py +3 -2
  63. mindspore/boost/grad_accumulation.py +1 -1
  64. mindspore/boost/group_loss_scale_manager.py +8 -7
  65. mindspore/common/__init__.py +5 -3
  66. mindspore/common/_jit_fallback_utils.py +6 -0
  67. mindspore/common/_register_for_adapter.py +2 -0
  68. mindspore/common/_register_for_tensor.py +2 -2
  69. mindspore/common/_stub_tensor.py +13 -0
  70. mindspore/common/_utils.py +13 -0
  71. mindspore/common/api.py +174 -259
  72. mindspore/common/auto_dynamic_shape.py +494 -0
  73. mindspore/common/dtype.py +18 -11
  74. mindspore/common/dump.py +6 -4
  75. mindspore/common/initializer.py +14 -14
  76. mindspore/common/jit_config.py +33 -15
  77. mindspore/common/lazy_inline.py +126 -7
  78. mindspore/common/mindir_util.py +101 -0
  79. mindspore/common/parameter.py +51 -41
  80. mindspore/common/seed.py +4 -4
  81. mindspore/common/sparse_tensor.py +13 -14
  82. mindspore/common/tensor.py +243 -165
  83. mindspore/communication/__init__.py +7 -4
  84. mindspore/communication/_comm_helper.py +83 -4
  85. mindspore/communication/management.py +152 -84
  86. mindspore/config/op_info.config +14 -3
  87. mindspore/config/super_bar_config.json +4 -2
  88. mindspore/context.py +152 -61
  89. mindspore/dataset/__init__.py +5 -5
  90. mindspore/dataset/audio/__init__.py +2 -2
  91. mindspore/dataset/audio/transforms.py +52 -52
  92. mindspore/dataset/callback/ds_callback.py +16 -2
  93. mindspore/dataset/core/config.py +68 -51
  94. mindspore/dataset/engine/cache_client.py +28 -5
  95. mindspore/dataset/engine/datasets.py +250 -112
  96. mindspore/dataset/engine/datasets_audio.py +43 -211
  97. mindspore/dataset/engine/datasets_standard_format.py +16 -35
  98. mindspore/dataset/engine/datasets_text.py +43 -67
  99. mindspore/dataset/engine/datasets_user_defined.py +86 -100
  100. mindspore/dataset/engine/datasets_vision.py +219 -1029
  101. mindspore/dataset/engine/iterators.py +11 -4
  102. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
  103. mindspore/dataset/engine/obs/util.py +3 -0
  104. mindspore/dataset/engine/samplers.py +1 -1
  105. mindspore/dataset/engine/validators.py +19 -5
  106. mindspore/dataset/text/__init__.py +3 -3
  107. mindspore/dataset/text/transforms.py +101 -127
  108. mindspore/dataset/text/utils.py +205 -138
  109. mindspore/dataset/transforms/__init__.py +1 -1
  110. mindspore/dataset/transforms/py_transforms_util.py +40 -12
  111. mindspore/dataset/transforms/transforms.py +95 -40
  112. mindspore/dataset/utils/browse_dataset.py +8 -2
  113. mindspore/dataset/utils/line_reader.py +17 -19
  114. mindspore/dataset/vision/__init__.py +3 -3
  115. mindspore/dataset/vision/c_transforms.py +6 -3
  116. mindspore/dataset/vision/transforms.py +409 -287
  117. mindspore/dataset/vision/utils.py +13 -14
  118. mindspore/dataset/vision/validators.py +11 -1
  119. mindspore/experimental/map_parameter.py +14 -0
  120. mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
  121. mindspore/{nn/optim_ex → experimental/optim}/adam.py +60 -67
  122. mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
  123. mindspore/experimental/optim/lr_scheduler.py +1427 -0
  124. mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
  125. mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
  126. mindspore/gen_ops.py +273 -0
  127. mindspore/include/OWNERS +0 -1
  128. mindspore/include/api/data_type.h +2 -1
  129. mindspore/include/api/graph.h +0 -15
  130. mindspore/include/api/kernel.h +2 -0
  131. mindspore/include/api/kernel_api.h +37 -12
  132. mindspore/include/api/model.h +17 -14
  133. mindspore/include/api/status.h +8 -3
  134. mindspore/include/api/types.h +37 -4
  135. mindspore/include/c_api/ms/abstract.h +67 -0
  136. mindspore/include/c_api/ms/attribute.h +197 -0
  137. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  138. mindspore/include/c_api/ms/base/macros.h +32 -0
  139. mindspore/include/c_api/ms/base/status.h +33 -0
  140. mindspore/include/c_api/ms/base/types.h +282 -0
  141. mindspore/include/c_api/ms/context.h +102 -0
  142. mindspore/include/c_api/ms/graph.h +160 -0
  143. mindspore/include/c_api/ms/node.h +606 -0
  144. mindspore/include/c_api/ms/tensor.h +161 -0
  145. mindspore/include/c_api/ms/value.h +84 -0
  146. mindspore/include/dataset/constants.h +6 -5
  147. mindspore/include/dataset/execute.h +23 -13
  148. mindspore/include/dataset/text.h +26 -26
  149. mindspore/include/dataset/transforms.h +13 -13
  150. mindspore/include/dataset/vision.h +60 -60
  151. mindspore/include/dataset/vision_ascend.h +5 -6
  152. mindspore/include/dataset/vision_lite.h +17 -17
  153. mindspore/include/mindapi/base/type_id.h +1 -0
  154. mindspore/include/mindapi/base/types.h +1 -0
  155. mindspore/lib/libdnnl.so.2 +0 -0
  156. mindspore/lib/libjemalloc.so.2 +0 -0
  157. mindspore/lib/libmindspore.so +0 -0
  158. mindspore/lib/libmindspore_backend.so +0 -0
  159. mindspore/lib/libmindspore_common.so +0 -0
  160. mindspore/lib/libmindspore_core.so +0 -0
  161. mindspore/lib/libmindspore_glog.so.0 +0 -0
  162. mindspore/lib/libmindspore_gpr.so.15 +0 -0
  163. mindspore/lib/libmindspore_grpc++.so.1 +0 -0
  164. mindspore/lib/libmindspore_grpc.so.15 +0 -0
  165. mindspore/lib/libmindspore_shared_lib.so +0 -0
  166. mindspore/lib/libnnacl.so +0 -0
  167. mindspore/lib/libopencv_core.so.4.5 +0 -0
  168. mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
  169. mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
  170. mindspore/lib/libps_cache.so +0 -0
  171. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310/aic-ascend310-ops-info.json +123 -0
  172. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310p/aic-ascend310p-ops-info.json +123 -0
  173. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910/aic-ascend910-ops-info.json +158 -0
  174. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910b/aic-ascend910b-ops-info.json +37 -0
  175. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
  176. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
  177. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
  178. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
  179. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
  180. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
  181. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
  182. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
  183. mindspore/lib/plugin/ascend/custom_aicore_ops/op_proto/libop_proto.so +0 -0
  184. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
  185. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
  186. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +8928 -0
  187. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
  188. mindspore/lib/plugin/ascend/libakg.so +0 -0
  189. mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
  190. mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
  191. mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
  192. mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
  193. mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
  194. mindspore/lib/plugin/cpu/libakg.so +0 -0
  195. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  196. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  197. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  198. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  199. mindspore/nn/__init__.py +0 -2
  200. mindspore/nn/cell.py +313 -74
  201. mindspore/nn/dynamic_lr.py +21 -21
  202. mindspore/nn/layer/activation.py +22 -30
  203. mindspore/nn/layer/basic.py +15 -13
  204. mindspore/nn/layer/channel_shuffle.py +1 -1
  205. mindspore/nn/layer/container.py +271 -9
  206. mindspore/nn/layer/conv.py +323 -204
  207. mindspore/nn/layer/dense.py +8 -5
  208. mindspore/nn/layer/embedding.py +33 -27
  209. mindspore/nn/layer/flash_attention.py +141 -88
  210. mindspore/nn/layer/image.py +8 -6
  211. mindspore/nn/layer/math.py +16 -25
  212. mindspore/nn/layer/normalization.py +107 -66
  213. mindspore/nn/layer/padding.py +1 -1
  214. mindspore/nn/layer/pooling.py +131 -109
  215. mindspore/nn/layer/rnn_cells.py +27 -22
  216. mindspore/nn/layer/rnns.py +13 -16
  217. mindspore/nn/layer/thor_layer.py +1 -1
  218. mindspore/nn/layer/transformer.py +221 -154
  219. mindspore/nn/learning_rate_schedule.py +9 -1
  220. mindspore/nn/loss/loss.py +235 -174
  221. mindspore/nn/optim/ada_grad.py +2 -1
  222. mindspore/nn/optim/adadelta.py +1 -0
  223. mindspore/nn/optim/adafactor.py +2 -1
  224. mindspore/nn/optim/adam.py +7 -4
  225. mindspore/nn/optim/adamax.py +3 -2
  226. mindspore/nn/optim/adasum.py +2 -2
  227. mindspore/nn/optim/asgd.py +2 -3
  228. mindspore/nn/optim/ftrl.py +6 -5
  229. mindspore/nn/optim/lamb.py +7 -4
  230. mindspore/nn/optim/lars.py +1 -1
  231. mindspore/nn/optim/lazyadam.py +5 -3
  232. mindspore/nn/optim/momentum.py +2 -1
  233. mindspore/nn/optim/optimizer.py +53 -4
  234. mindspore/nn/optim/proximal_ada_grad.py +3 -4
  235. mindspore/nn/optim/rmsprop.py +4 -3
  236. mindspore/nn/optim/rprop.py +23 -12
  237. mindspore/nn/optim/sgd.py +26 -11
  238. mindspore/nn/optim/thor.py +9 -7
  239. mindspore/nn/probability/bijector/bijector.py +5 -5
  240. mindspore/nn/probability/bijector/power_transform.py +27 -27
  241. mindspore/nn/probability/bijector/softplus.py +3 -3
  242. mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
  243. mindspore/nn/probability/distribution/bernoulli.py +5 -5
  244. mindspore/nn/probability/distribution/beta.py +3 -3
  245. mindspore/nn/probability/distribution/categorical.py +7 -7
  246. mindspore/nn/probability/distribution/cauchy.py +0 -1
  247. mindspore/nn/probability/distribution/distribution.py +3 -3
  248. mindspore/nn/probability/distribution/gamma.py +3 -3
  249. mindspore/nn/probability/distribution/geometric.py +4 -4
  250. mindspore/nn/probability/distribution/gumbel.py +4 -4
  251. mindspore/nn/probability/distribution/log_normal.py +2 -2
  252. mindspore/nn/probability/distribution/logistic.py +2 -2
  253. mindspore/nn/probability/distribution/poisson.py +4 -4
  254. mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
  255. mindspore/nn/probability/distribution/uniform.py +6 -6
  256. mindspore/nn/wrap/cell_wrapper.py +84 -34
  257. mindspore/nn/wrap/grad_reducer.py +8 -5
  258. mindspore/nn/wrap/loss_scale.py +105 -42
  259. mindspore/numpy/array_creations.py +1 -2
  260. mindspore/numpy/array_ops.py +3 -2
  261. mindspore/numpy/utils_const.py +5 -5
  262. mindspore/offline_debug/convert_async.py +2 -2
  263. mindspore/ops/_grad_experimental/__init__.py +0 -5
  264. mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
  265. mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
  266. mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
  267. mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
  268. mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
  269. mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
  270. mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
  271. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
  272. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  273. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +165 -109
  274. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +144 -86
  275. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +172 -187
  276. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +51 -57
  277. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +6 -17
  278. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +1 -1
  279. mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
  280. mindspore/ops/_op_impl/aicpu/add.py +3 -3
  281. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  282. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  283. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  284. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  285. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  286. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  287. mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
  288. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  289. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  290. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  291. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  292. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  293. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  294. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  295. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
  296. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
  297. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  298. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  299. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  300. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  301. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  302. mindspore/ops/_op_impl/tbe/__init__.py +4 -4
  303. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  304. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  305. mindspore/ops/_primitive_cache.py +1 -1
  306. mindspore/ops/_tracefunc.py +45 -13
  307. mindspore/ops/_utils/utils.py +6 -1
  308. mindspore/ops/_vmap/vmap_array_ops.py +3 -3
  309. mindspore/ops/_vmap/vmap_base.py +3 -3
  310. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  311. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  312. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  313. mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
  314. mindspore/ops/arg_dtype_cast.py +54 -0
  315. mindspore/ops/composite/base.py +37 -10
  316. mindspore/ops/composite/math_ops.py +5 -4
  317. mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
  318. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
  319. mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
  320. mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
  321. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  322. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  323. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  324. mindspore/ops/deprecated.py +304 -0
  325. mindspore/ops/function/__init__.py +4 -1
  326. mindspore/ops/function/array_func.py +174 -193
  327. mindspore/ops/function/clip_func.py +81 -13
  328. mindspore/ops/function/debug_func.py +1 -1
  329. mindspore/ops/function/grad/grad_func.py +18 -9
  330. mindspore/ops/function/image_func.py +10 -4
  331. mindspore/ops/function/linalg_func.py +5 -5
  332. mindspore/ops/function/math_func.py +575 -386
  333. mindspore/ops/function/nn_func.py +568 -260
  334. mindspore/ops/function/random_func.py +88 -57
  335. mindspore/ops/function/sparse_func.py +1 -1
  336. mindspore/ops/function/sparse_unary_func.py +14 -12
  337. mindspore/ops/function/vmap_func.py +6 -5
  338. mindspore/ops/functional.py +15 -10
  339. mindspore/ops/op_info_register.py +244 -25
  340. mindspore/ops/operations/__init__.py +28 -19
  341. mindspore/ops/operations/_grad_ops.py +72 -7
  342. mindspore/ops/operations/_inner_ops.py +350 -17
  343. mindspore/ops/operations/_quant_ops.py +4 -8
  344. mindspore/ops/operations/_sequence_ops.py +42 -0
  345. mindspore/ops/operations/array_ops.py +68 -282
  346. mindspore/ops/operations/comm_ops.py +107 -59
  347. mindspore/ops/operations/custom_ops.py +94 -70
  348. mindspore/ops/operations/debug_ops.py +8 -4
  349. mindspore/ops/operations/image_ops.py +18 -12
  350. mindspore/ops/operations/inner_ops.py +26 -3
  351. mindspore/ops/operations/math_ops.py +189 -141
  352. mindspore/ops/operations/nn_ops.py +794 -489
  353. mindspore/ops/operations/other_ops.py +0 -22
  354. mindspore/ops/operations/random_ops.py +53 -111
  355. mindspore/ops/operations/sparse_ops.py +3 -1
  356. mindspore/ops/primitive.py +24 -18
  357. mindspore/parallel/_auto_parallel_context.py +68 -8
  358. mindspore/parallel/_cost_model_context.py +2 -2
  359. mindspore/parallel/_offload_context.py +17 -3
  360. mindspore/parallel/_parallel_serialization.py +12 -5
  361. mindspore/parallel/_ps_context.py +12 -0
  362. mindspore/parallel/_tensor.py +18 -13
  363. mindspore/parallel/_transformer/layers.py +5 -3
  364. mindspore/parallel/_transformer/loss.py +1 -0
  365. mindspore/parallel/_transformer/moe.py +2 -2
  366. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  367. mindspore/parallel/_transformer/transformer.py +23 -3
  368. mindspore/parallel/_utils.py +11 -7
  369. mindspore/parallel/algo_parameter_config.py +85 -5
  370. mindspore/parallel/checkpoint_transform.py +19 -12
  371. mindspore/parallel/shard.py +21 -14
  372. mindspore/profiler/common/struct_type.py +3 -3
  373. mindspore/profiler/common/util.py +4 -2
  374. mindspore/profiler/envprofiling.py +1 -1
  375. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  376. mindspore/profiler/parser/ascend_flops_generator.py +2 -2
  377. mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
  378. mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
  379. mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
  380. mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
  381. mindspore/profiler/parser/ascend_op_generator.py +6 -6
  382. mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
  383. mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
  384. mindspore/profiler/parser/base_timeline_generator.py +10 -8
  385. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
  386. mindspore/profiler/parser/flops_parser.py +15 -11
  387. mindspore/profiler/parser/framework_parser.py +38 -22
  388. mindspore/profiler/parser/hccl_parser.py +16 -12
  389. mindspore/profiler/parser/integrator.py +22 -11
  390. mindspore/profiler/parser/memory_usage_parser.py +2 -2
  391. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  392. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  393. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  394. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  395. mindspore/profiler/parser/optime_parser.py +1 -1
  396. mindspore/profiler/parser/profiler_info.py +21 -2
  397. mindspore/profiler/parser/step_trace_parser.py +11 -14
  398. mindspore/profiler/profiling.py +179 -89
  399. mindspore/rewrite/api/node.py +102 -19
  400. mindspore/rewrite/api/node_type.py +5 -1
  401. mindspore/rewrite/api/pattern_engine.py +1 -1
  402. mindspore/rewrite/api/scoped_value.py +9 -17
  403. mindspore/rewrite/api/symbol_tree.py +131 -47
  404. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  405. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  406. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  407. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
  408. mindspore/rewrite/common/rewrite_elog.py +5 -1
  409. mindspore/rewrite/namer.py +33 -24
  410. mindspore/rewrite/namespace.py +14 -5
  411. mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
  412. mindspore/rewrite/node/call_function.py +79 -0
  413. mindspore/rewrite/node/cell_container.py +135 -0
  414. mindspore/rewrite/node/control_flow.py +88 -0
  415. mindspore/rewrite/{node.py → node/node.py} +273 -234
  416. mindspore/rewrite/node/node_manager.py +254 -0
  417. mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
  418. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  419. mindspore/rewrite/parsers/assign_parser.py +216 -221
  420. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  421. mindspore/rewrite/parsers/class_def_parser.py +174 -113
  422. mindspore/rewrite/parsers/constant_parser.py +9 -6
  423. mindspore/rewrite/parsers/container_parser.py +9 -7
  424. mindspore/rewrite/parsers/for_parser.py +36 -15
  425. mindspore/rewrite/parsers/function_def_parser.py +24 -16
  426. mindspore/rewrite/parsers/if_parser.py +28 -24
  427. mindspore/rewrite/parsers/module_parser.py +196 -25
  428. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  429. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  430. mindspore/rewrite/parsers/return_parser.py +6 -6
  431. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  432. mindspore/rewrite/sparsify/utils.py +1 -1
  433. mindspore/rewrite/symbol_tree.py +523 -578
  434. mindspore/rewrite/symbol_tree_builder.py +9 -193
  435. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  436. mindspore/run_check/_check_version.py +6 -4
  437. mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
  438. mindspore/safeguard/rewrite_obfuscation.py +541 -0
  439. mindspore/scipy/linalg.py +1 -1
  440. mindspore/scipy/optimize/minimize.py +7 -3
  441. mindspore/train/_utils.py +7 -3
  442. mindspore/train/amp.py +323 -123
  443. mindspore/train/anf_ir_pb2.py +14 -2
  444. mindspore/train/callback/_backup_and_restore.py +2 -12
  445. mindspore/train/callback/_callback.py +29 -4
  446. mindspore/train/callback/_checkpoint.py +23 -8
  447. mindspore/train/callback/_early_stop.py +2 -2
  448. mindspore/train/callback/_landscape.py +4 -4
  449. mindspore/train/callback/_loss_monitor.py +2 -2
  450. mindspore/train/callback/_on_request_exit.py +2 -2
  451. mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
  452. mindspore/train/callback/_summary_collector.py +15 -8
  453. mindspore/train/callback/_time_monitor.py +58 -5
  454. mindspore/train/data_sink.py +5 -11
  455. mindspore/train/dataset_helper.py +84 -57
  456. mindspore/train/loss_scale_manager.py +2 -2
  457. mindspore/train/metrics/__init__.py +3 -3
  458. mindspore/train/metrics/cosine_similarity.py +1 -1
  459. mindspore/train/metrics/hausdorff_distance.py +3 -2
  460. mindspore/train/metrics/mean_surface_distance.py +3 -2
  461. mindspore/train/metrics/metric.py +39 -19
  462. mindspore/train/metrics/roc.py +2 -2
  463. mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
  464. mindspore/train/mind_ir_pb2.py +85 -36
  465. mindspore/train/model.py +187 -47
  466. mindspore/train/serialization.py +487 -161
  467. mindspore/train/summary/_summary_adapter.py +1 -1
  468. mindspore/train/summary/_writer_pool.py +3 -2
  469. mindspore/train/summary/summary_record.py +37 -17
  470. mindspore/train/train_thor/convert_utils.py +3 -3
  471. mindspore/train/train_thor/dataset_helper.py +1 -1
  472. mindspore/version.py +1 -1
  473. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/METADATA +6 -7
  474. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/RECORD +477 -517
  475. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/entry_points.txt +0 -1
  476. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  477. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  478. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  479. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  480. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  481. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  482. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  483. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  484. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  485. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  486. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  487. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  488. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  489. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  490. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  491. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  492. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  493. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  494. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  495. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  496. mindspore/_extends/graph_kernel/expander.py +0 -80
  497. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
  498. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  499. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  500. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  501. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  502. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  503. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  504. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  505. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  506. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  507. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  508. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  509. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  510. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  511. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  512. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  513. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  514. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  515. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  516. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  517. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  518. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  519. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  520. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  521. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  522. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  523. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  524. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  525. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  526. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  527. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  528. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  529. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  530. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  531. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  532. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  533. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  534. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  535. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  536. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  537. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  538. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  539. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  540. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  541. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  542. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  543. mindspore/dataset/datapreprocess/__init__.py +0 -20
  544. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  545. mindspore/include/api/net.h +0 -142
  546. mindspore/nn/lr_scheduler.py +0 -262
  547. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
  548. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
  549. mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
  550. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  551. mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
  552. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
  553. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
  554. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
  555. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  556. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  557. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
  558. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
  559. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  560. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  561. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
  562. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
  563. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
  564. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
  565. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
  566. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  567. mindspore/rewrite/node_visitor.py +0 -44
  568. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/WHEEL +0 -0
  569. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/top_level.txt +0 -0
mindspore/train/model.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2020-2022 Huawei Technologies Co., Ltd
1
+ # Copyright 2020-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.
@@ -25,6 +25,7 @@ import importlib
25
25
  import numpy as np
26
26
 
27
27
  import mindspore
28
+ import mindspore.dataset as ds
28
29
  from mindspore import log as logger
29
30
  from mindspore.train.serialization import save_checkpoint, load_checkpoint
30
31
  from mindspore.train.callback._checkpoint import ModelCheckpoint, _chg_ckpt_file_name_if_same_exist
@@ -188,7 +189,7 @@ class Model:
188
189
  >>> from mindspore.train import Model
189
190
  >>>
190
191
  >>> # Define the network structure of LeNet5. Refer to
191
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/lenet.py
192
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/lenet.py
192
193
  >>> net = LeNet5()
193
194
  >>> loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True)
194
195
  >>> optim = nn.Momentum(params=net.trainable_params(), learning_rate=0.1, momentum=0.9)
@@ -197,7 +198,7 @@ class Model:
197
198
  >>> model.predict_network
198
199
  >>> model.eval_network
199
200
  >>> # Create the dataset taking MNIST as an example. Refer to
200
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/mnist.py
201
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/mnist.py
201
202
  >>> dataset = create_dataset()
202
203
  >>> model.train(2, dataset)
203
204
  """
@@ -224,6 +225,7 @@ class Model:
224
225
  self._check_for_graph_cell(kwargs)
225
226
  self._build_boost_network(kwargs)
226
227
  self._train_network = self._build_train_network()
228
+ self._train_network._jit_config_dict = network.jit_config_dict
227
229
  self._build_eval_network(metrics, self._eval_network, eval_indexes)
228
230
  self._build_predict_network()
229
231
  self._current_epoch_num = 0
@@ -232,9 +234,12 @@ class Model:
232
234
  self.enable_recovery = False
233
235
  self._backbone_is_train = True
234
236
  self.need_load_ckpt = False
235
- self._lite_predictor = None
237
+ self._lite_full_predictor = None
238
+ self._lite_incremental_predictor = None
236
239
  self._mindspore_lite = None
237
240
  self._lite_infer = True # if backend lite infer fails, set False
241
+ self._mindspore_lite_model_group_id = id(self) & 0xFFFF
242
+
238
243
 
239
244
  def _check_for_graph_cell(self, kwargs):
240
245
  """Check for graph cell"""
@@ -575,7 +580,6 @@ class Model:
575
580
  initial_epoch (int): Epoch at which to start train, it used for resuming a previous training run.
576
581
  Default: 0.
577
582
  """
578
- epoch = Validator.check_positive_int(epoch)
579
583
  if self._parameter_broadcast:
580
584
  self._train_network.set_broadcast_flag()
581
585
 
@@ -648,10 +652,10 @@ class Model:
648
652
  "it is suggested to pad/drop data or adjust sink_size. "
649
653
  "But got 'dataset_size': {}, 'sink_size': {}.".format(dataset_size, sink_size))
650
654
  if sink_size == -1:
651
- dataset_sink_num = epoch - initial_epoch
655
+ dataset_sink_num = epoch
652
656
  else:
653
- dataset_sink_num = math.ceil((epoch - initial_epoch) * sink_size / dataset_size)
654
- train_dataset.__total_batch__ = (epoch - initial_epoch) * sink_size
657
+ dataset_sink_num = math.ceil(epoch * sink_size / dataset_size)
658
+ train_dataset.__total_batch__ = epoch * sink_size
655
659
 
656
660
  cb_params.cur_step_num = 0
657
661
  cb_params.dataset_sink_mode = True
@@ -684,6 +688,7 @@ class Model:
684
688
  dataset_helper=dataset_helper)
685
689
 
686
690
  cb_params.train_network = train_network
691
+ cb_params.dataset_helper = dataset_helper
687
692
 
688
693
  # Perform recovery for process which is restarted.
689
694
  self._reset_training_step_for_abnormal_process(cb_params, dataset_helper)
@@ -829,7 +834,7 @@ class Model:
829
834
  os.remove(cb_params.latest_ckpt_file)
830
835
  raise RuntimeError(e.__str__() + ", load ckpt failed and remove the ckpt: "\
831
836
  + cb_params.latest_ckpt_file) from e
832
- _reset_training_dataset(cb_params.cur_step_num, dataset_helper.sink_size())
837
+ _reset_training_dataset(cb_params.cur_step_num, dataset_helper.iter.dataset.get_dataset_size())
833
838
  self.need_load_ckpt = False
834
839
 
835
840
  def _reset_training_step_for_normal_process(self, cb_params, dataset_helper):
@@ -858,9 +863,9 @@ class Model:
858
863
  self.epoch_iter = recovery_epoch_num
859
864
  cb_params.cur_epoch_num = self.epoch_iter + 1
860
865
  cb_params.last_save_ckpt_step = cb_params.cur_step_num
861
- _reset_training_dataset(cb_params.cur_step_num, dataset_helper.sink_size())
866
+ _reset_training_dataset(cb_params.cur_step_num, dataset_helper.iter.dataset.get_dataset_size())
862
867
  else:
863
- _reset_training_dataset(0, dataset_helper.sink_size())
868
+ _reset_training_dataset(0, dataset_helper.iter.dataset.get_dataset_size())
864
869
 
865
870
  _set_recovery_context(need_reset=False)
866
871
 
@@ -884,7 +889,7 @@ class Model:
884
889
  dataset_helper, _ = self._exec_preprocess(is_train=True,
885
890
  dataset=train_dataset,
886
891
  dataset_sink_mode=False,
887
- epoch_num=(epoch-initial_epoch))
892
+ epoch_num=epoch)
888
893
  cb_params.cur_step_num = 0
889
894
  cb_params.dataset_sink_mode = False
890
895
  run_context = RunContext(cb_params)
@@ -962,7 +967,7 @@ class Model:
962
967
  of data will be transferred one by one. The limitation of data transmission per time is 256M.
963
968
 
964
969
  When dataset_sink_mode is True, the `step_end` method of the instance of Callback will be called at the end
965
- of epoch.
970
+ of step in PyNative mode, or will be called at the end of epoch in Graph mode.
966
971
 
967
972
  If dataset_sink_mode is True, dataset will be bound to this model and cannot be used by other models.
968
973
 
@@ -1003,10 +1008,10 @@ class Model:
1003
1008
  >>> from mindspore.train import Model
1004
1009
  >>>
1005
1010
  >>> # Create the dataset taking MNIST as an example. Refer to
1006
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/mnist.py
1011
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/mnist.py
1007
1012
  >>> dataset = create_dataset()
1008
1013
  >>> # Define the network structure of LeNet5. Refer to
1009
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/lenet.py
1014
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/lenet.py
1010
1015
  >>> net = LeNet5()
1011
1016
  >>> loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True)
1012
1017
  >>> loss_scale_manager = ms.FixedLossScaleManager(1024., False)
@@ -1015,6 +1020,8 @@ class Model:
1015
1020
  ... loss_scale_manager=loss_scale_manager)
1016
1021
  >>> model.train(2, dataset)
1017
1022
  """
1023
+ # prepare dataset for obfuscated model
1024
+ train_dataset = self._prepare_obf_dataset(train_dataset)
1018
1025
  device_target = context.get_context("device_target")
1019
1026
  if _is_ps_mode() and not _cache_enable() and (device_target in ["Ascend", "CPU"]) and dataset_sink_mode:
1020
1027
  logger.info("For PS mode, reset datasink mode to False when using Ascend or CPU backend.")
@@ -1038,7 +1045,7 @@ class Model:
1038
1045
  self._check_sink_mode_for_ds_debug_mode(dataset_sink_mode)
1039
1046
 
1040
1047
  Validator.check_is_int(sink_size)
1041
- Validator.check_non_negative_int(epoch)
1048
+ Validator.check_positive_int(epoch)
1042
1049
  Validator.check_non_negative_int(initial_epoch)
1043
1050
  if initial_epoch >= epoch:
1044
1051
  raise ValueError(f"For 'Model.train', the parameter 'epoch' must bigger than parameter 'initial_epoch',"
@@ -1154,11 +1161,11 @@ class Model:
1154
1161
  >>> from mindspore.train import Model
1155
1162
  >>>
1156
1163
  >>> # Create the dataset taking MNIST as an example. Refer to
1157
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/mnist.py
1164
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/mnist.py
1158
1165
  >>> train_dataset = create_dataset("train")
1159
1166
  >>> valid_dataset = create_dataset("test")
1160
1167
  >>> # Define the network structure of LeNet5. Refer to
1161
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/lenet.py
1168
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/lenet.py
1162
1169
  >>> net = LeNet5()
1163
1170
  >>> loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True)
1164
1171
  >>> optim = nn.Momentum(params=net.trainable_params(), learning_rate=0.1, momentum=0.9)
@@ -1167,7 +1174,7 @@ class Model:
1167
1174
 
1168
1175
  Tutorial Examples:
1169
1176
  - `Advanced Encapsulation: Model - Train and Save Model
1170
- <https://mindspore.cn/tutorials/en/r2.1/advanced/model.html#train-and-save-model>`_
1177
+ <https://www.mindspore.cn/tutorials/en/r2.2/advanced/model.html#training-and-saving-model>`_
1171
1178
  """
1172
1179
  device_target = context.get_context("device_target")
1173
1180
  if _is_ps_mode() and not _cache_enable() and (device_target in ["Ascend", "CPU"]) and dataset_sink_mode:
@@ -1186,7 +1193,7 @@ class Model:
1186
1193
  .format(train_dataset._warmup_epoch, epoch))
1187
1194
 
1188
1195
  Validator.check_is_int(sink_size)
1189
- Validator.check_non_negative_int(epoch)
1196
+ Validator.check_positive_int(epoch)
1190
1197
  Validator.check_non_negative_int(initial_epoch)
1191
1198
  if initial_epoch >= epoch:
1192
1199
  raise ValueError(f"For 'Model.fit', the parameter 'epoch' must bigger than parameter 'initial_epoch',"
@@ -1247,10 +1254,10 @@ class Model:
1247
1254
  >>> from mindspore.amp import FixedLossScaleManager
1248
1255
  >>>
1249
1256
  >>> # Create the dataset taking MNIST as an example. Refer to
1250
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/mnist.py
1257
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/mnist.py
1251
1258
  >>> dataset = create_dataset()
1252
1259
  >>> # Define the network structure of LeNet5. Refer to
1253
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/lenet.py
1260
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/lenet.py
1254
1261
  >>> net = LeNet5()
1255
1262
  >>> loss = nn.SoftmaxCrossEntropyWithLogits()
1256
1263
  >>> loss_scale_manager = FixedLossScaleManager()
@@ -1260,6 +1267,10 @@ class Model:
1260
1267
  >>> model.build(dataset, epoch=2)
1261
1268
  >>> model.train(2, dataset)
1262
1269
  """
1270
+ epoch = Validator.check_positive_int(epoch)
1271
+ if hasattr(self._train_network, '_is_check_and_refresh') and not self._train_network._is_check_and_refresh:
1272
+ self._train_network.check_names_and_refresh_name()
1273
+ self._train_network._is_check_and_refresh = True
1263
1274
  self._init(train_dataset, valid_dataset, sink_size, epoch)
1264
1275
 
1265
1276
  def _eval_in_fit(self, valid_dataset, callbacks=None, dataset_sink_mode=True, cb_params=None):
@@ -1419,10 +1430,10 @@ class Model:
1419
1430
  >>> from mindspore.train import Model
1420
1431
  >>>
1421
1432
  >>> # Create the dataset taking MNIST as an example. Refer to
1422
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/mnist.py
1433
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/mnist.py
1423
1434
  >>> dataset = create_dataset()
1424
1435
  >>> # Define the network structure of LeNet5. Refer to
1425
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/lenet.py
1436
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/lenet.py
1426
1437
  >>> net = LeNet5()
1427
1438
  >>> loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True)
1428
1439
  >>> model = Model(net, loss_fn=loss, optimizer=None, metrics={'acc'})
@@ -1430,8 +1441,9 @@ class Model:
1430
1441
 
1431
1442
  Tutorial Examples:
1432
1443
  - `Advanced Encapsulation: Model - Train and Save Model
1433
- <https://mindspore.cn/tutorials/en/r2.1/advanced/model.html#train-and-save-model>`_
1444
+ <https://www.mindspore.cn/tutorials/en/r2.2/advanced/model.html#training-and-saving-model>`_
1434
1445
  """
1446
+ valid_dataset = self._prepare_obf_dataset(valid_dataset)
1435
1447
  dataset_sink_mode = Validator.check_bool(dataset_sink_mode)
1436
1448
 
1437
1449
  _device_number_check(self._parallel_mode, self._device_number)
@@ -1479,7 +1491,7 @@ class Model:
1479
1491
 
1480
1492
  return eval_result
1481
1493
 
1482
- def _predict_lite(self, *predict_data):
1494
+ def _predict_lite(self, *predict_data, config=None):
1483
1495
  """
1484
1496
  Generate output predictions for the input samples using backend 'lite'.
1485
1497
 
@@ -1488,6 +1500,48 @@ class Model:
1488
1500
  The predict data, can be a single tensor,
1489
1501
  a list of tensor, or a tuple of tensor.
1490
1502
 
1503
+ config (dict, optional) - The config parameter is enabled when the backend is ‘lite’.
1504
+ The config includes two parts: config_path (configPath, str) and config_item (str, dict).
1505
+ When the config_item is set, its priority is higher than the config_path. Set the ranking
1506
+ table file for inference. The content of the configuration file is as follows:
1507
+
1508
+ config_path defines the path of the configuration file, which is used to pass user-defined
1509
+ options during model building. In the following scenarios, users may need to set parameters.
1510
+ For example: "/home/user/config.ini". Default value: ``"" `` , here is the content of the
1511
+ config.ini file:
1512
+
1513
+ .. code-block::
1514
+
1515
+ [ascend_context]
1516
+ rank_table_file = [path_a](storage initial path of the rank table file)
1517
+ [execution_plan]
1518
+ [op_name1] = data_type:float16 (operator named op_name1 is set to data type Float16)
1519
+ [op_name2] = data_type:float32 (operator named op_name2 is set to data type Float32)
1520
+
1521
+ When only the config_path is configured, it is done as follows:
1522
+
1523
+ .. code-block::
1524
+
1525
+ config = {"configPath" : "/home/user/config.ini"}
1526
+
1527
+ When only the config_dict is configured, it is done as follows:
1528
+
1529
+ .. code-block::
1530
+
1531
+ config = {"ascend_context" : {"rank_table_file" : "path_b"},
1532
+ "execution_plan" : {"op_name1" : "data_type:float16", "op_name2" : "data_type:float32"}}
1533
+
1534
+ When both the `config_path` and the `config_dict` are configured, it is done as follows:
1535
+
1536
+ .. code-block::
1537
+
1538
+ config = {"configPath" : "/home/user/config.ini",
1539
+ "ascend_context" : {"rank_table_file" : "path_b"},
1540
+ "execution_plan" : {"op_name3" : "data_type:float16", "op_name4" : "data_type:float32"}}
1541
+
1542
+ Note that both the "configPath" is configured in the config_dict and the config_item,
1543
+ in this case, the path_b in the config_dict takes precedence.
1544
+
1491
1545
  Returns:
1492
1546
  Tensor, array(s) of predictions.
1493
1547
  """
@@ -1503,32 +1557,66 @@ class Model:
1503
1557
  device_id = context.get_context('device_id')
1504
1558
  if device_id and isinstance(device_id, int):
1505
1559
  lite_context_input.gpu.device_id = device_id
1560
+ if context.get_auto_parallel_context("parallel_mode") == context.ParallelMode.SEMI_AUTO_PARALLEL:
1561
+ from mindspore.communication import init, get_rank
1562
+ init()
1563
+ lite_context_input.gpu.rank_id = get_rank()
1506
1564
  elif device_target == 'ascend':
1507
1565
  device_id = context.get_context('device_id')
1508
1566
  if device_id and isinstance(device_id, int):
1509
1567
  lite_context_input.ascend.device_id = device_id
1568
+ if context.get_auto_parallel_context("parallel_mode") == context.ParallelMode.SEMI_AUTO_PARALLEL:
1569
+ from mindspore.communication import init, get_rank
1570
+ init()
1571
+ lite_context_input.ascend.rank_id = get_rank()
1572
+ lite_context_input.ascend.provider = "ge"
1510
1573
  else:
1511
1574
  raise RuntimeError(f"For predict lite, device target should be in ['gpu', 'cpu', 'ascend']"
1512
1575
  f" but got {device_target}")
1513
-
1514
1576
  return lite_context_input
1515
1577
 
1516
1578
  if not self._mindspore_lite:
1517
1579
  self._mindspore_lite = importlib.import_module('mindspore_lite')
1518
1580
 
1519
- check_input_data(*predict_data, data_class=Tensor)
1520
- if not self._lite_predictor:
1521
- lite_context = _get_lite_context(self._mindspore_lite.Context())
1522
- self._lite_predictor = \
1523
- self._mindspore_lite.lite_infer.LiteInfer(self, *predict_data, context=lite_context)
1524
-
1525
- inputs = self._lite_predictor.get_inputs()
1526
- if len(predict_data) != len(inputs):
1527
- raise RuntimeError(f"For 'Model.predict', numbers of predict_data {len(predict_data)} "
1528
- f"is not equal to numbers of net input {len(inputs)}")
1529
- for i, single_data in enumerate(predict_data):
1530
- inputs[i].set_data_from_numpy(single_data.asnumpy())
1531
- outputs: list = self._lite_predictor.predict(inputs)
1581
+ use_past = False # default execute full model inference
1582
+ model_group_id = None
1583
+ if self._predict_network.get_flags().__contains__("is_first_iteration"):
1584
+ is_first_iteration = self._predict_network.get_flags()['is_first_iteration']
1585
+ if isinstance(is_first_iteration, bool):
1586
+ use_past = not is_first_iteration
1587
+ model_group_id = self._mindspore_lite_model_group_id
1588
+
1589
+ check_input_data(*predict_data, data_class=(int, float, str, None, Tensor))
1590
+ if use_past:
1591
+ # Execute incremental model inference
1592
+ if not self._lite_incremental_predictor:
1593
+ lite_context = _get_lite_context(self._mindspore_lite.Context())
1594
+ self._lite_incremental_predictor = \
1595
+ self._mindspore_lite.lite_infer.LiteInfer(self, *predict_data, context=lite_context,
1596
+ model_group_id=model_group_id, config=config)
1597
+
1598
+ inputs = self._lite_incremental_predictor.get_inputs()
1599
+ if len(predict_data) != len(inputs):
1600
+ raise RuntimeError(f"For 'Model.predict', numbers of predict_data {len(predict_data)} "
1601
+ f"is not equal to numbers of net input {len(inputs)}")
1602
+ for i, single_data in enumerate(predict_data):
1603
+ inputs[i].set_data_from_numpy(single_data.asnumpy())
1604
+ outputs: list = self._lite_incremental_predictor.predict(inputs)
1605
+ else:
1606
+ # Execute full model inference
1607
+ if not self._lite_full_predictor:
1608
+ lite_context = _get_lite_context(self._mindspore_lite.Context())
1609
+ self._lite_full_predictor = \
1610
+ self._mindspore_lite.lite_infer.LiteInfer(self, *predict_data, context=lite_context,
1611
+ model_group_id=model_group_id, config=config)
1612
+
1613
+ inputs = self._lite_full_predictor.get_inputs()
1614
+ if len(predict_data) != len(inputs):
1615
+ raise RuntimeError(f"For 'Model.predict', numbers of predict_data {len(predict_data)} "
1616
+ f"is not equal to numbers of net input {len(inputs)}")
1617
+ for i, single_data in enumerate(predict_data):
1618
+ inputs[i].set_data_from_numpy(single_data.asnumpy())
1619
+ outputs: list = self._lite_full_predictor.predict(inputs)
1532
1620
  if not outputs:
1533
1621
  return Tensor(outputs)
1534
1622
  if len(outputs) == 1:
@@ -1536,7 +1624,7 @@ class Model:
1536
1624
  outputs = [Tensor(single_output.get_data_to_numpy()) for single_output in outputs]
1537
1625
  return tuple(outputs)
1538
1626
 
1539
- def predict(self, *predict_data, backend=None):
1627
+ def predict(self, *predict_data, backend=None, config=None):
1540
1628
  """
1541
1629
  Generate output predictions for the input samples.
1542
1630
 
@@ -1545,7 +1633,48 @@ class Model:
1545
1633
  The predict data, can be a single tensor,
1546
1634
  a list of tensor, or a tuple of tensor.
1547
1635
  backend (str): Select predict backend, this parameter is an experimental feature
1548
- and is mainly used for MindSpore Lite cloud-side inference. Default: ``False`` .
1636
+ and is mainly used for MindSpore Lite cloud-side inference. Default: ``None`` .
1637
+ config (dict, optional) - The config parameter is enabled when the backend is ‘lite’.
1638
+ The config includes two parts: config_path (configPath, str) and config_item (str, dict).
1639
+ When the config_item is set, its priority is higher than the config_path. Set the ranking
1640
+ table file for inference. The content of the configuration file is as follows:
1641
+
1642
+ config_path defines the path of the configuration file, which is used to pass user-defined
1643
+ options during model building. In the following scenarios, users may need to set parameters.
1644
+ For example: "/home/user/config.ini". Default value: ``""`` , here is the content of the
1645
+ config.ini file:
1646
+
1647
+ .. code-block::
1648
+
1649
+ [ascend_context]
1650
+ rank_table_file = [path_a](storage initial path of the rank table file)
1651
+ [execution_plan]
1652
+ [op_name1] = data_type:float16 (operator named op_name1 is set to data type Float16)
1653
+ [op_name2] = data_type:float32 (operator named op_name2 is set to data type Float32)
1654
+
1655
+ When only the config_path is configured, it is done as follows:
1656
+
1657
+ .. code-block::
1658
+
1659
+ config = {"configPath" : "/home/user/config.ini"}
1660
+
1661
+ When only the config_dict is configured, it is done as follows:
1662
+
1663
+ .. code-block::
1664
+
1665
+ config = {"ascend_context" : {"rank_table_file" : "path_b"},
1666
+ "execution_plan" : {"op_name1" : "data_type:float16", "op_name2" : "data_type:float32"}}
1667
+
1668
+ When both the `config_path` and the `config_dict` are configured, it is done as follows:
1669
+
1670
+ .. code-block::
1671
+
1672
+ config = {"configPath" : "/home/user/config.ini",
1673
+ "ascend_context" : {"rank_table_file" : "path_b"},
1674
+ "execution_plan" : {"op_name3" : "data_type:float16", "op_name4" : "data_type:float32"}}
1675
+
1676
+ Note that both the "configPath" is configured in the config_dict and the config_item,
1677
+ in this case, the path_b in the config_dict takes precedence.
1549
1678
 
1550
1679
  Returns:
1551
1680
  Tensor, array(s) of predictions.
@@ -1558,7 +1687,7 @@ class Model:
1558
1687
  >>>
1559
1688
  >>> input_data = Tensor(np.random.randint(0, 255, [1, 1, 32, 32]), mindspore.float32)
1560
1689
  >>> # Define the network structure of LeNet5. Refer to
1561
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/lenet.py
1690
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/lenet.py
1562
1691
  >>> model = Model(LeNet5())
1563
1692
  >>> result = model.predict(input_data)
1564
1693
  """
@@ -1567,7 +1696,7 @@ class Model:
1567
1696
  if backend == "lite" and self._lite_infer:
1568
1697
  # pylint: disable=broad-except
1569
1698
  try:
1570
- return self._predict_lite(*predict_data)
1699
+ return self._predict_lite(*predict_data, config=config)
1571
1700
  except RuntimeError:
1572
1701
  self._lite_infer = False
1573
1702
  logger.warning("Lite inference failed, fallback to original inference!")
@@ -1666,10 +1795,10 @@ class Model:
1666
1795
  >>> ms.set_auto_parallel_context(parallel_mode=ms.ParallelMode.SEMI_AUTO_PARALLEL)
1667
1796
  >>>
1668
1797
  >>> # Create the dataset taking MNIST as an example. Refer to
1669
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/mnist.py
1798
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/mnist.py
1670
1799
  >>> dataset = create_dataset()
1671
1800
  >>> # Define the network structure of LeNet5. Refer to
1672
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/lenet.py
1801
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/lenet.py
1673
1802
  >>> net = LeNet5()
1674
1803
  >>> loss = nn.SoftmaxCrossEntropyWithLogits()
1675
1804
  >>> loss_scale_manager = ms.FixedLossScaleManager()
@@ -1738,7 +1867,7 @@ class Model:
1738
1867
  if _get_parallel_mode() not in (ParallelMode.SEMI_AUTO_PARALLEL, ParallelMode.AUTO_PARALLEL):
1739
1868
  raise RuntimeError('Infer predict layout only supports semi auto parallel and auto parallel mode.')
1740
1869
  _parallel_predict_check()
1741
- check_input_data(*predict_data, data_class=Tensor)
1870
+ check_input_data(*predict_data, data_class=(int, float, str, None, Tensor))
1742
1871
 
1743
1872
  predict_net = self._predict_network
1744
1873
  # Unlike the cases in build_train_network() and build_eval_network(), 'multi_subgraphs' is not set
@@ -1790,5 +1919,16 @@ class Model:
1790
1919
  """
1791
1920
  return self._eval_network
1792
1921
 
1922
+ def _prepare_obf_dataset(self, dataset):
1923
+ if not hasattr(self._network, 'obf_ratios'):
1924
+ return dataset
1925
+ data_size = dataset.get_dataset_size()
1926
+ obf_ratio_dataset = []
1927
+ for _ in range(data_size):
1928
+ obf_ratio_dataset.append(self._network.obf_ratios)
1929
+ obf_ratio_dataset = ds.NumpySlicesDataset(data=obf_ratio_dataset, column_names=["y_obf"])
1930
+ dataset = ds.zip((dataset, obf_ratio_dataset))
1931
+ return dataset
1932
+
1793
1933
 
1794
1934
  __all__ = ["Model"]