mindspore 2.4.10__cp39-cp39-win_amd64.whl → 2.6.0__cp39-cp39-win_amd64.whl

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

Potentially problematic release.


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

Files changed (579) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +13 -6
  3. mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
  4. mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
  5. mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
  6. mindspore/_check_jit_forbidden_api.py +3 -0
  7. mindspore/_checkparam.py +3 -38
  8. mindspore/_deprecated/__init__.py +17 -0
  9. mindspore/_deprecated/jit.py +198 -0
  10. mindspore/_extends/builtin_operations.py +1 -1
  11. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
  12. mindspore/_extends/parse/__init__.py +6 -7
  13. mindspore/_extends/parse/compile_config.py +83 -0
  14. mindspore/_extends/parse/deprecated/__init__.py +0 -0
  15. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +394 -0
  16. mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
  17. mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
  18. mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
  19. mindspore/_extends/parse/parser.py +47 -198
  20. mindspore/_extends/parse/resources.py +1 -5
  21. mindspore/_extends/parse/standard_method.py +229 -99
  22. mindspore/_extends/pijit/__init__.py +2 -2
  23. mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
  24. mindspore/_extends/pijit/tensor_func_list.py +27 -0
  25. mindspore/_extends/utils.py +1 -1
  26. mindspore/amp.py +11 -5
  27. mindspore/avcodec-59.dll +0 -0
  28. mindspore/avdevice-59.dll +0 -0
  29. mindspore/avfilter-8.dll +0 -0
  30. mindspore/avformat-59.dll +0 -0
  31. mindspore/avutil-57.dll +0 -0
  32. mindspore/boost/__init__.py +2 -2
  33. mindspore/boost/base.py +3 -7
  34. mindspore/boost/boost_cell_wrapper.py +138 -43
  35. mindspore/common/__init__.py +6 -3
  36. mindspore/common/_grad_function.py +56 -0
  37. mindspore/common/_pijit_context.py +14 -5
  38. mindspore/common/_register_for_tensor.py +1 -2
  39. mindspore/common/_stub_tensor.py +30 -14
  40. mindspore/common/_tensor_cpp_method.py +17 -0
  41. mindspore/common/_tensor_docs.py +4760 -0
  42. mindspore/common/api.py +480 -372
  43. mindspore/common/auto_dynamic_shape.py +41 -44
  44. mindspore/common/dtype.py +39 -36
  45. mindspore/common/dump.py +9 -6
  46. mindspore/common/file_system.py +9 -1
  47. mindspore/common/generator.py +5 -0
  48. mindspore/common/hook_handle.py +6 -2
  49. mindspore/common/initializer.py +13 -10
  50. mindspore/common/jit_begin_end.py +94 -0
  51. mindspore/common/jit_config.py +6 -1
  52. mindspore/common/jit_context.py +76 -0
  53. mindspore/common/jit_trace.py +378 -0
  54. mindspore/common/lazy_inline.py +9 -3
  55. mindspore/common/mindir_util.py +10 -2
  56. mindspore/common/mutable.py +5 -4
  57. mindspore/common/parameter.py +135 -52
  58. mindspore/common/seed.py +2 -2
  59. mindspore/common/sparse_tensor.py +23 -17
  60. mindspore/common/tensor.py +975 -1981
  61. mindspore/communication/__init__.py +7 -5
  62. mindspore/communication/_comm_helper.py +52 -2
  63. mindspore/communication/comm_func.py +240 -181
  64. mindspore/communication/management.py +95 -26
  65. mindspore/context.py +324 -573
  66. mindspore/dataset/__init__.py +65 -37
  67. mindspore/dataset/audio/__init__.py +2 -8
  68. mindspore/dataset/audio/transforms.py +3 -17
  69. mindspore/dataset/callback/ds_callback.py +2 -1
  70. mindspore/dataset/core/config.py +87 -6
  71. mindspore/dataset/engine/cache_admin.py +3 -3
  72. mindspore/dataset/engine/cache_client.py +6 -5
  73. mindspore/dataset/engine/datasets.py +292 -267
  74. mindspore/dataset/engine/datasets_audio.py +22 -8
  75. mindspore/dataset/engine/datasets_standard_format.py +46 -27
  76. mindspore/dataset/engine/datasets_text.py +78 -48
  77. mindspore/dataset/engine/datasets_user_defined.py +183 -117
  78. mindspore/dataset/engine/datasets_vision.py +120 -44
  79. mindspore/dataset/engine/iterators.py +283 -63
  80. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  81. mindspore/dataset/engine/obs/util.py +8 -0
  82. mindspore/dataset/engine/queue.py +40 -0
  83. mindspore/dataset/engine/samplers.py +289 -43
  84. mindspore/dataset/engine/serializer_deserializer.py +3 -2
  85. mindspore/dataset/engine/validators.py +53 -11
  86. mindspore/dataset/text/__init__.py +7 -6
  87. mindspore/dataset/text/transforms.py +6 -5
  88. mindspore/dataset/text/utils.py +3 -3
  89. mindspore/dataset/transforms/__init__.py +0 -9
  90. mindspore/dataset/transforms/py_transforms_util.py +17 -0
  91. mindspore/dataset/transforms/transforms.py +31 -14
  92. mindspore/dataset/utils/browse_dataset.py +1 -1
  93. mindspore/dataset/vision/__init__.py +2 -9
  94. mindspore/dataset/vision/transforms.py +202 -158
  95. mindspore/dataset/vision/utils.py +7 -5
  96. mindspore/dataset/vision/validators.py +1 -2
  97. mindspore/device_context/__init__.py +21 -0
  98. mindspore/device_context/ascend/__init__.py +25 -0
  99. mindspore/device_context/ascend/device.py +72 -0
  100. mindspore/device_context/ascend/op_debug.py +153 -0
  101. mindspore/device_context/ascend/op_precision.py +193 -0
  102. mindspore/device_context/ascend/op_tuning.py +123 -0
  103. mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
  104. mindspore/device_context/cpu/device.py +62 -0
  105. mindspore/device_context/cpu/op_tuning.py +43 -0
  106. mindspore/device_context/gpu/__init__.py +21 -0
  107. mindspore/device_context/gpu/device.py +70 -0
  108. mindspore/device_context/gpu/op_precision.py +67 -0
  109. mindspore/device_context/gpu/op_tuning.py +175 -0
  110. mindspore/device_manager.py +170 -0
  111. mindspore/dnnl.dll +0 -0
  112. mindspore/experimental/es/embedding_service.py +35 -27
  113. mindspore/experimental/llm_boost/__init__.py +1 -0
  114. mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
  115. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +209 -0
  116. mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
  117. mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
  118. mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
  119. mindspore/experimental/llm_boost/register.py +1 -0
  120. mindspore/experimental/map_parameter.py +4 -4
  121. mindspore/experimental/optim/adadelta.py +6 -6
  122. mindspore/experimental/optim/adagrad.py +4 -4
  123. mindspore/experimental/optim/adam.py +7 -0
  124. mindspore/experimental/optim/adamax.py +4 -4
  125. mindspore/experimental/optim/adamw.py +4 -0
  126. mindspore/experimental/optim/asgd.py +1 -1
  127. mindspore/experimental/optim/lr_scheduler.py +73 -46
  128. mindspore/experimental/optim/radam.py +34 -31
  129. mindspore/experimental/optim/rprop.py +1 -1
  130. mindspore/experimental/optim/sgd.py +1 -1
  131. mindspore/hal/contiguous_tensors_handle.py +6 -10
  132. mindspore/hal/device.py +55 -53
  133. mindspore/hal/event.py +52 -52
  134. mindspore/hal/memory.py +179 -120
  135. mindspore/hal/stream.py +150 -109
  136. mindspore/include/api/context.h +0 -1
  137. mindspore/include/dataset/constants.h +7 -4
  138. mindspore/include/dataset/execute.h +2 -2
  139. mindspore/jpeg62.dll +0 -0
  140. mindspore/log.py +50 -0
  141. mindspore/mindrecord/__init__.py +21 -8
  142. mindspore/mindrecord/config.py +17 -316
  143. mindspore/mindrecord/filereader.py +1 -9
  144. mindspore/mindrecord/filewriter.py +5 -15
  145. mindspore/mindrecord/mindpage.py +1 -9
  146. mindspore/mindspore_backend_common.dll +0 -0
  147. mindspore/mindspore_backend_manager.dll +0 -0
  148. mindspore/mindspore_common.dll +0 -0
  149. mindspore/mindspore_core.dll +0 -0
  150. mindspore/mindspore_dump.dll +0 -0
  151. mindspore/mindspore_frontend.dll +0 -0
  152. mindspore/mindspore_glog.dll +0 -0
  153. mindspore/mindspore_memory_pool.dll +0 -0
  154. mindspore/mindspore_ms_backend.dll +0 -0
  155. mindspore/mindspore_ops.dll +0 -0
  156. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  157. mindspore/mindspore_ops_kernel_common.dll +0 -0
  158. mindspore/mindspore_profiler.dll +0 -0
  159. mindspore/mindspore_pyboost.dll +0 -0
  160. mindspore/mindspore_pynative.dll +0 -0
  161. mindspore/mindspore_res_manager.dll +0 -0
  162. mindspore/mindspore_runtime_pipeline.dll +0 -0
  163. mindspore/mint/__init__.py +798 -761
  164. mindspore/mint/distributed/__init__.py +70 -4
  165. mindspore/mint/distributed/distributed.py +2679 -44
  166. mindspore/mint/linalg/__init__.py +8 -0
  167. mindspore/mint/nn/__init__.py +743 -22
  168. mindspore/mint/nn/functional.py +716 -23
  169. mindspore/mint/nn/layer/__init__.py +21 -4
  170. mindspore/mint/nn/layer/_functions.py +334 -0
  171. mindspore/mint/nn/layer/activation.py +276 -1
  172. mindspore/mint/nn/layer/basic.py +123 -0
  173. mindspore/mint/nn/layer/conv.py +933 -0
  174. mindspore/mint/nn/layer/normalization.py +223 -28
  175. mindspore/mint/nn/layer/padding.py +797 -0
  176. mindspore/mint/nn/layer/pooling.py +235 -0
  177. mindspore/mint/optim/__init__.py +3 -1
  178. mindspore/mint/optim/adam.py +223 -0
  179. mindspore/mint/optim/adamw.py +26 -19
  180. mindspore/mint/optim/sgd.py +171 -0
  181. mindspore/mint/special/__init__.py +2 -1
  182. mindspore/multiprocessing/__init__.py +5 -0
  183. mindspore/nn/__init__.py +4 -1
  184. mindspore/nn/cell.py +1373 -192
  185. mindspore/nn/dynamic_lr.py +2 -1
  186. mindspore/nn/layer/activation.py +29 -27
  187. mindspore/nn/layer/basic.py +51 -35
  188. mindspore/nn/layer/channel_shuffle.py +3 -3
  189. mindspore/nn/layer/container.py +1 -1
  190. mindspore/nn/layer/conv.py +53 -42
  191. mindspore/nn/layer/embedding.py +12 -11
  192. mindspore/nn/layer/normalization.py +56 -49
  193. mindspore/nn/layer/padding.py +4 -3
  194. mindspore/nn/layer/pooling.py +120 -42
  195. mindspore/nn/layer/rnn_cells.py +1 -1
  196. mindspore/nn/layer/rnns.py +2 -1
  197. mindspore/nn/layer/timedistributed.py +5 -5
  198. mindspore/nn/layer/transformer.py +59 -36
  199. mindspore/nn/learning_rate_schedule.py +8 -4
  200. mindspore/nn/loss/loss.py +58 -55
  201. mindspore/nn/optim/ada_grad.py +7 -5
  202. mindspore/nn/optim/adadelta.py +11 -9
  203. mindspore/nn/optim/adafactor.py +1 -1
  204. mindspore/nn/optim/adam.py +19 -15
  205. mindspore/nn/optim/adamax.py +8 -7
  206. mindspore/nn/optim/adasum.py +5 -5
  207. mindspore/nn/optim/asgd.py +3 -1
  208. mindspore/nn/optim/ftrl.py +11 -9
  209. mindspore/nn/optim/lamb.py +1 -1
  210. mindspore/nn/optim/lars.py +1 -4
  211. mindspore/nn/optim/lazyadam.py +12 -10
  212. mindspore/nn/optim/momentum.py +7 -6
  213. mindspore/nn/optim/optimizer.py +3 -3
  214. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  215. mindspore/nn/optim/rmsprop.py +13 -12
  216. mindspore/nn/optim/rprop.py +11 -9
  217. mindspore/nn/optim/sgd.py +9 -6
  218. mindspore/nn/optim/tft_wrapper.py +5 -2
  219. mindspore/nn/optim/thor.py +2 -1
  220. mindspore/nn/probability/bijector/bijector.py +17 -11
  221. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  222. mindspore/nn/probability/bijector/invert.py +2 -2
  223. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  224. mindspore/nn/probability/bijector/softplus.py +3 -2
  225. mindspore/nn/probability/distribution/beta.py +3 -3
  226. mindspore/nn/probability/distribution/categorical.py +1 -1
  227. mindspore/nn/probability/distribution/cauchy.py +4 -2
  228. mindspore/nn/probability/distribution/exponential.py +6 -7
  229. mindspore/nn/probability/distribution/gamma.py +2 -2
  230. mindspore/nn/probability/distribution/gumbel.py +2 -2
  231. mindspore/nn/probability/distribution/half_normal.py +5 -3
  232. mindspore/nn/probability/distribution/logistic.py +5 -3
  233. mindspore/nn/probability/distribution/poisson.py +1 -1
  234. mindspore/nn/probability/distribution/uniform.py +5 -3
  235. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  236. mindspore/nn/reinforcement/tensor_array.py +1 -1
  237. mindspore/nn/utils/init.py +13 -11
  238. mindspore/nn/wrap/__init__.py +6 -6
  239. mindspore/nn/wrap/cell_wrapper.py +181 -122
  240. mindspore/nn/wrap/grad_reducer.py +45 -36
  241. mindspore/nn/wrap/loss_scale.py +6 -7
  242. mindspore/numpy/array_creations.py +63 -65
  243. mindspore/numpy/array_ops.py +149 -144
  244. mindspore/numpy/logic_ops.py +41 -42
  245. mindspore/numpy/math_ops.py +361 -359
  246. mindspore/numpy/utils.py +17 -18
  247. mindspore/numpy/utils_const.py +5 -6
  248. mindspore/opencv_core452.dll +0 -0
  249. mindspore/opencv_imgcodecs452.dll +0 -0
  250. mindspore/opencv_imgproc452.dll +0 -0
  251. mindspore/ops/__init__.py +5 -3
  252. mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
  253. mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
  254. mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
  255. mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
  256. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  257. mindspore/ops/_op_impl/cpu/__init__.py +1 -0
  258. mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
  259. mindspore/ops/_register_for_op.py +0 -11
  260. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  261. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -65
  262. mindspore/ops/_vmap/vmap_array_ops.py +52 -25
  263. mindspore/ops/_vmap/vmap_base.py +0 -2
  264. mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
  265. mindspore/ops/_vmap/vmap_math_ops.py +15 -16
  266. mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
  267. mindspore/ops/auto_generate/__init__.py +4 -3
  268. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +258 -46
  269. mindspore/ops/auto_generate/gen_extend_func.py +757 -185
  270. mindspore/ops/auto_generate/gen_ops_def.py +4197 -2243
  271. mindspore/ops/auto_generate/gen_ops_prim.py +16976 -6055
  272. mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
  273. mindspore/ops/composite/__init__.py +2 -1
  274. mindspore/ops/composite/base.py +20 -25
  275. mindspore/ops/composite/math_ops.py +6 -16
  276. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  277. mindspore/ops/composite/multitype_ops/_compile_utils.py +228 -30
  278. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  279. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  280. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  281. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  282. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  283. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  284. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  285. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  286. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  287. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  288. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  289. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  290. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  291. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  292. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  293. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  294. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  295. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  296. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  297. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  298. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  299. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  300. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  301. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  302. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  303. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -30
  304. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  305. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  306. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  307. mindspore/ops/function/__init__.py +40 -2
  308. mindspore/ops/function/_add_attr_func.py +58 -0
  309. mindspore/ops/function/array_func.py +2089 -2403
  310. mindspore/ops/function/clip_func.py +80 -23
  311. mindspore/ops/function/debug_func.py +57 -57
  312. mindspore/ops/function/grad/__init__.py +1 -0
  313. mindspore/ops/function/grad/grad_func.py +104 -71
  314. mindspore/ops/function/image_func.py +2 -2
  315. mindspore/ops/function/linalg_func.py +47 -78
  316. mindspore/ops/function/math_func.py +4351 -3813
  317. mindspore/ops/function/nn_func.py +1712 -637
  318. mindspore/ops/function/other_func.py +159 -1
  319. mindspore/ops/function/parameter_func.py +18 -84
  320. mindspore/ops/function/random_func.py +452 -387
  321. mindspore/ops/function/reshard_func.py +4 -70
  322. mindspore/ops/function/sparse_func.py +3 -3
  323. mindspore/ops/function/sparse_unary_func.py +6 -6
  324. mindspore/ops/function/spectral_func.py +25 -58
  325. mindspore/ops/function/vmap_func.py +26 -18
  326. mindspore/ops/functional.py +23 -7
  327. mindspore/ops/functional_overload.py +1548 -0
  328. mindspore/ops/op_info_register.py +32 -244
  329. mindspore/ops/operations/__init__.py +23 -15
  330. mindspore/ops/operations/_custom_ops_utils.py +235 -0
  331. mindspore/ops/operations/_embedding_cache_ops.py +4 -4
  332. mindspore/ops/operations/_grad_ops.py +2 -43
  333. mindspore/ops/operations/_infer_ops.py +2 -1
  334. mindspore/ops/operations/_inner_ops.py +43 -84
  335. mindspore/ops/operations/_ms_kernel.py +4 -10
  336. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  337. mindspore/ops/operations/_scalar_ops.py +3 -2
  338. mindspore/ops/operations/_sequence_ops.py +1 -1
  339. mindspore/ops/operations/_tensor_array.py +1 -1
  340. mindspore/ops/operations/array_ops.py +81 -324
  341. mindspore/ops/operations/comm_ops.py +154 -108
  342. mindspore/ops/operations/custom_ops.py +298 -87
  343. mindspore/ops/operations/debug_ops.py +157 -59
  344. mindspore/ops/operations/inner_ops.py +7 -5
  345. mindspore/ops/operations/linalg_ops.py +1 -57
  346. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  347. mindspore/ops/operations/manually_defined/ops_def.py +928 -180
  348. mindspore/ops/operations/math_ops.py +32 -234
  349. mindspore/ops/operations/nn_ops.py +212 -531
  350. mindspore/ops/operations/other_ops.py +62 -9
  351. mindspore/ops/operations/random_ops.py +13 -7
  352. mindspore/ops/operations/reshard_ops.py +1 -1
  353. mindspore/ops/operations/sparse_ops.py +2 -2
  354. mindspore/ops/primitive.py +66 -53
  355. mindspore/ops/tensor_method.py +1895 -0
  356. mindspore/ops_generate/__init__.py +0 -5
  357. mindspore/ops_generate/aclnn/__init__.py +0 -0
  358. mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
  359. mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
  360. mindspore/ops_generate/api/__init__.py +0 -0
  361. mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
  362. mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
  363. mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
  364. mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
  365. mindspore/ops_generate/api/functions_cc_generator.py +237 -0
  366. mindspore/ops_generate/api/gen_api.py +103 -0
  367. mindspore/ops_generate/api/op_api_proto.py +235 -0
  368. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
  369. mindspore/ops_generate/common/__init__.py +0 -0
  370. mindspore/ops_generate/common/base_generator.py +11 -0
  371. mindspore/ops_generate/common/gen_constants.py +91 -0
  372. mindspore/ops_generate/common/gen_utils.py +348 -0
  373. mindspore/ops_generate/common/op_proto.py +473 -0
  374. mindspore/ops_generate/common/template.py +523 -0
  375. mindspore/ops_generate/gen_ops.py +22 -1069
  376. mindspore/ops_generate/op_def/__init__.py +0 -0
  377. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  378. mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
  379. mindspore/ops_generate/op_def/ops_def_cc_generator.py +296 -0
  380. mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
  381. mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
  382. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  383. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  384. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  385. mindspore/ops_generate/op_def_py/op_def_py_generator.py +132 -0
  386. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
  387. mindspore/ops_generate/pyboost/__init__.py +0 -0
  388. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
  389. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
  390. mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
  391. mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
  392. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
  393. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
  394. mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
  395. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
  396. mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
  397. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
  398. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
  399. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
  400. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
  401. mindspore/ops_generate/resources/__init__.py +0 -0
  402. mindspore/ops_generate/resources/resource_list.py +30 -0
  403. mindspore/ops_generate/resources/resource_loader.py +36 -0
  404. mindspore/ops_generate/resources/resource_manager.py +64 -0
  405. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  406. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  407. mindspore/parallel/__init__.py +7 -3
  408. mindspore/parallel/_auto_parallel_context.py +159 -40
  409. mindspore/parallel/_cell_wrapper.py +132 -15
  410. mindspore/parallel/_parallel_serialization.py +107 -5
  411. mindspore/parallel/_ps_context.py +1 -1
  412. mindspore/parallel/_recovery_context.py +7 -2
  413. mindspore/parallel/_tensor.py +142 -18
  414. mindspore/parallel/_utils.py +199 -23
  415. mindspore/parallel/algo_parameter_config.py +4 -4
  416. mindspore/parallel/auto_parallel.py +732 -0
  417. mindspore/parallel/checkpoint_convert.py +159 -0
  418. mindspore/parallel/checkpoint_transform.py +700 -35
  419. mindspore/parallel/cluster/process_entity/_api.py +276 -50
  420. mindspore/parallel/cluster/process_entity/_utils.py +41 -6
  421. mindspore/parallel/cluster/run.py +21 -4
  422. mindspore/parallel/function/__init__.py +24 -0
  423. mindspore/parallel/function/reshard_func.py +258 -0
  424. mindspore/parallel/nn/__init__.py +25 -0
  425. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  426. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  427. mindspore/parallel/parameter_broadcast.py +25 -14
  428. mindspore/parallel/shard.py +137 -59
  429. mindspore/parallel/transform_safetensors.py +364 -305
  430. mindspore/profiler/__init__.py +22 -5
  431. mindspore/profiler/analysis/__init__.py +0 -0
  432. mindspore/profiler/analysis/parser/__init__.py +0 -0
  433. mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
  434. mindspore/profiler/analysis/parser/base_parser.py +158 -0
  435. mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
  436. mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
  437. mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
  438. mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
  439. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
  440. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
  441. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +109 -0
  442. mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
  443. mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
  444. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
  445. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
  446. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
  447. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
  448. mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
  449. mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
  450. mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
  451. mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
  452. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
  453. mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
  454. mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
  455. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
  456. mindspore/profiler/analysis/task_manager.py +131 -0
  457. mindspore/profiler/analysis/time_converter.py +84 -0
  458. mindspore/profiler/analysis/viewer/__init__.py +0 -0
  459. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
  460. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
  461. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
  462. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
  463. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
  464. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
  465. mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
  466. mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
  467. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
  468. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
  469. mindspore/profiler/analysis/work_flow.py +73 -0
  470. mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
  471. mindspore/profiler/common/command_executor.py +90 -0
  472. mindspore/profiler/common/constant.py +186 -3
  473. mindspore/profiler/common/file_manager.py +208 -0
  474. mindspore/profiler/common/log.py +130 -0
  475. mindspore/profiler/common/msprof_cmd_tool.py +221 -0
  476. mindspore/profiler/common/path_manager.py +395 -0
  477. mindspore/profiler/common/process_bar.py +168 -0
  478. mindspore/profiler/common/process_pool.py +9 -3
  479. mindspore/profiler/common/profiler_context.py +500 -0
  480. mindspore/profiler/common/profiler_info.py +304 -0
  481. mindspore/profiler/common/profiler_meta_data.py +74 -0
  482. mindspore/profiler/common/profiler_output_path.py +284 -0
  483. mindspore/profiler/common/profiler_parameters.py +251 -0
  484. mindspore/profiler/common/profiler_path_manager.py +179 -0
  485. mindspore/profiler/common/record_function.py +76 -0
  486. mindspore/profiler/common/tlv_decoder.py +76 -0
  487. mindspore/profiler/common/util.py +75 -2
  488. mindspore/profiler/dynamic_profiler.py +341 -75
  489. mindspore/profiler/envprofiler.py +163 -0
  490. mindspore/profiler/experimental_config.py +197 -0
  491. mindspore/profiler/mstx.py +242 -0
  492. mindspore/profiler/platform/__init__.py +21 -0
  493. mindspore/profiler/platform/base_profiler.py +40 -0
  494. mindspore/profiler/platform/cpu_profiler.py +124 -0
  495. mindspore/profiler/platform/gpu_profiler.py +74 -0
  496. mindspore/profiler/platform/npu_profiler.py +335 -0
  497. mindspore/profiler/profiler.py +1073 -90
  498. mindspore/profiler/profiler_action_controller.py +187 -0
  499. mindspore/profiler/profiler_interface.py +118 -0
  500. mindspore/profiler/schedule.py +243 -0
  501. mindspore/rewrite/api/node.py +15 -13
  502. mindspore/rewrite/api/symbol_tree.py +2 -3
  503. mindspore/run_check/_check_version.py +27 -20
  504. mindspore/run_check/run_check.py +1 -1
  505. mindspore/runtime/__init__.py +37 -0
  506. mindspore/runtime/device.py +27 -0
  507. mindspore/runtime/event.py +209 -0
  508. mindspore/runtime/executor.py +177 -0
  509. mindspore/runtime/memory.py +416 -0
  510. mindspore/runtime/stream.py +460 -0
  511. mindspore/runtime/thread_bind_core.py +401 -0
  512. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  513. mindspore/swresample-4.dll +0 -0
  514. mindspore/swscale-6.dll +0 -0
  515. mindspore/tinyxml2.dll +0 -0
  516. mindspore/train/__init__.py +8 -8
  517. mindspore/train/_utils.py +96 -27
  518. mindspore/train/amp.py +9 -5
  519. mindspore/train/callback/__init__.py +2 -2
  520. mindspore/train/callback/_callback.py +2 -16
  521. mindspore/train/callback/_checkpoint.py +53 -55
  522. mindspore/train/callback/_cluster_monitor.py +14 -18
  523. mindspore/train/callback/_early_stop.py +1 -1
  524. mindspore/train/callback/_flops_collector.py +103 -68
  525. mindspore/train/callback/_history.py +8 -5
  526. mindspore/train/callback/_lambda_callback.py +2 -2
  527. mindspore/train/callback/_landscape.py +0 -3
  528. mindspore/train/callback/_loss_monitor.py +2 -1
  529. mindspore/train/callback/_on_request_exit.py +6 -5
  530. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  531. mindspore/train/callback/_summary_collector.py +52 -19
  532. mindspore/train/callback/_time_monitor.py +2 -1
  533. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +228 -108
  534. mindspore/train/data_sink.py +25 -2
  535. mindspore/train/dataset_helper.py +15 -16
  536. mindspore/train/loss_scale_manager.py +8 -7
  537. mindspore/train/metrics/accuracy.py +3 -3
  538. mindspore/train/metrics/confusion_matrix.py +9 -9
  539. mindspore/train/metrics/error.py +3 -3
  540. mindspore/train/metrics/hausdorff_distance.py +4 -4
  541. mindspore/train/metrics/mean_surface_distance.py +3 -3
  542. mindspore/train/metrics/metric.py +0 -12
  543. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  544. mindspore/train/metrics/precision.py +11 -10
  545. mindspore/train/metrics/recall.py +9 -9
  546. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  547. mindspore/train/mind_ir_pb2.py +174 -46
  548. mindspore/train/model.py +269 -136
  549. mindspore/train/serialization.py +622 -978
  550. mindspore/train/summary/_summary_adapter.py +2 -2
  551. mindspore/train/summary/summary_record.py +2 -3
  552. mindspore/train/train_thor/model_thor.py +1 -1
  553. mindspore/turbojpeg.dll +0 -0
  554. mindspore/utils/__init__.py +6 -3
  555. mindspore/utils/dryrun.py +140 -0
  556. mindspore/utils/hooks.py +81 -0
  557. mindspore/utils/runtime_execution_order_check.py +552 -0
  558. mindspore/utils/utils.py +138 -4
  559. mindspore/version.py +1 -1
  560. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/METADATA +3 -3
  561. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/RECORD +564 -395
  562. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +1 -1
  563. mindspore/_install_custom.py +0 -43
  564. mindspore/common/_register_for_adapter.py +0 -74
  565. mindspore/common/_tensor_overload.py +0 -139
  566. mindspore/mindspore_np_dtype.dll +0 -0
  567. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  568. mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
  569. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  570. mindspore/ops_generate/gen_aclnn_implement.py +0 -263
  571. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  572. mindspore/ops_generate/gen_pyboost_func.py +0 -1052
  573. mindspore/ops_generate/gen_utils.py +0 -209
  574. mindspore/ops_generate/op_proto.py +0 -145
  575. mindspore/ops_generate/template.py +0 -261
  576. mindspore/profiler/envprofiling.py +0 -254
  577. mindspore/profiler/profiling.py +0 -1926
  578. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
  579. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
