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

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

Potentially problematic release.


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

Files changed (655) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +4 -2
  3. mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
  4. mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
  5. mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
  6. mindspore/_check_jit_forbidden_api.py +102 -0
  7. mindspore/_checkparam.py +1066 -1001
  8. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +4 -3
  9. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +50 -48
  10. mindspore/_extends/parallel_compile/akg_compiler/util.py +9 -4
  11. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +4 -4
  12. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +9 -4
  13. mindspore/_extends/parse/__init__.py +5 -3
  14. mindspore/_extends/parse/namespace.py +16 -1
  15. mindspore/_extends/parse/parser.py +107 -22
  16. mindspore/_extends/parse/resources.py +0 -7
  17. mindspore/_extends/parse/standard_method.py +885 -413
  18. mindspore/amp.py +52 -57
  19. mindspore/boost/boost.py +2 -2
  20. mindspore/boost/boost_cell_wrapper.py +38 -20
  21. mindspore/boost/dim_reduce.py +3 -3
  22. mindspore/boost/group_loss_scale_manager.py +1 -1
  23. mindspore/common/__init__.py +4 -6
  24. mindspore/common/_decorator.py +2 -0
  25. mindspore/common/_register_for_adapter.py +55 -0
  26. mindspore/common/_stub_tensor.py +201 -0
  27. mindspore/common/_utils.py +41 -7
  28. mindspore/common/api.py +215 -141
  29. mindspore/common/dtype.py +8 -1
  30. mindspore/common/dump.py +2 -2
  31. mindspore/common/initializer.py +4 -2
  32. mindspore/common/jit_config.py +17 -13
  33. mindspore/common/mutable.py +33 -13
  34. mindspore/common/parameter.py +23 -21
  35. mindspore/common/seed.py +8 -24
  36. mindspore/common/sparse_tensor.py +62 -41
  37. mindspore/common/tensor.py +852 -1154
  38. mindspore/communication/__init__.py +2 -2
  39. mindspore/communication/_comm_helper.py +11 -4
  40. mindspore/communication/management.py +22 -21
  41. mindspore/config/op_info.config +501 -1008
  42. mindspore/context.py +201 -23
  43. mindspore/dataset/__init__.py +6 -6
  44. mindspore/dataset/audio/__init__.py +7 -7
  45. mindspore/dataset/audio/transforms.py +670 -30
  46. mindspore/dataset/audio/utils.py +47 -4
  47. mindspore/dataset/audio/validators.py +223 -1
  48. mindspore/dataset/callback/ds_callback.py +2 -2
  49. mindspore/dataset/core/config.py +210 -14
  50. mindspore/dataset/core/validator_helpers.py +2 -2
  51. mindspore/{parallel/nn/layers.py → dataset/debug/__init__.py} +7 -8
  52. mindspore/dataset/debug/debug_hook.py +65 -0
  53. mindspore/dataset/debug/pre_defined_hook.py +67 -0
  54. mindspore/dataset/engine/__init__.py +7 -3
  55. mindspore/dataset/engine/cache_client.py +1 -1
  56. mindspore/dataset/engine/datasets.py +322 -66
  57. mindspore/dataset/engine/datasets_audio.py +80 -76
  58. mindspore/dataset/engine/datasets_standard_format.py +51 -38
  59. mindspore/dataset/engine/datasets_text.py +232 -118
  60. mindspore/dataset/engine/datasets_user_defined.py +41 -17
  61. mindspore/dataset/engine/datasets_vision.py +746 -225
  62. mindspore/dataset/engine/graphdata.py +75 -10
  63. mindspore/dataset/engine/iterators.py +45 -5
  64. mindspore/dataset/engine/offload.py +48 -28
  65. mindspore/dataset/engine/validators.py +117 -8
  66. mindspore/dataset/text/__init__.py +6 -5
  67. mindspore/dataset/text/transforms.py +86 -3
  68. mindspore/dataset/text/utils.py +6 -4
  69. mindspore/dataset/text/validators.py +25 -0
  70. mindspore/dataset/transforms/__init__.py +3 -2
  71. mindspore/dataset/transforms/c_transforms.py +1 -1
  72. mindspore/dataset/transforms/transforms.py +2 -2
  73. mindspore/dataset/utils/__init__.py +2 -1
  74. mindspore/dataset/utils/line_reader.py +121 -0
  75. mindspore/dataset/vision/__init__.py +2 -3
  76. mindspore/dataset/vision/c_transforms.py +9 -9
  77. mindspore/dataset/vision/py_transforms.py +5 -5
  78. mindspore/dataset/vision/py_transforms_util.py +2 -0
  79. mindspore/dataset/vision/transforms.py +160 -161
  80. mindspore/dataset/vision/utils.py +3 -3
  81. mindspore/experimental/map_parameter.py +38 -26
  82. mindspore/include/OWNERS +0 -1
  83. mindspore/include/api/callback/callback.h +9 -13
  84. mindspore/include/api/callback/ckpt_saver.h +2 -2
  85. mindspore/include/api/callback/loss_monitor.h +2 -2
  86. mindspore/include/api/callback/lr_scheduler.h +5 -5
  87. mindspore/include/api/callback/time_monitor.h +2 -2
  88. mindspore/include/api/callback/train_accuracy.h +4 -6
  89. mindspore/include/api/cfg.h +19 -6
  90. mindspore/include/api/context.h +44 -9
  91. mindspore/include/api/delegate.h +1 -1
  92. mindspore/include/api/metrics/accuracy.h +2 -2
  93. mindspore/include/api/metrics/metrics.h +4 -3
  94. mindspore/include/api/model.h +9 -4
  95. mindspore/include/api/model_parallel_runner.h +2 -2
  96. mindspore/include/api/net.h +12 -11
  97. mindspore/include/api/serialization.h +19 -3
  98. mindspore/include/api/types.h +3 -3
  99. mindspore/include/dataset/constants.h +7 -0
  100. mindspore/include/dataset/text.h +59 -0
  101. mindspore/jpeg62.dll +0 -0
  102. mindspore/log.py +1 -1
  103. mindspore/mindrecord/filereader.py +18 -0
  104. mindspore/mindrecord/filewriter.py +197 -34
  105. mindspore/mindrecord/shardreader.py +9 -0
  106. mindspore/mindrecord/shardwriter.py +1 -1
  107. mindspore/mindrecord/tools/cifar100_to_mr.py +3 -3
  108. mindspore/mindrecord/tools/cifar10_to_mr.py +3 -3
  109. mindspore/mindrecord/tools/csv_to_mr.py +3 -3
  110. mindspore/mindrecord/tools/imagenet_to_mr.py +16 -11
  111. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  112. mindspore/mindrecord/tools/tfrecord_to_mr.py +6 -6
  113. mindspore/mindspore_backend.dll +0 -0
  114. mindspore/mindspore_common.dll +0 -0
  115. mindspore/mindspore_core.dll +0 -0
  116. mindspore/mindspore_glog.dll +0 -0
  117. mindspore/mindspore_shared_lib.dll +0 -0
  118. mindspore/nn/__init__.py +0 -4
  119. mindspore/nn/cell.py +204 -132
  120. mindspore/nn/dynamic_lr.py +1 -1
  121. mindspore/nn/grad/cell_grad.py +7 -6
  122. mindspore/nn/layer/__init__.py +5 -4
  123. mindspore/nn/layer/activation.py +40 -89
  124. mindspore/nn/layer/basic.py +255 -624
  125. mindspore/nn/layer/channel_shuffle.py +7 -6
  126. mindspore/nn/layer/combined.py +1 -1
  127. mindspore/nn/layer/container.py +41 -4
  128. mindspore/nn/layer/conv.py +64 -28
  129. mindspore/nn/layer/dense.py +9 -8
  130. mindspore/nn/layer/embedding.py +27 -25
  131. mindspore/nn/layer/image.py +53 -46
  132. mindspore/nn/layer/math.py +97 -105
  133. mindspore/nn/layer/normalization.py +117 -86
  134. mindspore/nn/layer/padding.py +185 -95
  135. mindspore/nn/layer/pooling.py +817 -414
  136. mindspore/nn/layer/rnn_cells.py +10 -15
  137. mindspore/nn/layer/rnns.py +37 -38
  138. mindspore/nn/layer/thor_layer.py +11 -12
  139. mindspore/nn/layer/timedistributed.py +5 -5
  140. mindspore/nn/layer/transformer.py +701 -0
  141. mindspore/nn/learning_rate_schedule.py +8 -8
  142. mindspore/nn/loss/__init__.py +5 -4
  143. mindspore/nn/loss/loss.py +334 -199
  144. mindspore/nn/optim/ada_grad.py +6 -6
  145. mindspore/nn/optim/adadelta.py +2 -3
  146. mindspore/nn/optim/adafactor.py +4 -5
  147. mindspore/nn/optim/adam.py +126 -62
  148. mindspore/nn/optim/adamax.py +3 -4
  149. mindspore/nn/optim/adasum.py +6 -6
  150. mindspore/nn/optim/asgd.py +2 -2
  151. mindspore/nn/optim/ftrl.py +67 -38
  152. mindspore/nn/optim/lamb.py +4 -5
  153. mindspore/nn/optim/lars.py +2 -2
  154. mindspore/nn/optim/lazyadam.py +43 -4
  155. mindspore/nn/optim/momentum.py +6 -5
  156. mindspore/nn/optim/optimizer.py +3 -1
  157. mindspore/nn/optim/proximal_ada_grad.py +2 -2
  158. mindspore/nn/optim/rmsprop.py +1 -1
  159. mindspore/nn/optim/rprop.py +8 -9
  160. mindspore/nn/optim/sgd.py +19 -13
  161. mindspore/nn/optim/thor.py +10 -15
  162. mindspore/nn/probability/__init__.py +0 -2
  163. mindspore/nn/probability/bijector/bijector.py +4 -4
  164. mindspore/nn/probability/bijector/invert.py +1 -1
  165. mindspore/nn/probability/bijector/softplus.py +2 -2
  166. mindspore/nn/probability/bnn_layers/dense_variational.py +1 -1
  167. mindspore/nn/probability/bnn_layers/layer_distribution.py +2 -2
  168. mindspore/nn/probability/distribution/_utils/utils.py +9 -15
  169. mindspore/nn/probability/distribution/bernoulli.py +3 -3
  170. mindspore/nn/probability/distribution/beta.py +1 -1
  171. mindspore/nn/probability/distribution/categorical.py +5 -7
  172. mindspore/nn/probability/distribution/cauchy.py +3 -3
  173. mindspore/nn/probability/distribution/distribution.py +2 -2
  174. mindspore/nn/probability/distribution/exponential.py +2 -2
  175. mindspore/nn/probability/distribution/gamma.py +3 -3
  176. mindspore/nn/probability/distribution/geometric.py +1 -1
  177. mindspore/nn/probability/distribution/gumbel.py +3 -3
  178. mindspore/nn/probability/distribution/half_normal.py +15 -11
  179. mindspore/nn/probability/distribution/laplace.py +16 -13
  180. mindspore/nn/probability/distribution/logistic.py +2 -2
  181. mindspore/nn/probability/distribution/normal.py +1 -1
  182. mindspore/nn/probability/distribution/poisson.py +1 -1
  183. mindspore/nn/probability/distribution/student_t.py +20 -15
  184. mindspore/nn/probability/distribution/transformed_distribution.py +4 -4
  185. mindspore/nn/probability/distribution/uniform.py +2 -2
  186. mindspore/nn/reinforcement/_tensors_queue.py +3 -3
  187. mindspore/nn/reinforcement/tensor_array.py +2 -2
  188. mindspore/nn/sparse/sparse.py +2 -2
  189. mindspore/nn/wrap/cell_wrapper.py +27 -10
  190. mindspore/nn/wrap/grad_reducer.py +2 -2
  191. mindspore/nn/wrap/loss_scale.py +40 -24
  192. mindspore/numpy/array_creations.py +33 -22
  193. mindspore/numpy/array_ops.py +35 -30
  194. mindspore/numpy/logic_ops.py +6 -27
  195. mindspore/numpy/math_ops.py +22 -19
  196. mindspore/numpy/utils.py +1 -1
  197. mindspore/numpy/utils_const.py +108 -58
  198. mindspore/opencv_core452.dll +0 -0
  199. mindspore/opencv_imgcodecs452.dll +0 -0
  200. mindspore/opencv_imgproc452.dll +0 -0
  201. mindspore/ops/_constants.py +0 -6
  202. mindspore/ops/_grad/__init__.py +2 -1
  203. mindspore/ops/_grad/grad_array_ops.py +86 -117
  204. mindspore/ops/_grad/grad_base.py +23 -1
  205. mindspore/ops/_grad/grad_clip_ops.py +2 -3
  206. mindspore/ops/_grad/grad_comm_ops.py +34 -24
  207. mindspore/ops/_grad/grad_implementations.py +9 -45
  208. mindspore/ops/_grad/grad_inner_ops.py +47 -4
  209. mindspore/ops/_grad/grad_math_ops.py +142 -117
  210. mindspore/ops/_grad/grad_nn_ops.py +71 -165
  211. mindspore/ops/_grad/grad_sequence_ops.py +296 -0
  212. mindspore/ops/_grad/grad_sparse.py +7 -6
  213. mindspore/ops/_grad_experimental/__init__.py +1 -0
  214. mindspore/ops/_grad_experimental/grad_array_ops.py +150 -15
  215. mindspore/ops/_grad_experimental/grad_image_ops.py +16 -7
  216. mindspore/ops/_grad_experimental/grad_inner_ops.py +1 -22
  217. mindspore/ops/_grad_experimental/grad_linalg_ops.py +4 -11
  218. mindspore/ops/_grad_experimental/grad_math_ops.py +210 -89
  219. mindspore/ops/_grad_experimental/grad_nn_ops.py +26 -22
  220. mindspore/ops/_grad_experimental/grad_scalar_ops.py +112 -0
  221. mindspore/ops/_grad_experimental/grad_sparse_ops.py +49 -8
  222. mindspore/ops/_op_impl/_custom_op/batch_matmul_impl.py +1 -1
  223. mindspore/ops/_op_impl/_custom_op/batchnorm_fold.py +2 -2
  224. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2.py +2 -2
  225. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad.py +2 -2
  226. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad_reduce.py +4 -4
  227. mindspore/ops/_op_impl/_custom_op/batchnorm_fold_grad.py +3 -3
  228. mindspore/ops/_op_impl/_custom_op/cholesky_trsm_impl.py +1 -1
  229. mindspore/ops/_op_impl/_custom_op/correction_mul.py +2 -2
  230. mindspore/ops/_op_impl/_custom_op/correction_mul_grad.py +2 -2
  231. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -5
  232. mindspore/ops/_op_impl/_custom_op/dsd_impl.py +1 -1
  233. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel.py +2 -2
  234. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad.py +2 -2
  235. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad_reduce.py +2 -2
  236. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer.py +2 -2
  237. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad.py +2 -2
  238. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad_reduce.py +2 -2
  239. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel.py +2 -2
  240. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel_grad.py +2 -2
  241. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer.py +2 -2
  242. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer_grad.py +2 -2
  243. mindspore/ops/_op_impl/_custom_op/fused_abs_max1_impl.py +1 -1
  244. mindspore/ops/_op_impl/_custom_op/img2col_impl.py +1 -1
  245. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +2 -2
  246. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_right_impl.py +1 -1
  247. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_left_cast_impl.py +1 -1
  248. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_right_mul_impl.py +1 -1
  249. mindspore/ops/_op_impl/_custom_op/matmul_cube_impl.py +2 -2
  250. mindspore/ops/_op_impl/_custom_op/matmul_dds_impl.py +0 -4
  251. mindspore/ops/_op_impl/_custom_op/matrix_combine_impl.py +1 -1
  252. mindspore/ops/_op_impl/_custom_op/minmax_update_perchannel.py +2 -2
  253. mindspore/ops/_op_impl/_custom_op/minmax_update_perlayer.py +2 -2
  254. mindspore/ops/_op_impl/_custom_op/transpose02314_impl.py +1 -1
  255. mindspore/ops/_op_impl/aicpu/__init__.py +236 -4
  256. mindspore/ops/_op_impl/aicpu/abs.py +36 -0
  257. mindspore/ops/_op_impl/aicpu/{adaptive_avg_pool_2d_v1.py → adaptive_avg_pool_2d.py} +6 -5
  258. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d_grad.py +34 -0
  259. mindspore/ops/_op_impl/aicpu/add.py +43 -0
  260. mindspore/ops/_op_impl/aicpu/addcdiv.py +0 -32
  261. mindspore/ops/_op_impl/aicpu/addcmul.py +0 -84
  262. mindspore/ops/_op_impl/aicpu/affine_grid_grad.py +35 -0
  263. mindspore/ops/_op_impl/aicpu/batch_matmul.py +43 -43
  264. mindspore/ops/_op_impl/aicpu/bernoulli.py +48 -0
  265. mindspore/{compression/common/__init__.py → ops/_op_impl/aicpu/bessel_i0.py} +15 -8
  266. mindspore/ops/_op_impl/aicpu/channel_shuffle.py +40 -0
  267. mindspore/ops/_op_impl/aicpu/conj.py +11 -0
  268. mindspore/ops/_op_impl/aicpu/cumulative_logsumexp.py +0 -3
  269. mindspore/ops/_op_impl/aicpu/deformable_offsets.py +38 -0
  270. mindspore/ops/_op_impl/aicpu/deformable_offsets_grad.py +43 -0
  271. mindspore/ops/_op_impl/aicpu/{adaptive_avg_pool_2d_grad_v1.py → digamma.py} +7 -9
  272. mindspore/ops/_op_impl/aicpu/flatten.py +1 -0
  273. mindspore/ops/_op_impl/aicpu/fmax.py +36 -0
  274. mindspore/ops/_op_impl/aicpu/fmin.py +37 -0
  275. mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_with_fixed_ksize.py +1 -1
  276. mindspore/ops/_op_impl/aicpu/fse_decode.py +43 -0
  277. mindspore/ops/_op_impl/aicpu/greater.py +41 -0
  278. mindspore/ops/_op_impl/aicpu/greater_equal.py +41 -0
  279. mindspore/ops/_op_impl/aicpu/index_put.py +50 -0
  280. mindspore/ops/_op_impl/aicpu/less.py +41 -0
  281. mindspore/{nn/probability/infer/variational/__init__.py → ops/_op_impl/aicpu/lgamma.py} +16 -10
  282. mindspore/ops/_op_impl/aicpu/mirror_pad.py +0 -4
  283. mindspore/ops/_op_impl/aicpu/mirror_pad_grad.py +0 -4
  284. mindspore/ops/_op_impl/aicpu/mul.py +3 -1
  285. mindspore/ops/_op_impl/aicpu/multinomial.py +14 -6
  286. mindspore/ops/_op_impl/aicpu/nllloss.py +38 -0
  287. mindspore/ops/_op_impl/aicpu/nllloss_grad.py +39 -0
  288. mindspore/ops/_op_impl/aicpu/ones_like.py +0 -2
  289. mindspore/ops/_op_impl/aicpu/polar.py +32 -0
  290. mindspore/ops/_op_impl/aicpu/polygamma.py +34 -0
  291. mindspore/ops/_op_impl/aicpu/quant_dtype_cast.py +40 -0
  292. mindspore/ops/_op_impl/aicpu/quantile.py +35 -0
  293. mindspore/ops/_op_impl/aicpu/ragged_tensor_to_sparse.py +73 -0
  294. mindspore/ops/_op_impl/aicpu/randperm_v2.py +41 -0
  295. mindspore/ops/_op_impl/aicpu/resize_bicubic.py +2 -8
  296. mindspore/ops/_op_impl/aicpu/resize_bicubic_grad.py +1 -1
  297. mindspore/ops/_op_impl/aicpu/resize_v2.py +68 -0
  298. mindspore/ops/_op_impl/aicpu/resize_v2_grad.py +68 -0
  299. mindspore/ops/_op_impl/aicpu/scatter_elements.py +4 -0
  300. mindspore/ops/_op_impl/aicpu/scatter_nd_update.py +2 -0
  301. mindspore/ops/_op_impl/aicpu/sequence_add.py +34 -0
  302. mindspore/ops/_op_impl/aicpu/sequence_add_offset.py +34 -0
  303. mindspore/ops/_op_impl/aicpu/sequence_addn.py +38 -0
  304. mindspore/ops/_op_impl/aicpu/smooth_l1_loss.py +35 -0
  305. mindspore/ops/_op_impl/aicpu/smooth_l1_loss_grad.py +37 -0
  306. mindspore/ops/_op_impl/aicpu/sparse_apply_adagrad_da.py +0 -24
  307. mindspore/ops/_op_impl/aicpu/sparse_cross.py +42 -0
  308. mindspore/ops/_op_impl/aicpu/sparse_slice.py +4 -0
  309. mindspore/ops/_op_impl/aicpu/sparse_slice_grad.py +6 -0
  310. mindspore/ops/_op_impl/aicpu/tensor_scatter_update.py +59 -0
  311. mindspore/ops/_op_impl/aicpu/trans_data.py +1 -0
  312. mindspore/ops/_op_impl/aicpu/tril_indices.py +34 -0
  313. mindspore/ops/_op_impl/aicpu/uniform.py +34 -0
  314. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +1 -0
  315. mindspore/ops/_op_impl/aicpu/unique_consecutive.py +10 -2
  316. mindspore/ops/_op_impl/cpu/dynamic_shape.py +5 -1
  317. mindspore/ops/_op_impl/cpu/sparse_slice.py +4 -0
  318. mindspore/ops/_op_impl/cpu/sparse_slice_grad.py +6 -0
  319. mindspore/ops/_op_impl/cpu/tensor_shape.py +5 -1
  320. mindspore/ops/_op_impl/tbe/__init__.py +27 -611
  321. mindspore/ops/_op_impl/tbe/assign_add_ds.py +1 -0
  322. mindspore/ops/_op_impl/tbe/atomic_addr_clean.py +1 -1
  323. mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +1 -1
  324. mindspore/ops/_op_impl/tbe/batch_matmul_ds.py +1 -0
  325. mindspore/ops/_op_impl/tbe/batch_to_space.py +1 -1
  326. mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +1 -1
  327. mindspore/ops/_op_impl/tbe/bn_infer_grad.py +4 -2
  328. mindspore/ops/_op_impl/tbe/bn_training_update.py +0 -1
  329. mindspore/ops/_op_impl/tbe/bn_training_update_ds.py +0 -1
  330. mindspore/ops/_op_impl/tbe/broadcast_to_ds.py +6 -4
  331. mindspore/ops/_op_impl/tbe/cast.py +0 -2
  332. mindspore/ops/_op_impl/tbe/cast_ds.py +3 -3
  333. mindspore/ops/_op_impl/tbe/data_format_dim_map_ds.py +1 -0
  334. mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +2 -2
  335. mindspore/ops/_op_impl/tbe/dynamic_atomic_addr_clean.py +1 -1
  336. mindspore/ops/_op_impl/tbe/gather_nd.py +1 -0
  337. mindspore/ops/_op_impl/tbe/{index_add.py → inplace_index_add.py} +3 -6
  338. mindspore/ops/_op_impl/tbe/matmul_ds.py +2 -0
  339. mindspore/ops/_op_impl/tbe/npu_clear_float_status_v2.py +35 -0
  340. mindspore/ops/_op_impl/tbe/npu_get_float_status_v2.py +35 -0
  341. mindspore/ops/_op_impl/tbe/scatter_mul.py +2 -0
  342. mindspore/ops/_op_impl/tbe/scatter_nd_add.py +0 -2
  343. mindspore/ops/_op_impl/tbe/space_to_batch.py +1 -1
  344. mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +1 -1
  345. mindspore/ops/_op_impl/tbe/trans_data_ds.py +15 -5
  346. mindspore/ops/_register_for_op.py +1 -0
  347. mindspore/ops/_utils/__init__.py +1 -2
  348. mindspore/ops/_utils/utils.py +19 -40
  349. mindspore/ops/_vmap/vmap_array_ops.py +116 -38
  350. mindspore/ops/_vmap/vmap_base.py +16 -9
  351. mindspore/ops/_vmap/vmap_convolution_ops.py +7 -10
  352. mindspore/ops/_vmap/vmap_grad_math_ops.py +4 -4
  353. mindspore/ops/_vmap/vmap_grad_nn_ops.py +7 -5
  354. mindspore/ops/_vmap/vmap_image_ops.py +12 -5
  355. mindspore/ops/_vmap/vmap_math_ops.py +46 -5
  356. mindspore/ops/_vmap/vmap_nn_ops.py +15 -21
  357. mindspore/ops/_vmap/vmap_random_ops.py +1 -1
  358. mindspore/ops/bprop_mindir/AdaptiveAvgPool2D_bprop.mindir +0 -0
  359. mindspore/ops/bprop_mindir/AdaptiveMaxPool2D_bprop.mindir +0 -0
  360. mindspore/ops/bprop_mindir/AvgPool3D_bprop.mindir +150 -0
  361. mindspore/ops/bprop_mindir/AvgPool_bprop.mindir +66 -0
  362. mindspore/ops/bprop_mindir/BCEWithLogitsLoss_bprop.mindir +0 -0
  363. mindspore/ops/bprop_mindir/BatchNormGrad_bprop.mindir +0 -0
  364. mindspore/ops/bprop_mindir/BiasAddGrad_bprop.mindir +0 -0
  365. mindspore/ops/bprop_mindir/BinaryCrossEntropy_bprop.mindir +33 -0
  366. mindspore/ops/bprop_mindir/BroadcastTo_bprop.mindir +220 -106
  367. mindspore/ops/bprop_mindir/CTCLoss_bprop.mindir +0 -0
  368. mindspore/ops/bprop_mindir/Conv2DBackpropFilter_bprop.mindir +240 -0
  369. mindspore/ops/bprop_mindir/Conv2DBackpropInput_bprop.mindir +247 -0
  370. mindspore/ops/bprop_mindir/Conv2DTranspose_bprop.mindir +247 -0
  371. mindspore/ops/bprop_mindir/Conv3DTranspose_bprop.mindir +315 -0
  372. mindspore/ops/bprop_mindir/Conv3D_bprop.mindir +278 -0
  373. mindspore/ops/bprop_mindir/DeformableOffsets_bprop.mindir +58 -0
  374. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +138 -0
  375. mindspore/ops/bprop_mindir/Dropout2D_bprop.mindir +0 -0
  376. mindspore/ops/bprop_mindir/Dropout3D_bprop.mindir +0 -0
  377. mindspore/ops/bprop_mindir/DropoutDoMask_bprop.mindir +22 -23
  378. mindspore/ops/bprop_mindir/DropoutGenMask_bprop.mindir +16 -17
  379. mindspore/ops/bprop_mindir/DropoutGrad_bprop.mindir +27 -0
  380. mindspore/ops/bprop_mindir/Dropout_bprop.mindir +0 -0
  381. mindspore/ops/bprop_mindir/DynamicGRUV2_bprop.mindir +0 -0
  382. mindspore/ops/bprop_mindir/DynamicRNN_bprop.mindir +0 -0
  383. mindspore/ops/bprop_mindir/Elu_bprop.mindir +16 -0
  384. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  385. mindspore/ops/bprop_mindir/ExpandDims_bprop.mindir +39 -41
  386. mindspore/ops/bprop_mindir/FastGeLU_bprop.mindir +16 -0
  387. mindspore/ops/bprop_mindir/Flatten_bprop.mindir +41 -43
  388. mindspore/ops/bprop_mindir/GatherNd_bprop.mindir +51 -57
  389. mindspore/ops/bprop_mindir/Gather_bprop.mindir +0 -0
  390. mindspore/ops/bprop_mindir/HSigmoid_bprop.mindir +16 -0
  391. mindspore/ops/bprop_mindir/HSwish_bprop.mindir +16 -0
  392. mindspore/ops/bprop_mindir/InstanceNorm_bprop.mindir +0 -0
  393. mindspore/ops/bprop_mindir/KLDivLoss_bprop.mindir +126 -0
  394. mindspore/ops/bprop_mindir/L2Loss_bprop.mindir +15 -0
  395. mindspore/ops/bprop_mindir/L2Normalize_bprop.mindir +30 -0
  396. mindspore/ops/bprop_mindir/LRN_bprop.mindir +43 -0
  397. mindspore/ops/bprop_mindir/LayerNormGrad_bprop.mindir +0 -0
  398. mindspore/ops/bprop_mindir/LogSoftmax_bprop.mindir +23 -0
  399. mindspore/ops/bprop_mindir/MaxPool3DGradGrad_bprop.mindir +74 -0
  400. mindspore/ops/bprop_mindir/MaxPool3DGrad_bprop.mindir +74 -0
  401. mindspore/ops/bprop_mindir/MaxPool3D_bprop.mindir +75 -0
  402. mindspore/ops/bprop_mindir/MaxPoolGradGrad_bprop.mindir +65 -0
  403. mindspore/ops/bprop_mindir/MaxPoolWithArgmax_bprop.mindir +0 -0
  404. mindspore/ops/bprop_mindir/MirrorPad_bprop.mindir +27 -0
  405. mindspore/ops/bprop_mindir/Mish_bprop.mindir +35 -0
  406. mindspore/ops/bprop_mindir/MulNoNan_bprop.mindir +0 -0
  407. mindspore/ops/bprop_mindir/NLLLoss_bprop.mindir +0 -0
  408. mindspore/ops/bprop_mindir/OneHot_bprop.mindir +24 -25
  409. mindspore/ops/bprop_mindir/PReLU_bprop.mindir +0 -0
  410. mindspore/ops/bprop_mindir/Pad_bprop.mindir +0 -0
  411. mindspore/ops/bprop_mindir/Padding_bprop.mindir +0 -0
  412. mindspore/ops/bprop_mindir/RNNTLoss_bprop.mindir +29 -0
  413. mindspore/ops/bprop_mindir/ROIAlign_bprop.mindir +82 -0
  414. mindspore/ops/bprop_mindir/ReLU6_bprop.mindir +16 -0
  415. mindspore/ops/bprop_mindir/ReLUV2_bprop.mindir +0 -0
  416. mindspore/ops/bprop_mindir/ReluGrad_bprop.mindir +18 -19
  417. mindspore/ops/bprop_mindir/Reshape_bprop.mindir +53 -53
  418. mindspore/ops/bprop_mindir/ResizeBilinear_bprop.mindir +29 -0
  419. mindspore/ops/bprop_mindir/ResizeNearestNeighbor_bprop.mindir +77 -85
  420. mindspore/ops/bprop_mindir/SeLU_bprop.mindir +21 -0
  421. mindspore/ops/bprop_mindir/SigmoidCrossEntropyWithLogits_bprop.mindir +21 -0
  422. mindspore/ops/bprop_mindir/SigmoidGrad_bprop.mindir +0 -0
  423. mindspore/ops/bprop_mindir/Sigmoid_bprop.mindir +16 -0
  424. mindspore/ops/bprop_mindir/SmoothL1Loss_bprop.mindir +36 -0
  425. mindspore/ops/bprop_mindir/SoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  426. mindspore/ops/bprop_mindir/Softplus_bprop.mindir +16 -0
  427. mindspore/ops/bprop_mindir/Softsign_bprop.mindir +33 -0
  428. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  429. mindspore/ops/bprop_mindir/Squeeze_bprop.mindir +37 -39
  430. mindspore/ops/bprop_mindir/StridedSlice_bprop.mindir +70 -72
  431. mindspore/ops/bprop_mindir/TanhGrad_bprop.mindir +0 -0
  432. mindspore/ops/bprop_mindir/Tanh_bprop.mindir +66 -0
  433. mindspore/ops/bprop_mindir/Tile_bprop.mindir +0 -0
  434. mindspore/ops/bprop_mindir/TopK_bprop.mindir +0 -0
  435. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +17 -17
  436. mindspore/ops/bprop_mindir/UpsampleNearest3D_bprop.mindir +32 -0
  437. mindspore/ops/bprop_mindir/UpsampleTrilinear3D_bprop.mindir +38 -0
  438. mindspore/ops/bprop_mindir/generate_mindir.py +2 -0
  439. mindspore/ops/composite/__init__.py +7 -8
  440. mindspore/ops/composite/base.py +101 -47
  441. mindspore/ops/composite/math_ops.py +188 -158
  442. mindspore/ops/composite/multitype_ops/_compile_utils.py +415 -170
  443. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +142 -87
  444. mindspore/ops/composite/multitype_ops/add_impl.py +6 -1
  445. mindspore/ops/composite/multitype_ops/div_impl.py +2 -3
  446. mindspore/ops/composite/multitype_ops/getitem_impl.py +31 -3
  447. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +31 -0
  448. mindspore/ops/composite/multitype_ops/greater_impl.py +31 -0
  449. mindspore/ops/composite/multitype_ops/in_impl.py +9 -0
  450. mindspore/ops/composite/multitype_ops/less_equal_impl.py +31 -0
  451. mindspore/ops/composite/multitype_ops/less_impl.py +31 -0
  452. mindspore/ops/composite/multitype_ops/mul_impl.py +21 -5
  453. mindspore/ops/composite/multitype_ops/not_in_impl.py +9 -0
  454. mindspore/ops/composite/multitype_ops/ones_like_impl.py +2 -4
  455. mindspore/ops/composite/multitype_ops/setitem_impl.py +21 -3
  456. mindspore/ops/composite/multitype_ops/sub_impl.py +1 -1
  457. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +35 -4
  458. mindspore/ops/function/__init__.py +152 -8
  459. mindspore/ops/function/array_func.py +2555 -674
  460. mindspore/ops/function/clip_func.py +209 -13
  461. mindspore/ops/function/debug_func.py +2 -2
  462. mindspore/ops/function/grad/__init__.py +2 -1
  463. mindspore/ops/function/grad/grad_func.py +147 -62
  464. mindspore/ops/function/image_func.py +54 -38
  465. mindspore/ops/function/linalg_func.py +167 -16
  466. mindspore/ops/function/math_func.py +4849 -1492
  467. mindspore/ops/function/nn_func.py +2573 -988
  468. mindspore/ops/function/other_func.py +115 -0
  469. mindspore/ops/function/parameter_func.py +3 -3
  470. mindspore/ops/function/random_func.py +790 -73
  471. mindspore/ops/function/sparse_func.py +98 -78
  472. mindspore/ops/function/sparse_unary_func.py +54 -53
  473. mindspore/ops/function/spectral_func.py +27 -24
  474. mindspore/ops/function/vmap_func.py +22 -2
  475. mindspore/ops/functional.py +97 -37
  476. mindspore/ops/op_info_register.py +70 -28
  477. mindspore/ops/operations/__init__.py +47 -14
  478. mindspore/ops/operations/_csr_ops.py +7 -7
  479. mindspore/ops/operations/_embedding_cache_ops.py +5 -5
  480. mindspore/ops/operations/_grad_ops.py +276 -187
  481. mindspore/ops/operations/_inner_ops.py +319 -113
  482. mindspore/ops/operations/_ms_kernel.py +10 -8
  483. mindspore/ops/operations/_ocr_ops.py +9 -9
  484. mindspore/ops/operations/_opaque_predicate_registry.py +4 -0
  485. mindspore/ops/operations/_quant_ops.py +137 -102
  486. mindspore/ops/operations/_rl_inner_ops.py +121 -60
  487. mindspore/ops/operations/_scalar_ops.py +466 -0
  488. mindspore/ops/operations/_sequence_ops.py +1004 -2
  489. mindspore/ops/operations/_tensor_array.py +10 -11
  490. mindspore/ops/operations/_thor_ops.py +1 -1
  491. mindspore/ops/operations/array_ops.py +801 -466
  492. mindspore/ops/operations/comm_ops.py +51 -49
  493. mindspore/ops/operations/control_ops.py +2 -2
  494. mindspore/ops/operations/custom_ops.py +123 -44
  495. mindspore/ops/operations/debug_ops.py +24 -24
  496. mindspore/ops/operations/image_ops.py +240 -153
  497. mindspore/ops/operations/inner_ops.py +34 -50
  498. mindspore/ops/operations/linalg_ops.py +31 -9
  499. mindspore/ops/operations/math_ops.py +988 -757
  500. mindspore/ops/operations/nn_ops.py +965 -819
  501. mindspore/ops/operations/other_ops.py +51 -40
  502. mindspore/ops/operations/random_ops.py +204 -122
  503. mindspore/ops/operations/rl_ops.py +8 -9
  504. mindspore/ops/operations/sparse_ops.py +254 -93
  505. mindspore/ops/operations/spectral_ops.py +35 -3
  506. mindspore/ops/primitive.py +111 -9
  507. mindspore/parallel/_auto_parallel_context.py +189 -83
  508. mindspore/parallel/_offload_context.py +185 -0
  509. mindspore/parallel/_parallel_serialization.py +99 -7
  510. mindspore/parallel/_ps_context.py +9 -5
  511. mindspore/parallel/_recovery_context.py +1 -1
  512. mindspore/parallel/_tensor.py +7 -1
  513. mindspore/{nn/transformer → parallel/_transformer}/__init__.py +6 -6
  514. mindspore/{nn/transformer → parallel/_transformer}/layers.py +6 -37
  515. mindspore/{nn/transformer → parallel/_transformer}/loss.py +4 -7
  516. mindspore/{nn/transformer → parallel/_transformer}/moe.py +20 -16
  517. mindspore/{nn/transformer → parallel/_transformer}/op_parallel_config.py +3 -3
  518. mindspore/{nn/transformer → parallel/_transformer}/transformer.py +48 -111
  519. mindspore/parallel/_utils.py +1 -2
  520. mindspore/parallel/algo_parameter_config.py +1 -1
  521. mindspore/parallel/checkpoint_transform.py +37 -34
  522. mindspore/parallel/shard.py +17 -18
  523. mindspore/profiler/common/validator/validate_path.py +2 -2
  524. mindspore/profiler/envprofiling.py +69 -47
  525. mindspore/profiler/parser/ascend_timeline_generator.py +49 -42
  526. mindspore/profiler/parser/base_timeline_generator.py +49 -56
  527. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +98 -78
  528. mindspore/profiler/parser/hwts_log_parser.py +1 -1
  529. mindspore/profiler/parser/integrator.py +15 -14
  530. mindspore/profiler/parser/minddata_analyzer.py +2 -2
  531. mindspore/profiler/parser/msadvisor_analyzer.py +12 -25
  532. mindspore/profiler/parser/msadvisor_parser.py +2 -4
  533. mindspore/profiler/parser/optime_parser.py +17 -18
  534. mindspore/profiler/parser/profiler_info.py +2 -1
  535. mindspore/profiler/profiling.py +218 -186
  536. mindspore/rewrite/__init__.py +3 -1
  537. mindspore/rewrite/api/node.py +1 -114
  538. mindspore/rewrite/api/node_type.py +3 -0
  539. mindspore/rewrite/api/pattern_engine.py +31 -1
  540. mindspore/rewrite/api/scoped_value.py +4 -4
  541. mindspore/rewrite/api/symbol_tree.py +3 -78
  542. mindspore/rewrite/api/tree_node_helper.py +1 -1
  543. mindspore/rewrite/ast_creator_register.py +1 -0
  544. mindspore/rewrite/ast_helpers/__init__.py +2 -2
  545. mindspore/rewrite/ast_helpers/ast_creator.py +1 -2
  546. mindspore/rewrite/ast_helpers/ast_finder.py +65 -0
  547. mindspore/rewrite/ast_helpers/ast_modifier.py +11 -3
  548. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +18 -2
  549. mindspore/rewrite/namespace.py +0 -2
  550. mindspore/rewrite/node.py +157 -11
  551. mindspore/rewrite/parsers/assign_parser.py +231 -53
  552. mindspore/rewrite/parsers/class_def_parser.py +187 -109
  553. mindspore/rewrite/parsers/for_parser.py +24 -14
  554. mindspore/rewrite/parsers/function_def_parser.py +21 -4
  555. mindspore/rewrite/parsers/if_parser.py +6 -2
  556. mindspore/rewrite/sparsify/__init__.py +0 -0
  557. mindspore/rewrite/sparsify/sparse_transformer.py +448 -0
  558. mindspore/rewrite/sparsify/sparsify.py +109 -0
  559. mindspore/rewrite/sparsify/utils.py +173 -0
  560. mindspore/rewrite/symbol_tree.py +256 -133
  561. mindspore/rewrite/symbol_tree_builder.py +38 -1
  562. mindspore/run_check/_check_version.py +69 -63
  563. mindspore/run_check/run_check.py +2 -1
  564. mindspore/tinyxml2.dll +0 -0
  565. mindspore/train/__init__.py +1 -1
  566. mindspore/train/_utils.py +28 -5
  567. mindspore/train/amp.py +273 -102
  568. mindspore/train/callback/_backup_and_restore.py +5 -5
  569. mindspore/train/callback/_callback.py +2 -2
  570. mindspore/train/callback/_checkpoint.py +3 -3
  571. mindspore/train/callback/_early_stop.py +3 -3
  572. mindspore/train/callback/_lambda_callback.py +2 -2
  573. mindspore/train/callback/_landscape.py +29 -31
  574. mindspore/train/callback/_loss_monitor.py +3 -3
  575. mindspore/train/callback/_on_request_exit.py +3 -3
  576. mindspore/train/callback/_reduce_lr_on_plateau.py +4 -4
  577. mindspore/train/callback/_summary_collector.py +23 -16
  578. mindspore/train/callback/_time_monitor.py +3 -3
  579. mindspore/train/checkpoint_pb2.py +68 -8
  580. mindspore/train/data_sink.py +15 -3
  581. mindspore/train/dataset_helper.py +10 -15
  582. mindspore/train/loss_scale_manager.py +8 -11
  583. mindspore/train/metrics/__init__.py +1 -1
  584. mindspore/train/metrics/bleu_score.py +1 -1
  585. mindspore/train/metrics/confusion_matrix.py +1 -1
  586. mindspore/train/metrics/cosine_similarity.py +1 -1
  587. mindspore/train/metrics/dice.py +2 -2
  588. mindspore/train/metrics/fbeta.py +1 -1
  589. mindspore/train/metrics/hausdorff_distance.py +4 -3
  590. mindspore/train/metrics/mean_surface_distance.py +2 -2
  591. mindspore/train/metrics/occlusion_sensitivity.py +1 -1
  592. mindspore/train/metrics/perplexity.py +1 -1
  593. mindspore/train/metrics/precision.py +1 -1
  594. mindspore/train/metrics/recall.py +1 -1
  595. mindspore/train/metrics/roc.py +2 -2
  596. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  597. mindspore/train/mind_ir_pb2.py +116 -37
  598. mindspore/train/model.py +45 -28
  599. mindspore/train/serialization.py +295 -188
  600. mindspore/train/summary/_summary_adapter.py +1 -1
  601. mindspore/train/summary/summary_record.py +43 -13
  602. mindspore/train/train_thor/convert_utils.py +2 -2
  603. mindspore/train/train_thor/dataset_helper.py +3 -3
  604. mindspore/turbojpeg.dll +0 -0
  605. mindspore/version.py +1 -1
  606. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/METADATA +3 -2
  607. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/RECORD +610 -541
  608. mindspore/compression/__init__.py +0 -19
  609. mindspore/compression/common/constant.py +0 -124
  610. mindspore/compression/export/__init__.py +0 -19
  611. mindspore/compression/export/quant_export.py +0 -515
  612. mindspore/compression/quant/__init__.py +0 -28
  613. mindspore/compression/quant/qat.py +0 -634
  614. mindspore/compression/quant/quant_utils.py +0 -462
  615. mindspore/compression/quant/quantizer.py +0 -68
  616. mindspore/nn/layer/quant.py +0 -1868
  617. mindspore/nn/layer/rnn_utils.py +0 -90
  618. mindspore/nn/probability/dpn/__init__.py +0 -22
  619. mindspore/nn/probability/dpn/vae/__init__.py +0 -25
  620. mindspore/nn/probability/dpn/vae/cvae.py +0 -140
  621. mindspore/nn/probability/dpn/vae/vae.py +0 -124
  622. mindspore/nn/probability/infer/__init__.py +0 -22
  623. mindspore/nn/probability/infer/variational/elbo.py +0 -70
  624. mindspore/nn/probability/infer/variational/svi.py +0 -84
  625. mindspore/nn/probability/toolbox/__init__.py +0 -22
  626. mindspore/nn/probability/toolbox/anomaly_detection.py +0 -99
  627. mindspore/nn/probability/toolbox/uncertainty_evaluation.py +0 -364
  628. mindspore/nn/probability/transforms/__init__.py +0 -22
  629. mindspore/nn/probability/transforms/transform_bnn.py +0 -262
  630. mindspore/nn/probability/zhusuan/__init__.py +0 -18
  631. mindspore/nn/probability/zhusuan/framework/__init__.py +0 -18
  632. mindspore/nn/probability/zhusuan/framework/bn.py +0 -95
  633. mindspore/nn/probability/zhusuan/variational/__init__.py +0 -18
  634. mindspore/nn/probability/zhusuan/variational/elbo.py +0 -46
  635. mindspore/ops/_op_impl/aicpu/parallel_concat.py +0 -42
  636. mindspore/ops/_op_impl/tbe/gather_v2.py +0 -56
  637. mindspore/ops/bprop_mindir/AssignAdd_bprop.mindir +0 -19
  638. mindspore/ops/bprop_mindir/Cast_bprop.mindir +0 -19
  639. mindspore/ops/bprop_mindir/LogicalOr_bprop.mindir +0 -19
  640. mindspore/ops/bprop_mindir/MatMul_bprop.mindir +0 -0
  641. mindspore/ops/bprop_mindir/ReLU_bprop.mindir +0 -17
  642. mindspore/ops/bprop_mindir/Transpose_bprop.mindir +0 -0
  643. mindspore/ops/bprop_mindir/UpdateState_bprop.mindir +0 -15
  644. mindspore/ops/composite/array_ops.py +0 -241
  645. mindspore/ops/composite/clip_ops.py +0 -134
  646. mindspore/ops/composite/random_ops.py +0 -426
  647. mindspore/ops/composite/vmap_ops.py +0 -38
  648. mindspore/parallel/nn/__init__.py +0 -42
  649. mindspore/parallel/nn/loss.py +0 -22
  650. mindspore/parallel/nn/moe.py +0 -21
  651. mindspore/parallel/nn/op_parallel_config.py +0 -22
  652. mindspore/parallel/nn/transformer.py +0 -31
  653. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/WHEEL +0 -0
  654. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/entry_points.txt +0 -0
  655. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -17,7 +17,7 @@
