mindspore 2.4.0__cp311-cp311-macosx_11_0_arm64.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 (1387) hide show
  1. mindspore/.commit_id +1 -0
  2. mindspore/__init__.py +53 -0
  3. mindspore/_c_dataengine.cpython-311-darwin.so +0 -0
  4. mindspore/_c_expression.cpython-311-darwin.so +0 -0
  5. mindspore/_c_mindrecord.cpython-311-darwin.so +0 -0
  6. mindspore/_check_jit_forbidden_api.py +106 -0
  7. mindspore/_checkparam.py +1419 -0
  8. mindspore/_extends/__init__.py +23 -0
  9. mindspore/_extends/builtin_operations.py +224 -0
  10. mindspore/_extends/graph_kernel/__init__.py +17 -0
  11. mindspore/_extends/graph_kernel/model/__init__.py +19 -0
  12. mindspore/_extends/graph_kernel/model/graph_parallel.py +311 -0
  13. mindspore/_extends/graph_kernel/model/graph_split.py +1348 -0
  14. mindspore/_extends/graph_kernel/model/model.py +553 -0
  15. mindspore/_extends/graph_kernel/model/model_builder.py +216 -0
  16. mindspore/_extends/graph_kernel/parallel_estimate.py +60 -0
  17. mindspore/_extends/graph_kernel/splitter.py +140 -0
  18. mindspore/_extends/graph_kernel/utils.py +28 -0
  19. mindspore/_extends/parallel_compile/__init__.py +19 -0
  20. mindspore/_extends/parallel_compile/akg_compiler/__init__.py +19 -0
  21. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +269 -0
  22. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +529 -0
  23. mindspore/_extends/parallel_compile/akg_compiler/compiler.py +56 -0
  24. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +96 -0
  25. mindspore/_extends/parallel_compile/akg_compiler/get_file_path.py +36 -0
  26. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +556 -0
  27. mindspore/_extends/parallel_compile/akg_compiler/util.py +159 -0
  28. mindspore/_extends/parse/__init__.py +49 -0
  29. mindspore/_extends/parse/compile_config.py +299 -0
  30. mindspore/_extends/parse/namespace.py +136 -0
  31. mindspore/_extends/parse/parser.py +1448 -0
  32. mindspore/_extends/parse/resources.py +213 -0
  33. mindspore/_extends/parse/standard_method.py +4475 -0
  34. mindspore/_extends/parse/trope.py +97 -0
  35. mindspore/_extends/pijit/__init__.py +23 -0
  36. mindspore/_extends/pijit/pijit_func_white_list.py +669 -0
  37. mindspore/_extends/remote/__init__.py +19 -0
  38. mindspore/_extends/remote/kernel_build_server.py +199 -0
  39. mindspore/_extends/remote/kernel_build_server_akg.py +55 -0
  40. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  41. mindspore/_extends/remote/kernel_build_server_ascend.py +75 -0
  42. mindspore/_extends/utils.py +68 -0
  43. mindspore/_install_custom.py +43 -0
  44. mindspore/_profiler.py +30 -0
  45. mindspore/amp.py +433 -0
  46. mindspore/boost/__init__.py +42 -0
  47. mindspore/boost/adasum.py +319 -0
  48. mindspore/boost/base.py +535 -0
  49. mindspore/boost/boost.py +400 -0
  50. mindspore/boost/boost_cell_wrapper.py +790 -0
  51. mindspore/boost/dim_reduce.py +323 -0
  52. mindspore/boost/grad_accumulation.py +79 -0
  53. mindspore/boost/grad_freeze.py +382 -0
  54. mindspore/boost/group_loss_scale_manager.py +166 -0
  55. mindspore/boost/less_batch_normalization.py +174 -0
  56. mindspore/common/__init__.py +86 -0
  57. mindspore/common/_auto_dynamic.py +68 -0
  58. mindspore/common/_decorator.py +50 -0
  59. mindspore/common/_jit_fallback_utils.py +110 -0
  60. mindspore/common/_monad.py +25 -0
  61. mindspore/common/_pijit_context.py +190 -0
  62. mindspore/common/_register_for_adapter.py +74 -0
  63. mindspore/common/_register_for_recompute.py +48 -0
  64. mindspore/common/_register_for_tensor.py +46 -0
  65. mindspore/common/_stub_tensor.py +210 -0
  66. mindspore/common/_tensor_overload.py +139 -0
  67. mindspore/common/_utils.py +122 -0
  68. mindspore/common/api.py +2064 -0
  69. mindspore/common/auto_dynamic_shape.py +507 -0
  70. mindspore/common/dtype.py +422 -0
  71. mindspore/common/dump.py +130 -0
  72. mindspore/common/file_system.py +48 -0
  73. mindspore/common/generator.py +254 -0
  74. mindspore/common/hook_handle.py +143 -0
  75. mindspore/common/initializer.py +880 -0
  76. mindspore/common/jit_config.py +98 -0
  77. mindspore/common/lazy_inline.py +240 -0
  78. mindspore/common/mindir_util.py +111 -0
  79. mindspore/common/mutable.py +234 -0
  80. mindspore/common/no_inline.py +54 -0
  81. mindspore/common/np_dtype.py +25 -0
  82. mindspore/common/parameter.py +1081 -0
  83. mindspore/common/recompute.py +292 -0
  84. mindspore/common/seed.py +260 -0
  85. mindspore/common/sparse_tensor.py +1175 -0
  86. mindspore/common/symbol.py +122 -0
  87. mindspore/common/tensor.py +5039 -0
  88. mindspore/communication/__init__.py +37 -0
  89. mindspore/communication/_comm_helper.py +501 -0
  90. mindspore/communication/_hccl_management.py +297 -0
  91. mindspore/communication/comm_func.py +1395 -0
  92. mindspore/communication/management.py +673 -0
  93. mindspore/config/op_info.config +533 -0
  94. mindspore/context.py +2077 -0
  95. mindspore/dataset/__init__.py +90 -0
  96. mindspore/dataset/audio/__init__.py +61 -0
  97. mindspore/dataset/audio/transforms.py +3690 -0
  98. mindspore/dataset/audio/utils.py +386 -0
  99. mindspore/dataset/audio/validators.py +1172 -0
  100. mindspore/dataset/callback/__init__.py +20 -0
  101. mindspore/dataset/callback/ds_callback.py +368 -0
  102. mindspore/dataset/callback/validators.py +32 -0
  103. mindspore/dataset/core/__init__.py +13 -0
  104. mindspore/dataset/core/config.py +1095 -0
  105. mindspore/dataset/core/datatypes.py +101 -0
  106. mindspore/dataset/core/py_util_helpers.py +65 -0
  107. mindspore/dataset/core/validator_helpers.py +781 -0
  108. mindspore/dataset/debug/__init__.py +21 -0
  109. mindspore/dataset/debug/debug_hook.py +97 -0
  110. mindspore/dataset/debug/pre_defined_hook.py +67 -0
  111. mindspore/dataset/engine/__init__.py +124 -0
  112. mindspore/dataset/engine/cache_admin.py +47 -0
  113. mindspore/dataset/engine/cache_client.py +129 -0
  114. mindspore/dataset/engine/datasets.py +4582 -0
  115. mindspore/dataset/engine/datasets_audio.py +911 -0
  116. mindspore/dataset/engine/datasets_standard_format.py +543 -0
  117. mindspore/dataset/engine/datasets_text.py +2161 -0
  118. mindspore/dataset/engine/datasets_user_defined.py +1184 -0
  119. mindspore/dataset/engine/datasets_vision.py +4816 -0
  120. mindspore/dataset/engine/iterators.py +371 -0
  121. mindspore/dataset/engine/obs/__init__.py +23 -0
  122. mindspore/dataset/engine/obs/config_loader.py +68 -0
  123. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +508 -0
  124. mindspore/dataset/engine/obs/util.py +482 -0
  125. mindspore/dataset/engine/offload.py +596 -0
  126. mindspore/dataset/engine/queue.py +304 -0
  127. mindspore/dataset/engine/samplers.py +895 -0
  128. mindspore/dataset/engine/serializer_deserializer.py +159 -0
  129. mindspore/dataset/engine/validators.py +2895 -0
  130. mindspore/dataset/text/__init__.py +51 -0
  131. mindspore/dataset/text/transforms.py +1703 -0
  132. mindspore/dataset/text/utils.py +715 -0
  133. mindspore/dataset/text/validators.py +642 -0
  134. mindspore/dataset/transforms/__init__.py +45 -0
  135. mindspore/dataset/transforms/c_transforms.py +638 -0
  136. mindspore/dataset/transforms/py_transforms.py +393 -0
  137. mindspore/dataset/transforms/py_transforms_util.py +255 -0
  138. mindspore/dataset/transforms/transforms.py +1260 -0
  139. mindspore/dataset/transforms/validators.py +410 -0
  140. mindspore/dataset/utils/__init__.py +19 -0
  141. mindspore/dataset/utils/browse_dataset.py +190 -0
  142. mindspore/dataset/utils/line_reader.py +126 -0
  143. mindspore/dataset/vision/__init__.py +65 -0
  144. mindspore/dataset/vision/c_transforms.py +2641 -0
  145. mindspore/dataset/vision/py_transforms.py +2120 -0
  146. mindspore/dataset/vision/py_transforms_util.py +1660 -0
  147. mindspore/dataset/vision/transforms.py +7295 -0
  148. mindspore/dataset/vision/utils.py +863 -0
  149. mindspore/dataset/vision/validators.py +1483 -0
  150. mindspore/default_config.py +2 -0
  151. mindspore/experimental/__init__.py +20 -0
  152. mindspore/experimental/es/__init__.py +22 -0
  153. mindspore/experimental/es/embedding_service.py +883 -0
  154. mindspore/experimental/es/embedding_service_layer.py +581 -0
  155. mindspore/experimental/llm_boost/__init__.py +21 -0
  156. mindspore/experimental/llm_boost/atb/__init__.py +23 -0
  157. mindspore/experimental/llm_boost/atb/boost_base.py +211 -0
  158. mindspore/experimental/llm_boost/atb/llama_boost.py +115 -0
  159. mindspore/experimental/llm_boost/atb/qwen_boost.py +101 -0
  160. mindspore/experimental/llm_boost/register.py +129 -0
  161. mindspore/experimental/llm_boost/utils.py +31 -0
  162. mindspore/experimental/map_parameter.py +309 -0
  163. mindspore/experimental/optim/__init__.py +40 -0
  164. mindspore/experimental/optim/adadelta.py +161 -0
  165. mindspore/experimental/optim/adagrad.py +168 -0
  166. mindspore/experimental/optim/adam.py +193 -0
  167. mindspore/experimental/optim/adamax.py +170 -0
  168. mindspore/experimental/optim/adamw.py +290 -0
  169. mindspore/experimental/optim/asgd.py +153 -0
  170. mindspore/experimental/optim/lr_scheduler.py +1371 -0
  171. mindspore/experimental/optim/nadam.py +157 -0
  172. mindspore/experimental/optim/optimizer.py +262 -0
  173. mindspore/experimental/optim/radam.py +194 -0
  174. mindspore/experimental/optim/rmsprop.py +154 -0
  175. mindspore/experimental/optim/rprop.py +164 -0
  176. mindspore/experimental/optim/sgd.py +156 -0
  177. mindspore/hal/__init__.py +40 -0
  178. mindspore/hal/_ascend.py +57 -0
  179. mindspore/hal/_base.py +57 -0
  180. mindspore/hal/_cpu.py +56 -0
  181. mindspore/hal/_gpu.py +57 -0
  182. mindspore/hal/contiguous_tensors_handle.py +175 -0
  183. mindspore/hal/device.py +356 -0
  184. mindspore/hal/event.py +179 -0
  185. mindspore/hal/memory.py +326 -0
  186. mindspore/hal/stream.py +357 -0
  187. mindspore/include/OWNERS +7 -0
  188. mindspore/include/api/allocator.h +97 -0
  189. mindspore/include/api/callback/callback.h +93 -0
  190. mindspore/include/api/callback/ckpt_saver.h +41 -0
  191. mindspore/include/api/callback/loss_monitor.h +33 -0
  192. mindspore/include/api/callback/lr_scheduler.h +51 -0
  193. mindspore/include/api/callback/time_monitor.h +34 -0
  194. mindspore/include/api/callback/train_accuracy.h +37 -0
  195. mindspore/include/api/cell.h +90 -0
  196. mindspore/include/api/cfg.h +82 -0
  197. mindspore/include/api/context.h +602 -0
  198. mindspore/include/api/data_type.h +47 -0
  199. mindspore/include/api/delegate.h +178 -0
  200. mindspore/include/api/delegate_api.h +75 -0
  201. mindspore/include/api/dual_abi_helper.h +208 -0
  202. mindspore/include/api/format.h +28 -0
  203. mindspore/include/api/graph.h +46 -0
  204. mindspore/include/api/kernel.h +58 -0
  205. mindspore/include/api/kernel_api.h +168 -0
  206. mindspore/include/api/metrics/accuracy.h +36 -0
  207. mindspore/include/api/metrics/metrics.h +41 -0
  208. mindspore/include/api/model.h +438 -0
  209. mindspore/include/api/model_group.h +91 -0
  210. mindspore/include/api/model_parallel_runner.h +168 -0
  211. mindspore/include/api/serialization.h +185 -0
  212. mindspore/include/api/status.h +192 -0
  213. mindspore/include/api/types.h +431 -0
  214. mindspore/include/api/visible.h +41 -0
  215. mindspore/include/c_api/context_c.h +179 -0
  216. mindspore/include/c_api/data_type_c.h +52 -0
  217. mindspore/include/c_api/format_c.h +46 -0
  218. mindspore/include/c_api/model_c.h +347 -0
  219. mindspore/include/c_api/status_c.h +79 -0
  220. mindspore/include/c_api/tensor_c.h +146 -0
  221. mindspore/include/c_api/types_c.h +67 -0
  222. mindspore/include/dataset/config.h +163 -0
  223. mindspore/include/dataset/constants.h +363 -0
  224. mindspore/include/dataset/execute.h +196 -0
  225. mindspore/include/dataset/text.h +1092 -0
  226. mindspore/include/dataset/transforms.h +638 -0
  227. mindspore/include/dataset/vision.h +2129 -0
  228. mindspore/include/dataset/vision_ascend.h +206 -0
  229. mindspore/include/dataset/vision_lite.h +625 -0
  230. mindspore/lib/libavcodec.59.dylib +0 -0
  231. mindspore/lib/libavdevice.59.dylib +0 -0
  232. mindspore/lib/libavfilter.8.dylib +0 -0
  233. mindspore/lib/libavformat.59.dylib +0 -0
  234. mindspore/lib/libavutil.57.dylib +0 -0
  235. mindspore/lib/libdnnl.2.dylib +0 -0
  236. mindspore/lib/libicudata.69.dylib +0 -0
  237. mindspore/lib/libicui18n.69.dylib +0 -0
  238. mindspore/lib/libicuuc.69.dylib +0 -0
  239. mindspore/lib/libmindspore_address_sorting.15.dylib +0 -0
  240. mindspore/lib/libmindspore_backend.dylib +0 -0
  241. mindspore/lib/libmindspore_common.dylib +0 -0
  242. mindspore/lib/libmindspore_core.dylib +0 -0
  243. mindspore/lib/libmindspore_glog.0.dylib +0 -0
  244. mindspore/lib/libmindspore_gpr.15.dylib +0 -0
  245. mindspore/lib/libmindspore_grpc++.1.dylib +0 -0
  246. mindspore/lib/libmindspore_grpc.15.dylib +0 -0
  247. mindspore/lib/libmindspore_np_dtype.dylib +0 -0
  248. mindspore/lib/libmindspore_ops.dylib +0 -0
  249. mindspore/lib/libmindspore_upb.15.dylib +0 -0
  250. mindspore/lib/libnnacl.dylib +0 -0
  251. mindspore/lib/libopencv_core.4.5.dylib +0 -0
  252. mindspore/lib/libopencv_imgcodecs.4.5.dylib +0 -0
  253. mindspore/lib/libopencv_imgproc.4.5.dylib +0 -0
  254. mindspore/lib/libps_cache.dylib +0 -0
  255. mindspore/lib/libswresample.4.dylib +0 -0
  256. mindspore/lib/libswscale.6.dylib +0 -0
  257. mindspore/lib/libtinyxml2.8.dylib +0 -0
  258. mindspore/log.py +633 -0
  259. mindspore/mindrecord/__init__.py +43 -0
  260. mindspore/mindrecord/common/__init__.py +17 -0
  261. mindspore/mindrecord/common/constant.py +20 -0
  262. mindspore/mindrecord/common/enums.py +44 -0
  263. mindspore/mindrecord/common/exceptions.py +311 -0
  264. mindspore/mindrecord/config.py +809 -0
  265. mindspore/mindrecord/filereader.py +174 -0
  266. mindspore/mindrecord/filewriter.py +722 -0
  267. mindspore/mindrecord/mindpage.py +210 -0
  268. mindspore/mindrecord/shardheader.py +141 -0
  269. mindspore/mindrecord/shardindexgenerator.py +74 -0
  270. mindspore/mindrecord/shardreader.py +117 -0
  271. mindspore/mindrecord/shardsegment.py +128 -0
  272. mindspore/mindrecord/shardutils.py +185 -0
  273. mindspore/mindrecord/shardwriter.py +237 -0
  274. mindspore/mindrecord/tools/__init__.py +17 -0
  275. mindspore/mindrecord/tools/cifar10.py +140 -0
  276. mindspore/mindrecord/tools/cifar100.py +153 -0
  277. mindspore/mindrecord/tools/cifar100_to_mr.py +185 -0
  278. mindspore/mindrecord/tools/cifar10_to_mr.py +177 -0
  279. mindspore/mindrecord/tools/csv_to_mr.py +200 -0
  280. mindspore/mindrecord/tools/imagenet_to_mr.py +206 -0
  281. mindspore/mindrecord/tools/mnist_to_mr.py +259 -0
  282. mindspore/mindrecord/tools/tfrecord_to_mr.py +360 -0
  283. mindspore/mint/__init__.py +1586 -0
  284. mindspore/mint/distributed/__init__.py +31 -0
  285. mindspore/mint/distributed/distributed.py +254 -0
  286. mindspore/mint/linalg/__init__.py +22 -0
  287. mindspore/mint/nn/__init__.py +757 -0
  288. mindspore/mint/nn/functional.py +679 -0
  289. mindspore/mint/nn/layer/__init__.py +39 -0
  290. mindspore/mint/nn/layer/activation.py +133 -0
  291. mindspore/mint/nn/layer/normalization.py +477 -0
  292. mindspore/mint/nn/layer/pooling.py +110 -0
  293. mindspore/mint/optim/__init__.py +24 -0
  294. mindspore/mint/optim/adamw.py +206 -0
  295. mindspore/mint/special/__init__.py +63 -0
  296. mindspore/multiprocessing/__init__.py +73 -0
  297. mindspore/nn/__init__.py +47 -0
  298. mindspore/nn/cell.py +2787 -0
  299. mindspore/nn/dynamic_lr.py +482 -0
  300. mindspore/nn/grad/__init__.py +21 -0
  301. mindspore/nn/grad/cell_grad.py +196 -0
  302. mindspore/nn/layer/__init__.py +63 -0
  303. mindspore/nn/layer/activation.py +1822 -0
  304. mindspore/nn/layer/basic.py +1629 -0
  305. mindspore/nn/layer/channel_shuffle.py +90 -0
  306. mindspore/nn/layer/combined.py +248 -0
  307. mindspore/nn/layer/container.py +734 -0
  308. mindspore/nn/layer/conv.py +1505 -0
  309. mindspore/nn/layer/dense.py +204 -0
  310. mindspore/nn/layer/embedding.py +869 -0
  311. mindspore/nn/layer/image.py +661 -0
  312. mindspore/nn/layer/math.py +1069 -0
  313. mindspore/nn/layer/normalization.py +1273 -0
  314. mindspore/nn/layer/padding.py +880 -0
  315. mindspore/nn/layer/pooling.py +2302 -0
  316. mindspore/nn/layer/rnn_cells.py +388 -0
  317. mindspore/nn/layer/rnns.py +849 -0
  318. mindspore/nn/layer/thor_layer.py +963 -0
  319. mindspore/nn/layer/timedistributed.py +155 -0
  320. mindspore/nn/layer/transformer.py +823 -0
  321. mindspore/nn/learning_rate_schedule.py +512 -0
  322. mindspore/nn/loss/__init__.py +36 -0
  323. mindspore/nn/loss/loss.py +2924 -0
  324. mindspore/nn/metrics.py +53 -0
  325. mindspore/nn/optim/__init__.py +45 -0
  326. mindspore/nn/optim/_dist_optimizer_registry.py +111 -0
  327. mindspore/nn/optim/ada_grad.py +217 -0
  328. mindspore/nn/optim/adadelta.py +206 -0
  329. mindspore/nn/optim/adafactor.py +448 -0
  330. mindspore/nn/optim/adam.py +1297 -0
  331. mindspore/nn/optim/adamax.py +220 -0
  332. mindspore/nn/optim/adasum.py +548 -0
  333. mindspore/nn/optim/asgd.py +216 -0
  334. mindspore/nn/optim/ftrl.py +401 -0
  335. mindspore/nn/optim/lamb.py +296 -0
  336. mindspore/nn/optim/lars.py +202 -0
  337. mindspore/nn/optim/lazyadam.py +533 -0
  338. mindspore/nn/optim/momentum.py +239 -0
  339. mindspore/nn/optim/optimizer.py +1034 -0
  340. mindspore/nn/optim/proximal_ada_grad.py +242 -0
  341. mindspore/nn/optim/rmsprop.py +264 -0
  342. mindspore/nn/optim/rprop.py +251 -0
  343. mindspore/nn/optim/sgd.py +237 -0
  344. mindspore/nn/optim/tft_wrapper.py +127 -0
  345. mindspore/nn/optim/thor.py +1310 -0
  346. mindspore/nn/probability/__init__.py +22 -0
  347. mindspore/nn/probability/bijector/__init__.py +35 -0
  348. mindspore/nn/probability/bijector/bijector.py +337 -0
  349. mindspore/nn/probability/bijector/exp.py +65 -0
  350. mindspore/nn/probability/bijector/gumbel_cdf.py +144 -0
  351. mindspore/nn/probability/bijector/invert.py +126 -0
  352. mindspore/nn/probability/bijector/power_transform.py +196 -0
  353. mindspore/nn/probability/bijector/scalar_affine.py +167 -0
  354. mindspore/nn/probability/bijector/softplus.py +189 -0
  355. mindspore/nn/probability/bnn_layers/__init__.py +29 -0
  356. mindspore/nn/probability/bnn_layers/_util.py +46 -0
  357. mindspore/nn/probability/bnn_layers/bnn_cell_wrapper.py +112 -0
  358. mindspore/nn/probability/bnn_layers/conv_variational.py +267 -0
  359. mindspore/nn/probability/bnn_layers/dense_variational.py +302 -0
  360. mindspore/nn/probability/bnn_layers/layer_distribution.py +123 -0
  361. mindspore/nn/probability/distribution/__init__.py +56 -0
  362. mindspore/nn/probability/distribution/_utils/__init__.py +34 -0
  363. mindspore/nn/probability/distribution/_utils/custom_ops.py +96 -0
  364. mindspore/nn/probability/distribution/_utils/utils.py +362 -0
  365. mindspore/nn/probability/distribution/bernoulli.py +334 -0
  366. mindspore/nn/probability/distribution/beta.py +391 -0
  367. mindspore/nn/probability/distribution/categorical.py +435 -0
  368. mindspore/nn/probability/distribution/cauchy.py +383 -0
  369. mindspore/nn/probability/distribution/distribution.py +827 -0
  370. mindspore/nn/probability/distribution/exponential.py +350 -0
  371. mindspore/nn/probability/distribution/gamma.py +391 -0
  372. mindspore/nn/probability/distribution/geometric.py +335 -0
  373. mindspore/nn/probability/distribution/gumbel.py +257 -0
  374. mindspore/nn/probability/distribution/half_normal.py +133 -0
  375. mindspore/nn/probability/distribution/laplace.py +128 -0
  376. mindspore/nn/probability/distribution/log_normal.py +272 -0
  377. mindspore/nn/probability/distribution/logistic.py +379 -0
  378. mindspore/nn/probability/distribution/normal.py +336 -0
  379. mindspore/nn/probability/distribution/poisson.py +288 -0
  380. mindspore/nn/probability/distribution/student_t.py +149 -0
  381. mindspore/nn/probability/distribution/transformed_distribution.py +235 -0
  382. mindspore/nn/probability/distribution/uniform.py +375 -0
  383. mindspore/nn/reinforcement/__init__.py +24 -0
  384. mindspore/nn/reinforcement/_batch_read_write.py +142 -0
  385. mindspore/nn/reinforcement/_tensors_queue.py +152 -0
  386. mindspore/nn/reinforcement/tensor_array.py +145 -0
  387. mindspore/nn/sparse/__init__.py +23 -0
  388. mindspore/nn/sparse/sparse.py +147 -0
  389. mindspore/nn/wrap/__init__.py +49 -0
  390. mindspore/nn/wrap/cell_wrapper.py +968 -0
  391. mindspore/nn/wrap/grad_reducer.py +608 -0
  392. mindspore/nn/wrap/loss_scale.py +694 -0
  393. mindspore/numpy/__init__.py +121 -0
  394. mindspore/numpy/array_creations.py +2731 -0
  395. mindspore/numpy/array_ops.py +2629 -0
  396. mindspore/numpy/dtypes.py +185 -0
  397. mindspore/numpy/fft.py +966 -0
  398. mindspore/numpy/logic_ops.py +936 -0
  399. mindspore/numpy/math_ops.py +5911 -0
  400. mindspore/numpy/utils.py +214 -0
  401. mindspore/numpy/utils_const.py +565 -0
  402. mindspore/ops/__init__.py +56 -0
  403. mindspore/ops/_constants.py +30 -0
  404. mindspore/ops/_grad_experimental/__init__.py +31 -0
  405. mindspore/ops/_grad_experimental/grad_array_ops.py +830 -0
  406. mindspore/ops/_grad_experimental/grad_base.py +143 -0
  407. mindspore/ops/_grad_experimental/grad_comm_ops.py +714 -0
  408. mindspore/ops/_grad_experimental/grad_debug_ops.py +31 -0
  409. mindspore/ops/_grad_experimental/grad_implementations.py +203 -0
  410. mindspore/ops/_grad_experimental/grad_inner_ops.py +79 -0
  411. mindspore/ops/_grad_experimental/grad_math_ops.py +802 -0
  412. mindspore/ops/_grad_experimental/grad_nn_ops.py +231 -0
  413. mindspore/ops/_grad_experimental/grad_quant_ops.py +238 -0
  414. mindspore/ops/_grad_experimental/grad_sparse.py +342 -0
  415. mindspore/ops/_grad_experimental/grad_sparse_ops.py +399 -0
  416. mindspore/ops/_grad_experimental/taylor_rule.py +220 -0
  417. mindspore/ops/_op_impl/__init__.py +23 -0
  418. mindspore/ops/_op_impl/_custom_op/__init__.py +39 -0
  419. mindspore/ops/_op_impl/_custom_op/_basic.py +158 -0
  420. mindspore/ops/_op_impl/_custom_op/batch_matmul_impl.py +279 -0
  421. mindspore/ops/_op_impl/_custom_op/batchnorm_fold.py +156 -0
  422. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2.py +109 -0
  423. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad.py +125 -0
  424. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad_reduce.py +105 -0
  425. mindspore/ops/_op_impl/_custom_op/batchnorm_fold_grad.py +124 -0
  426. mindspore/ops/_op_impl/_custom_op/cholesky_trsm_impl.py +116 -0
  427. mindspore/ops/_op_impl/_custom_op/correction_mul.py +89 -0
  428. mindspore/ops/_op_impl/_custom_op/correction_mul_grad.py +196 -0
  429. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +366 -0
  430. mindspore/ops/_op_impl/_custom_op/dsd_impl.py +162 -0
  431. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel.py +136 -0
  432. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad.py +206 -0
  433. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad_reduce.py +88 -0
  434. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer.py +128 -0
  435. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad.py +199 -0
  436. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad_reduce.py +88 -0
  437. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel.py +156 -0
  438. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel_grad.py +184 -0
  439. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer.py +143 -0
  440. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer_grad.py +169 -0
  441. mindspore/ops/_op_impl/_custom_op/fused_abs_max1_impl.py +548 -0
  442. mindspore/ops/_op_impl/_custom_op/img2col_impl.py +881 -0
  443. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +278 -0
  444. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_right_impl.py +200 -0
  445. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_left_cast_impl.py +334 -0
  446. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_right_mul_impl.py +255 -0
  447. mindspore/ops/_op_impl/_custom_op/matmul_cube_impl.py +222 -0
  448. mindspore/ops/_op_impl/_custom_op/matmul_dds_grad_impl.py +644 -0
  449. mindspore/ops/_op_impl/_custom_op/matmul_dds_impl.py +488 -0
  450. mindspore/ops/_op_impl/_custom_op/matrix_combine_impl.py +87 -0
  451. mindspore/ops/_op_impl/_custom_op/minmax_update_perchannel.py +129 -0
  452. mindspore/ops/_op_impl/_custom_op/minmax_update_perlayer.py +121 -0
  453. mindspore/ops/_op_impl/_custom_op/transpose02314_impl.py +352 -0
  454. mindspore/ops/_op_impl/aicpu/__init__.py +441 -0
  455. mindspore/ops/_op_impl/aicpu/abs.py +36 -0
  456. mindspore/ops/_op_impl/aicpu/acos.py +32 -0
  457. mindspore/ops/_op_impl/aicpu/acos_grad.py +33 -0
  458. mindspore/ops/_op_impl/aicpu/acosh.py +34 -0
  459. mindspore/ops/_op_impl/aicpu/acosh_grad.py +35 -0
  460. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d.py +34 -0
  461. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d_grad.py +34 -0
  462. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d.py +39 -0
  463. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d_grad.py +39 -0
  464. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d.py +37 -0
  465. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d_grad.py +37 -0
  466. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d.py +42 -0
  467. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d_grad.py +152 -0
  468. mindspore/ops/_op_impl/aicpu/add.py +43 -0
  469. mindspore/ops/_op_impl/aicpu/add_n.py +41 -0
  470. mindspore/ops/_op_impl/aicpu/add_v2.py +40 -0
  471. mindspore/ops/_op_impl/aicpu/addcdiv.py +41 -0
  472. mindspore/ops/_op_impl/aicpu/addcmul.py +47 -0
  473. mindspore/ops/_op_impl/aicpu/adjust_contrastv2.py +32 -0
  474. mindspore/ops/_op_impl/aicpu/adjust_hue.py +31 -0
  475. mindspore/ops/_op_impl/aicpu/adjust_saturation.py +32 -0
  476. mindspore/ops/_op_impl/aicpu/affine_grid.py +33 -0
  477. mindspore/ops/_op_impl/aicpu/affine_grid_grad.py +35 -0
  478. mindspore/ops/_op_impl/aicpu/angle.py +31 -0
  479. mindspore/ops/_op_impl/aicpu/arg_max.py +75 -0
  480. mindspore/ops/_op_impl/aicpu/arg_min.py +75 -0
  481. mindspore/ops/_op_impl/aicpu/argmax_with_value.py +43 -0
  482. mindspore/ops/_op_impl/aicpu/argmin_with_value.py +43 -0
  483. mindspore/ops/_op_impl/aicpu/asin.py +32 -0
  484. mindspore/ops/_op_impl/aicpu/asin_grad.py +33 -0
  485. mindspore/ops/_op_impl/aicpu/asinh.py +34 -0
  486. mindspore/ops/_op_impl/aicpu/asinh_grad.py +35 -0
  487. mindspore/ops/_op_impl/aicpu/atanh.py +34 -0
  488. mindspore/ops/_op_impl/aicpu/avgpool_grad_v1.py +37 -0
  489. mindspore/ops/_op_impl/aicpu/avgpool_v1.py +36 -0
  490. mindspore/ops/_op_impl/aicpu/bartlett_window.py +36 -0
  491. mindspore/ops/_op_impl/aicpu/batch_matmul.py +43 -0
  492. mindspore/ops/_op_impl/aicpu/batch_norm_grad_grad.py +49 -0
  493. mindspore/ops/_op_impl/aicpu/bernoulli.py +48 -0
  494. mindspore/ops/_op_impl/aicpu/bessel_i0.py +31 -0
  495. mindspore/ops/_op_impl/aicpu/betainc.py +31 -0
  496. mindspore/ops/_op_impl/aicpu/bias_add.py +44 -0
  497. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +42 -0
  498. mindspore/ops/_op_impl/aicpu/bincount.py +33 -0
  499. mindspore/ops/_op_impl/aicpu/blackman_window.py +36 -0
  500. mindspore/ops/_op_impl/aicpu/broadcast_to.py +58 -0
  501. mindspore/ops/_op_impl/aicpu/bucketize.py +34 -0
  502. mindspore/ops/_op_impl/aicpu/cache_swap_table.py +102 -0
  503. mindspore/ops/_op_impl/aicpu/cast.py +225 -0
  504. mindspore/ops/_op_impl/aicpu/cauchy.py +33 -0
  505. mindspore/ops/_op_impl/aicpu/channel_shuffle.py +40 -0
  506. mindspore/ops/_op_impl/aicpu/check_numerics.py +33 -0
  507. mindspore/ops/_op_impl/aicpu/cholesky.py +32 -0
  508. mindspore/ops/_op_impl/aicpu/cholesky_inverse.py +31 -0
  509. mindspore/ops/_op_impl/aicpu/cholesky_solve.py +33 -0
  510. mindspore/ops/_op_impl/aicpu/choleskygrad.py +32 -0
  511. mindspore/ops/_op_impl/aicpu/coalesce.py +37 -0
  512. mindspore/ops/_op_impl/aicpu/col2im.py +38 -0
  513. mindspore/ops/_op_impl/aicpu/combined_non_max_suppression.py +42 -0
  514. mindspore/ops/_op_impl/aicpu/compare_and_bitpack.py +37 -0
  515. mindspore/ops/_op_impl/aicpu/complex.py +32 -0
  516. mindspore/ops/_op_impl/aicpu/complex_abs.py +31 -0
  517. mindspore/ops/_op_impl/aicpu/compute_accidental_hits.py +44 -0
  518. mindspore/ops/_op_impl/aicpu/concat.py +57 -0
  519. mindspore/ops/_op_impl/aicpu/concat_offset.py +42 -0
  520. mindspore/ops/_op_impl/aicpu/concat_offset_v1.py +31 -0
  521. mindspore/ops/_op_impl/aicpu/conj.py +42 -0
  522. mindspore/ops/_op_impl/aicpu/conjugate_transpose.py +58 -0
  523. mindspore/ops/_op_impl/aicpu/cos.py +34 -0
  524. mindspore/ops/_op_impl/aicpu/cosh.py +34 -0
  525. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  526. mindspore/ops/_op_impl/aicpu/crop_and_resize.py +69 -0
  527. mindspore/ops/_op_impl/aicpu/crop_and_resize_grad_boxes.py +68 -0
  528. mindspore/ops/_op_impl/aicpu/crop_and_resize_grad_image.py +38 -0
  529. mindspore/ops/_op_impl/aicpu/cross.py +42 -0
  530. mindspore/ops/_op_impl/aicpu/csr_sparse_matrix_to_dense.py +48 -0
  531. mindspore/ops/_op_impl/aicpu/csr_sparse_matrix_to_sparse_tensor.py +51 -0
  532. mindspore/ops/_op_impl/aicpu/ctc_greedy_decoder.py +35 -0
  533. mindspore/ops/_op_impl/aicpu/ctc_loss_v2.py +43 -0
  534. mindspore/ops/_op_impl/aicpu/ctc_loss_v2_grad.py +45 -0
  535. mindspore/ops/_op_impl/aicpu/ctcloss.py +38 -0
  536. mindspore/ops/_op_impl/aicpu/cummax.py +41 -0
  537. mindspore/ops/_op_impl/aicpu/cumprod.py +58 -0
  538. mindspore/ops/_op_impl/aicpu/cumsum.py +58 -0
  539. mindspore/ops/_op_impl/aicpu/cumulative_logsumexp.py +36 -0
  540. mindspore/ops/_op_impl/aicpu/data_format_vec_permute.py +32 -0
  541. mindspore/ops/_op_impl/aicpu/deformable_offsets.py +38 -0
  542. mindspore/ops/_op_impl/aicpu/deformable_offsets_grad.py +43 -0
  543. mindspore/ops/_op_impl/aicpu/dense_to_csr_sparse_matrix.py +49 -0
  544. mindspore/ops/_op_impl/aicpu/dense_to_dense_set_operation.py +45 -0
  545. mindspore/ops/_op_impl/aicpu/dense_to_sparse_set_operation.py +48 -0
  546. mindspore/ops/_op_impl/aicpu/depth_to_space.py +44 -0
  547. mindspore/ops/_op_impl/aicpu/diag.py +36 -0
  548. mindspore/ops/_op_impl/aicpu/diag_part.py +36 -0
  549. mindspore/ops/_op_impl/aicpu/diagonal.py +35 -0
  550. mindspore/ops/_op_impl/aicpu/digamma.py +31 -0
  551. mindspore/ops/_op_impl/aicpu/div.py +41 -0
  552. mindspore/ops/_op_impl/aicpu/div_no_nan.py +35 -0
  553. mindspore/ops/_op_impl/aicpu/dropout2d.py +42 -0
  554. mindspore/ops/_op_impl/aicpu/dropout3d.py +42 -0
  555. mindspore/ops/_op_impl/aicpu/dropout_genmask.py +41 -0
  556. mindspore/ops/_op_impl/aicpu/dropout_genmask_v3.py +32 -0
  557. mindspore/ops/_op_impl/aicpu/dynamic_stitch.py +42 -0
  558. mindspore/ops/_op_impl/aicpu/edit_distance.py +56 -0
  559. mindspore/ops/_op_impl/aicpu/eig.py +35 -0
  560. mindspore/ops/_op_impl/aicpu/embedding_lookup.py +102 -0
  561. mindspore/ops/_op_impl/aicpu/end_of_sequence.py +30 -0
  562. mindspore/ops/_op_impl/aicpu/environ_create.py +28 -0
  563. mindspore/ops/_op_impl/aicpu/environ_destroy_all.py +28 -0
  564. mindspore/ops/_op_impl/aicpu/environ_get.py +41 -0
  565. mindspore/ops/_op_impl/aicpu/environ_set.py +40 -0
  566. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  567. mindspore/ops/_op_impl/aicpu/equal.py +41 -0
  568. mindspore/ops/_op_impl/aicpu/exp.py +37 -0
  569. mindspore/ops/_op_impl/aicpu/expand.py +45 -0
  570. mindspore/ops/_op_impl/aicpu/expand_dims.py +42 -0
  571. mindspore/ops/_op_impl/aicpu/expm1.py +34 -0
  572. mindspore/ops/_op_impl/aicpu/extract_glimpse.py +35 -0
  573. mindspore/ops/_op_impl/aicpu/eye.py +44 -0
  574. mindspore/ops/_op_impl/aicpu/fft_with_size.py +47 -0
  575. mindspore/ops/_op_impl/aicpu/fill_diagonal.py +39 -0
  576. mindspore/ops/_op_impl/aicpu/fill_v2.py +58 -0
  577. mindspore/ops/_op_impl/aicpu/flatten.py +43 -0
  578. mindspore/ops/_op_impl/aicpu/floor_div.py +38 -0
  579. mindspore/ops/_op_impl/aicpu/fmax.py +36 -0
  580. mindspore/ops/_op_impl/aicpu/fmin.py +37 -0
  581. mindspore/ops/_op_impl/aicpu/fractional_avg_pool.py +41 -0
  582. mindspore/ops/_op_impl/aicpu/fractional_avg_pool_grad.py +41 -0
  583. mindspore/ops/_op_impl/aicpu/fractional_max_pool.py +41 -0
  584. mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_grad_with_fixed_ksize.py +43 -0
  585. mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_with_fixed_ksize.py +65 -0
  586. mindspore/ops/_op_impl/aicpu/fractional_max_pool_grad.py +42 -0
  587. mindspore/ops/_op_impl/aicpu/fractional_max_pool_grad_with_fixed_ksize.py +42 -0
  588. mindspore/ops/_op_impl/aicpu/fractional_max_pool_with_fixed_ksize.py +49 -0
  589. mindspore/ops/_op_impl/aicpu/fse_decode.py +43 -0
  590. mindspore/ops/_op_impl/aicpu/fused_sparse_adam.py +46 -0
  591. mindspore/ops/_op_impl/aicpu/fused_sparse_ftrl.py +41 -0
  592. mindspore/ops/_op_impl/aicpu/fused_sparse_lazy_adam.py +46 -0
  593. mindspore/ops/_op_impl/aicpu/fused_sparse_proximal_adagrad.py +39 -0
  594. mindspore/ops/_op_impl/aicpu/gamma.py +38 -0
  595. mindspore/ops/_op_impl/aicpu/gather.py +46 -0
  596. mindspore/ops/_op_impl/aicpu/gather_d.py +79 -0
  597. mindspore/ops/_op_impl/aicpu/gather_d_grad_v2.py +79 -0
  598. mindspore/ops/_op_impl/aicpu/gather_grad.py +54 -0
  599. mindspore/ops/_op_impl/aicpu/gather_nd.py +56 -0
  600. mindspore/ops/_op_impl/aicpu/gcd.py +32 -0
  601. mindspore/ops/_op_impl/aicpu/generate_eod_mask.py +38 -0
  602. mindspore/ops/_op_impl/aicpu/geqrf.py +32 -0
  603. mindspore/ops/_op_impl/aicpu/get_next.py +39 -0
  604. mindspore/ops/_op_impl/aicpu/glu.py +33 -0
  605. mindspore/ops/_op_impl/aicpu/glu_grad.py +34 -0
  606. mindspore/ops/_op_impl/aicpu/greater.py +41 -0
  607. mindspore/ops/_op_impl/aicpu/greater_equal.py +41 -0
  608. mindspore/ops/_op_impl/aicpu/grid_sampler_2d.py +35 -0
  609. mindspore/ops/_op_impl/aicpu/grid_sampler_2d_grad.py +38 -0
  610. mindspore/ops/_op_impl/aicpu/grid_sampler_3d.py +34 -0
  611. mindspore/ops/_op_impl/aicpu/grid_sampler_3d_grad.py +38 -0
  612. mindspore/ops/_op_impl/aicpu/hamming_window.py +57 -0
  613. mindspore/ops/_op_impl/aicpu/hard_sigmoid.py +32 -0
  614. mindspore/ops/_op_impl/aicpu/hard_sigmoid_grad.py +33 -0
  615. mindspore/ops/_op_impl/aicpu/heaviside.py +40 -0
  616. mindspore/ops/_op_impl/aicpu/histogram.py +35 -0
  617. mindspore/ops/_op_impl/aicpu/hsv_to_rgb.py +32 -0
  618. mindspore/ops/_op_impl/aicpu/hypot.py +32 -0
  619. mindspore/ops/_op_impl/aicpu/identity.py +42 -0
  620. mindspore/ops/_op_impl/aicpu/identity_n.py +41 -0
  621. mindspore/ops/_op_impl/aicpu/igamma.py +30 -0
  622. mindspore/ops/_op_impl/aicpu/igammac.py +30 -0
  623. mindspore/ops/_op_impl/aicpu/igammagrada.py +30 -0
  624. mindspore/ops/_op_impl/aicpu/im2col.py +43 -0
  625. mindspore/ops/_op_impl/aicpu/imag.py +31 -0
  626. mindspore/ops/_op_impl/aicpu/index_fill.py +54 -0
  627. mindspore/ops/_op_impl/aicpu/index_put.py +50 -0
  628. mindspore/ops/_op_impl/aicpu/init_data_set_queue.py +27 -0
  629. mindspore/ops/_op_impl/aicpu/inplace_index_add.py +39 -0
  630. mindspore/ops/_op_impl/aicpu/instance_norm_v2.py +41 -0
  631. mindspore/ops/_op_impl/aicpu/instance_norm_v2_grad.py +44 -0
  632. mindspore/ops/_op_impl/aicpu/is_finite.py +40 -0
  633. mindspore/ops/_op_impl/aicpu/is_inf.py +31 -0
  634. mindspore/ops/_op_impl/aicpu/is_nan.py +31 -0
  635. mindspore/ops/_op_impl/aicpu/kldivloss.py +34 -0
  636. mindspore/ops/_op_impl/aicpu/kldivlossgrad.py +35 -0
  637. mindspore/ops/_op_impl/aicpu/layer_norm_grad_grad.py +47 -0
  638. mindspore/ops/_op_impl/aicpu/lcm.py +32 -0
  639. mindspore/ops/_op_impl/aicpu/left_shift.py +38 -0
  640. mindspore/ops/_op_impl/aicpu/less.py +41 -0
  641. mindspore/ops/_op_impl/aicpu/less_equal.py +41 -0
  642. mindspore/ops/_op_impl/aicpu/lgamma.py +33 -0
  643. mindspore/ops/_op_impl/aicpu/linear_sum_assignment.py +57 -0
  644. mindspore/ops/_op_impl/aicpu/linspace.py +33 -0
  645. mindspore/ops/_op_impl/aicpu/list_diff.py +50 -0
  646. mindspore/ops/_op_impl/aicpu/log.py +37 -0
  647. mindspore/ops/_op_impl/aicpu/log1p.py +34 -0
  648. mindspore/ops/_op_impl/aicpu/log_matrix_determinant.py +31 -0
  649. mindspore/ops/_op_impl/aicpu/log_normal_reverse.py +33 -0
  650. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +37 -0
  651. mindspore/ops/_op_impl/aicpu/logical_xor.py +30 -0
  652. mindspore/ops/_op_impl/aicpu/logit.py +33 -0
  653. mindspore/ops/_op_impl/aicpu/logit_grad.py +34 -0
  654. mindspore/ops/_op_impl/aicpu/logspace.py +36 -0
  655. mindspore/ops/_op_impl/aicpu/lower_bound.py +47 -0
  656. mindspore/ops/_op_impl/aicpu/lstsq.py +34 -0
  657. mindspore/ops/_op_impl/aicpu/lu.py +39 -0
  658. mindspore/ops/_op_impl/aicpu/lu_solve.py +32 -0
  659. mindspore/ops/_op_impl/aicpu/lu_unpack.py +114 -0
  660. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +49 -0
  661. mindspore/ops/_op_impl/aicpu/masked_fill.py +42 -0
  662. mindspore/ops/_op_impl/aicpu/masked_scatter.py +40 -0
  663. mindspore/ops/_op_impl/aicpu/masked_select.py +31 -0
  664. mindspore/ops/_op_impl/aicpu/masked_select_grad.py +35 -0
  665. mindspore/ops/_op_impl/aicpu/matmul.py +39 -0
  666. mindspore/ops/_op_impl/aicpu/matrix_band_part.py +59 -0
  667. mindspore/ops/_op_impl/aicpu/matrix_determinant.py +30 -0
  668. mindspore/ops/_op_impl/aicpu/matrix_diag_part_v3.py +54 -0
  669. mindspore/ops/_op_impl/aicpu/matrix_diag_v3.py +56 -0
  670. mindspore/ops/_op_impl/aicpu/matrix_exp.py +34 -0
  671. mindspore/ops/_op_impl/aicpu/matrix_inverse.py +31 -0
  672. mindspore/ops/_op_impl/aicpu/matrix_logarithm.py +31 -0
  673. mindspore/ops/_op_impl/aicpu/matrix_power.py +37 -0
  674. mindspore/ops/_op_impl/aicpu/matrix_set_diag_v3.py +54 -0
  675. mindspore/ops/_op_impl/aicpu/matrix_solve.py +35 -0
  676. mindspore/ops/_op_impl/aicpu/matrix_solve_ls.py +36 -0
  677. mindspore/ops/_op_impl/aicpu/matrix_triangular_solve.py +36 -0
  678. mindspore/ops/_op_impl/aicpu/max_pool3d_grad_with_argmax.py +60 -0
  679. mindspore/ops/_op_impl/aicpu/max_pool3d_with_argmax.py +59 -0
  680. mindspore/ops/_op_impl/aicpu/max_unpool2d.py +57 -0
  681. mindspore/ops/_op_impl/aicpu/max_unpool2d_grad.py +58 -0
  682. mindspore/ops/_op_impl/aicpu/max_unpool3d.py +57 -0
  683. mindspore/ops/_op_impl/aicpu/max_unpool3d_grad.py +58 -0
  684. mindspore/ops/_op_impl/aicpu/maximum_grad_grad.py +40 -0
  685. mindspore/ops/_op_impl/aicpu/maxpool_grad_v1.py +46 -0
  686. mindspore/ops/_op_impl/aicpu/maxpool_v1.py +42 -0
  687. mindspore/ops/_op_impl/aicpu/median.py +39 -0
  688. mindspore/ops/_op_impl/aicpu/median_grad.py +45 -0
  689. mindspore/ops/_op_impl/aicpu/meshgrid.py +41 -0
  690. mindspore/ops/_op_impl/aicpu/minimum_grad_grad.py +40 -0
  691. mindspore/ops/_op_impl/aicpu/mirror_pad.py +50 -0
  692. mindspore/ops/_op_impl/aicpu/mirror_pad_grad.py +48 -0
  693. mindspore/ops/_op_impl/aicpu/mul.py +43 -0
  694. mindspore/ops/_op_impl/aicpu/mul_no_nan.py +42 -0
  695. mindspore/ops/_op_impl/aicpu/multi_margin_loss.py +37 -0
  696. mindspore/ops/_op_impl/aicpu/multi_margin_loss_grad.py +41 -0
  697. mindspore/ops/_op_impl/aicpu/multilabel_margin_loss_grad.py +37 -0
  698. mindspore/ops/_op_impl/aicpu/multinomial.py +47 -0
  699. mindspore/ops/_op_impl/aicpu/multinomial_with_replacement.py +35 -0
  700. mindspore/ops/_op_impl/aicpu/mvlgamma.py +32 -0
  701. mindspore/ops/_op_impl/aicpu/mvlgamma_grad.py +33 -0
  702. mindspore/ops/_op_impl/aicpu/nan_to_num.py +34 -0
  703. mindspore/ops/_op_impl/aicpu/neg.py +36 -0
  704. mindspore/ops/_op_impl/aicpu/nextafter.py +32 -0
  705. mindspore/ops/_op_impl/aicpu/nllloss.py +38 -0
  706. mindspore/ops/_op_impl/aicpu/nllloss_grad.py +39 -0
  707. mindspore/ops/_op_impl/aicpu/no_repeat_ngram.py +34 -0
  708. mindspore/ops/_op_impl/aicpu/non_deterministic_ints.py +33 -0
  709. mindspore/ops/_op_impl/aicpu/non_max_suppression.py +36 -0
  710. mindspore/ops/_op_impl/aicpu/non_max_suppression_with_overlaps.py +35 -0
  711. mindspore/ops/_op_impl/aicpu/non_zero.py +43 -0
  712. mindspore/ops/_op_impl/aicpu/not_equal.py +39 -0
  713. mindspore/ops/_op_impl/aicpu/nth_element.py +39 -0
  714. mindspore/ops/_op_impl/aicpu/nuclear_norm.py +33 -0
  715. mindspore/ops/_op_impl/aicpu/one_hot.py +116 -0
  716. mindspore/ops/_op_impl/aicpu/ones_like.py +39 -0
  717. mindspore/ops/_op_impl/aicpu/orgqr.py +34 -0
  718. mindspore/ops/_op_impl/aicpu/pad_and_shift.py +33 -0
  719. mindspore/ops/_op_impl/aicpu/pad_v3.py +61 -0
  720. mindspore/ops/_op_impl/aicpu/pad_v3_grad.py +59 -0
  721. mindspore/ops/_op_impl/aicpu/padding.py +41 -0
  722. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +54 -0
  723. mindspore/ops/_op_impl/aicpu/pdist_grad.py +33 -0
  724. mindspore/ops/_op_impl/aicpu/poisson.py +37 -0
  725. mindspore/ops/_op_impl/aicpu/polar.py +32 -0
  726. mindspore/ops/_op_impl/aicpu/polygamma.py +34 -0
  727. mindspore/ops/_op_impl/aicpu/pow.py +39 -0
  728. mindspore/ops/_op_impl/aicpu/print_tensor.py +39 -0
  729. mindspore/ops/_op_impl/aicpu/priority_replay_buffer.py +113 -0
  730. mindspore/ops/_op_impl/aicpu/qr.py +36 -0
  731. mindspore/ops/_op_impl/aicpu/quant_dtype_cast.py +40 -0
  732. mindspore/ops/_op_impl/aicpu/quantile.py +35 -0
  733. mindspore/ops/_op_impl/aicpu/ragged_range.py +49 -0
  734. mindspore/ops/_op_impl/aicpu/ragged_tensor_to_sparse.py +73 -0
  735. mindspore/ops/_op_impl/aicpu/ragged_tensor_to_tensor.py +74 -0
  736. mindspore/ops/_op_impl/aicpu/random_categorical.py +68 -0
  737. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +36 -0
  738. mindspore/ops/_op_impl/aicpu/random_gamma.py +38 -0
  739. mindspore/ops/_op_impl/aicpu/random_poisson.py +134 -0
  740. mindspore/ops/_op_impl/aicpu/random_shuffle.py +47 -0
  741. mindspore/ops/_op_impl/aicpu/randperm.py +38 -0
  742. mindspore/ops/_op_impl/aicpu/randperm_v2.py +41 -0
  743. mindspore/ops/_op_impl/aicpu/range.py +36 -0
  744. mindspore/ops/_op_impl/aicpu/range_v2.py +35 -0
  745. mindspore/ops/_op_impl/aicpu/real.py +31 -0
  746. mindspore/ops/_op_impl/aicpu/real_div.py +40 -0
  747. mindspore/ops/_op_impl/aicpu/reciprocal.py +34 -0
  748. mindspore/ops/_op_impl/aicpu/reciprocal_grad.py +35 -0
  749. mindspore/ops/_op_impl/aicpu/reduce_mean.py +57 -0
  750. mindspore/ops/_op_impl/aicpu/reduce_prod.py +57 -0
  751. mindspore/ops/_op_impl/aicpu/reduce_sum.py +57 -0
  752. mindspore/ops/_op_impl/aicpu/relu_grad_v3.py +41 -0
  753. mindspore/ops/_op_impl/aicpu/relu_v3.py +38 -0
  754. mindspore/ops/_op_impl/aicpu/reservoir_replay_buffer.py +96 -0
  755. mindspore/ops/_op_impl/aicpu/reshape.py +42 -0
  756. mindspore/ops/_op_impl/aicpu/resize_area.py +40 -0
  757. mindspore/ops/_op_impl/aicpu/resize_bicubic.py +20 -0
  758. mindspore/ops/_op_impl/aicpu/resize_bicubic_grad.py +19 -0
  759. mindspore/ops/_op_impl/aicpu/resize_bilinear.py +32 -0
  760. mindspore/ops/_op_impl/aicpu/resize_bilinear_grad.py +32 -0
  761. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2.py +36 -0
  762. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2_grad.py +35 -0
  763. mindspore/ops/_op_impl/aicpu/resize_v2.py +68 -0
  764. mindspore/ops/_op_impl/aicpu/resize_v2_grad.py +68 -0
  765. mindspore/ops/_op_impl/aicpu/reverse_sequence.py +55 -0
  766. mindspore/ops/_op_impl/aicpu/reversev2.py +54 -0
  767. mindspore/ops/_op_impl/aicpu/rgb_to_hsv.py +32 -0
  768. mindspore/ops/_op_impl/aicpu/right_shift.py +38 -0
  769. mindspore/ops/_op_impl/aicpu/rnnt_loss.py +35 -0
  770. mindspore/ops/_op_impl/aicpu/round.py +34 -0
  771. mindspore/ops/_op_impl/aicpu/rsqrt.py +33 -0
  772. mindspore/ops/_op_impl/aicpu/rsqrt_grad.py +36 -0
  773. mindspore/ops/_op_impl/aicpu/sample_distorted_bounding_box_v2.py +49 -0
  774. mindspore/ops/_op_impl/aicpu/scale_and_translate.py +52 -0
  775. mindspore/ops/_op_impl/aicpu/scale_and_translate_grad.py +36 -0
  776. mindspore/ops/_op_impl/aicpu/scatter.py +79 -0
  777. mindspore/ops/_op_impl/aicpu/scatter_add_with_axis.py +53 -0
  778. mindspore/ops/_op_impl/aicpu/scatter_elements.py +39 -0
  779. mindspore/ops/_op_impl/aicpu/scatter_nd.py +59 -0
  780. mindspore/ops/_op_impl/aicpu/scatter_nd_max.py +54 -0
  781. mindspore/ops/_op_impl/aicpu/scatter_nd_min.py +54 -0
  782. mindspore/ops/_op_impl/aicpu/scatter_nd_update.py +59 -0
  783. mindspore/ops/_op_impl/aicpu/search_sorted.py +44 -0
  784. mindspore/ops/_op_impl/aicpu/segment_max.py +52 -0
  785. mindspore/ops/_op_impl/aicpu/segment_mean.py +56 -0
  786. mindspore/ops/_op_impl/aicpu/segment_min.py +52 -0
  787. mindspore/ops/_op_impl/aicpu/segment_prod.py +56 -0
  788. mindspore/ops/_op_impl/aicpu/segment_sum.py +56 -0
  789. mindspore/ops/_op_impl/aicpu/select.py +45 -0
  790. mindspore/ops/_op_impl/aicpu/self_adjoint_eig.py +34 -0
  791. mindspore/ops/_op_impl/aicpu/sequence_add.py +34 -0
  792. mindspore/ops/_op_impl/aicpu/sequence_add_offset.py +34 -0
  793. mindspore/ops/_op_impl/aicpu/sequence_addn.py +38 -0
  794. mindspore/ops/_op_impl/aicpu/sequence_concat.py +40 -0
  795. mindspore/ops/_op_impl/aicpu/sequence_stack.py +40 -0
  796. mindspore/ops/_op_impl/aicpu/set_size.py +38 -0
  797. mindspore/ops/_op_impl/aicpu/sign.py +36 -0
  798. mindspore/ops/_op_impl/aicpu/sin.py +34 -0
  799. mindspore/ops/_op_impl/aicpu/sinc.py +43 -0
  800. mindspore/ops/_op_impl/aicpu/sinh.py +34 -0
  801. mindspore/ops/_op_impl/aicpu/slice.py +59 -0
  802. mindspore/ops/_op_impl/aicpu/slice_grad.py +76 -0
  803. mindspore/ops/_op_impl/aicpu/smooth_l1_loss.py +35 -0
  804. mindspore/ops/_op_impl/aicpu/smooth_l1_loss_grad.py +37 -0
  805. mindspore/ops/_op_impl/aicpu/sort.py +39 -0
  806. mindspore/ops/_op_impl/aicpu/space_to_depth.py +44 -0
  807. mindspore/ops/_op_impl/aicpu/sparse_addmm.py +87 -0
  808. mindspore/ops/_op_impl/aicpu/sparse_apply_adagrad_da.py +80 -0
  809. mindspore/ops/_op_impl/aicpu/sparse_apply_centered_rms_prop.py +105 -0
  810. mindspore/ops/_op_impl/aicpu/sparse_apply_momentum.py +80 -0
  811. mindspore/ops/_op_impl/aicpu/sparse_apply_proximal_gradient_descent.py +79 -0
  812. mindspore/ops/_op_impl/aicpu/sparse_concat.py +59 -0
  813. mindspore/ops/_op_impl/aicpu/sparse_cross.py +42 -0
  814. mindspore/ops/_op_impl/aicpu/sparse_dense_cwise_add.py +58 -0
  815. mindspore/ops/_op_impl/aicpu/sparse_dense_cwise_div.py +58 -0
  816. mindspore/ops/_op_impl/aicpu/sparse_dense_cwise_mul.py +58 -0
  817. mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows.py +63 -0
  818. mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows_grad.py +45 -0
  819. mindspore/ops/_op_impl/aicpu/sparse_matrix_mat_mul.py +56 -0
  820. mindspore/ops/_op_impl/aicpu/sparse_matrix_nnz.py +81 -0
  821. mindspore/ops/_op_impl/aicpu/sparse_matrix_transpose.py +116 -0
  822. mindspore/ops/_op_impl/aicpu/sparse_reorder.py +56 -0
  823. mindspore/ops/_op_impl/aicpu/sparse_reshape.py +34 -0
  824. mindspore/ops/_op_impl/aicpu/sparse_segment_mean_grad.py +36 -0
  825. mindspore/ops/_op_impl/aicpu/sparse_segment_mean_with_num_segments.py +44 -0
  826. mindspore/ops/_op_impl/aicpu/sparse_segment_sqrt_n.py +43 -0
  827. mindspore/ops/_op_impl/aicpu/sparse_segment_sqrt_n_grad.py +38 -0
  828. mindspore/ops/_op_impl/aicpu/sparse_segment_sqrt_n_with_num_segments.py +44 -0
  829. mindspore/ops/_op_impl/aicpu/sparse_segment_sum.py +49 -0
  830. mindspore/ops/_op_impl/aicpu/sparse_segment_sum_with_num_segments.py +68 -0
  831. mindspore/ops/_op_impl/aicpu/sparse_slice.py +63 -0
  832. mindspore/ops/_op_impl/aicpu/sparse_slice_grad.py +61 -0
  833. mindspore/ops/_op_impl/aicpu/sparse_softmax.py +33 -0
  834. mindspore/ops/_op_impl/aicpu/sparse_softmax_cross_entropy_with_logits_v2.py +35 -0
  835. mindspore/ops/_op_impl/aicpu/sparse_sparse_maximum.py +53 -0
  836. mindspore/ops/_op_impl/aicpu/sparse_sparse_minimum.py +53 -0
  837. mindspore/ops/_op_impl/aicpu/sparse_tensor_dense_add.py +84 -0
  838. mindspore/ops/_op_impl/aicpu/sparse_tensor_dense_mat_mul.py +190 -0
  839. mindspore/ops/_op_impl/aicpu/sparse_tensor_to_csr_sparse_matrix.py +51 -0
  840. mindspore/ops/_op_impl/aicpu/sparse_to_dense_v2.py +73 -0
  841. mindspore/ops/_op_impl/aicpu/split.py +45 -0
  842. mindspore/ops/_op_impl/aicpu/sqrt.py +34 -0
  843. mindspore/ops/_op_impl/aicpu/sqrt_grad.py +35 -0
  844. mindspore/ops/_op_impl/aicpu/square.py +35 -0
  845. mindspore/ops/_op_impl/aicpu/squared_difference.py +37 -0
  846. mindspore/ops/_op_impl/aicpu/squeeze.py +42 -0
  847. mindspore/ops/_op_impl/aicpu/sspaddmm.py +97 -0
  848. mindspore/ops/_op_impl/aicpu/stack.py +45 -0
  849. mindspore/ops/_op_impl/aicpu/stack_push_pop.py +87 -0
  850. mindspore/ops/_op_impl/aicpu/standard_laplace.py +34 -0
  851. mindspore/ops/_op_impl/aicpu/standard_normal.py +34 -0
  852. mindspore/ops/_op_impl/aicpu/stateless_dropout_genmask.py +37 -0
  853. mindspore/ops/_op_impl/aicpu/stft.py +70 -0
  854. mindspore/ops/_op_impl/aicpu/strided_slice.py +43 -0
  855. mindspore/ops/_op_impl/aicpu/strided_slice_grad.py +50 -0
  856. mindspore/ops/_op_impl/aicpu/sub.py +41 -0
  857. mindspore/ops/_op_impl/aicpu/sub_and_filter.py +36 -0
  858. mindspore/ops/_op_impl/aicpu/tan.py +34 -0
  859. mindspore/ops/_op_impl/aicpu/tanh.py +34 -0
  860. mindspore/ops/_op_impl/aicpu/tanh_grad.py +35 -0
  861. mindspore/ops/_op_impl/aicpu/tensor_scatter_update.py +59 -0
  862. mindspore/ops/_op_impl/aicpu/tile.py +56 -0
  863. mindspore/ops/_op_impl/aicpu/topk.py +34 -0
  864. mindspore/ops/_op_impl/aicpu/trace.py +40 -0
  865. mindspore/ops/_op_impl/aicpu/tracegrad.py +41 -0
  866. mindspore/ops/_op_impl/aicpu/trans_data.py +35 -0
  867. mindspore/ops/_op_impl/aicpu/transpose.py +58 -0
  868. mindspore/ops/_op_impl/aicpu/tridiagonal_matmul.py +42 -0
  869. mindspore/ops/_op_impl/aicpu/tridiagonal_solve.py +35 -0
  870. mindspore/ops/_op_impl/aicpu/tril.py +42 -0
  871. mindspore/ops/_op_impl/aicpu/tril_indices.py +34 -0
  872. mindspore/ops/_op_impl/aicpu/triplet_margin_loss.py +62 -0
  873. mindspore/ops/_op_impl/aicpu/triu.py +43 -0
  874. mindspore/ops/_op_impl/aicpu/triu_indices.py +34 -0
  875. mindspore/ops/_op_impl/aicpu/truncated_normal.py +39 -0
  876. mindspore/ops/_op_impl/aicpu/uniform.py +36 -0
  877. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +41 -0
  878. mindspore/ops/_op_impl/aicpu/uniform_int.py +36 -0
  879. mindspore/ops/_op_impl/aicpu/uniform_real.py +33 -0
  880. mindspore/ops/_op_impl/aicpu/unique.py +31 -0
  881. mindspore/ops/_op_impl/aicpu/unique_consecutive.py +47 -0
  882. mindspore/ops/_op_impl/aicpu/unique_with_pad.py +32 -0
  883. mindspore/ops/_op_impl/aicpu/unravel_index.py +32 -0
  884. mindspore/ops/_op_impl/aicpu/unsorted_segment_prod.py +53 -0
  885. mindspore/ops/_op_impl/aicpu/unsorted_segment_sum.py +57 -0
  886. mindspore/ops/_op_impl/aicpu/unstack.py +45 -0
  887. mindspore/ops/_op_impl/aicpu/update_cache.py +44 -0
  888. mindspore/ops/_op_impl/aicpu/upper_bound.py +47 -0
  889. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d.py +42 -0
  890. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d_grad.py +49 -0
  891. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d.py +40 -0
  892. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d_grad.py +50 -0
  893. mindspore/ops/_op_impl/aicpu/xdivy.py +35 -0
  894. mindspore/ops/_op_impl/aicpu/xlogy.py +33 -0
  895. mindspore/ops/_op_impl/aicpu/zeros_like.py +42 -0
  896. mindspore/ops/_op_impl/aicpu/zeta.py +31 -0
  897. mindspore/ops/_op_impl/akg/__init__.py +19 -0
  898. mindspore/ops/_op_impl/akg/ascend/__init__.py +48 -0
  899. mindspore/ops/_op_impl/akg/ascend/abs.py +35 -0
  900. mindspore/ops/_op_impl/akg/ascend/add.py +42 -0
  901. mindspore/ops/_op_impl/akg/ascend/add_n.py +37 -0
  902. mindspore/ops/_op_impl/akg/ascend/batchmatmul.py +33 -0
  903. mindspore/ops/_op_impl/akg/ascend/cast.py +46 -0
  904. mindspore/ops/_op_impl/akg/ascend/equal.py +35 -0
  905. mindspore/ops/_op_impl/akg/ascend/exp.py +35 -0
  906. mindspore/ops/_op_impl/akg/ascend/expand_dims.py +33 -0
  907. mindspore/ops/_op_impl/akg/ascend/greater.py +34 -0
  908. mindspore/ops/_op_impl/akg/ascend/greater_equal.py +35 -0
  909. mindspore/ops/_op_impl/akg/ascend/less.py +31 -0
  910. mindspore/ops/_op_impl/akg/ascend/less_equal.py +35 -0
  911. mindspore/ops/_op_impl/akg/ascend/load_im2col.py +33 -0
  912. mindspore/ops/_op_impl/akg/ascend/log.py +34 -0
  913. mindspore/ops/_op_impl/akg/ascend/maximum.py +36 -0
  914. mindspore/ops/_op_impl/akg/ascend/minimum.py +39 -0
  915. mindspore/ops/_op_impl/akg/ascend/mul.py +41 -0
  916. mindspore/ops/_op_impl/akg/ascend/neg.py +37 -0
  917. mindspore/ops/_op_impl/akg/ascend/pow.py +35 -0
  918. mindspore/ops/_op_impl/akg/ascend/prod_force_se_a.py +33 -0
  919. mindspore/ops/_op_impl/akg/ascend/real_div.py +36 -0
  920. mindspore/ops/_op_impl/akg/ascend/reciprocal.py +32 -0
  921. mindspore/ops/_op_impl/akg/ascend/reduce_max.py +32 -0
  922. mindspore/ops/_op_impl/akg/ascend/reduce_min.py +32 -0
  923. mindspore/ops/_op_impl/akg/ascend/reduce_sum.py +37 -0
  924. mindspore/ops/_op_impl/akg/ascend/rsqrt.py +35 -0
  925. mindspore/ops/_op_impl/akg/ascend/select.py +37 -0
  926. mindspore/ops/_op_impl/akg/ascend/sqrt.py +35 -0
  927. mindspore/ops/_op_impl/akg/ascend/square.py +35 -0
  928. mindspore/ops/_op_impl/akg/ascend/sub.py +42 -0
  929. mindspore/ops/_op_impl/akg/cpu/__init__.py +23 -0
  930. mindspore/ops/_op_impl/akg/cpu/coo2csr.py +29 -0
  931. mindspore/ops/_op_impl/akg/cpu/csr2coo.py +29 -0
  932. mindspore/ops/_op_impl/akg/cpu/csr_gather.py +33 -0
  933. mindspore/ops/_op_impl/akg/cpu/csr_mm.py +34 -0
  934. mindspore/ops/_op_impl/akg/cpu/csr_mul.py +33 -0
  935. mindspore/ops/_op_impl/akg/cpu/csr_mv.py +33 -0
  936. mindspore/ops/_op_impl/akg/cpu/csr_reduce_sum.py +31 -0
  937. mindspore/ops/_op_impl/akg/gpu/__init__.py +24 -0
  938. mindspore/ops/_op_impl/akg/gpu/coo2csr.py +29 -0
  939. mindspore/ops/_op_impl/akg/gpu/csr2coo.py +29 -0
  940. mindspore/ops/_op_impl/akg/gpu/csr_div.py +36 -0
  941. mindspore/ops/_op_impl/akg/gpu/csr_gather.py +33 -0
  942. mindspore/ops/_op_impl/akg/gpu/csr_mm.py +37 -0
  943. mindspore/ops/_op_impl/akg/gpu/csr_mul.py +36 -0
  944. mindspore/ops/_op_impl/akg/gpu/csr_mv.py +36 -0
  945. mindspore/ops/_op_impl/akg/gpu/csr_reduce_sum.py +33 -0
  946. mindspore/ops/_op_impl/cpu/__init__.py +78 -0
  947. mindspore/ops/_op_impl/cpu/adam.py +49 -0
  948. mindspore/ops/_op_impl/cpu/adam_weight_decay.py +47 -0
  949. mindspore/ops/_op_impl/cpu/arg_max.py +30 -0
  950. mindspore/ops/_op_impl/cpu/arg_max_with_value.py +31 -0
  951. mindspore/ops/_op_impl/cpu/arg_min_with_value.py +31 -0
  952. mindspore/ops/_op_impl/cpu/buffer_append.py +28 -0
  953. mindspore/ops/_op_impl/cpu/buffer_get.py +28 -0
  954. mindspore/ops/_op_impl/cpu/buffer_sample.py +28 -0
  955. mindspore/ops/_op_impl/cpu/cast.py +171 -0
  956. mindspore/ops/_op_impl/cpu/concat_offset.py +38 -0
  957. mindspore/ops/_op_impl/cpu/conv2d.py +30 -0
  958. mindspore/ops/_op_impl/cpu/conv3d.py +30 -0
  959. mindspore/ops/_op_impl/cpu/div.py +32 -0
  960. mindspore/ops/_op_impl/cpu/dropout.py +31 -0
  961. mindspore/ops/_op_impl/cpu/dropout_grad.py +30 -0
  962. mindspore/ops/_op_impl/cpu/dynamic_shape.py +42 -0
  963. mindspore/ops/_op_impl/cpu/dynamic_stitch.py +41 -0
  964. mindspore/ops/_op_impl/cpu/equal_count.py +30 -0
  965. mindspore/ops/_op_impl/cpu/gather_d.py +49 -0
  966. mindspore/ops/_op_impl/cpu/gather_d_grad.py +38 -0
  967. mindspore/ops/_op_impl/cpu/gather_d_grad_v2.py +40 -0
  968. mindspore/ops/_op_impl/cpu/gather_v2.py +40 -0
  969. mindspore/ops/_op_impl/cpu/hsigmoid.py +33 -0
  970. mindspore/ops/_op_impl/cpu/hsigmoid_grad.py +34 -0
  971. mindspore/ops/_op_impl/cpu/hswish.py +32 -0
  972. mindspore/ops/_op_impl/cpu/hswish_grad.py +33 -0
  973. mindspore/ops/_op_impl/cpu/identity_n.py +40 -0
  974. mindspore/ops/_op_impl/cpu/is_finite.py +39 -0
  975. mindspore/ops/_op_impl/cpu/l2loss.py +30 -0
  976. mindspore/ops/_op_impl/cpu/layer_norm.py +36 -0
  977. mindspore/ops/_op_impl/cpu/layer_norm_grad.py +38 -0
  978. mindspore/ops/_op_impl/cpu/maximum.py +35 -0
  979. mindspore/ops/_op_impl/cpu/maximum_grad.py +47 -0
  980. mindspore/ops/_op_impl/cpu/minimum.py +40 -0
  981. mindspore/ops/_op_impl/cpu/minimum_grad.py +51 -0
  982. mindspore/ops/_op_impl/cpu/mirror_pad.py +36 -0
  983. mindspore/ops/_op_impl/cpu/mirror_pad_grad.py +36 -0
  984. mindspore/ops/_op_impl/cpu/mul.py +32 -0
  985. mindspore/ops/_op_impl/cpu/one_hot.py +31 -0
  986. mindspore/ops/_op_impl/cpu/pad.py +32 -0
  987. mindspore/ops/_op_impl/cpu/pow.py +32 -0
  988. mindspore/ops/_op_impl/cpu/priority_replay_buffer.py +42 -0
  989. mindspore/ops/_op_impl/cpu/pyexecute.py +29 -0
  990. mindspore/ops/_op_impl/cpu/pyfunc.py +29 -0
  991. mindspore/ops/_op_impl/cpu/range.py +34 -0
  992. mindspore/ops/_op_impl/cpu/real_div.py +33 -0
  993. mindspore/ops/_op_impl/cpu/reduce_all.py +29 -0
  994. mindspore/ops/_op_impl/cpu/reduce_any.py +29 -0
  995. mindspore/ops/_op_impl/cpu/reduce_max.py +32 -0
  996. mindspore/ops/_op_impl/cpu/reduce_mean.py +40 -0
  997. mindspore/ops/_op_impl/cpu/reduce_min.py +32 -0
  998. mindspore/ops/_op_impl/cpu/reduce_prod.py +40 -0
  999. mindspore/ops/_op_impl/cpu/reduce_std.py +31 -0
  1000. mindspore/ops/_op_impl/cpu/reduce_sum.py +41 -0
  1001. mindspore/ops/_op_impl/cpu/space_to_batch_nd.py +38 -0
  1002. mindspore/ops/_op_impl/cpu/sparse_slice.py +62 -0
  1003. mindspore/ops/_op_impl/cpu/sparse_slice_grad.py +60 -0
  1004. mindspore/ops/_op_impl/cpu/split.py +34 -0
  1005. mindspore/ops/_op_impl/cpu/sspaddmm.py +95 -0
  1006. mindspore/ops/_op_impl/cpu/stack.py +38 -0
  1007. mindspore/ops/_op_impl/cpu/sub.py +32 -0
  1008. mindspore/ops/_op_impl/cpu/tensor_copy_slices.py +41 -0
  1009. mindspore/ops/_op_impl/cpu/tile.py +37 -0
  1010. mindspore/ops/_op_impl/cpu/top_k.py +31 -0
  1011. mindspore/ops/_op_impl/cpu/transpose.py +39 -0
  1012. mindspore/ops/_primitive_cache.py +90 -0
  1013. mindspore/ops/_register_for_op.py +73 -0
  1014. mindspore/ops/_utils/__init__.py +20 -0
  1015. mindspore/ops/_utils/utils.py +147 -0
  1016. mindspore/ops/_vmap/__init__.py +25 -0
  1017. mindspore/ops/_vmap/vmap_array_ops.py +2149 -0
  1018. mindspore/ops/_vmap/vmap_base.py +533 -0
  1019. mindspore/ops/_vmap/vmap_convolution_ops.py +441 -0
  1020. mindspore/ops/_vmap/vmap_debug_ops.py +50 -0
  1021. mindspore/ops/_vmap/vmap_grad_math_ops.py +274 -0
  1022. mindspore/ops/_vmap/vmap_grad_nn_ops.py +806 -0
  1023. mindspore/ops/_vmap/vmap_image_ops.py +194 -0
  1024. mindspore/ops/_vmap/vmap_math_ops.py +993 -0
  1025. mindspore/ops/_vmap/vmap_nn_ops.py +2250 -0
  1026. mindspore/ops/_vmap/vmap_other_ops.py +105 -0
  1027. mindspore/ops/_vmap/vmap_random_ops.py +122 -0
  1028. mindspore/ops/_vmap/vmap_sparse_ops.py +89 -0
  1029. mindspore/ops/auto_generate/__init__.py +31 -0
  1030. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +309 -0
  1031. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +252 -0
  1032. mindspore/ops/auto_generate/gen_arg_handler.py +197 -0
  1033. mindspore/ops/auto_generate/gen_extend_func.py +1701 -0
  1034. mindspore/ops/auto_generate/gen_ops_def.py +8482 -0
  1035. mindspore/ops/auto_generate/gen_ops_prim.py +16704 -0
  1036. mindspore/ops/auto_generate/pyboost_inner_prim.py +549 -0
  1037. mindspore/ops/composite/__init__.py +71 -0
  1038. mindspore/ops/composite/base.py +1318 -0
  1039. mindspore/ops/composite/env_ops.py +41 -0
  1040. mindspore/ops/composite/math_ops.py +125 -0
  1041. mindspore/ops/composite/multitype_ops/__init__.py +77 -0
  1042. mindspore/ops/composite/multitype_ops/_compile_utils.py +1459 -0
  1043. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +897 -0
  1044. mindspore/ops/composite/multitype_ops/add_impl.py +606 -0
  1045. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +56 -0
  1046. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +56 -0
  1047. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +56 -0
  1048. mindspore/ops/composite/multitype_ops/div_impl.py +189 -0
  1049. mindspore/ops/composite/multitype_ops/equal_impl.py +335 -0
  1050. mindspore/ops/composite/multitype_ops/floordiv_impl.py +88 -0
  1051. mindspore/ops/composite/multitype_ops/getitem_impl.py +400 -0
  1052. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +109 -0
  1053. mindspore/ops/composite/multitype_ops/greater_impl.py +110 -0
  1054. mindspore/ops/composite/multitype_ops/in_impl.py +196 -0
  1055. mindspore/ops/composite/multitype_ops/left_shift_impl.py +37 -0
  1056. mindspore/ops/composite/multitype_ops/less_equal_impl.py +111 -0
  1057. mindspore/ops/composite/multitype_ops/less_impl.py +112 -0
  1058. mindspore/ops/composite/multitype_ops/logic_not_impl.py +113 -0
  1059. mindspore/ops/composite/multitype_ops/logical_and_impl.py +60 -0
  1060. mindspore/ops/composite/multitype_ops/logical_or_impl.py +61 -0
  1061. mindspore/ops/composite/multitype_ops/mod_impl.py +86 -0
  1062. mindspore/ops/composite/multitype_ops/mul_impl.py +294 -0
  1063. mindspore/ops/composite/multitype_ops/negative_impl.py +79 -0
  1064. mindspore/ops/composite/multitype_ops/not_equal_impl.py +290 -0
  1065. mindspore/ops/composite/multitype_ops/not_in_impl.py +196 -0
  1066. mindspore/ops/composite/multitype_ops/ones_like_impl.py +96 -0
  1067. mindspore/ops/composite/multitype_ops/pow_impl.py +87 -0
  1068. mindspore/ops/composite/multitype_ops/right_shift_impl.py +37 -0
  1069. mindspore/ops/composite/multitype_ops/setitem_impl.py +884 -0
  1070. mindspore/ops/composite/multitype_ops/sub_impl.py +116 -0
  1071. mindspore/ops/composite/multitype_ops/uadd_impl.py +29 -0
  1072. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +228 -0
  1073. mindspore/ops/deprecated.py +315 -0
  1074. mindspore/ops/function/__init__.py +782 -0
  1075. mindspore/ops/function/array_func.py +7226 -0
  1076. mindspore/ops/function/clip_func.py +384 -0
  1077. mindspore/ops/function/debug_func.py +181 -0
  1078. mindspore/ops/function/fft_func.py +44 -0
  1079. mindspore/ops/function/grad/__init__.py +34 -0
  1080. mindspore/ops/function/grad/grad_func.py +1425 -0
  1081. mindspore/ops/function/image_func.py +292 -0
  1082. mindspore/ops/function/linalg_func.py +416 -0
  1083. mindspore/ops/function/math_func.py +12228 -0
  1084. mindspore/ops/function/nn_func.py +8609 -0
  1085. mindspore/ops/function/other_func.py +115 -0
  1086. mindspore/ops/function/parameter_func.py +134 -0
  1087. mindspore/ops/function/random_func.py +1715 -0
  1088. mindspore/ops/function/reshard_func.py +104 -0
  1089. mindspore/ops/function/sparse_func.py +884 -0
  1090. mindspore/ops/function/sparse_unary_func.py +2422 -0
  1091. mindspore/ops/function/spectral_func.py +150 -0
  1092. mindspore/ops/function/vmap_func.py +117 -0
  1093. mindspore/ops/functional.py +464 -0
  1094. mindspore/ops/op_info_register.py +1572 -0
  1095. mindspore/ops/operations/__init__.py +722 -0
  1096. mindspore/ops/operations/_csr_ops.py +403 -0
  1097. mindspore/ops/operations/_custom_grad.py +181 -0
  1098. mindspore/ops/operations/_embedding_cache_ops.py +307 -0
  1099. mindspore/ops/operations/_grad_ops.py +2978 -0
  1100. mindspore/ops/operations/_infer_ops.py +19 -0
  1101. mindspore/ops/operations/_inner_ops.py +2544 -0
  1102. mindspore/ops/operations/_map_tensor_ops.py +112 -0
  1103. mindspore/ops/operations/_ms_kernel.py +601 -0
  1104. mindspore/ops/operations/_ocr_ops.py +379 -0
  1105. mindspore/ops/operations/_opaque_predicate_registry.py +41 -0
  1106. mindspore/ops/operations/_pyfunc_registry.py +58 -0
  1107. mindspore/ops/operations/_quant_ops.py +1844 -0
  1108. mindspore/ops/operations/_rl_inner_ops.py +1231 -0
  1109. mindspore/ops/operations/_scalar_ops.py +106 -0
  1110. mindspore/ops/operations/_sequence_ops.py +1155 -0
  1111. mindspore/ops/operations/_sparse_grad_ops.py +56 -0
  1112. mindspore/ops/operations/_tensor_array.py +359 -0
  1113. mindspore/ops/operations/_thor_ops.py +807 -0
  1114. mindspore/ops/operations/array_ops.py +6124 -0
  1115. mindspore/ops/operations/comm_ops.py +1985 -0
  1116. mindspore/ops/operations/control_ops.py +127 -0
  1117. mindspore/ops/operations/custom_ops.py +1129 -0
  1118. mindspore/ops/operations/debug_ops.py +678 -0
  1119. mindspore/ops/operations/image_ops.py +1041 -0
  1120. mindspore/ops/operations/inner_ops.py +697 -0
  1121. mindspore/ops/operations/linalg_ops.py +95 -0
  1122. mindspore/ops/operations/manually_defined/__init__.py +24 -0
  1123. mindspore/ops/operations/manually_defined/_inner.py +73 -0
  1124. mindspore/ops/operations/manually_defined/ops_def.py +2271 -0
  1125. mindspore/ops/operations/math_ops.py +5095 -0
  1126. mindspore/ops/operations/nn_ops.py +9575 -0
  1127. mindspore/ops/operations/other_ops.py +874 -0
  1128. mindspore/ops/operations/random_ops.py +1288 -0
  1129. mindspore/ops/operations/reshard_ops.py +53 -0
  1130. mindspore/ops/operations/rl_ops.py +288 -0
  1131. mindspore/ops/operations/sparse_ops.py +2753 -0
  1132. mindspore/ops/operations/spectral_ops.py +111 -0
  1133. mindspore/ops/primitive.py +1046 -0
  1134. mindspore/ops/signature.py +54 -0
  1135. mindspore/ops/vm_impl_registry.py +91 -0
  1136. mindspore/ops_generate/__init__.py +27 -0
  1137. mindspore/ops_generate/arg_dtype_cast.py +252 -0
  1138. mindspore/ops_generate/arg_handler.py +197 -0
  1139. mindspore/ops_generate/gen_aclnn_implement.py +263 -0
  1140. mindspore/ops_generate/gen_constants.py +36 -0
  1141. mindspore/ops_generate/gen_ops.py +1099 -0
  1142. mindspore/ops_generate/gen_ops_inner_prim.py +131 -0
  1143. mindspore/ops_generate/gen_pyboost_func.py +1052 -0
  1144. mindspore/ops_generate/gen_utils.py +209 -0
  1145. mindspore/ops_generate/op_proto.py +145 -0
  1146. mindspore/ops_generate/pyboost_utils.py +367 -0
  1147. mindspore/ops_generate/template.py +261 -0
  1148. mindspore/parallel/__init__.py +30 -0
  1149. mindspore/parallel/_auto_parallel_context.py +1486 -0
  1150. mindspore/parallel/_cell_wrapper.py +174 -0
  1151. mindspore/parallel/_cost_model_context.py +700 -0
  1152. mindspore/parallel/_dp_allreduce_fusion.py +159 -0
  1153. mindspore/parallel/_offload_context.py +275 -0
  1154. mindspore/parallel/_parallel_serialization.py +561 -0
  1155. mindspore/parallel/_ps_context.py +242 -0
  1156. mindspore/parallel/_recovery_context.py +110 -0
  1157. mindspore/parallel/_tensor.py +730 -0
  1158. mindspore/parallel/_transformer/__init__.py +35 -0
  1159. mindspore/parallel/_transformer/layers.py +765 -0
  1160. mindspore/parallel/_transformer/loss.py +251 -0
  1161. mindspore/parallel/_transformer/moe.py +693 -0
  1162. mindspore/parallel/_transformer/op_parallel_config.py +222 -0
  1163. mindspore/parallel/_transformer/transformer.py +3119 -0
  1164. mindspore/parallel/_utils.py +612 -0
  1165. mindspore/parallel/algo_parameter_config.py +400 -0
  1166. mindspore/parallel/checkpoint_transform.py +650 -0
  1167. mindspore/parallel/cluster/__init__.py +15 -0
  1168. mindspore/parallel/cluster/process_entity/__init__.py +18 -0
  1169. mindspore/parallel/cluster/process_entity/_api.py +352 -0
  1170. mindspore/parallel/cluster/process_entity/_utils.py +101 -0
  1171. mindspore/parallel/cluster/run.py +136 -0
  1172. mindspore/parallel/mpi/__init__.py +14 -0
  1173. mindspore/parallel/mpi/_mpi_config.py +116 -0
  1174. mindspore/parallel/parameter_broadcast.py +151 -0
  1175. mindspore/parallel/shard.py +481 -0
  1176. mindspore/parallel/transform_safetensors.py +993 -0
  1177. mindspore/profiler/__init__.py +28 -0
  1178. mindspore/profiler/common/__init__.py +14 -0
  1179. mindspore/profiler/common/constant.py +29 -0
  1180. mindspore/profiler/common/exceptions/__init__.py +14 -0
  1181. mindspore/profiler/common/exceptions/error_code.py +83 -0
  1182. mindspore/profiler/common/exceptions/exceptions.py +286 -0
  1183. mindspore/profiler/common/process_pool.py +41 -0
  1184. mindspore/profiler/common/registry.py +47 -0
  1185. mindspore/profiler/common/singleton.py +28 -0
  1186. mindspore/profiler/common/struct_type.py +118 -0
  1187. mindspore/profiler/common/util.py +472 -0
  1188. mindspore/profiler/common/validator/__init__.py +14 -0
  1189. mindspore/profiler/common/validator/validate_path.py +84 -0
  1190. mindspore/profiler/dynamic_profiler.py +694 -0
  1191. mindspore/profiler/envprofiling.py +254 -0
  1192. mindspore/profiler/parser/__init__.py +14 -0
  1193. mindspore/profiler/parser/aicpu_data_parser.py +272 -0
  1194. mindspore/profiler/parser/ascend_analysis/__init__.py +14 -0
  1195. mindspore/profiler/parser/ascend_analysis/constant.py +71 -0
  1196. mindspore/profiler/parser/ascend_analysis/file_manager.py +180 -0
  1197. mindspore/profiler/parser/ascend_analysis/function_event.py +185 -0
  1198. mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +136 -0
  1199. mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +131 -0
  1200. mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +104 -0
  1201. mindspore/profiler/parser/ascend_analysis/path_manager.py +313 -0
  1202. mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +123 -0
  1203. mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +86 -0
  1204. mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +75 -0
  1205. mindspore/profiler/parser/ascend_cluster_generator.py +116 -0
  1206. mindspore/profiler/parser/ascend_communicate_generator.py +314 -0
  1207. mindspore/profiler/parser/ascend_flops_generator.py +116 -0
  1208. mindspore/profiler/parser/ascend_fpbp_generator.py +82 -0
  1209. mindspore/profiler/parser/ascend_hccl_generator.py +271 -0
  1210. mindspore/profiler/parser/ascend_integrate_generator.py +42 -0
  1211. mindspore/profiler/parser/ascend_memory_generator.py +185 -0
  1212. mindspore/profiler/parser/ascend_msprof_exporter.py +282 -0
  1213. mindspore/profiler/parser/ascend_msprof_generator.py +187 -0
  1214. mindspore/profiler/parser/ascend_op_generator.py +334 -0
  1215. mindspore/profiler/parser/ascend_steptrace_generator.py +94 -0
  1216. mindspore/profiler/parser/ascend_timeline_generator.py +545 -0
  1217. mindspore/profiler/parser/base_timeline_generator.py +483 -0
  1218. mindspore/profiler/parser/container.py +229 -0
  1219. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +697 -0
  1220. mindspore/profiler/parser/flops_parser.py +531 -0
  1221. mindspore/profiler/parser/framework_enum.py +111 -0
  1222. mindspore/profiler/parser/framework_parser.py +464 -0
  1223. mindspore/profiler/parser/framework_struct.py +61 -0
  1224. mindspore/profiler/parser/gpu_analysis/__init__.py +14 -0
  1225. mindspore/profiler/parser/gpu_analysis/function_event.py +44 -0
  1226. mindspore/profiler/parser/gpu_analysis/fwk_file_parser.py +89 -0
  1227. mindspore/profiler/parser/gpu_analysis/profiler_info_parser.py +72 -0
  1228. mindspore/profiler/parser/hccl_parser.py +573 -0
  1229. mindspore/profiler/parser/hwts_log_parser.py +122 -0
  1230. mindspore/profiler/parser/integrator.py +526 -0
  1231. mindspore/profiler/parser/memory_usage_parser.py +277 -0
  1232. mindspore/profiler/parser/minddata_analyzer.py +800 -0
  1233. mindspore/profiler/parser/minddata_parser.py +186 -0
  1234. mindspore/profiler/parser/minddata_pipeline_parser.py +299 -0
  1235. mindspore/profiler/parser/op_intermediate_parser.py +149 -0
  1236. mindspore/profiler/parser/optime_parser.py +250 -0
  1237. mindspore/profiler/parser/profiler_info.py +213 -0
  1238. mindspore/profiler/parser/step_trace_parser.py +666 -0
  1239. mindspore/profiler/profiler.py +153 -0
  1240. mindspore/profiler/profiling.py +1922 -0
  1241. mindspore/rewrite/__init__.py +28 -0
  1242. mindspore/rewrite/api/__init__.py +17 -0
  1243. mindspore/rewrite/api/node.py +519 -0
  1244. mindspore/rewrite/api/node_type.py +53 -0
  1245. mindspore/rewrite/api/pattern_engine.py +490 -0
  1246. mindspore/rewrite/api/scoped_value.py +181 -0
  1247. mindspore/rewrite/api/symbol_tree.py +497 -0
  1248. mindspore/rewrite/ast_helpers/__init__.py +25 -0
  1249. mindspore/rewrite/ast_helpers/ast_converter.py +143 -0
  1250. mindspore/rewrite/ast_helpers/ast_finder.py +404 -0
  1251. mindspore/rewrite/ast_helpers/ast_flattener.py +268 -0
  1252. mindspore/rewrite/ast_helpers/ast_modifier.py +605 -0
  1253. mindspore/rewrite/ast_helpers/ast_replacer.py +79 -0
  1254. mindspore/rewrite/common/__init__.py +19 -0
  1255. mindspore/rewrite/common/config.py +24 -0
  1256. mindspore/rewrite/common/error_log.py +39 -0
  1257. mindspore/rewrite/common/event.py +28 -0
  1258. mindspore/rewrite/common/namer.py +271 -0
  1259. mindspore/rewrite/common/namespace.py +118 -0
  1260. mindspore/rewrite/common/observable.py +44 -0
  1261. mindspore/rewrite/common/observer.py +54 -0
  1262. mindspore/rewrite/node/__init__.py +22 -0
  1263. mindspore/rewrite/node/call_function.py +95 -0
  1264. mindspore/rewrite/node/cell_container.py +139 -0
  1265. mindspore/rewrite/node/control_flow.py +113 -0
  1266. mindspore/rewrite/node/node.py +1428 -0
  1267. mindspore/rewrite/node/node_manager.py +283 -0
  1268. mindspore/rewrite/node/node_topological_manager.py +223 -0
  1269. mindspore/rewrite/parsers/__init__.py +29 -0
  1270. mindspore/rewrite/parsers/arguments_parser.py +63 -0
  1271. mindspore/rewrite/parsers/assign_parser.py +852 -0
  1272. mindspore/rewrite/parsers/attribute_parser.py +57 -0
  1273. mindspore/rewrite/parsers/class_def_parser.py +289 -0
  1274. mindspore/rewrite/parsers/constant_parser.py +104 -0
  1275. mindspore/rewrite/parsers/container_parser.py +88 -0
  1276. mindspore/rewrite/parsers/expr_parser.py +55 -0
  1277. mindspore/rewrite/parsers/for_parser.py +61 -0
  1278. mindspore/rewrite/parsers/function_def_parser.py +84 -0
  1279. mindspore/rewrite/parsers/if_parser.py +85 -0
  1280. mindspore/rewrite/parsers/module_parser.py +117 -0
  1281. mindspore/rewrite/parsers/parser.py +43 -0
  1282. mindspore/rewrite/parsers/parser_register.py +86 -0
  1283. mindspore/rewrite/parsers/return_parser.py +37 -0
  1284. mindspore/rewrite/parsers/while_parser.py +59 -0
  1285. mindspore/rewrite/sparsify/__init__.py +0 -0
  1286. mindspore/rewrite/sparsify/sparse_transformer.py +457 -0
  1287. mindspore/rewrite/sparsify/sparsify.py +112 -0
  1288. mindspore/rewrite/sparsify/utils.py +179 -0
  1289. mindspore/rewrite/symbol_tree/__init__.py +20 -0
  1290. mindspore/rewrite/symbol_tree/symbol_tree.py +1819 -0
  1291. mindspore/rewrite/symbol_tree/symbol_tree_builder.py +76 -0
  1292. mindspore/rewrite/symbol_tree/symbol_tree_dumper.py +142 -0
  1293. mindspore/run_check/__init__.py +20 -0
  1294. mindspore/run_check/_check_version.py +507 -0
  1295. mindspore/run_check/run_check.py +66 -0
  1296. mindspore/safeguard/__init__.py +18 -0
  1297. mindspore/safeguard/rewrite_obfuscation.py +875 -0
  1298. mindspore/scipy/__init__.py +18 -0
  1299. mindspore/scipy/fft.py +264 -0
  1300. mindspore/scipy/linalg.py +919 -0
  1301. mindspore/scipy/ops.py +165 -0
  1302. mindspore/scipy/ops_grad.py +115 -0
  1303. mindspore/scipy/ops_wrapper.py +74 -0
  1304. mindspore/scipy/optimize/__init__.py +20 -0
  1305. mindspore/scipy/optimize/_bfgs.py +230 -0
  1306. mindspore/scipy/optimize/_lagrange.py +201 -0
  1307. mindspore/scipy/optimize/_lbfgs.py +146 -0
  1308. mindspore/scipy/optimize/gradient_optimization_algorithm.py +168 -0
  1309. mindspore/scipy/optimize/line_search.py +370 -0
  1310. mindspore/scipy/optimize/linear_sum_assignment.py +78 -0
  1311. mindspore/scipy/optimize/minimize.py +200 -0
  1312. mindspore/scipy/utils.py +156 -0
  1313. mindspore/scipy/utils_const.py +246 -0
  1314. mindspore/train/__init__.py +48 -0
  1315. mindspore/train/_utils.py +465 -0
  1316. mindspore/train/amp.py +935 -0
  1317. mindspore/train/anf_ir_pb2.py +1517 -0
  1318. mindspore/train/callback/__init__.py +44 -0
  1319. mindspore/train/callback/_backup_and_restore.py +117 -0
  1320. mindspore/train/callback/_callback.py +613 -0
  1321. mindspore/train/callback/_checkpoint.py +814 -0
  1322. mindspore/train/callback/_cluster_monitor.py +201 -0
  1323. mindspore/train/callback/_dataset_graph.py +150 -0
  1324. mindspore/train/callback/_early_stop.py +239 -0
  1325. mindspore/train/callback/_flops_collector.py +239 -0
  1326. mindspore/train/callback/_history.py +92 -0
  1327. mindspore/train/callback/_lambda_callback.py +80 -0
  1328. mindspore/train/callback/_landscape.py +1049 -0
  1329. mindspore/train/callback/_loss_monitor.py +107 -0
  1330. mindspore/train/callback/_lr_scheduler_callback.py +76 -0
  1331. mindspore/train/callback/_on_request_exit.py +298 -0
  1332. mindspore/train/callback/_reduce_lr_on_plateau.py +226 -0
  1333. mindspore/train/callback/_summary_collector.py +1184 -0
  1334. mindspore/train/callback/_tft_register.py +352 -0
  1335. mindspore/train/callback/_time_monitor.py +141 -0
  1336. mindspore/train/checkpoint_pb2.py +233 -0
  1337. mindspore/train/data_sink.py +219 -0
  1338. mindspore/train/dataset_helper.py +692 -0
  1339. mindspore/train/lineage_pb2.py +1260 -0
  1340. mindspore/train/loss_scale_manager.py +213 -0
  1341. mindspore/train/memory_profiling_pb2.py +298 -0
  1342. mindspore/train/metrics/__init__.py +175 -0
  1343. mindspore/train/metrics/accuracy.py +133 -0
  1344. mindspore/train/metrics/auc.py +129 -0
  1345. mindspore/train/metrics/bleu_score.py +170 -0
  1346. mindspore/train/metrics/confusion_matrix.py +700 -0
  1347. mindspore/train/metrics/cosine_similarity.py +109 -0
  1348. mindspore/train/metrics/dice.py +116 -0
  1349. mindspore/train/metrics/error.py +175 -0
  1350. mindspore/train/metrics/fbeta.py +167 -0
  1351. mindspore/train/metrics/hausdorff_distance.py +333 -0
  1352. mindspore/train/metrics/loss.py +97 -0
  1353. mindspore/train/metrics/mean_surface_distance.py +189 -0
  1354. mindspore/train/metrics/metric.py +373 -0
  1355. mindspore/train/metrics/occlusion_sensitivity.py +225 -0
  1356. mindspore/train/metrics/perplexity.py +133 -0
  1357. mindspore/train/metrics/precision.py +160 -0
  1358. mindspore/train/metrics/recall.py +159 -0
  1359. mindspore/train/metrics/roc.py +223 -0
  1360. mindspore/train/metrics/root_mean_square_surface_distance.py +191 -0
  1361. mindspore/train/metrics/topk.py +167 -0
  1362. mindspore/train/mind_ir_pb2.py +1908 -0
  1363. mindspore/train/model.py +2252 -0
  1364. mindspore/train/node_strategy_pb2.py +653 -0
  1365. mindspore/train/print_pb2.py +184 -0
  1366. mindspore/train/profiling_parallel_pb2.py +151 -0
  1367. mindspore/train/serialization.py +3325 -0
  1368. mindspore/train/summary/__init__.py +23 -0
  1369. mindspore/train/summary/_lineage_adapter.py +41 -0
  1370. mindspore/train/summary/_summary_adapter.py +496 -0
  1371. mindspore/train/summary/_writer_pool.py +207 -0
  1372. mindspore/train/summary/enums.py +56 -0
  1373. mindspore/train/summary/summary_record.py +581 -0
  1374. mindspore/train/summary/writer.py +167 -0
  1375. mindspore/train/summary_pb2.py +1165 -0
  1376. mindspore/train/train_thor/__init__.py +20 -0
  1377. mindspore/train/train_thor/convert_utils.py +268 -0
  1378. mindspore/train/train_thor/dataset_helper.py +192 -0
  1379. mindspore/train/train_thor/model_thor.py +257 -0
  1380. mindspore/utils/__init__.py +21 -0
  1381. mindspore/utils/utils.py +60 -0
  1382. mindspore/version.py +1 -0
  1383. mindspore-2.4.0.dist-info/METADATA +352 -0
  1384. mindspore-2.4.0.dist-info/RECORD +1387 -0
  1385. mindspore-2.4.0.dist-info/WHEEL +5 -0
  1386. mindspore-2.4.0.dist-info/entry_points.txt +3 -0
  1387. mindspore-2.4.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1184 @@