@@ -198,7 +198,7 @@ class EarlyStopping(Callback):
198
198
  """
199
199
  Get the monitor value at the end of epoch during training.
200
200
 
201
- If `mindspore.train.callback.ReduceLROnPlateau` used with `model.train`, no evaluation process
201
+ If :class:`mindspore.train.callback.ReduceLROnPlateau` used with `model.train`, no evaluation process
202
202
  during training, only monitor="loss" is valid; if it used with `model.fit`, evaluation process will be
203
203
  performed at the end of epoch, valid monitor is "loss", "eval_loss" and metrics passed to `Model`.
204
204
 
@@ -61,10 +61,13 @@ class FlopsUtilizationCollector(Callback):
61
61
  computility (int): The peak flops of each compute card. Default: ``1`` .
62
62
  full_flops(bool): Whether to count the full model flops. If set full_flops to False,
63
63
  FlopsUtilizationCollector would count the shard model flops in each device. Default: ``True`` .
64
+ enable_ma_collector(bool): Whether to write flops into the log and provide them to tasks
65
+ on the cloud for retrieval. Default: ``False`` .
64
66
 
65
67
  Raises:
66
68
  TypeError: If data_size is not positive int.
67
69
  TypeError: If full_flops is not bool.
70
+ TypeError: If enable_ma_collector is not bool.
68
71
  AssertionError: If the training mode is not a static graph or not a static shape.
69
72
 
70
73
  Examples:
@@ -86,7 +89,7 @@ class FlopsUtilizationCollector(Callback):
86
89
  Train per step time: 135.572 ms, mfu:0.47% hfu:0.47%
87
90
  Train per step time: 1.317 ms, mfu:48.59% hfu:48.59%
88
91
  """