17
17
  from __future__ import absolute_import
18
18
  from functools import partial
19
19
  import numpy as np
20
- from mindspore.common import jit
20
+ from mindspore.common import jit, mutable
21
21
  from mindspore.common import Tensor
22
22
  from mindspore.common import dtype as mstype
23
23
  from mindspore.nn.cell import Cell
@@ -26,6 +26,7 @@ from mindspore.ops.primitive import constexpr
26
26
  from mindspore.ops.function.array_func import ones, expand_dims, size, reshape, broadcast_to, transpose
27
27
  from mindspore.ops.composite import _Vmap, _Grad, _TaylorOperation, GradOperation
28
28
  from mindspore.ops import operations as P
29
+ from mindspore.ops.operations import _inner_ops as inner
29
30
 
30
31
  cast = P.Cast()
31
32
  dtype = P.DType()
@@ -86,11 +87,12 @@ def _check_grad_position(grad_position, args_num):
86
87
 
87
88
 
88
89
  @constexpr
89
- def _get_grad_op(get_by_list, get_by_position, has_aux, get_value=False):
90
- return _Grad(get_by_list=get_by_list, get_by_position=get_by_position, has_aux=has_aux, get_value=get_value)
90
+ def _get_grad_op(get_by_list, get_by_position, has_aux, get_value=False, return_ids=False):
91
+ return _Grad(get_by_list=get_by_list, get_by_position=get_by_position, has_aux=has_aux, get_value=get_value,
92
+ return_ids=return_ids)
91
93
 