1
+ # Copyright 2020-2023 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+ """Summary collector callback."""
16
+ from __future__ import absolute_import
17
+
18
+ import os
19
+ import stat
20
+ import re
21
+ import json
22
+ from json.decoder import JSONDecodeError
23
+
24
+ from importlib import import_module
25
+ from collections import defaultdict
26
+ from collections.abc import Iterable
27
+
28
+ import numpy as np
29
+
30
+ from mindspore import log as logger
31
+ from mindspore import context
32
+ from mindspore.common.tensor import Tensor
33
+ from mindspore.common.parameter import Parameter
34
+ from mindspore.train.summary.summary_record import SummaryRecord, process_export_options
35
+ from mindspore.train.summary.enums import PluginEnum, ModeEnum
36
+ from mindspore.train.callback import Callback, ModelCheckpoint
37
+ from mindspore.train import lineage_pb2
38
+ from mindspore.train.serialization import save_checkpoint
39
+ from mindspore.train.callback._dataset_graph import DatasetGraph
40
+ from mindspore.nn.optim.optimizer import Optimizer
41
+ from mindspore.nn.loss.loss import LossBase
42
+ from mindspore.train._utils import check_value_type, _make_directory
43
+ from mindspore._c_expression import security
44
+ from mindspore._c_expression import collect_host_info, get_clock_syscnt
45
+
46
+ HYPER_CONFIG_ENV_NAME = "MINDINSIGHT_HYPER_CONFIG"
47
+ HYPER_CONFIG_LEN_LIMIT = 100000
48
+
49
+
50
+ class LineageMetadata:
51
+ """Initialize parameters used in model lineage management."""
52
+ train_dataset_path = 'train_dataset_path'
53
+ valid_dataset_path = 'valid_dataset_path'
54
+ train_network = 'train_network'
55
+ loss_function = 'loss_function'
56
+ loss = 'loss'
57
+ optimizer = 'optimizer'
58
+ learning_rate = 'learning_rate'
59
+ epoch = 'epoch'
60
+ step_num = 'step_num'
61
+ parallel_mode = 'parallel_mode'
62
+ device_num = 'device_num'
63
+ batch_size = 'batch_size'
64
+ model_path = 'model_path'
65
+ model_ckpt = 'model_ckpt'
66
+ model_size = 'model_size'
67
+ metrics = 'metrics'
68
+ train_dataset_size = 'train_dataset_size'
69
+ valid_dataset_size = 'valid_dataset_size'
70
+
71
+
72
+ class SummaryCollector(Callback):
73
+ """
74
+ SummaryCollector can help you to collect some common information,
75
+ such as loss, learning late, computational graph and so on.
76
+
77
+ SummaryCollector also enables the summary operator to collect data to summary files.
78
+
79
+ Note:
80
+ 1. Multiple SummaryCollector instances in callback list are not allowed.
81
+ 2. Not all information is collected at the training phase or at the eval phase.
82
+ 3. SummaryCollector always record the data collected by the summary operator.
83
+ 4. SummaryCollector only supports Linux systems.
84
+ 5. The Summary is not supported when compile source with `-s on` option.
85
+
86
+ Args:
87
+ summary_dir (str): The collected data will be persisted to this directory.
88
+ If the directory does not exist, it will be created automatically.
89
+ collect_freq (int): Set the frequency of data collection, it should be greater than zero,
90
+ and the unit is `step`. If a frequency is set, we will collect data
91
+ when (current steps % freq) equals to 0, and the first step will be collected at any time.
92
+ It is important to note that if the data sink mode is used, the unit will become the `epoch`.
93
+ It is not recommended to collect data too frequently, which can affect performance. Default: ``10`` .
94
+ num_process (int): Number of processes saving summary data. The more processes there are, the better the
95
+ performance, but there may be host memory overflow issues. Default: ``32`` .
96
+ collect_specified_data (Union[None, dict]): Perform custom operations on the collected data.
97
+ By default, if set to None, all data is collected as the default behavior.
98
+ You can customize the collected data with a dictionary.
99
+ For example, you can set {'collect_metric': False} to control not collecting metrics.
100
+ The data that supports control is shown below. Default: ``None`` .
101
+
102
+ - collect_metric (bool): Whether to collect training metrics, currently only the loss is collected.
103
+ The first output will be treated as the loss and it will be averaged. Default: ``True`` .
104
+ - collect_graph (bool): Whether to collect the computational graph. Currently, only
105
+ 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`` .
114
+ - collect_input_data (bool): Whether to collect dataset for each training.
115
+ Currently only image data is supported.
116
+ If there are multiple columns of data in the dataset, the first column should be image data.
117
+ Default: ``True`` .
118
+ - collect_dataset_graph (bool): Whether to collect dataset graph for the training phase.
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.
122
+ It is not recommended to collect too many parameters at once, as it can affect performance.
123
+ Note that if you collect too many parameters and run out of memory, the training will fail.
124
+ Default: ``None`` , it means only the first five parameters are collected.
125
+ - collect_landscape (Union[dict,None]): Whether to collect the parameters needed to create the
126
+ loss landscape. If set to None, collect_landscape parameters will not be collected. All parameter
127
+ information is collected by default and stored in file `{summary_dir}/ckpt_dir/train_metadata.json`.
128
+
129
+ - landscape_size (int): Specify the image resolution of the generated loss landscape.
130
+ For example, if it is set to ``128`` , the resolution of the landscape is 128 * 128.
131
+ The calculation time increases with the increase of resolution.
132
+ Default: ``40`` . Optional values: between 3 and 256.
133
+ - unit (str): Specify the interval strength of the training process. Default: ``"step"`` .
134
+ Optional: epoch/step.
135
+ - create_landscape (dict): Select how to create loss landscape.
136
+ Training process loss landscape(train) and training result loss landscape(result).
137
+ Default: ``{"train": True, "result": True}``. Optional: ``True`` / ``False`` .
138
+ - num_samples (int): The size of the dataset used to create the loss landscape.
139
+ For example, in image dataset, You can set num_samples is 128,
140
+ which means that 128 images are used to create loss landscape.
141
+ Default: ``128`` .
142
+ - intervals (List[List[int]]): Specifies the interval
143
+ in which the loss landscape. For example: If the user wants to
144
+ create loss landscape of two training processes, they are 1-5 epoch
145
+ and 6-10 epoch respectively. They anc set [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]].
146
+ Note: Each interval have at least three epochs.
147
+
148
+ keep_default_action (bool): This field affects the collection behavior of the 'collect_specified_data' field.
149
+ True: it means that after specified data is set, non-specified data is collected as the default behavior.
150
+ False: it means that after specified data is set, only the specified data is collected,
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>`_ .
154
+ In the custom data, the type of the key supports str, and the type of value supports str, int
155
+ and float. Default: ``None`` , it means there is no custom data.
156
+ collect_tensor_freq (Optional[int]): The same semantics as the `collect_freq`, but controls TensorSummary only.
157
+ Because TensorSummary data is too large to be compared with other summary data, this parameter is used to
158
+ reduce its collection. By default, The maximum number of steps for collecting TensorSummary data is 20,
159
+ but it will not exceed the number of steps for collecting other summary data.
160
+ For example, given `collect_freq=10`, when the total steps is 600, TensorSummary will be collected 20 steps,
161
+ while other summary data 61 steps,
162
+ but when the total steps is 20, both TensorSummary and other summary will be collected 3 steps.
163
+ Also note that when in parallel mode, the total steps will be split evenly, which will
164
+ affect the number of steps TensorSummary will be collected.
165
+ Default: ``None`` , which means to follow the behavior as described above.
166
+ 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`.
168
+ Default: ``None`` , which means no limit.
169
+ export_options (Union[None, dict]): Perform custom operations on the export data.
170
+ Note that the size of export files is not limited by the max_file_size.
171
+ You can customize the export data with a dictionary. For example, you can set {'tensor_format': 'npy'}
172
+ to export tensor as npy file. The data that supports control is shown below.
173
+ Default: ``None`` , it means that the data is not exported.
174
+
175
+ - tensor_format (Union[str, None]): Customize the export tensor format. Supports ["npy", None].
176
+ Default: ``None`` , it means that the tensor is not exported.
177
+
178
+ - npy: export tensor as npy file.
179
+
180
+ Raises:
181
+ ValueError: The Summary is not supported, please without `-s on` and recompile source.
182
+
183
+ Examples:
184
+ >>> import mindspore as ms
185
+ >>> from mindspore import nn, SummaryCollector
186
+ >>> from mindspore.train import Model, Accuracy
187
+ >>>
188
+ >>> if __name__ == '__main__':
189
+ ... # If the device_target is GPU, set the device_target to "GPU"
190
+ ... ms.set_context(mode=ms.GRAPH_MODE, device_target="Ascend")
191
+ ... mnist_dataset_dir = '/path/to/mnist_dataset_directory'
192
+ ... # Create the dataset taking MNIST as an example. Refer to
193
+ ... # https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/mnist.py
194
+ ... ds_train = create_dataset()
195
+ ... # Define the network structure of LeNet5. Refer to
196
+ ... # https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
197
+ ... network = LeNet5(10)
198
+ ... net_loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True, reduction="mean")
199
+ ... net_opt = nn.Momentum(network.trainable_params(), 0.01, 0.9)
200
+ ... model = Model(network, net_loss, net_opt, metrics={"Accuracy": Accuracy()}, amp_level="O2")
201
+ ...
202
+ ... # Simple usage:
203
+ ... summary_collector = SummaryCollector(summary_dir='./summary_dir')
204
+ ... model.train(1, ds_train, callbacks=[summary_collector], dataset_sink_mode=False)
205
+ ...
206
+ ... # Do not collect metric and collect the first layer parameter, others are collected by default
207
+ ... specified={'collect_metric': False, 'histogram_regular': '^conv1.*'}
208
+ ... summary_collector = SummaryCollector(summary_dir='./summary_dir', collect_specified_data=specified)
209
+ ... model.train(1, ds_train, callbacks=[summary_collector], dataset_sink_mode=False)
210
+ """
211
+
212
+ _DEFAULT_SPECIFIED_DATA = {
213
+ 'collect_metric': True,
214
+ 'collect_graph': True,
215
+ 'collect_train_lineage': True,
216
+ 'collect_eval_lineage': True,
217
+ 'collect_input_data': True,
218
+ 'collect_dataset_graph': True,
219
+ 'histogram_regular': None,
220
+ 'collect_landscape': {'landscape_size': 40,
221
+ 'unit': 'step',
222
+ 'num_samples': 2048,
223
+ 'create_landscape': {'train': True,
224
+ 'result': True},
225
+ 'intervals': [[1, 2, 3, 4, 5, 6, 7, 8, 9],
226
+ [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]]}
227
+ }
228
+
229
+ def __init__(self,
230
+ summary_dir,
231
+ collect_freq=10,
232
+ num_process=32,
233
+ collect_specified_data=None,
234
+ keep_default_action=True,
235
+ custom_lineage_data=None,
236
+ collect_tensor_freq=None,
237
+ max_file_size=None,
238
+ export_options=None):
239
+
240
+ if security.enable_security():
241
+ raise ValueError('The Summary is not supported, please without `-s on` and recompile source.')
242
+
243
+ super(SummaryCollector, self).__init__()
244
+
245
+ self._summary_dir = _make_directory(summary_dir, "summary_dir")
246
+ self._record = None
247
+
248
+ self._check_positive('collect_freq', collect_freq)
249
+ self._collect_freq = collect_freq
250
+
251
+ self._check_positive('collect_tensor_freq', collect_tensor_freq, allow_none=True)
252
+ self._collect_tensor_freq = collect_tensor_freq
253
+ self._tensor_collect_range = None
254
+
255
+ self._check_positive('max_file_size', max_file_size, allow_none=True)
256
+ self._max_file_size = max_file_size
257
+
258
+ self._export_options = process_export_options(export_options)
259
+
260
+ self._check_action(keep_default_action)
261
+
262
+ self._collect_specified_data = self._process_specified_data(collect_specified_data, keep_default_action)
263
+ msg = f"For 'collect_specified_data' the value after processing is: {self._collect_specified_data}."
264
+ logger.info(msg)
265
+
266
+ landscape = self._collect_specified_data.get('collect_landscape', None)
267
+ check_value_type('collect_landscape', landscape, [dict, type(None)])
268
+ self._is_collect_landscape = bool(landscape)
269
+ if self._is_collect_landscape:
270
+ self._check_collect_landscape_data(landscape)
271
+ self._ckpt_dir = os.path.join(self._summary_dir, 'ckpt_dir')
272
+ _make_directory(self._ckpt_dir)
273
+ self._model_params_file_map = {}
274
+ self._epoch_group = defaultdict(list)
275
+ intervals = landscape.get('intervals')
276
+ self._create_epoch_group(intervals)
277
+
278
+ self._custom_lineage_data = self._process_custom_lineage_data(custom_lineage_data)
279
+
280
+ self._temp_optimizer = None
281
+ self._has_saved_graph = False
282
+ self._has_saved_custom_data = False
283
+ self._is_parse_loss_success = True
284
+ self._first_step = True
285
+ self._dataset_sink_mode = True
286
+ self._num_process = num_process
287
+
288
+ def __enter__(self):
289
+ self._record = SummaryRecord(log_dir=self._summary_dir,
290
+ max_file_size=self._max_file_size,
291
+ raise_exception=False,
292
+ export_options=self._export_options)
293
+ self._first_step, self._dataset_sink_mode = True, True
294
+ return self
295
+
296
+ def __exit__(self, *err):
297
+ self._record.close()
298
+
299
+ def _check_positive(self, name, value, allow_none=False):
300
+ """Check if the value to be int type and positive."""
301
+ if allow_none and value is None:
302
+ return
303
+ check_value_type(name, value, int)
304
+ if value <= 0:
305
+ raise ValueError(f'For "{self.__class__.__name__}", the value of `{name}` should be greater than 0, '
306
+ f'but got `{value}`.')
307
+
308
+ def _create_epoch_group(self, intervals):
309
+ """Create epoch group."""
310
+ for i, interval in enumerate(intervals):
311
+ for j in interval:
312
+ self._epoch_group[i].append(j)
313
+
314
+ def _process_custom_lineage_data(self, custom_lineage_data):
315
+ """
316
+ Check user custom lineage data.
317
+
318
+ Args:
319
+ custom_lineage_data (dict): The user custom defined data.
320
+
321
+ Raises:
322
+ TypeError: If the type of parameters is invalid.
323
+ """
324
+ if custom_lineage_data is None:
325
+ custom_lineage_data = {}
326
+ self._check_custom_lineage_type('custom_lineage_data', custom_lineage_data)
327
+
328
+ auto_custom_lineage_data = self._collect_optimizer_custom_lineage_data()
329
+ self._check_custom_lineage_type('auto_custom_lineage_data', auto_custom_lineage_data)
330
+ # the priority of user defined info is higher than auto collected info
331
+ auto_custom_lineage_data.update(custom_lineage_data)
332
+ custom_lineage_data = auto_custom_lineage_data
333
+
334
+ return custom_lineage_data
335
+
336
+ @staticmethod
337
+ def _check_custom_lineage_type(param_name, custom_lineage):
338
+ """Check custom lineage type."""
339
+ check_value_type(param_name, custom_lineage, [dict, type(None)])
340
+ for key, value in custom_lineage.items():
341
+ check_value_type(f'{param_name} -> {key}', key, str)
342
+ check_value_type(f'the value of {param_name} -> {key}', value, (int, str, float))
343
+
344
+ @staticmethod
345
+ def _collect_optimizer_custom_lineage_data():
346
+ """Collect custom lineage data if mindoptimizer has set the hyper config."""
347
+ auto_custom_lineage_data = {}
348
+
349
+ hyper_config = os.environ.get(HYPER_CONFIG_ENV_NAME)
350
+ if hyper_config is None:
351
+ logger.debug("Hyper config is not in system environment.")
352
+ return auto_custom_lineage_data
353
+ if len(hyper_config) > HYPER_CONFIG_LEN_LIMIT:
354
+ logger.warning("The 'MINDINSIGHT_HYPER_CONFIG' of environment variable is too long. The length limit "
355
+ "is %s, the length of hyper_config is %s." % (HYPER_CONFIG_LEN_LIMIT, len(hyper_config)))
356
+ return auto_custom_lineage_data
357
+
358
+ try:
359
+ hyper_config = json.loads(hyper_config)
360
+ except (TypeError, JSONDecodeError) as exc:
361
+ logger.warning("The 'MINDINSIGHT_HYPER_CONFIG' of environment variable decode error. "
362
+ "Detail: %s." % str(exc))
363
+ return auto_custom_lineage_data
364
+
365
+ custom_lineage_data = hyper_config.get("custom_lineage_data")
366
+ if custom_lineage_data is None:
367
+ logger.info("No custom lineage data in hyper config. Please check the custom lineage data "
368
+ "if custom parameters exist in the configuration file.")
369
+ auto_custom_lineage_data = custom_lineage_data if custom_lineage_data is not None else {}
370
+
371
+ return auto_custom_lineage_data
372
+
373
+ @staticmethod
374
+ def _check_action(action):
375
+ """Check action type."""
376
+ check_value_type('keep_default_action', action, bool)
377
+
378
+ def _check_landscape_size(self, landscape_size):
379
+ """Check landscape size type and value."""
380
+ check_value_type('landscape_size', landscape_size, int)
381
+ # landscape size should be between 3 and 256.
382
+ if landscape_size < 3 or landscape_size > 256:
383
+ raise ValueError(f'For "{self.__class__.__name__}", the "landscape_size" in collect_specified_data '
384
+ f'should be less than 256 and more than 3, but got the: {landscape_size}')
385
+
386
+ def _check_unit(self, unit):
387
+ """Check unit type and value."""
388
+ check_value_type('unit', unit, str)
389
+ if unit not in ["step", "epoch"]:
390
+ raise ValueError(f'For "{self.__class__.__name__}", unit in collect_specified_data should be step '
391
+ f'or epoch, but got the: {unit}.')
392
+
393
+ def _check_create_landscape(self, create_landscape):
394
+ """Check create landscape type and value."""
395
+ check_value_type('create_landscape', create_landscape, dict)
396
+ for param, value in create_landscape.items():
397
+ if param not in ["train", "result"]:
398
+ raise ValueError(f'For "{self.__class__.__name__}", the key to create landscape should be in '
399
+ f'["train", "result"], but got the: {param}.')
400
+ check_value_type(param, value, bool)
401
+
402
+ def _check_intervals(self, intervals):
403
+ """Check intervals type and value."""
404
+ check_value_type('intervals', intervals, list)
405
+ for _, interval in enumerate(intervals):
406
+ check_value_type('each interval inintervals', interval, list)
407
+ if len(interval) < 3:
408
+ raise ValueError(f'For "{self.__class__.__name__}", the length of each list in "intervals" should not '
409
+ f'be less than three, but got the: {interval}')
410
+ for j in interval:
411
+ if not isinstance(j, int):
412
+ raise TypeError(f'For "{self.__class__.__name__}", the value of each list in "intervals" should '
413
+ f'be int, but got the: {type(j)}')
414
+
415
+ def _check_collect_landscape_data(self, collect_landscape):
416
+ """Check collect landscape data type and value."""
417
+ unexpected_params = set(collect_landscape) - set(self._DEFAULT_SPECIFIED_DATA.get("collect_landscape"))
418
+ if unexpected_params:
419
+ raise ValueError(f'For "{self.__class__.__name__}", the keys {unexpected_params} of `collect_landscape` '
420
+ f'are unsupported, expect the follow keys: '
421
+ f'{list(self._DEFAULT_SPECIFIED_DATA.get("collect_landscape").keys())}')
422
+ landscape_size = collect_landscape.get("landscape_size", 40)
423
+ self._check_landscape_size(landscape_size)
424
+ unit = collect_landscape.get("unit", "step")
425
+ self._check_unit(unit)
426
+ num_samples = collect_landscape.get("num_samples", 2048)
427
+ check_value_type("num_samples", num_samples, int)
428
+ create_landscape = collect_landscape.get("create_landscape", {"train": True, "result": True})
429
+ self._check_create_landscape(create_landscape)
430
+ intervals = collect_landscape.get("intervals")
431
+ self._check_intervals(intervals)
432
+
433
+ def _process_specified_data(self, specified_data, action):
434
+ """Check specified data type and value."""
435
+ check_value_type('collect_specified_data', specified_data, [dict, type(None)])
436
+
437
+ if specified_data is None:
438
+ if action:
439
+ return dict(self._DEFAULT_SPECIFIED_DATA)
440
+ return dict()
441
+
442
+ for param_name in specified_data:
443
+ check_value_type(param_name, param_name, [str])
444
+
445
+ unexpected_params = set(specified_data) - set(self._DEFAULT_SPECIFIED_DATA)
446
+ if unexpected_params:
447
+ raise ValueError(f'For "{self.__class__.__name__}", the keys {unexpected_params} of '
448
+ f'`collect_specified_data` are unsupported, '
449
+ f'expect the follow keys: {list(self._DEFAULT_SPECIFIED_DATA.keys())}')
450
+
451
+ if 'histogram_regular' in specified_data:
452
+ regular = specified_data.get('histogram_regular')
453
+ check_value_type('histogram_regular', regular, (str, type(None)))
454
+ if isinstance(regular, str):
455
+ try:
456
+ re.match(regular, '')
457
+ except re.error as exc:
458
+ raise ValueError(f'For `collect_specified_data`, the value of `histogram_regular` '
459
+ f'is not a valid regular expression. Detail: {str(exc)}.') from exc
460
+
461
+ bool_items = set(self._DEFAULT_SPECIFIED_DATA) - {'histogram_regular', 'collect_landscape'}
462
+ for item in bool_items:
463
+ if item in specified_data:
464
+ check_value_type(item, specified_data.get(item), bool)
465
+
466
+ if action:
467
+ result = dict(self._DEFAULT_SPECIFIED_DATA)
468
+ result.update(specified_data)
469
+ else:
470
+ result = specified_data
471
+ return result
472
+
473
+ def begin(self, run_context):
474
+ cb_params = run_context.original_args()
475
+ collect_host_info("Callback", "SummaryCollector", "begin", start_time=get_clock_syscnt(), level=1)
476
+ self._check_callbacks(cb_params)
477
+
478
+ if cb_params.mode not in ModeEnum.to_list():
479
+ raise ValueError('Only support `train` (model.train) and `eval` (model.eval) mode, '
480
+ 'but got `{cb_params.mode}` mode.')
481
+
482
+ self._record.set_mode(cb_params.mode)
483
+ self._dataset_sink_mode = cb_params.dataset_sink_mode
484
+
485
+ def step_end(self, run_context):
486
+ cb_params = run_context.original_args()
487
+ collect_host_info("Callback", "SummaryCollector", "step_end", start_time=get_clock_syscnt(), level=1)
488
+ if cb_params.mode != ModeEnum.TRAIN.value:
489
+ return
490
+
491
+ if not self._has_saved_graph:
492
+ self._collect_graphs(cb_params)
493
+ self._collect_dataset_graph(cb_params)
494
+ self._has_saved_graph = True
495
+ self._record.record(cb_params.cur_step_num)
496
+
497
+ if self._custom_lineage_data and not self._has_saved_custom_data:
498
+ packaged_custom_data = self._package_custom_lineage_data(self._custom_lineage_data)
499
+ self._record.add_value('custom_lineage_data', 'custom_lineage_data', packaged_custom_data)
500
+ self._has_saved_custom_data = True
501
+ self._record.record(cb_params.cur_step_num)
502
+ if not self._dataset_sink_mode:
503
+ self._collect_tensor_data(cb_params)
504
+
505
+ collect_landscape = self._collect_specified_data.get('collect_landscape')
506
+ if collect_landscape is not None:
507
+ intervals = collect_landscape.get('intervals')
508
+ collect_interval = False
509
+ for interval in intervals:
510
+ if "cur_step_num" in cb_params:
511
+ if cb_params.cur_step_num in interval:
512
+ collect_interval = True
513
+ break
514
+
515
+ if collect_landscape and collect_landscape.get('unit', 'step') == 'step' and collect_interval:
516
+ self._save_model_params_for_landscape(cb_params)
517
+
518
+ def _collect_tensor_data(self, cb_params):
519
+ """Collect tensor summary data."""
520
+ if cb_params.mode != ModeEnum.TRAIN.value:
521
+ return
522
+ if self._first_step:
523
+ self._tensor_collect_range = self._get_tensor_collect_range(cb_params, self._dataset_sink_mode)
524
+ self._collect_at_step_end(cb_params, plugin_filter=None)
525
+ self._first_step = False
526
+ self._record.flush()
527
+ else:
528
+ current = cb_params.cur_epoch_num if self._dataset_sink_mode else cb_params.cur_step_num
529
+ if current % self._collect_freq == 0 and current in self._tensor_collect_range:
530
+ self._collect_at_step_end(cb_params, plugin_filter=None)
531
+ elif current in self._tensor_collect_range:
532
+ self._collect_at_step_end(cb_params, lambda plugin: plugin == PluginEnum.TENSOR.value)
533
+ elif current % self._collect_freq == 0:
534
+ self._collect_at_step_end(cb_params, lambda plugin: plugin != PluginEnum.TENSOR.value)
535
+
536
+ def _get_tensor_collect_range(self, cb_params, dataset_sink_mode):
537
+ """Get tensor collect range."""
538
+ total_step = cb_params.epoch_num
539
+ if not dataset_sink_mode:
540
+ total_step *= cb_params.batch_num
541
+ if self._collect_tensor_freq is not None:
542
+ # `total_step + 1`: `total_step` would be a value of `cb_params.cur_step_num`.
543
+ return range(0, total_step + 1, self._collect_tensor_freq)
544
+ summary_to_collect = len(range(0, total_step + 1, self._collect_freq))
545
+ default_tensor_summary_limit = 20
546
+ if summary_to_collect > default_tensor_summary_limit:
547
+ tensor_freq = total_step // (default_tensor_summary_limit - 1)
548
+ if tensor_freq > 1:
549
+ return range(0, total_step + 1, tensor_freq)[:default_tensor_summary_limit]
550
+ # `cb_params.cur_step_num` counting from `1`, when `1` is in the range, take `1` more steps.
551
+ return range(0, total_step + 1)[:default_tensor_summary_limit + 1]
552
+ return range(0, total_step + 1, self._collect_freq)
553
+
554
+ def _collect_at_step_end(self, cb_params, plugin_filter):
555
+ self._collect_input_data(cb_params)
556
+ self._collect_metric(cb_params)
557
+ self._collect_histogram(cb_params)
558
+ self._record.record(cb_params.cur_step_num, plugin_filter=plugin_filter)
559
+
560
+ def epoch_end(self, run_context):
561
+ cb_params = run_context.original_args()
562
+ collect_host_info("Callback", "SummaryCollector", "epoch_end", start_time=get_clock_syscnt(), level=1)
563
+ self._collect_tensor_data(cb_params)
564
+ collect_landscape = self._collect_specified_data.get('collect_landscape')
565
+ if collect_landscape is not None:
566
+ intervals = collect_landscape.get('intervals')
567
+ collect_interval = False
568
+ for interval in intervals:
569
+ if "cur_epoch_num" in cb_params and cb_params.cur_epoch_num in interval:
570
+ collect_interval = True
571
+ break
572
+
573
+ if collect_landscape and collect_landscape.get('unit', 'step') == 'epoch' and collect_interval:
574
+ self._save_model_params_for_landscape(cb_params)
575
+ self._record.flush()
576
+
577
+ def end(self, run_context):
578
+ cb_params = run_context.original_args()
579
+ collect_host_info("Callback", "SummaryCollector", "end", start_time=get_clock_syscnt(), level=1)
580
+ if cb_params.mode == ModeEnum.TRAIN.value:
581
+ self._collect_train_lineage(cb_params)
582
+ else:
583
+ self._collect_eval_lineage(cb_params)
584
+
585
+ # This is a workaround to avoid record '_summary_tensor_cache'.
586
+ self._record.set_mode('eval')
587
+ # There's nothing special about setting step to 0 here, just to satisfy the interface call
588
+ self._record.record(step=0)
589
+
590
+ collect_landscape = self._collect_specified_data.get('collect_landscape')
591
+ if cb_params.mode == ModeEnum.TRAIN.value and collect_landscape:
592
+ unit = collect_landscape.get('unit', 'step')
593
+ num_samples = collect_landscape.get('num_samples', 2048)
594
+ landscape_size = collect_landscape.get('landscape_size', 40)
595
+ create_landscape = collect_landscape.get('create_landscape', {'train': True, 'result': True})
596
+ self._save_metadata(cb_params.batch_num, unit, num_samples, landscape_size, create_landscape)
597
+
598
+ def _save_metadata(self, step_per_epoch, unit, num_samples, landscape_size, create_landscape):
599
+ """Save meta data to json file."""
600
+ data = {
601
+ "epoch_group": self._epoch_group,
602
+ "model_params_file_map": self._model_params_file_map,
603
+ "step_per_epoch": step_per_epoch,
604
+ "unit": unit,
605
+ "num_samples": num_samples,
606
+ "landscape_size": landscape_size,
607
+ "create_landscape": create_landscape
608
+ }
609
+ meta_path = os.path.join(self._ckpt_dir, 'train_metadata.json')
610
+ try:
611
+ with open(meta_path, 'w') as file:
612
+ json.dump(data, file)
613
+ os.chmod(meta_path, stat.S_IRUSR)
614
+ except OSError as e:
615
+ logger.error("Write meta data %s failed, detail: %s" % (meta_path, str(e)))
616
+
617
+ def _save_model_params(self, cur_num, unit, backbone):
618
+ """Save model params."""
619
+ param_list = []
620
+
621
+ for param in backbone.get_parameters():
622
+ param.init_data()
623
+ param_data = param.data if isinstance(param.data, Tensor) else Tensor(param.data)
624
+
625
+ param_list.append(dict(
626
+ name=param.name,
627
+ data=param_data
628
+ ))
629
+
630
+ ckpt_file_name = f"{type(backbone).__name__}_{cur_num}_{unit}.ckpt"
631
+ file_path = os.path.join(self._ckpt_dir, ckpt_file_name)
632
+ try:
633
+ save_checkpoint(param_list, file_path)
634
+ except OSError as e:
635
+ logger.error(str(e))
636
+
637
+ self._model_params_file_map[str(cur_num)] = file_path
638
+
639
+ def _save_model_params_for_landscape(self, cb_params):
640
+ """Save model params for landscape."""
641
+ if cb_params.mode == ModeEnum.TRAIN.value:
642
+ backbone = self._get_backbone(cb_params.train_network)
643
+ while True:
644
+ if 'optimizer' in backbone.name_cells() and 'network' in backbone.name_cells():
645
+ backbone = backbone.network
646
+ break
647
+ if 'optimizer' not in backbone.name_cells() and 'network' in backbone.name_cells():
648
+ backbone = backbone.network
649
+ else:
650
+ break
651
+ collect_landscape = self._collect_specified_data.get('collect_landscape')
652
+ unit = collect_landscape.get('unit', 'step')
653
+ cur_num = cb_params.cur_epoch_num if collect_landscape and unit == 'epoch' else cb_params.cur_step_num
654
+ logger.info("Save model params, %s: %s." % (unit, cur_num))
655
+ self._save_model_params(cur_num, unit, backbone)
656
+
657
+ def _check_callbacks(self, cb_params):
658
+ """Check there if there are duplicate instances of SummaryCollector."""
659
+ callbacks = cb_params.list_callback
660
+
661
+ is_find = False
662
+ for callback in callbacks:
663
+ if type(callback).__name__ == self.__class__.__name__:
664
+ if not is_find:
665
+ is_find = True
666
+ continue
667
+ raise ValueError(f"There are more than one {self.__class__.__name__} instance in callback list,"
668
+ f"but expected only one {self.__class__.__name__} instance.")
669
+
670
+ @staticmethod
671
+ def _package_custom_lineage_data(custom_lineage_data):
672
+ """
673
+ Package user-defined lineage data into binary data.
674
+
675
+ Args:
676
+ custom_lineage_data (dict): User custom lineage data.
677
+
678
+ Returns:
679
+ UserDefinedInfo, a object of lineage_pb2.UserDefinedInfo.
680
+ """
681
+ user_defined_info = lineage_pb2.UserDefinedInfo()
682
+ for key, value in custom_lineage_data.items():
683
+ if isinstance(value, int):
684
+ attr_name = "map_int32"
685
+ elif isinstance(value, float):
686
+ attr_name = "map_double"
687
+ else:
688
+ attr_name = "map_str"
689
+
690
+ user_info = user_defined_info.user_info.add()
691
+ getattr(user_info, attr_name)[key] = value
692
+
693
+ return user_defined_info
694
+
695
+ def _collect_input_data(self, cb_params):
696
+ """Only support to collect image data."""
697
+ if not self._is_allowed_to_collect_input_data(cb_params):
698
+ return
699
+
700
+ input_data = getattr(cb_params, 'train_dataset_element', None)
701
+ if isinstance(input_data, (list, tuple)) and input_data:
702
+ input_data = input_data[0]
703
+ try:
704
+ self._record.add_value(PluginEnum.IMAGE.value, 'input_data/auto', input_data)
705
+ except (TypeError, ValueError):
706
+ logger.warning('The input data of network are not image, so will not collect by SummaryCollector.')
707
+ self._collect_specified_data['collect_input_data'] = False
708
+ return
709
+
710
+ def _is_allowed_to_collect_input_data(self, cb_params):
711
+ """Check if the input data is allowed to be collected."""
712
+ if not self._collect_specified_data.get('collect_input_data'):
713
+ return False
714
+
715
+ if self._dataset_sink_mode and (context.get_context('device_target') in ('Ascend', 'GPU')):
716
+ logger.warning("On Ascend or GPU device, SummaryCollector is not supported to "
717
+ "record input data in dataset sink mode.")
718
+ self._collect_specified_data['collect_input_data'] = False
719
+ return False
720
+
721
+ input_data = getattr(cb_params, 'train_dataset_element', None)
722
+ if not isinstance(input_data, (Tensor, list, tuple)):
723
+ self._collect_specified_data['collect_input_data'] = False
724
+ logger.warning("The type of input data is not Tensor/list/tuple, "
725
+ "so SummaryCollector will not collect input data.")
726
+ return False
727
+
728
+ if not isinstance(input_data, Tensor) and not input_data:
729
+ self._collect_specified_data['collect_input_data'] = False
730
+ logger.warning("The 'train_dataset_element' in RunContext.original_args is empty, "
731
+ "so SummaryCollector will not record the input data. ")
732
+ return False
733
+
734
+ return True
735
+
736
+ def _collect_dataset_graph(self, cb_params):
737
+ """Only collect train dataset graph."""
738
+ if not self._collect_specified_data.get('collect_dataset_graph'):
739
+ return
740
+
741
+ # After analysis, we think that the validated dataset graph and the training dataset graph
742
+ # should be consistent under normal scenarios, so only the training dataset graph is collected.
743
+ if cb_params.mode == ModeEnum.TRAIN.value:
744
+ train_dataset = cb_params.train_dataset
745
+ dataset_graph = DatasetGraph()
746
+ graph_bytes = dataset_graph.package_dataset_graph(train_dataset)
747
+ if graph_bytes is None:
748
+ return
749
+ self._record.add_value('dataset_graph', 'train_dataset', graph_bytes)
750
+
751
+ def _collect_graphs(self, cb_params):
752
+ """Collect the graph of train network and eval network."""
753
+ if not self._collect_specified_data.get('collect_graph'):
754
+ return
755
+
756
+ network = cb_params.train_network if cb_params.mode == ModeEnum.TRAIN.value else cb_params.eval_network
757
+ graph_proto = network.get_func_graph_proto()
758
+ if graph_proto is None:
759
+ logger.warning("Can not get graph proto, it may not be 'GRAPH_MODE' in context currently, "
760
+ "so SummaryCollector will not collect graph.")
761
+ return
762
+
763
+ self._record.add_value(PluginEnum.GRAPH.value, 'train_network/auto', graph_proto)
764
+
765
+ def _collect_metric(self, cb_params):
766
+ """Collect metric, currently only collection Loss is supported."""
767
+ if not self._collect_specified_data.get('collect_metric'):
768
+ return
769
+
770
+ loss = self._get_loss(cb_params)
771
+ if loss is None:
772
+ return
773
+
774
+ try:
775
+ self._record.add_value(PluginEnum.SCALAR.value, 'loss/auto', loss)
776
+ except ValueError:
777
+ logger.warning("The output of network is not a scalar, so SummaryCollector will not collect loss.")
778
+ self._collect_specified_data['collect_metric'] = False
779
+
780
+ def _get_loss(self, cb_params):
781
+ """
782
+ Get loss from the network output.
783
+
784
+ Args:
785
+ cb_params (_InternalCallbackParam): Callback parameters.
786
+
787
+ Returns:
788
+ Union[Tensor, None], if parse loss success, will return a Tensor value(shape is [1]), else return None.
789
+ """
790
+ if not self._is_parse_loss_success:
791
+ # If parsing has failed before, avoid repeating it
792
+ return None
793
+
794
+ output = cb_params.net_outputs
795
+ if output is None:
796
+ logger.warning("Can not find any output by this network, so SummaryCollector will not collect loss.")
797
+ self._is_parse_loss_success = False
798
+ return None
799
+
800
+ if isinstance(output, (int, float, Tensor)):
801
+ loss = output
802
+ elif isinstance(output, (list, tuple)) and output:
803
+ # If the output is a list, since the default network returns loss first,
804
+ # we assume that the first one is loss.
805
+ loss = output[0]
806
+ else:
807
+ logger.warning("The output type could not be identified, expect type is one of "
808
+ "[int, float, Tensor, list, tuple], so no loss was recorded in SummaryCollector.")
809
+ self._is_parse_loss_success = False
810
+ return None
811
+
812
+ if not isinstance(loss, Tensor):
813
+ loss = Tensor(loss)
814
+
815
+ loss = Tensor(np.mean(loss.asnumpy()))
816
+ return loss
817
+
818
+ def _get_optimizer(self, cb_params):
819
+ """
820
+ Get optimizer from the cb_params or parse from the network.
821
+
822
+ Args:
823
+ cb_params (_InternalCallbackParam): Callback parameters.
824
+
825
+ Returns:
826
+ Union[Optimizer, None], if parse optimizer success, will return a optimizer, else return None.
827
+ """
828
+ # 'optimizer_failed' means find optimizer failed, so we will not collect data about optimizer.
829
+ optimizer_failed = 'Failed'
830
+ if self._temp_optimizer == optimizer_failed:
831
+ return None
832
+
833
+ if self._temp_optimizer is not None:
834
+ return self._temp_optimizer
835
+
836
+ optimizer = cb_params.optimizer
837
+ if optimizer is None:
838
+ network = cb_params.train_network if cb_params.mode == 'train' else cb_params.eval_network
839
+ optimizer = self._parse_optimizer_by_network(network)
840
+
841
+ if optimizer is None or not isinstance(optimizer, Optimizer):
842
+ logger.warning("Can not find optimizer in network, or the optimizer does not inherit MindSpore's "
843
+ "optimizer, so we will not collect data about optimizer in SummaryCollector.")
844
+ optimizer = None
845
+
846
+ self._temp_optimizer = optimizer if optimizer is not None else optimizer_failed
847
+
848
+ return optimizer
849
+
850
+ @staticmethod
851
+ def _parse_optimizer_by_network(network):
852
+ """Parse optimizer from network, if parse success will return a optimizer, else return None."""
853
+ optimizer = None
854
+ for _, cell in network.cells_and_names():
855
+ if isinstance(cell, Optimizer):
856
+ return cell
857
+ try:
858
+ optimizer = getattr(cell, 'optimizer')
859
+ except AttributeError:
860
+ continue
861
+
862
+ if not isinstance(optimizer, Optimizer):
863
+ continue
864
+
865
+ # Optimizer found successfully
866
+ break
867
+
868
+ return optimizer
869
+
870
+ def _collect_histogram(self, cb_params):
871
+ """Collect histogram data, contain the parameter weight and bias."""
872
+ # Note: if there is not a key named `histogram_regular` in `self._collect_specified_data`,
873
+ # it means we will not collect histogram data.
874
+ if 'histogram_regular' not in self._collect_specified_data:
875
+ return
876
+
877
+ optimizer = self._get_optimizer(cb_params)
878
+ if optimizer is None:
879
+ return
880
+
881
+ parameters = optimizer.parameters
882
+ regular = self._collect_specified_data.get('histogram_regular')
883
+ if regular is not None:
884
+ for parameter in parameters:
885
+ if re.match(regular, parameter.name):
886
+ self._record.add_value(PluginEnum.HISTOGRAM.value, parameter.name + '/auto', parameter.data)
887
+ return
888
+
889
+ # Note: If `histogram_regular` in `self._collect_specified_data` and the value is None,
890
+ # we will collect the first five parameters.
891
+ default_parameter_count = 5
892
+ for parameter in parameters[:default_parameter_count]:
893
+ self._record.add_value(PluginEnum.HISTOGRAM.value, parameter.name + '/auto', parameter.data)
894
+
895
+ @staticmethod
896
+ def _get_learning_rate(optimizer):
897
+ """
898
+ Parse the learning rate from optimizer.
899
+
900
+ Args:
901
+ optimizer (Optimizer): A optimizer which inherit the MindSpore Optimizer class.
902
+
903
+ Returns:
904
+ Union[Tensor, None], if parse learning rate success, will return a Tensor, else return None.
905
+ """
906
+ learning_rate = optimizer.learning_rate
907
+ if not isinstance(learning_rate, Parameter):
908
+ logger.warning("The learning rate detected in the optimizer is not a Parameter type, "
909
+ "so it is not recorded. Its type is %r.", type(learning_rate).__name__)
910
+ return None
911
+ return learning_rate.data
912
+
913
+ def _collect_train_lineage(self, cb_params):
914
+ """Collect train lineage data, the detail refer to lineage_pb2.TrainLineage."""
915
+ if not self._collect_specified_data.get('collect_train_lineage'):
916
+ return
917
+ train_lineage = {}
918
+ loss = self._get_loss(cb_params)
919
+ if loss is not None:
920
+ loss_numpy = loss.asnumpy()
921
+ loss = float(np.atleast_1d(loss_numpy)[0])
922
+ train_lineage[LineageMetadata.loss] = loss
923
+ else:
924
+ train_lineage[LineageMetadata.loss] = None
925
+
926
+ optimizer = self._get_optimizer(cb_params)
927
+ learning_rate = self._get_learning_rate(optimizer) if optimizer is not None else None
928
+
929
+ if learning_rate is not None:
930
+ train_lineage[LineageMetadata.learning_rate] = list(np.atleast_1d(learning_rate.asnumpy()))[0]
931
+ else:
932
+ train_lineage[LineageMetadata.learning_rate] = None
933
+ train_lineage[LineageMetadata.optimizer] = type(optimizer).__name__ if optimizer else None
934
+ train_lineage[LineageMetadata.train_network] = type(cb_params.network).__name__
935
+
936
+ loss_fn = self._get_loss_fn(cb_params)
937
+ train_lineage[LineageMetadata.loss_function] = type(loss_fn).__name__ if loss_fn else None
938
+
939
+ train_lineage[LineageMetadata.epoch] = cb_params.epoch_num
940
+ train_lineage[LineageMetadata.step_num] = cb_params.cur_step_num
941
+ train_lineage[LineageMetadata.parallel_mode] = cb_params.parallel_mode
942
+ train_lineage[LineageMetadata.device_num] = cb_params.device_number
943
+
944
+ ckpt_file_path = self._get_ckpt_file_path(cb_params)
945
+ train_lineage[LineageMetadata.model_path] = json.dumps(dict(ckpt=ckpt_file_path))
946
+
947
+ model_size = os.path.getsize(ckpt_file_path) if ckpt_file_path else 0
948
+ train_lineage[LineageMetadata.model_size] = model_size
949
+
950
+ self._parse_dataset(cb_params, train_lineage)
951
+
952
+ train_lineage_message = self._package_train_lineage_message(train_lineage)
953
+
954
+ self._record.add_value(PluginEnum.TRAIN_LINEAGE.value, 'train_lineage', train_lineage_message)
955
+
956
+ @staticmethod
957
+ def _package_train_lineage_message(train_lineage):
958
+ """
959
+ Package train lineage data into binary data.
960
+
961
+ Args:
962
+ train_lineage (dict): The train lineage dict, refer to the attribute of `_collect_train_lineage` method.
963
+
964
+ Returns:
965
+ TrainLineage, a object of lineage_pb2.TrainLineage.
966
+ """
967
+ lineage_message = lineage_pb2.TrainLineage()
968
+
969
+ if train_lineage.get(LineageMetadata.train_network) is not None:
970
+ lineage_message.algorithm.network = train_lineage.get(LineageMetadata.train_network)
971
+ if train_lineage.get(LineageMetadata.loss) is not None:
972
+ lineage_message.algorithm.loss = train_lineage.get(LineageMetadata.loss)
973
+
974
+ # Construct train_dataset message.
975
+ if train_lineage.get(LineageMetadata.train_dataset_path) is not None:
976
+ lineage_message.train_dataset.train_dataset_path = train_lineage.get(LineageMetadata.train_dataset_path)
977
+ if train_lineage.get(LineageMetadata.train_dataset_size) is not None:
978
+ lineage_message.train_dataset.train_dataset_size = train_lineage.get(LineageMetadata.train_dataset_size)
979
+
980
+ # Construct model message
981
+ lineage_message.model.path = train_lineage.get(LineageMetadata.model_path)
982
+ lineage_message.model.size = train_lineage.get(LineageMetadata.model_size)
983
+
984
+ # Construct hyper_parameters message.
985
+ if train_lineage.get(LineageMetadata.learning_rate) is not None:
986
+ lineage_message.hyper_parameters.learning_rate = train_lineage.get(LineageMetadata.learning_rate)
987
+ if train_lineage.get(LineageMetadata.optimizer) is not None:
988
+ lineage_message.hyper_parameters.optimizer = train_lineage.get(LineageMetadata.optimizer)
989
+ if train_lineage.get(LineageMetadata.loss_function) is not None:
990
+ lineage_message.hyper_parameters.loss_function = train_lineage.get(LineageMetadata.loss_function)
991
+ if train_lineage.get(LineageMetadata.parallel_mode) is not None:
992
+ lineage_message.hyper_parameters.parallel_mode = train_lineage.get(LineageMetadata.parallel_mode)
993
+
994
+ lineage_message.hyper_parameters.epoch = train_lineage.get(LineageMetadata.epoch)
995
+ lineage_message.hyper_parameters.device_num = train_lineage.get(LineageMetadata.device_num)
996
+ lineage_message.hyper_parameters.batch_size = train_lineage.get(LineageMetadata.batch_size)
997
+
998
+ return lineage_message
999
+
1000
+ def _parse_dataset(self, cb_params, lineage_dict):
1001
+ """
1002
+ Analyze Dataset to get the dataset path and dataset size.
1003
+
1004
+ Args:
1005
+ cb_params (_InternalCallbackParam): Callback parameters.
1006
+ lineage_dict (dict): The lineage dict, refer to the attribute
1007
+ of `_collect_train_lineage` method or `_collect_eval_lineage`.
1008
+
1009
+ Returns:
1010
+ dict, the lineage metadata.
1011
+ """
1012
+ dataset = cb_params.train_dataset if cb_params.mode == ModeEnum.TRAIN.value else cb_params.valid_dataset
1013
+
1014
+ try:
1015
+ dataset_path = self._get_dataset_path(dataset)
1016
+ except IndexError:
1017
+ dataset_path = None
1018
+
1019
+ if dataset_path and os.path.isfile(dataset_path):
1020
+ dataset_dir = os.path.dirname(dataset_path)
1021
+ else:
1022
+ dataset_dir = dataset_path
1023
+
1024
+ batch_num = dataset.get_dataset_size()
1025
+ batch_size = dataset.get_batch_size()
1026
+ dataset_size = int(batch_num * batch_size)
1027
+
1028
+ lineage_dict[LineageMetadata.batch_size] = batch_size
1029
+
1030
+ if cb_params.mode == ModeEnum.TRAIN.value:
1031
+ lineage_dict[LineageMetadata.train_dataset_path] = dataset_dir
1032
+ lineage_dict[LineageMetadata.train_dataset_size] = dataset_size
1033
+ else:
1034
+ lineage_dict[LineageMetadata.valid_dataset_path] = dataset_dir
1035
+ lineage_dict[LineageMetadata.valid_dataset_size] = dataset_size
1036
+
1037
+ return lineage_dict
1038
+
1039
+ def _get_dataset_path(self, output_dataset):
1040
+ """
1041
+ Get dataset path of MindDataset object.
1042
+
1043
+ Args:
1044
+ output_dataset (Union[Dataset, ImageFolderDataset, MnistDataset, Cifar10Dataset, Cifar100Dataset,
1045
+ VOCDataset, CelebADataset, MindDataset, ManifestDataset, TFRecordDataset, TextFileDataset]):
1046
+ Refer to mindspore.dataset.Dataset.
1047
+
1048
+ Returns:
1049
+ str, dataset path.
1050
+
1051
+ Raises:
1052
+ IndexError: it means get dataset path failed.
1053
+ """
1054
+ dataset_package = import_module('mindspore.dataset')
1055
+ dataset_dir_set = (dataset_package.ImageFolderDataset, dataset_package.MnistDataset,
1056
+ dataset_package.Cifar10Dataset, dataset_package.Cifar100Dataset,
1057
+ dataset_package.VOCDataset, dataset_package.CelebADataset)
1058
+ dataset_files_set = (dataset_package.TFRecordDataset, dataset_package.TextFileDataset)
1059
+
1060
+ dataset_path = ''
1061
+
1062
+ if isinstance(output_dataset, dataset_package.ManifestDataset):
1063
+ dataset_path = output_dataset.dataset_file
1064
+ if isinstance(output_dataset, dataset_package.MindDataset):
1065
+ dataset_path = output_dataset.dataset_files
1066
+ if isinstance(output_dataset, dataset_dir_set):
1067
+ dataset_path = output_dataset.dataset_dir
1068
+ if isinstance(output_dataset, dataset_files_set):
1069
+ dataset_path = output_dataset.dataset_files[0]
1070
+
1071
+ if dataset_path:
1072
+ if isinstance(dataset_path, str):
1073
+ return dataset_path
1074
+ if isinstance(dataset_path, Iterable):
1075
+ return list(dataset_path)[0]
1076
+
1077
+ return self._get_dataset_path(output_dataset.children[0])
1078
+
1079
+ @staticmethod
1080
+ def _get_ckpt_file_path(cb_params):
1081
+ """
1082
+ Get checkpoint file path from MindSpore callback list.
1083
+
1084
+ Args:
1085
+ cb_params (_InternalCallbackParam): Callback parameters.
1086
+
1087
+ Returns:
1088
+ Union[str, None], if parse success will checkpoint file absolute path, else return None.
1089
+ """
1090
+ callbacks = cb_params.list_callback
1091
+ ckpt_file_path = None
1092
+ for callback in callbacks:
1093
+ if isinstance(callback, ModelCheckpoint):
1094
+ ckpt_file_path = callback.latest_ckpt_file_name
1095
+
1096
+ if ckpt_file_path:
1097
+ ckpt_file_path = os.path.realpath(ckpt_file_path)
1098
+
1099
+ return ckpt_file_path
1100
+
1101
+ @classmethod
1102
+ def _get_backbone(cls, network):
1103
+ """
1104
+ Get the backbone network.
1105
+
1106
+ Args:
1107
+ network (Cell): The train network.
1108
+
1109
+ Returns:
1110
+ Union[Cell, None], backbone network, if parse failed, will return None.
1111
+ """
1112
+ backbone = None
1113
+ backbone_key = '_backbone'
1114
+
1115
+ for _, cell in network.cells_and_names():
1116
+ if hasattr(cell, backbone_key):
1117
+ backbone = getattr(cell, backbone_key)
1118
+ break
1119
+
1120
+ backbone = network if backbone is None else backbone
1121
+ return backbone
1122
+
1123
+ @staticmethod
1124
+ def _get_loss_fn(cb_params):
1125
+ """
1126
+ Get loss function by cb_params and analyzing network.
1127
+
1128
+ Args:
1129
+ cb_params (_InternalCallbackParam): Callback parameters.
1130
+
1131
+ Returns:
1132
+ Union[Cell, None], a Cell object, if parse failed, will return None.
1133
+ """
1134
+ loss_fn = cb_params.loss_fn
1135
+ if loss_fn is not None:
1136
+ return loss_fn
1137
+
1138
+ if cb_params.mode == ModeEnum.TRAIN.value:
1139
+ network = cb_params.train_network
1140
+ else:
1141
+ network = cb_params.eval_network
1142
+
1143
+ for _, cell in network.cells_and_names():
1144
+ if isinstance(cell, LossBase):
1145
+ loss_fn = cell
1146
+ break
1147
+ return loss_fn
1148
+
1149
+ def _collect_eval_lineage(self, cb_params):
1150
+ """Collect eval lineage data, the detail refer to lineage_pb2.EvaluationLineage."""
1151
+ if not self._collect_specified_data.get('collect_eval_lineage'):
1152
+ return
1153
+ eval_lineage = dict()
1154
+ try:
1155
+ eval_lineage[LineageMetadata.metrics] = json.dumps(cb_params.metrics)
1156
+ except TypeError as exc:
1157
+ logger.warning("Summary cannot collect the type of metrics, currently support type: dict, list, tuple, "
1158
+ "str, int, float, bool and None. %s.", str(exc))
1159
+ self._parse_dataset(cb_params, eval_lineage)
1160
+
1161
+ eval_lineage_message = self._package_eval_lineage_message(eval_lineage)
1162
+ self._record.add_value(PluginEnum.EVAL_LINEAGE.value, 'eval_lineage', eval_lineage_message)
1163
+
1164
+ @staticmethod
1165
+ def _package_eval_lineage_message(eval_lineage):
1166
+ """
1167
+ Package eval lineage data into binary data.
1168
+
1169
+ Args:
1170
+ eval_lineage (dict): The eval lineage dict, refer to the attribute of `_collect_eval_lineage` method.
1171
+
1172
+ Returns:
1173
+ EvaluationLineage, a object of lineage_pb2.EvaluationLineage.
1174
+ """
1175
+ lineage_message = lineage_pb2.EvaluationLineage()
1176
+
1177
+ if eval_lineage.get(LineageMetadata.metrics) is not None:
1178
+ lineage_message.metric = eval_lineage.get(LineageMetadata.metrics)
1179
+ if eval_lineage.get(LineageMetadata.valid_dataset_path) is not None:
1180
+ lineage_message.valid_dataset.valid_dataset_path = eval_lineage.get(LineageMetadata.valid_dataset_path)
1181
+ if eval_lineage.get(LineageMetadata.valid_dataset_size) is not None:
1182
+ lineage_message.valid_dataset.valid_dataset_size = eval_lineage.get(LineageMetadata.valid_dataset_size)
1183
+
1184
+ return lineage_message