89
- def __init__(self, data_size, computility=1, full_flops=True):
92
+ def __init__(self, data_size, computility=1, full_flops=True, enable_ma_collector=False):
90
93
  super(FlopsUtilizationCollector, self).__init__()
91
94
  self.step_time = time.time()
92
95
  self.computility = computility
@@ -101,9 +104,12 @@ class FlopsUtilizationCollector(Callback):
101
104
  self.mfu_calculated = False
102
105
  self.data_size = data_size
103
106
  self.time_step_path = ''
104
- self.verbose = full_flops
105
- self.ma = os.environ.get("ENABLE_FLOPS_UTILIZATION_COLLECTOR") == "1"
106
- Validator.check_bool(full_flops, "verbose")
107
+ self.full_flops = full_flops
108
+ self.verbose = not(computility == 1 and enable_ma_collector)
109
+ self.ma = enable_ma_collector
110
+ self.batch_step_size = None
111
+ Validator.check_bool(full_flops, "full_flops")
112
+ Validator.check_bool(enable_ma_collector, "enable_ma_collector")
107
113
  Validator.check_positive_int(data_size, "data_size")
108
114
 
109
115
  def step_begin(self, run_context):
@@ -115,6 +121,14 @@ class FlopsUtilizationCollector(Callback):
115
121
  run_context (RunContext): Context of the process running. For more details,