92
94
 
93
- def grad(fn, grad_position=0, weights=None, has_aux=False):
95
+ def grad(fn, grad_position=0, weights=None, has_aux=False, return_ids=False):
94
96
  """
95
97
  A wrapper function to generate the gradient function for the input function.
96
98
 
@@ -113,11 +115,19 @@ def grad(fn, grad_position=0, weights=None, has_aux=False):
113
115
  has_aux (bool): If True, only the first output of `fn` contributes the gradient of `fn`, while the other outputs
114
116
  will be returned straightly. It means the `fn` must return more than one outputs in this case.
115
117
  Default: False.
118
+ return_ids(bool): Whether return the tuple made by gradients and the index to specify which inputs
119
+ to be differentiated or the name of parameters of the training network that need to calculate the gradient.
120
+ If True, the output gradients will be replaced by the tuples made by gradients and the index to specify
121
+ which inputs to be differentiated or the name of parameters of the training network.
122
+ Default: False.
116
123
 
117
124
  Returns:
118
125
  Function, the gradient function to calculate gradient for the input function or cell.
119
126
  For example, as for `out1, out2 = fn(*args)`, when `has_aux` is set True, gradient function will return outputs
120
127
  like `(gradient, out2)` and `out2` does not contribute to the differentiation, otherwise `gradient`.
128
+ When return_ids is set to True, The format of the output will be the same with the output of grad when
129
+ return_ids is set to false, but every gradient in the output will be replaced by a tuple of position id or
130
+ parameter name and its gradient.
121
131
 
122
132
  Raises:
123
133
  ValueError: If both `grad_position` and `weights` are None.
@@ -160,7 +170,7 @@ def grad(fn, grad_position=0, weights=None, has_aux=False):
160
170
  >>> print(aux)
161
171
  (Tensor(shape=[2], dtype=Float32, value= [ 5.00000000e+00, 5.00000000e+00]),)
162
172
  >>>
163
- >>> # For given network to be differentiated with both inputs and weights, there are 3 cases.
173
+ >>> # For given network to be differentiated with both inputs and weights, there are 4 cases.
164
174
  >>> net = nn.Dense(10, 1)
165
175
  >>> loss_fn = nn.MSELoss()
166
176
  >>> def forward(inputs, labels):
@@ -192,17 +202,36 @@ def grad(fn, grad_position=0, weights=None, has_aux=False):
192
202
  >>> inputs_gradient, params_gradient = grad_fn(inputs, labels)
193
203
  >>> print(len(weights), len(params_gradient))
194
204
  2 2
205
+ >>> # Case 4: return the gradient with ids.
206
+ >>> import numpy as np
207
+ >>> import mindspore
208
+ >>> import mindspore.nn as nn
209
+ >>> from mindspore import Tensor, ops
210
+ >>> from mindspore import grad
211
+ >>>
212
+ >>> # Cell object to be differentiated
213
+ >>> class Net(nn.Cell):
214
+ ... def construct(self, x, y, z):
215
+ ... return x * y * z
216
+ >>> x = Tensor([1, 2], mindspore.float32)
217
+ >>> y = Tensor([-2, 3], mindspore.float32)
218
+ >>> z = Tensor([0, 3], mindspore.float32)
219
+ >>> net = Net()
220
+ >>> output = grad(net, grad_position=(1, 2), return_ids = True)(x, y, z)
221
+ >>> print(output)
222
+ ((1, Tensor(shape=[2], dtype=Float32, value=[ 0.00000000e+00, 6.00000000e+00])),
223
+ (2, Tensor(shape=[2], dtype=Float32, value=[-2.00000000e+00, 6.00000000e+00])))
195
224
  """