116
122
  please refer to :class:`mindspore.train.RunContext`.
117
123
  """
124
+ if self.batch_step_size is None:
125
+ self.batch_step_size = self.data_size
126
+ cb_params = run_context.original_args()
127
+ if hasattr(cb_params, "batch_num"):
128
+ batch_num = cb_params.batch_num
129
+ if isinstance(batch_num, int) and batch_num > 0:
130
+ self.batch_step_size = cb_params.batch_num
131
+ Validator.check_positive_int(self.batch_step_size)
118
132
  self.step_time = time.time()
119
133
 
120
134
  def _get_pipeline_group(self):
@@ -134,6 +148,40 @@ class FlopsUtilizationCollector(Callback):
134
148
  rank_list_str = "-".join(rank_str_list)
135
149
  return rank_list, rank_list_str
136
150
 
151
+ def _check_run_mode_valid(self, run_context):
152
+ """
153
+ Check whether FlopsUtilizationCollector is working in the current environment
154
+ """
155
+ if context.get_context("mode") != context.GRAPH_MODE:
156
+ if self.verbose:
157
+ raise ValueError("FlopsUtilizationCollector now only support graph mode.")
158
+ logger.info("FlopsUtilizationCollector now only support graph mode.")
159
+ return False
160
+ cb_params = run_context.original_args()
161
+ if cb_params.mode == 'train':
162
+ network = cb_params.train_network
163
+ elif cb_params.mode == 'eval':
164
+ network = cb_params.eval_network
165
+ else:
166
+ if self.verbose:
167
+ raise ValueError('FlopsUtilizationCollector only support train and eval mode!')
168
+ logger.info('FlopsUtilizationCollector only support train and eval mode!')
169
+ return False
170
+ try:
171
+ self.full_model_flops, self.full_hardware_flops, self.shard_model_flops, \
172
+ self.shard_hardware_flops, is_dynamic_shape = flops_collection(network.current_phase)
173
+ except Exception as e:
174
+ if self.verbose:
175
+ raise ValueError("FlopsUtilizationCollector is not supported because {}.".format(e))
176
+ logger.info("FlopsUtilizationCollector is not supported because {}.".format(e))
177
+ return False
178
+ if is_dynamic_shape:
179
+ if self.verbose:
180
+ raise ValueError("FlopsUtilizationCollector now do not support dynamic shape.")
181
+ logger.info("FlopsUtilizationCollector now do not support dynamic shape.")
182
+ return False
183
+ return True
184
+
137
185
  def step_end(self, run_context):
138
186
  """
139
187
  Print mfu and hfu time at the end of step.
@@ -142,84 +190,67 @@ class FlopsUtilizationCollector(Callback):
142
190
  run_context (RunContext): Context of the process running. For more details,
143
191
  please refer to :class:`mindspore.train.RunContext`.
144
192
  """
145
- if context.get_context("mode") != context.GRAPH_MODE:
146
- logger.warning("FlopsUtilizationCollector now only support graph mode.")
147
- return
148
-
149
193
  step_seconds = (time.time() - self.step_time) * 1000
150
194
  if not self.mfu_calculated:
151
- cb_params = run_context.original_args()
152
- if cb_params.mode == 'train':
153
- network = cb_params.train_network
154
- elif cb_params.mode == 'eval':
155
- network = cb_params.eval_network
156
- else:
157
- logger.warning('FlopsUtilizationCollector only support train and eval mode!')
195
+ if not self._check_run_mode_valid(run_context):
158
196
  return
159
- full_model_flops, full_hardware_flops, shard_model_flops, \
160
- shard_hardware_flops, is_dynamic_shape = flops_collection(network.current_phase)
161
- if is_dynamic_shape:
162
- logger.warning("FlopsUtilizationCollector now do not support dynamic shape.")
163
- return
164
- self.full_mfu = full_model_flops / self.computility
165
- self.full_hfu = full_hardware_flops / self.computility
166
-
167
- self.shard_mfu = shard_model_flops / self.computility
168
- self.shard_hfu = shard_hardware_flops / self.computility
169
- self.full_model_flops = full_model_flops
170
- self.full_hardware_flops = full_hardware_flops
171
- self.shard_model_flops = shard_model_flops
172
- self.shard_hardware_flops = shard_hardware_flops
197
+ self.full_mfu = self.full_model_flops / self.computility
198
+ self.full_hfu = self.full_hardware_flops / self.computility
199
+ self.shard_mfu = self.shard_model_flops / self.computility
200
+ self.shard_hfu = self.shard_hardware_flops / self.computility
173
201
  self.mfu_calculated = True
174
202
  shard_mf_dir = os.path.realpath(os.getenv('MA_LOG_DIR', './'))
175
203
  if self.ma:
176
- flops_path = os.path.join(shard_mf_dir, "flops.txt")
177
- self.time_step_path = os.path.join(shard_mf_dir, "time_step.txt")
178
- if auto_parallel_context().get_parallel_mode() != "stand_alone":
179
- flops_path = os.path.join(
180
- shard_mf_dir, "flops_rank_" + str(get_rank())) + ".txt"
181
- self.time_step_path = os.path.join(
182
- shard_mf_dir, "time_step_rank_" + str(get_rank())) + ".txt"
204
+ rank_id = get_rank() if auto_parallel_context().get_parallel_mode() != "stand_alone" else 0
205
+ flops_path = os.path.join(
206
+ shard_mf_dir, "flops_rank_" + str(rank_id)) + ".txt"
207
+ self.time_step_path = os.path.join(
208
+ shard_mf_dir, "time_step_rank_" + str(rank_id)) + ".txt"
183
209
  time_stamp = time.time()
184
- model_flops_log = "flops{{type=\"model_flops\"}} {} {}\n".\
185
- format(shard_model_flops, int(round(time_stamp * 1000)))
186
- hardware_flops_log = "flops{{type=\"hardware_flops\"}} {} {}\n".\
187
- format(shard_hardware_flops, int(round(time_stamp * 1000)))
210
+ model_flops_log = "flops{{type=\"model_flops\", rank_id=\"{}\"}} {} {}\n".\
211
+ format(str(rank_id), self.shard_model_flops, int(round(time_stamp * 1000)))
212
+ hardware_flops_log = "flops{{type=\"hardware_flops\", rank_id=\"{}\"}} {} {}\n".\
213
+ format(str(rank_id), self.shard_hardware_flops, int(round(time_stamp * 1000)))
188
214
  flags = os.O_WRONLY | os.O_CREAT
189
215
  modes = stat.S_IWUSR | stat.S_IRUSR
190
216
  with os.fdopen(os.open(flops_path, flags, modes), 'w') as f:
191
217
  f.write(model_flops_log)
192
218
  f.write(hardware_flops_log)
193
219
  if self.verbose:
194
- flops_log = f"Full model flops is {full_model_flops}, Full hardware flops is {full_hardware_flops}, " \
195
- f"Shard model flops is {shard_model_flops}, Shard hardware flops is {shard_hardware_flops}."
220
+ if self.full_flops:
221
+ pipeline_num = auto_parallel_context().get_pipeline_stages()
222
+ if pipeline_num > 1:
223
+ pipeline_group_list, pipeline_group_name = self._get_pipeline_group()
224
+ auto_parallel_context().set_pipeline_stages(1)
225
+ hashed = hashlib.md5(
226
+ pipeline_group_name.encode()).hexdigest()[:48]
227
+ pipeline_group_name = str(hashed)
228
+ create_group(pipeline_group_name, pipeline_group_list)
229
+ self.full_mfu = AllReduceNet(pipeline_group_name)(
230
+ Tensor([self.full_mfu])).asnumpy()[0]
231
+ self.full_hfu = AllReduceNet(pipeline_group_name)(
232
+ Tensor([self.full_hfu])).asnumpy()[0]
233
+ auto_parallel_context().set_pipeline_stages(pipeline_num)
234
+ full_model_flops = self.full_mfu * self.computility
235
+ full_hardware_flops = self.full_hfu * self.computility
236
+ if auto_parallel_context().get_parallel_mode() != "stand_alone":
237
+ self.full_mfu = self.full_mfu / get_group_size()
238
+ self.full_hfu = self.full_hfu / get_group_size()
239
+ flops_log = f"Full model flops is {full_model_flops}, " \
240
+ f"Full hardware flops is {full_hardware_flops}, " \
241
+ f"Shard model flops is {self.shard_model_flops}, " \
242
+ f"Shard hardware flops is {self.shard_hardware_flops}."
243
+ else:
244
+ flops_log = f"Shard model flops is {self.shard_model_flops}, " \
245
+ f"Shard hardware flops is {self.shard_hardware_flops}."
196
246
  print(flops_log, flush=True)
197
- if auto_parallel_context().get_pipeline_stages() > 1:
198
- pipeline_group_list, pipeline_group_name = self._get_pipeline_group()
199
- auto_parallel_context().set_pipeline_stages(1)
200
- hashed = hashlib.md5(
201
- pipeline_group_name.encode()).hexdigest()[:48]
202
- pipeline_group_name = str(hashed)
203
- create_group(pipeline_group_name, pipeline_group_list)
204
- self.full_mfu = AllReduceNet(pipeline_group_name)(
205
- Tensor([self.full_mfu])).asnumpy()[0]
206
- self.full_hfu = AllReduceNet(pipeline_group_name)(
207
- Tensor([self.full_hfu])).asnumpy()[0]
208
- if auto_parallel_context().get_parallel_mode() != "stand_alone":
209
- self.full_mfu = self.full_mfu / get_group_size()
210
- self.full_hfu = self.full_hfu / get_group_size()
211
-
212
- step_size = self.data_size
213
247
  cb_params = run_context.original_args()
214
- if hasattr(cb_params, "batch_num"):
215
- batch_num = cb_params.batch_num
216
- if isinstance(batch_num, int) and batch_num > 0:
217
- step_size = cb_params.batch_num
218
- Validator.check_positive_int(step_size)
219
248
  if cb_params.dataset_sink_mode:
220
- step_seconds = step_seconds / step_size
249
+ step_seconds = step_seconds / self.batch_step_size
221
250
  time_stamp = time.time()
222
- train_log = "time_monitor{{type=\"per_step_time\"}} {} {}".format(step_seconds, int(round(time_stamp * 1000)))
251
+ rank_id = get_rank() if auto_parallel_context().get_parallel_mode() != "stand_alone" else 0
252
+ train_log = "time_monitor{{type=\"per_step_time\", rank_id=\"{}\"}} {} {}".format(
253
+ str(rank_id), step_seconds, int(round(time_stamp * 1000)))
223
254
  if self.ma:
224
255
  flags = os.O_WRONLY | os.O_CREAT
225
256
  modes = stat.S_IWUSR | stat.S_IRUSR
@@ -227,9 +258,13 @@ class FlopsUtilizationCollector(Callback):
227
258
  f.write(train_log + '\n')
228
259
  train_log = "{} per step time: {:5.3f} ms".format(
229
260
  cb_params.mode.title(), step_seconds)
230
- if self.verbose:
231
- mfu = 1000 * self.full_mfu / step_seconds
232
- hfu = 1000 * self.full_hfu / step_seconds
261
+ if self.verbose and cb_params.cur_step_num % self.data_size:
262
+ if self.full_flops:
263
+ mfu = 1000 * self.full_mfu / step_seconds
264
+ hfu = 1000 * self.full_hfu / step_seconds
265
+ else:
266
+ mfu = 1000 * self.shard_mfu / step_seconds
267
+ hfu = 1000 * self.shard_hfu / step_seconds
233
268
 
234
269
  def floored_percentage(index, val, digits):
235
270
  val *= 10 ** (digits + 2)
@@ -25,13 +25,16 @@ class History(Callback):
25
25
  """