196
225
  if grad_position is None and weights is None:
197
226
  raise ValueError("`grad_position` and `weight` can not be None at the same time.")
198
227
 
199
228
  if grad_position is None:
200
- return _get_grad_op(True, False, has_aux)(fn, weights)
229
+ return _get_grad_op(True, False, has_aux, False, return_ids)(fn, weights)
201
230
 
202
231
  grad_position = _convert_grad_position_type(grad_position)
203
232
  if weights is None:
204
- return _get_grad_op(False, True, has_aux)(fn, None, grad_position)
205
- return _get_grad_op(True, True, has_aux)(fn, weights, grad_position)
233
+ return _get_grad_op(False, True, has_aux, False, return_ids)(fn, None, grad_position)
234
+ return _get_grad_op(True, True, has_aux, False, return_ids)(fn, weights, grad_position)
206
235
 
207
236
 
208
237
  def value_and_grad(fn, grad_position=0, weights=None, has_aux=False):
@@ -329,6 +358,55 @@ def value_and_grad(fn, grad_position=0, weights=None, has_aux=False):
329
358
  return _get_grad_op(True, True, has_aux, True)(fn, weights, grad_position)
330
359
 
331
360
 
361
+ def get_grad(gradients, identifier):
362
+ """
363
+ When `return_ids` of :func:`mindspore.grad` is set to True, use its return value as gradients. Then find
364
+ the specific gradient from `gradients` according to `identifier` .
365
+
366
+ As for gradient, two typical cases are included:
367
+
368
+ 1. `identifier` is the position of the specific tensor to get gradient.
369
+ 2. `identifier` is a parameter of a network.
370
+
371
+ Args:
372
+ gradients (Union[tuple[int, Tensor], tuple[tuple, tuple]]): The return value of :func:`mindspore.grad`
373
+ when `return_ids` is set to True.
374
+ identifier (Union[int, Parameter]): The position number of a tensor, or a parameter that is used in
375
+ :func:`mindspore.grad`.
376
+
377
+ Returns:
378
+ The gradient of the tensor on the position or in the parameter that specified by the `identifier`.
379
+
380
+ Raises:
381
+ RuntimeError: If gradient is not found.
382
+ TypeError: If type of Args does not belong to required ones.
383
+
384
+ Supported Platforms:
385
+ ``Ascend`` ``GPU`` ``CPU``
386
+
387
+ Examples:
388
+ >>> import numpy as np
389
+ >>> import mindspore
390
+ >>> import mindspore.nn as nn
391
+ >>> from mindspore import Tensor, ops
392
+ >>> from mindspore import grad, get_grad
393
+ >>>
394
+ >>> # Cell object to be differentiated
395
+ >>> class Net(nn.Cell):
396
+ ... def construct(self, x, y, z):
397
+ ... return x * y * z
398
+ >>> x = Tensor([1, 2], mindspore.float32)
399
+ >>> y = Tensor([-2, 3], mindspore.float32)
400
+ >>> z = Tensor([0, 3], mindspore.float32)
401
+ >>> net = Net()
402
+ >>> out_grad = grad(net, grad_position=(1, 2), return_ids=True)(x, y, z)
403
+ >>> output = get_grad(out_grad, 1)
404
+ >>> print(output)
405
+ [0. 6.]
406
+ """
407
+ return inner.GetGrad()(gradients, identifier)
408
+
409
+
332
410
  def _trans_jet_inputs(primals_item, series_item):