26
26
  Records the network outputs and metrics information into a `History` object.
27
27
 
28
- The network outputs information will be the loss value if not custimizing the train network or eval network;
29
- if the custimized network returns a `Tensor` or `numpy.ndarray`, the mean value of network output
30
- will be recorded, if the custimized network returns a `tuple` or `list`, the first element of network
31
- outputs will be recorded.
28
+ - The network outputs information will be the loss value if not custimizing the train network or eval network;
29
+ - If the train network or eval network is custimized:
30
+
31
+ - if the custimized network returns a `Tensor` or `numpy.ndarray`, the mean value of network output
32
+ will be recorded.
33
+ - if the custimized network returns a `tuple` or `list`, the first element of network
34
+ outputs will be recorded.
32
35
 
33
36
  Note:
34
- Normally used in `mindspore.train.Model.train` or `mindspore.train.Model.fit`.
37
+ Normally used in :func:`mindspore.train.Model.train` or :func:`mindspore.train.Model.fit`.
35
38
 
36
39
  Examples:
37
40
  >>> import numpy as np
@@ -36,8 +36,8 @@ class LambdaCallback(Callback):
36
36
  on_train_step_end (Function): called at each train step end. Default: ``None`` .
37
37
  on_train_begin (Function): called at the beginning of model train. Default: ``None`` .
38
38
  on_train_end (Function): called at the end of model train. Default: ``None`` .
39
- on_eval_epoch_begin (Function): called at eval epoch begin. Default: ``None`` .
40
- on_eval_epoch_end (Function): called at eval epoch end. Default: ``None`` .
39
+ on_eval_epoch_begin (Function): called at each eval epoch begin. Default: ``None`` .
40
+ on_eval_epoch_end (Function): called at each eval epoch end. Default: ``None`` .
41
41
  on_eval_step_begin (Function): called at each eval step begin. Default: ``None`` .
42
42
  on_eval_step_end (Function): called at each eval step end. Default: ``None`` .
43
43
  on_eval_begin (Function): called at the beginning of model eval. Default: ``None`` .
@@ -256,9 +256,6 @@ class SummaryLandscape:
256
256
  """
257
257
  Clean the checkpoint.
258
258
 
259
- Tutorial Examples:
260
- - `Training Optimization Process Visualization
261
- <https://www.mindspore.cn/mindinsight/docs/en/master/landscape.html>`_
262
259
  """
263
260
  shutil.rmtree(self._ckpt_dir, ignore_errors=True)
264
261
 
@@ -93,7 +93,8 @@ class LossMonitor(Callback):
93
93
 
94
94
  def on_train_epoch_end(self, run_context):