333
411
  """Trans inputs of jet"""
334
412
  value_type = [mstype.int32, mstype.int64, mstype.float32, mstype.float64]
@@ -572,11 +650,16 @@ _grad_single = GradOperation(sens_param=True)
572
650
  _grad_all = GradOperation(sens_param=True, get_all=True)
573
651
 
574
652
 
653
+ @constexpr
654
+ def _check_jvp_input_v_len(inputs_len, v_len):
655
+ if inputs_len != v_len:
656
+ raise ValueError(f'v has invalid length: should be {inputs_len}, but got {v_len}')
657
+
658
+
575
659
  def jvp(fn, inputs, v, has_aux=False):
576
660
  """
577
661
  Compute the jacobian-vector-product of the given network. `jvp` matches
578
- `forward-mode differentiation <https://www.mindspore.cn/docs/en/r2.0.0-alpha/design/auto_gradient.html
579
- #forward-mode-ad>`_.
662
+ `forward-mode differentiation <https://www.mindspore.cn/docs/en/r2.0/design/auto_gradient.html#forward-mode-ad>`_.
580
663
 
581
664
  Args:
582
665
  fn (Union[Function, Cell]): The function or net that takes Tensor inputs and returns single Tensor or tuple of
@@ -662,9 +745,9 @@ def jvp(fn, inputs, v, has_aux=False):
662
745
  if isinstance(outputs, tuple):
663
746
  u = ()
664
747
  for item in outputs:
665
- u = u + (oneslike(item),)
748
+ u = u + (mutable(oneslike(item)),)
666
749
  else:
667
- u = oneslike(outputs)
750
+ u = mutable(oneslike(outputs))
668
751
  if len(jvp_inputs) == 1:
669
752
  second_grad_net = _grad_single(grad_single)
670
753
  gradient_outputs = second_grad_net(u, jvp_inputs, vectors)
@@ -689,6 +772,15 @@ def jvp(fn, inputs, v, has_aux=False):
689
772
 
690
773
  if not isinstance(inputs, (Tensor, tuple, list)) or not isinstance(v, (Tensor, tuple, list)):
691
774
  _raise_type_error()
775
+
776
+ inputs_len = 1
777
+ v_len = 1
778
+ if isinstance(inputs, (tuple, list)):
779
+ inputs_len = len(inputs)
780
+ if isinstance(v, (tuple, list)):
781
+ v_len = len(v)
782
+ _check_jvp_input_v_len(inputs_len, v_len)
783
+
692
784
  if isinstance(v, list):
693
785
  v = tuple(v)
694
786
  if isinstance(inputs, (tuple, list)):
@@ -776,8 +868,7 @@ def _check_tensor(inputs):
776
868
  def vjp(fn, *inputs, has_aux=False):
777
869
  """
778
870
  Compute the vector-jacobian-product of the given network. `vjp` matches
779
- `reverse-mode differentiation <https://www.mindspore.cn/docs/en/r2.0.0-alpha/design/auto_gradient.html
780
- #reverse-mode-ad>`_.
871
+ `reverse-mode differentiation <https://www.mindspore.cn/docs/en/r2.0/design/auto_gradient.html#reverse-mode-ad>`_.
781
872
 
782
873
  Args:
783
874
  fn (Union[Function, Cell]): The function or net that takes Tensor inputs and returns single Tensor or tuple of
@@ -889,15 +980,23 @@ def _jacfwd_trans_item(item, inputs_shape, grad_position):
889
980
  return output_wrt_input_all
890
981
 
891
982
 
892
- def _jacfwd_postprocess(x, inputs_shape, grad_position):
983
+ def _jac_postprocess(x, shape, grad_position, mode):
893
984
  """reformat jacobian."""
985
+
986
+ if mode == 'forward':
987
+ func = _jacfwd_trans_item
988
+ args = (shape, grad_position)
989
+ else:
990
+ func = _jacrev_trans_item
991
+ args = (shape,)
992
+
894
993
  if isinstance(x, tuple):
895
994
  jacobian = ()
896
995
  for item in x:
897
- jacobian += _jacfwd_trans_item(item, inputs_shape, grad_position)
996
+ jacobian += func(item, *args)
898
997
  res = jacobian