95
95
  """
96
- When LossMonitor used in `model.fit`, print eval metrics at the end of epoch if current epoch
96
+ When LossMonitor used in :func:`mindspore.train.Model.fit`, print eval metrics
97
+ at the end of epoch if current epoch
97
98
  should do evaluation.
98
99
 
99
100
  Args:
@@ -26,6 +26,7 @@ from mindspore.common.tensor import Tensor
26
26
  from mindspore.train._utils import _make_directory
27
27
  from mindspore import _checkparam as Validator
28
28
  from mindspore.train.serialization import load_checkpoint, save_checkpoint, export
29
+ from mindspore.communication.management import get_group_size
29
30
  from mindspore.train.callback._callback import Callback
30
31
  from mindspore.parallel._utils import _get_parallel_mode
31
32
  from mindspore.context import ParallelMode
@@ -37,7 +38,7 @@ class OnRequestExit(Callback):
37
38
 
38
39
  Register OnRequestExit Callback before training, when the user want to exit the training process
39
40
  and save the training data, could send the registered exit signal 'sig' to the training process or modify the
40
- 'GracefulExit' that a key in the json file specified by the 'config_file' to '1'.
41
+ 'GracefulExit' that a key in the JSON file specified by the 'config_file' to '1'.
41
42
  After the training process executes the current step, saves the current training status,
42
43
  including checkpoint and mindir, and then exit the training process.
43
44
 
@@ -58,7 +59,7 @@ class OnRequestExit(Callback):
58
59
  ValueError: If the 'save_mindir' is not a bool.
59
60
  ValueError: If the 'file_name' is not a str.
60
61
  ValueError: If the 'directory' is not a str.
61
- ValueError: If the 'sig' is not an int or the 'sig' is signal.SIGKILL.
62
+ ValueError: If the 'sig' is not an int or the 'sig' is ``signal.SIGTERM``.
62
63
 
63
64
  Examples:
64
65
  >>> from mindspore import nn
@@ -92,10 +93,8 @@ class OnRequestExit(Callback):
92
93
  self.key = "GracefulExit"
93
94
  self.remote_config_file = config_file # used config file to save checkpoint and exit training process
94
95
  self.use_graceful = os.environ.get("MS_ENABLE_GRACEFUL_EXIT") == "1"
95
- self.is_distributed = _get_parallel_mode() != ParallelMode.STAND_ALONE
96
+ self.is_distributed = get_group_size() > 1
96
97
  self.integrated_save = True
97
- if self.is_distributed:
98
- self.integrated_save = _get_parallel_mode() == ParallelMode.AUTO_PARALLEL
99
98
  self.stop_train = False
100
99
  self.need_do_step_end = False
101
100
  if self.save_ckpt or self.save_mindir:
@@ -250,6 +249,8 @@ class OnRequestExit(Callback):
250
249
  else:
251
250
  global_step = int(call_params.network.optimizer.global_step.data)
252
251
  append_dict["global_step"] = global_step
252
+ if self.is_distributed:
253
+ self.integrated_save = _get_parallel_mode() == ParallelMode.AUTO_PARALLEL
253
254
  save_checkpoint(net, self.train_name, integrated_save=self.integrated_save,
254
255
  append_dict=append_dict)
255
256
  if self.save_mindir:
@@ -63,12 +63,17 @@ class ReduceLROnPlateau(Callback):
63
63
  will be reduced. Default: ``10`` .
64
64
  verbose (bool): If False: quiet, if True: print related information.
65
65
  Default: ``False`` .
66
- mode (str): one of `{'auto', 'min', 'max'}`. In "min" mode,
67
- the learning rate will be reduced when the
68
- quantity monitored has stopped decreasing; in "max" mode it will be
69
- reduced when the quantity monitored has stopped increasing; in "auto"
70
- mode, the direction is automatically inferred from the name of the
71
- monitored quantity. Default: ``'auto'`` .
66
+ mode (str): one of `{'auto', 'min', 'max'}`. Default: ``'auto'`` .
67
+
68
+ - In ``'min'`` mode,
69
+ the learning rate will be reduced when the
70
+ quantity monitored has stopped decreasing.
71
+ - In ``'max'`` mode it will be
72
+ reduced when the quantity monitored has stopped increasing.
73
+ - In ``'auto'``
74
+ mode, the direction is automatically inferred from the name of the
75
+ monitored quantity.
76
+
72
77
  min_delta (float): threshold for measuring the new optimum, to only focus on
73
78
  significant changes. Default: ``1e-4`` .
74
79
  cooldown (int): number of epochs to wait before resuming normal operation after
@@ -16,6 +16,7 @@
16
16
  from __future__ import absolute_import
17
17
 
18
18
  import os
19
+ import platform
19
20
  import stat
20
21
  import re
21
22
  import json
@@ -43,6 +44,9 @@ from mindspore.train._utils import check_value_type, _make_directory
43
44
  from mindspore._c_expression import security
44
45
  from mindspore._c_expression import collect_host_info, get_clock_syscnt
45
46
 
47
+ if platform.system() == "Linux":
48
+ import fcntl
49
+
46
50
  HYPER_CONFIG_ENV_NAME = "MINDINSIGHT_HYPER_CONFIG"
47
51
  HYPER_CONFIG_LEN_LIMIT = 100000
48
52
 
@@ -103,22 +107,18 @@ class SummaryCollector(Callback):
103
107
  The first output will be treated as the loss and it will be averaged. Default: ``True`` .
104
108
  - collect_graph (bool): Whether to collect the computational graph. Currently, only
105
109
  training computational graph is collected. Default: ``True`` .
106
- - collect_train_lineage (bool): Whether to collect lineage data for the training phase,
107
- this field will be displayed on the `lineage page \
108
- <https://www.mindspore.cn/mindinsight/docs/en/master/lineage_and_scalars_comparison.html>`_
109
- of MindInsight. Default: ``True`` .
110
- - collect_eval_lineage (bool): Whether to collect lineage data for the evaluation phase,
111
- this field will be displayed on the `lineage page
112
- <https://www.mindspore.cn/mindinsight/docs/en/master/lineage_and_scalars_comparison.html>`_
113
- of MindInsight. Default: ``True`` .
110
+ - collect_train_lineage (bool): Whether to collect lineage data for the training phase.
111
+ Default: ``True`` .
112
+ - collect_eval_lineage (bool): Whether to collect lineage data for the evaluation phase.
113
+ Default: ``True`` .
114
114
  - collect_input_data (bool): Whether to collect dataset for each training.
115
115
  Currently only image data is supported.
116
116
  If there are multiple columns of data in the dataset, the first column should be image data.
117
117
  Default: ``True`` .
118
118
  - collect_dataset_graph (bool): Whether to collect dataset graph for the training phase.
119
119
  Default: ``True`` .
120
- - histogram_regular (Union[str, None]): Collect weight and bias for parameter distribution page
121
- and displayed in MindInsight. This field allows regular strings to control which parameters to collect.
120
+ - histogram_regular (Union[str, None]): Collect weight and bias for parameter distribution page.
121
+ This field allows regular strings to control which parameters to collect.
122
122
  It is not recommended to collect too many parameters at once, as it can affect performance.
123
123
  Note that if you collect too many parameters and run out of memory, the training will fail.
124
124
  Default: ``None`` , it means only the first five parameters are collected.
@@ -149,8 +149,7 @@ class SummaryCollector(Callback):
149
149
  True: it means that after specified data is set, non-specified data is collected as the default behavior.
150
150
  False: it means that after specified data is set, only the specified data is collected,
151
151
  and the others are not collected. Default: ``True`` .
152
- custom_lineage_data (Union[dict, None]): Allows you to customize the data and present it on the MingInsight
153
- `lineage page <https://www.mindspore.cn/mindinsight/docs/en/master/lineage_and_scalars_comparison.html>`_ .
152
+ custom_lineage_data (Union[dict, None]): Allows you to customize the data.
154
153
  In the custom data, the type of the key supports str, and the type of value supports str, int
155
154
  and float. Default: ``None`` , it means there is no custom data.
156
155
  collect_tensor_freq (Optional[int]): The same semantics as the `collect_freq`, but controls TensorSummary only.
@@ -164,7 +163,7 @@ class SummaryCollector(Callback):
164
163
  affect the number of steps TensorSummary will be collected.
165
164
  Default: ``None`` , which means to follow the behavior as described above.
166
165
  max_file_size (Optional[int]): The maximum size in bytes of each file that can be written to the disk.
167
- For example, to write not larger than 4GB, specify `max_file_size=4*1024**3`.
166
+ For example, to write not larger than 4GB, specify `max_file_size=4*1024*3`.
168
167
  Default: ``None`` , which means no limit.
169
168
  export_options (Union[None, dict]): Perform custom operations on the export data.
170
169
  Note that the size of export files is not limited by the max_file_size.
@@ -606,13 +605,32 @@ class SummaryCollector(Callback):
606
605
  "landscape_size": landscape_size,
607
606
  "create_landscape": create_landscape
608
607
  }
608
+
609
609
  meta_path = os.path.join(self._ckpt_dir, 'train_metadata.json')
610
+ if platform.system() != "Linux":
611
+ try:
612
+ with open(meta_path, 'w') as file:
613
+ json.dump(data, file)
614
+ os.chmod(meta_path, stat.S_IRUSR)
615
+ except OSError as e:
616
+ logger.error("Write meta data %s failed, detail: %s" % (meta_path, str(e)))
617
+ return
618
+
619
+ lock_file = f"{meta_path}.lock"
610
620
  try:
611
- with open(meta_path, 'w') as file:
612
- json.dump(data, file)
613
- os.chmod(meta_path, stat.S_IRUSR)
621
+ with os.fdopen(os.open(lock_file, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IWUSR), 'w') as f:
622
+ fcntl.flock(f.fileno(), fcntl.LOCK_EX)
623
+ if not os.path.isfile(meta_path):
624
+ with open(meta_path, 'w') as file:
625
+ json.dump(data, file)
626
+ os.chmod(meta_path, stat.S_IRUSR)
614
627
  except OSError as e:
615
628
  logger.error("Write meta data %s failed, detail: %s" % (meta_path, str(e)))
629
+ try:
630
+ if os.path.isfile(lock_file):
631
+ os.remove(lock_file)
632
+ except OSError:
633
+ logger.warning("The lock file %s has been removed.", lock_file)
616
634
 
617
635
  def _save_model_params(self, cur_num, unit, backbone):
618
636
  """Save model params."""
@@ -629,12 +647,27 @@ class SummaryCollector(Callback):
629
647
 
630
648
  ckpt_file_name = f"{type(backbone).__name__}_{cur_num}_{unit}.ckpt"
631
649
  file_path = os.path.join(self._ckpt_dir, ckpt_file_name)
650
+ self._model_params_file_map[str(cur_num)] = file_path
651
+ if platform.system() != "Linux":
652
+ try:
653
+ save_checkpoint(param_list, file_path)
654
+ except OSError as e:
655
+ logger.error(str(e))
656
+ return
657
+
658
+ lock_file = f"{file_path}.lock"
632
659
  try:
633
- save_checkpoint(param_list, file_path)
660
+ with os.fdopen(os.open(lock_file, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IWUSR), 'w') as f:
661
+ fcntl.flock(f.fileno(), fcntl.LOCK_EX)
662
+ if not os.path.isfile(file_path):
663
+ save_checkpoint(param_list, file_path)
634
664
  except OSError as e:
635
665
  logger.error(str(e))
636
-
637
- self._model_params_file_map[str(cur_num)] = file_path
666
+ try:
667
+ if os.path.isfile(lock_file):
668
+ os.remove(lock_file)
669
+ except OSError:
670
+ logger.warning("The lock file %s has been removed.", lock_file)
638
671
 
639
672
  def _save_model_params_for_landscape(self, cb_params):
640
673
  """Save model params for landscape."""
@@ -28,7 +28,8 @@ class TimeMonitor(Callback):
28
28
  Args:
29
29
  data_size (int): How many steps are the intervals between print information each time.
30
30
  if the program get `batch_num` during training, `data_size` will be set to `batch_num`,
31
- otherwise `data_size` will be used. Default: ``None`` .
31
+ otherwise `data_size` will be used. If the program does not get `batch_num` during training,
32
+ meanwhile `data_size` does not set, the program will report an error. Default: ``None`` .
32
33
 
33
34
  data_time (bool): Whether to show the average time of fetching data in Host.
34
35
  Note that data fetch and network compute are processed sequentially in non dataset sink mode, while