899
998
  else:
900
- res = _jacfwd_trans_item(x, inputs_shape, grad_position)
999
+ res = func(x, *args)
901
1000
  if len(res) == 1:
902
1001
  return res[0]
903
1002
  input_num = len(grad_position)
@@ -910,11 +1009,20 @@ def _jacfwd_postprocess(x, inputs_shape, grad_position):
910
1009
  for i in range(output_num):
911
1010
  input_grad = ()
912
1011
  for j in range(input_num):
913
- input_grad += (res[i * input_num + j],)
1012
+ if mode == 'forward':
1013
+ grad_increment = (res[i * input_num + j],)
1014
+ else:
1015
+ grad_increment = (res[j * output_num + i],)
1016
+ input_grad += grad_increment
914
1017
  jac += (input_grad,)
915
1018
  return jac
916
1019
 
917
1020
 
1021
+ def _jacfwd_postprocess(x, inputs_shape, grad_position):
1022
+ """reformat forward-computed Jacobian."""
1023
+ return _jac_postprocess(x, inputs_shape, grad_position, 'forward')
1024
+
1025
+
918
1026
  def _jacfwd_construct_v(inputs, grad_position):
919
1027
  """
920
1028
  For input (x1, x2), x1.shape = (a, b), x2.shape = (c, d), this method generates corresponding v (v1, v2),
@@ -927,10 +1035,9 @@ def _jacfwd_construct_v(inputs, grad_position):
927
1035
  items_num = ()
928
1036
  cum_num = (0,)
929
1037
  for item in inputs:
930
- item_num = size(item)
931
- num += item_num
1038
+ num += size(item)
932
1039
  inputs_shape += ((item.shape, num),)
933
- items_num += (item_num,)
1040
+ items_num += (size(item),)
934
1041
  cum_num += (num,)
935
1042
  for i, element in enumerate(inputs):
936
1043
  item_size = items_num[i]
@@ -953,18 +1060,17 @@ _vmap = _Vmap()
953
1060
  def jacfwd(fn, grad_position=0, has_aux=False):
954
1061
  """
955
1062
  Compute Jacobian via forward mode, corresponding to
956
- `forward-mode differentiation <https://www.mindspore.cn/docs/en/r2.0.0-alpha/design/auto_gradient.html
957
- #forward-mode-ad>`_.
1063
+ `forward-mode differentiation <https://www.mindspore.cn/docs/en/r2.0/design/auto_gradient.html#forward-mode-ad>`_.
958
1064
  When number of outputs is much greater than that of inputs, it's better to calculate Jacobian via forward mode than
959
1065
  reverse mode to get better performance.
960
1066
 
961
1067
  Args:
962
1068
  fn (Union[Cell, Function]): Function to do GradOperation.
963
- grad_position (Union[int, tuple[int]]): If int, get the gradient with respect to single input.
1069
+ grad_position (Union[int, tuple[int]], optional): If int, get the gradient with respect to single input.
964
1070
  If tuple, get the gradients with respect to selected inputs. 'grad_position' begins with 0. Default: 0.
965
- has_aux (bool): If True, only the first output of `fn` contributes the gradient of `fn`, while the other outputs
966
- will be returned straightly. It means the `fn` must return more than one outputs in this case.
967
- Default: False.
1071
+ has_aux (bool, optional): If True, only the first output of `fn` contributes the gradient of `fn`,
1072
+ while the other outputs will be returned straightly. It means the `fn` must return more than one
1073
+ outputs in this case. Default: False.
968
1074
 
969
1075
  Returns:
970
1076
  Function, returns the Jacobian function for the input function or cell.
@@ -1032,9 +1138,9 @@ def jacfwd(fn, grad_position=0, has_aux=False):
1032
1138
  if isinstance(outputs, tuple):
1033
1139
  u = ()
1034
1140
  for item in outputs:
1035
- u = u + (oneslike(item),)
1141
+ u = u + (mutable(oneslike(item)),)
1036
1142
  else:
1037
- u = oneslike(outputs)
1143
+ u = mutable(oneslike(outputs))
1038
1144
  if len(jvp_inputs) == 1:
1039
1145
  second_grad_net = _grad_single(grad_single)
1040
1146
  else:
@@ -1044,7 +1150,7 @@ def jacfwd(fn, grad_position=0, has_aux=False):
1044
1150
 
1045
1151
  def inner_aux_fn(jvp_inputs, vectors):
1046
1152
  outputs = aux_fn(*jvp_inputs)
1047
- u = oneslike(outputs)
1153
+ u = mutable(oneslike(outputs))
1048
1154
  if len(jvp_inputs) == 1:
1049
1155
  second_grad_net = _grad_single(grad_single)
1050
1156
  else:
@@ -1080,29 +1186,8 @@ def _jacrev_trans_item(item, outputs_shape):
1080
1186
 
1081
1187
 
1082
1188
  def _jacrev_postprocess(x, outputs_shape, grad_position):
1083
- """reformat jacobian."""
1084
- if isinstance(x, tuple):
1085
- jacobian = ()
1086
- for item in x:
1087
- jacobian += _jacrev_trans_item(item, outputs_shape)
1088
- res = jacobian
1089
- else:
1090
- res = _jacrev_trans_item(x, outputs_shape)
1091
- if len(res) == 1:
1092
- return res[0]
1093
- input_num = len(grad_position)
1094
- if len(res) % input_num != 0:
1095
- raise ValueError("The numbers of inputs and outputs do not match.")
1096
- output_num = len(res) // input_num
1097
- if input_num == 1 or output_num == 1:
1098
- return res
1099
- jac = ()
1100
- for i in range(output_num):
1101
- input_grad = ()
1102
- for j in range(input_num):
1103
- input_grad += (res[j * output_num + i],)
1104
- jac += (input_grad,)
1105
- return jac
1189
+ """reformat reverse-computed jacobian."""
1190
+ return _jac_postprocess(x, outputs_shape, grad_position, 'reverse')
1106
1191
 
1107
1192
 
1108
1193
  def _jacrev_construct_v(inputs, outputs, has_aux=False):
@@ -1126,7 +1211,7 @@ def _jacrev_construct_v(inputs, outputs, has_aux=False):
1126
1211
  outputs_shape += ((item.shape, num),)
1127
1212
  items_num += (item_num,)
1128
1213
  cum_num += (num,)
1129
- for i, element in enumerate(inputs):
1214
+ for element in inputs:
1130
1215
  primal = broadcast_to(element, (num,) + element.shape)
1131
1216
  primals += (primal,)
1132
1217
  for i, element in enumerate(outputs):
@@ -1145,18 +1230,17 @@ _grad = _Grad(get_by_position=True, has_aux=False, sens_param=True)
1145
1230
  def jacrev(fn, grad_position=0, has_aux=False):
1146
1231
  """
1147
1232
  Compute Jacobian via reverse mode, corresponding to
1148
- `reverse-mode differentiation <https://www.mindspore.cn/docs/en/r2.0.0-alpha/design/auto_gradient.html
1149
- #reverse-mode-ad>`_.
1233
+ `reverse-mode differentiation <https://www.mindspore.cn/docs/en/r2.0/design/auto_gradient.html#reverse-mode-ad>`_.
1150
1234
  When number of inputs is much greater than that of outputs, it's better to calculate Jacobian via reverse mode than
1151
1235
  forward mode to get better performance.
1152
1236
 
1153
1237
  Args:
1154
1238
  fn (Union[Cell, Function]): Function to do GradOperation.
1155
- grad_position (Union[int, tuple[int]]): If int, get the gradient with respect to single input.
1239
+ grad_position (Union[int, tuple[int]], optional): If int, get the gradient with respect to single input.
1156
1240
  If tuple, get the gradients with respect to selected inputs. 'grad_position' begins with 0. Default: 0.
1157
- has_aux (bool): If True, only the first output of `fn` contributes the gradient of `fn`, while the other outputs
1158
- will be returned straightly. It means the `fn` must return more than one outputs in this case.
1159
- Default: False.
1241
+ has_aux (bool, optional): If True, only the first output of `fn` contributes the gradient of `fn`,
1242
+ while the other outputs will be returned straightly. It means the `fn` must return more than
1243
+ one outputs in this case. Default: False.
1160
1244
 
1161
1245
  Returns:
1162
1246
  Function, returns the Jacobian function for the input function or cell.
@@ -1277,7 +1361,7 @@ def stop_gradient(value):
1277
1361
  StopGradient is used for eliminating the effect of a value on the gradient, such as truncating
1278
1362
  the gradient propagation from an output of a function.
1279
1363
  For more details, please refer to `Stop Gradient
1280
- <https://www.mindspore.cn/tutorials/en/r2.0.0-alpha/beginner/autograd.html#stop-gradient>`_.
1364
+ <https://www.mindspore.cn/tutorials/en/r2.0/beginner/autograd.html#stop-gradient>`_.
1281
1365
 
1282
1366
  Args:
1283
1367
  value (Any): The value whose effect on the gradient to be eliminated.
@@ -1319,6 +1403,7 @@ __all__ = [
1319
1403
  'jvp',
1320
1404
  'vjp',
1321
1405
  'linearize',
1322
- 'stop_gradient'
1406
+ 'stop_gradient',
1407
+ 'get_grad'
1323
1408
  ]
1324
1409
  __all__.sort()
@@ -26,18 +26,17 @@ from .._primitive_cache import _get_cache_prim
26
26
  def bounding_box_decode(anchor_box, deltas, max_shape, means=(0.0, 0.0, 0.0, 0.0), stds=(1.0, 1.0, 1.0, 1.0),
27
27
  wh_ratio_clip=0.016):
28
28
  r"""
29
- Decodes bounding boxes locations.
30
-
31
- The function of the operator is to calculate the offset, and this operator converts the offset into a Bbox,
32
- which is used to mark the target in the subsequent images, etc.
29
+ Decode the bounding box locations, calculate the offset, and convert the offset into a Bbox, which is used to mark
30
+ the target in the subsequent images, etc.
33
31
 
34
32
  Args:
35
33
  anchor_box (Tensor): Anchor boxes. The shape of `anchor_box` must be :math:`(n, 4)`.
36
34
  deltas (Tensor): Delta of boxes. Which has the same shape with `anchor_box`.
37
35
  max_shape (tuple): The max size limit for decoding box calculation.
38
- means (tuple): The means of `deltas` calculation. Default: (0.0, 0.0, 0.0, 0.0).
39
- stds (tuple): The standard deviations of `deltas` calculation. Default: (1.0, 1.0, 1.0, 1.0).
40
- wh_ratio_clip (float): The limit of width and height ratio for decoding box calculation. Default: 0.016.
36
+ means (tuple, optional): The means of `deltas` calculation. Default: (0.0, 0.0, 0.0, 0.0).
37
+ stds (tuple, optional): The standard deviations of `deltas` calculation. Default: (1.0, 1.0, 1.0, 1.0).
38
+ wh_ratio_clip (float, optional): The limit of width and height ratio for decoding box calculation.
39
+ Default: 0.016.
41
40
 
42
41
  Returns:
43
42
  Tensor, decoded boxes. It has the same data type and shape as `anchor_box`.
@@ -66,16 +65,14 @@ def bounding_box_decode(anchor_box, deltas, max_shape, means=(0.0, 0.0, 0.0, 0.0
66
65
 
67
66
  def bounding_box_encode(anchor_box, groundtruth_box, means=(0.0, 0.0, 0.0, 0.0), stds=(1.0, 1.0, 1.0, 1.0)):
68
67
  r"""
69
- Encodes bounding boxes locations.
70
-
71
- This operator will calculate the offset between the predicted bounding boxes and the real bounding boxes,
72
- and this offset will be used as a variable for the loss.
68
+ Encode the bounding box locations, calculate the offset between the predicted bounding boxes and
69
+ the real bounding boxes, and the offset will be used as a variable for the loss.
73
70
 
74
71
  Args:
75
72
  anchor_box (Tensor): Anchor boxes. The shape of `anchor_box` must be :math:`(n, 4)`.
76
73
  groundtruth_box (Tensor): Ground truth boxes. Which has the same shape with `anchor_box`.
77
- means (tuple): Means for encoding bounding boxes calculation. Default: (0.0, 0.0, 0.0, 0.0).
78
- stds (tuple): The standard deviations of deltas calculation. Default: (1.0, 1.0, 1.0, 1.0).
74
+ means (tuple, optional): Means for encoding bounding boxes calculation. Default: (0.0, 0.0, 0.0, 0.0).
75
+ stds (tuple, optional): The standard deviations of deltas calculation. Default: (1.0, 1.0, 1.0, 1.0).
79
76
 
80
77
  Returns:
81
78
  Tensor, encoded bounding boxes. It has the same data type and shape as input `anchor_box`.
@@ -103,18 +100,36 @@ def bounding_box_encode(anchor_box, groundtruth_box, means=(0.0, 0.0, 0.0, 0.0),
103
100
 
104
101
  def check_valid(bboxes, img_metas):
105
102
  r"""
106
- Checks bounding box.
103
+ Checks whether the bounding box is in the image.
104
+
105
+ `bboxes` contain several sets of bounding boxes, each represented by two abscissa points :math:`(x0, x1)` and
106
+ two ordinate points :math:`(y0, y1)` .
107
+ `img_metas` provides information about the original image, including three parameters
108
+ :math:`(height, width, ratio)` , which specify the valid boundary of the image.
109
+
110
+ when the following conditions are met:
111
+
112
+ :math:`x0 >= 0`
107
113
 
108
- Checks whether the bounding box cross data and data border are valid.
114
+ :math:`y0 >= 0`
115
+
116
+ :math:`x1 <= width * ratio - 1`
117
+
118
+ :math:`y1 <= height * ratio - 1`
119
+
120
+ the bounding box is considered to be within the image.
109
121
 
110
122
  .. warning::
111
- Boundary(heights * ratio, widths * ratio) specified by `bboxes` is required to be valid.
123
+ The bounding box specified by `bboxes` and the image information specified by `img_metas` need to be valid,
124
+ i.e.:
125
+ :math:`x0 <= x1` , :math:`y0 <= y1` , and :math:`(height, width, ratio)` are all positive.
112
126
 
113
127
  Args:
114
- bboxes (Tensor): Bounding boxes tensor with shape :math:`(N, 4)`. :math:`N` indicates the number of
115
- bounding boxes, the value `4` indicates `x0`, `x1`, `y0`, and `y1`. Data type must be float16 or float32.
116
- img_metas (Tensor): Raw image size information with the format of `(height, width, ratio)`, specifying
117
- the valid boundary `(height * ratio, width * ratio)`. Data type must be float16 or float32.
128
+ bboxes (Tensor): Bounding boxes tensor with shape :math:`(N, 4)` . :math:`N` indicates the number of
129
+ bounding boxes, the value `4` indicates four coordinate points :math:`(x0, y0, x1, y1)` . Data type must
130
+ be float16 or float32.
131
+ img_metas (Tensor): Raw image size information with the format of :math:`(height, width, ratio)` , specifying
132
+ the valid boundary :math:`(height * ratio - 1, width * ratio - 1)` . Data type must be float16 or float32.
118
133
 
119
134
  Returns:
120
135
  Tensor, with shape of :math:`(N,)` and dtype of bool, specifying whether the bounding boxes is in the image.
@@ -139,7 +154,7 @@ def check_valid(bboxes, img_metas):
139
154
 
140
155
 
141
156
  def crop_and_resize(image, boxes, box_indices, crop_size, method="bilinear", extrapolation_value=0.0):
142
- """
157
+ r"""
143
158
  Extracts crops from the input image Tensor and resizes them.
144
159
 
145
160
  Note:
@@ -147,28 +162,29 @@ def crop_and_resize(image, boxes, box_indices, crop_size, method="bilinear", ext
147
162
  For now, the backward of the operator only support bilinear method, for other methods, will return 0.
148
163
 
149
164
  Args:
150
- image (Tensor): The input image must be a 4-D tensor of shape (batch, image_height, image_width, depth).
151
- Types allowed: int8, int16, int32, int64, float16, float32, float64, uint8, uint16.
152
- boxes (Tensor): A 2-D tensor of shape [num_boxes, 4].
153
- The i-th row of the tensor specifies the coordinates of a box in the box_ind[i] image
154
- and is specified in normalized coordinates [y1, x1, y2, x2]. A normalized coordinate value of y is mapped to
155
- the image coordinate at y * (image_height - 1), so as the [0, 1] interval of normalized image height is
156
- mapped to [0, image_height - 1] in image height coordinates. We do allow y1 > y2, in which case the sampled
157
- crop is an up-down flipped version of the original image. The width dimension is treated similarly.
158
- Normalized coordinates outside the [0, 1] range are allowed, in which case we use extrapolation_value to
159
- extrapolate the input image values. Types allowed: float32.
160
- box_indices (Tensor): A 1-D tensor of shape [num_boxes] with int32 values in [0, batch).
161
- The value of box_ind[i] specifies the image that the i-th box refers to. Types allowed: int32.
162
- crop_size (Tuple[int]): A tuple of two int32 elements: (crop_height, crop_width).
163
- Only constant value is allowed. All cropped image patches are resized to this size.
164
- The aspect ratio of the image content is not preserved. Both crop_height and crop_width need to be positive.
165
+ image (Tensor): A 4-D Tensor representing a batch of images. It has shape
166
+ :math:`(batch, image\_height, image\_width, depth)`.
167
+ boxes (Tensor): A 2-D Tensor with shape :math:`(num\_boxes, 4)` representing the normalized
168
+ coordinates of the boxes to be cropped. The coordinates are specified in the
169
+ form :math:`[y1, x1, y2, x2]`, where :math:`(y1, x1)` is the first corner
170
+ and :math:`(y2, x2)` is the second corner of the box.
171
+ If :math:`y1 > y2`, the sampled crop is inverted upside down, the width dimensionis treated
172
+ similarly when :math:`x1 > x2`. If normalized coordinates are not in range :math:`[0, 1]`,
173
+ extrapolated input image values are used instead. Supported data type: float32.
174
+ box_indices (Tensor): A 1-D Tensor of shape :math:`\text{num\_boxes}` representing the batch
175
+ index for each box. Supported type: int32.
176
+ crop_size (Tuple[int]): A tuple of two elements: (crop_height, crop_width), representing
177
+ the output size of the cropped and resized images.
178
+ Only positive values are supported. Supported type: int32.
165
179
  method (str, optional): An optional string that specifies the sampling method for resizing.
166
180
  It can be "bilinear", "nearest" or "bilinear_v2". The option "bilinear" stands for standard bilinear
167
- interpolation algorithm, while "bilinear_v2" may result in better result in some cases. Default: "bilinear"
181
+ interpolation algorithm, while "bilinear_v2" may result in better result in some cases.
182
+ "nearest" is the nearest neighbor interpolation algorithm.
183
+ Default: "bilinear".
168
184
  extrapolation_value (float, optional): An optional float value used extrapolation, if applicable. Default: 0.0.
169
185
 
170
186
  Returns:
171
- A 4-D tensor of shape [num_boxes, crop_height, crop_width, depth] with type(float32).
187
+ A 4-D tensor of shape :math:`(num_boxes, crop_height, crop_width, depth)` with type(float32).
172
188
 
173
189
  Raises:
174
190
  TypeError: If `image` or `boxes` or `box_indices` is not a Tensor.