mindspore 2.1.0__cp38-none-any.whl → 2.2.0__cp38-none-any.whl

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

Potentially problematic release.


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

Files changed (539) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +4 -1
  3. mindspore/_akg/akg/build_module.py +5 -6
  4. mindspore/_akg/akg/composite/build_module.py +49 -16
  5. mindspore/_akg/akg/composite/split_stitch.py +10 -11
  6. mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
  7. mindspore/_akg/akg/tvm/api.py +4 -3
  8. mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
  9. mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
  10. mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
  11. mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
  12. mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
  13. mindspore/_akg/akg/tvm/build_module.py +16 -1
  14. mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
  15. mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
  16. mindspore/_akg/akg/tvm/ir_builder.py +1 -1
  17. mindspore/_akg/akg/tvm/module.py +1 -2
  18. mindspore/_akg/akg/tvm/stmt.py +2 -2
  19. mindspore/_akg/akg/utils/composite_op_helper.py +9 -10
  20. mindspore/_akg/akg/utils/kernel_exec.py +58 -260
  21. mindspore/_akg/akg/utils/result_analysis.py +4 -24
  22. mindspore/_akg/akg/utils/tbe_codegen_utils.py +198 -0
  23. mindspore/_c_dataengine.cpython-38-aarch64-linux-gnu.so +0 -0
  24. mindspore/_c_expression.cpython-38-aarch64-linux-gnu.so +0 -0
  25. mindspore/_c_mindrecord.cpython-38-aarch64-linux-gnu.so +0 -0
  26. mindspore/_check_jit_forbidden_api.py +3 -1
  27. mindspore/_checkparam.py +26 -32
  28. mindspore/_extends/graph_kernel/__init__.py +0 -1
  29. mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
  30. mindspore/_extends/graph_kernel/splitter.py +1 -9
  31. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
  32. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +2 -2
  33. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
  34. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
  35. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +4 -4
  36. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
  37. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
  38. mindspore/_extends/parse/__init__.py +12 -15
  39. mindspore/_extends/parse/namespace.py +7 -33
  40. mindspore/_extends/parse/parser.py +61 -71
  41. mindspore/_extends/parse/resources.py +1 -1
  42. mindspore/_extends/parse/standard_method.py +72 -95
  43. mindspore/_extends/parse/trope.py +1 -1
  44. mindspore/_extends/remote/kernel_build_server.py +24 -7
  45. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  46. mindspore/_install_custom.py +43 -0
  47. mindspore/_mindspore_offline_debug.cpython-38-aarch64-linux-gnu.so +0 -0
  48. mindspore/amp.py +47 -11
  49. mindspore/bin/cache_admin +0 -0
  50. mindspore/bin/cache_server +0 -0
  51. mindspore/boost/boost.py +1 -8
  52. mindspore/boost/boost_cell_wrapper.py +3 -2
  53. mindspore/boost/grad_accumulation.py +1 -1
  54. mindspore/boost/group_loss_scale_manager.py +8 -7
  55. mindspore/common/__init__.py +5 -3
  56. mindspore/common/_jit_fallback_utils.py +6 -0
  57. mindspore/common/_register_for_adapter.py +2 -0
  58. mindspore/common/_register_for_tensor.py +2 -2
  59. mindspore/common/_stub_tensor.py +13 -0
  60. mindspore/common/_utils.py +13 -0
  61. mindspore/common/api.py +173 -258
  62. mindspore/common/auto_dynamic_shape.py +498 -0
  63. mindspore/common/dtype.py +18 -11
  64. mindspore/common/dump.py +6 -4
  65. mindspore/common/initializer.py +14 -14
  66. mindspore/common/jit_config.py +33 -15
  67. mindspore/common/lazy_inline.py +126 -7
  68. mindspore/common/mindir_util.py +101 -0
  69. mindspore/common/parameter.py +51 -41
  70. mindspore/common/seed.py +4 -4
  71. mindspore/common/sparse_tensor.py +13 -14
  72. mindspore/common/tensor.py +240 -145
  73. mindspore/communication/__init__.py +7 -4
  74. mindspore/communication/_comm_helper.py +83 -4
  75. mindspore/communication/management.py +152 -84
  76. mindspore/config/op_info.config +13 -2
  77. mindspore/config/super_bar_config.json +4 -2
  78. mindspore/context.py +143 -59
  79. mindspore/dataset/__init__.py +5 -5
  80. mindspore/dataset/audio/__init__.py +2 -2
  81. mindspore/dataset/audio/transforms.py +52 -52
  82. mindspore/dataset/callback/ds_callback.py +16 -2
  83. mindspore/dataset/core/config.py +68 -51
  84. mindspore/dataset/engine/cache_client.py +28 -5
  85. mindspore/dataset/engine/datasets.py +250 -112
  86. mindspore/dataset/engine/datasets_audio.py +43 -211
  87. mindspore/dataset/engine/datasets_standard_format.py +11 -35
  88. mindspore/dataset/engine/datasets_text.py +43 -67
  89. mindspore/dataset/engine/datasets_user_defined.py +86 -100
  90. mindspore/dataset/engine/datasets_vision.py +219 -1029
  91. mindspore/dataset/engine/iterators.py +11 -4
  92. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
  93. mindspore/dataset/engine/obs/util.py +3 -0
  94. mindspore/dataset/engine/samplers.py +1 -1
  95. mindspore/dataset/engine/validators.py +19 -5
  96. mindspore/dataset/text/__init__.py +3 -3
  97. mindspore/dataset/text/transforms.py +101 -127
  98. mindspore/dataset/text/utils.py +205 -138
  99. mindspore/dataset/transforms/__init__.py +1 -1
  100. mindspore/dataset/transforms/py_transforms_util.py +40 -12
  101. mindspore/dataset/transforms/transforms.py +95 -40
  102. mindspore/dataset/utils/browse_dataset.py +8 -2
  103. mindspore/dataset/utils/line_reader.py +17 -19
  104. mindspore/dataset/vision/__init__.py +3 -3
  105. mindspore/dataset/vision/c_transforms.py +6 -3
  106. mindspore/dataset/vision/transforms.py +409 -287
  107. mindspore/dataset/vision/utils.py +13 -14
  108. mindspore/dataset/vision/validators.py +11 -1
  109. mindspore/experimental/map_parameter.py +14 -0
  110. mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
  111. mindspore/{nn/optim_ex → experimental/optim}/adam.py +59 -66
  112. mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
  113. mindspore/experimental/optim/lr_scheduler.py +1427 -0
  114. mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
  115. mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
  116. mindspore/gen_ops.py +273 -0
  117. mindspore/include/OWNERS +0 -1
  118. mindspore/include/api/data_type.h +2 -1
  119. mindspore/include/api/graph.h +0 -15
  120. mindspore/include/api/kernel.h +2 -0
  121. mindspore/include/api/kernel_api.h +37 -12
  122. mindspore/include/api/model.h +0 -14
  123. mindspore/include/api/types.h +37 -4
  124. mindspore/include/c_api/ms/abstract.h +67 -0
  125. mindspore/include/c_api/ms/attribute.h +197 -0
  126. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  127. mindspore/include/c_api/ms/base/macros.h +32 -0
  128. mindspore/include/c_api/ms/base/status.h +33 -0
  129. mindspore/include/c_api/ms/base/types.h +282 -0
  130. mindspore/include/c_api/ms/context.h +102 -0
  131. mindspore/include/c_api/ms/graph.h +160 -0
  132. mindspore/include/c_api/ms/node.h +606 -0
  133. mindspore/include/c_api/ms/tensor.h +161 -0
  134. mindspore/include/c_api/ms/value.h +84 -0
  135. mindspore/include/dataset/constants.h +6 -5
  136. mindspore/include/dataset/execute.h +23 -13
  137. mindspore/include/dataset/text.h +26 -26
  138. mindspore/include/dataset/transforms.h +13 -13
  139. mindspore/include/dataset/vision.h +60 -60
  140. mindspore/include/dataset/vision_ascend.h +5 -6
  141. mindspore/include/dataset/vision_lite.h +17 -17
  142. mindspore/include/mindapi/base/type_id.h +1 -0
  143. mindspore/include/mindapi/base/types.h +1 -0
  144. mindspore/lib/libdnnl.so.2 +0 -0
  145. mindspore/lib/libjemalloc.so.2 +0 -0
  146. mindspore/lib/libmindspore.so +0 -0
  147. mindspore/lib/libmindspore_backend.so +0 -0
  148. mindspore/lib/libmindspore_common.so +0 -0
  149. mindspore/lib/libmindspore_core.so +0 -0
  150. mindspore/lib/libmindspore_glog.so.0 +0 -0
  151. mindspore/lib/libmindspore_gpr.so.15 +0 -0
  152. mindspore/lib/libmindspore_grpc++.so.1 +0 -0
  153. mindspore/lib/libmindspore_grpc.so.15 +0 -0
  154. mindspore/lib/libmindspore_shared_lib.so +0 -0
  155. mindspore/lib/libnnacl.so +0 -0
  156. mindspore/lib/libopencv_core.so.4.5 +0 -0
  157. mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
  158. mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
  159. mindspore/lib/libps_cache.so +0 -0
  160. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
  161. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
  162. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +9000 -0
  163. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
  164. mindspore/lib/plugin/ascend/libakg.so +0 -0
  165. mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
  166. mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
  167. mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
  168. mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
  169. mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
  170. mindspore/lib/plugin/cpu/libakg.so +0 -0
  171. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  172. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  173. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  174. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  175. mindspore/nn/__init__.py +0 -2
  176. mindspore/nn/cell.py +316 -74
  177. mindspore/nn/dynamic_lr.py +21 -21
  178. mindspore/nn/layer/activation.py +21 -28
  179. mindspore/nn/layer/basic.py +15 -13
  180. mindspore/nn/layer/channel_shuffle.py +1 -1
  181. mindspore/nn/layer/container.py +271 -9
  182. mindspore/nn/layer/conv.py +310 -207
  183. mindspore/nn/layer/dense.py +8 -5
  184. mindspore/nn/layer/embedding.py +33 -27
  185. mindspore/nn/layer/flash_attention.py +82 -41
  186. mindspore/nn/layer/image.py +8 -6
  187. mindspore/nn/layer/math.py +13 -18
  188. mindspore/nn/layer/normalization.py +107 -66
  189. mindspore/nn/layer/padding.py +1 -1
  190. mindspore/nn/layer/pooling.py +131 -109
  191. mindspore/nn/layer/rnn_cells.py +22 -17
  192. mindspore/nn/layer/rnns.py +13 -16
  193. mindspore/nn/layer/thor_layer.py +1 -1
  194. mindspore/nn/layer/transformer.py +221 -154
  195. mindspore/nn/learning_rate_schedule.py +9 -1
  196. mindspore/nn/loss/loss.py +235 -174
  197. mindspore/nn/optim/ada_grad.py +2 -1
  198. mindspore/nn/optim/adadelta.py +1 -0
  199. mindspore/nn/optim/adafactor.py +2 -1
  200. mindspore/nn/optim/adam.py +7 -4
  201. mindspore/nn/optim/adamax.py +3 -2
  202. mindspore/nn/optim/adasum.py +2 -2
  203. mindspore/nn/optim/asgd.py +2 -3
  204. mindspore/nn/optim/ftrl.py +6 -5
  205. mindspore/nn/optim/lamb.py +7 -4
  206. mindspore/nn/optim/lars.py +1 -1
  207. mindspore/nn/optim/lazyadam.py +5 -3
  208. mindspore/nn/optim/momentum.py +2 -1
  209. mindspore/nn/optim/optimizer.py +53 -4
  210. mindspore/nn/optim/proximal_ada_grad.py +3 -4
  211. mindspore/nn/optim/rmsprop.py +4 -3
  212. mindspore/nn/optim/rprop.py +23 -12
  213. mindspore/nn/optim/sgd.py +26 -11
  214. mindspore/nn/optim/thor.py +9 -7
  215. mindspore/nn/probability/bijector/bijector.py +5 -5
  216. mindspore/nn/probability/bijector/power_transform.py +27 -27
  217. mindspore/nn/probability/bijector/softplus.py +3 -3
  218. mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
  219. mindspore/nn/probability/distribution/bernoulli.py +5 -5
  220. mindspore/nn/probability/distribution/beta.py +3 -3
  221. mindspore/nn/probability/distribution/categorical.py +7 -7
  222. mindspore/nn/probability/distribution/cauchy.py +0 -1
  223. mindspore/nn/probability/distribution/distribution.py +3 -3
  224. mindspore/nn/probability/distribution/gamma.py +3 -3
  225. mindspore/nn/probability/distribution/geometric.py +4 -4
  226. mindspore/nn/probability/distribution/gumbel.py +4 -4
  227. mindspore/nn/probability/distribution/log_normal.py +2 -2
  228. mindspore/nn/probability/distribution/logistic.py +2 -2
  229. mindspore/nn/probability/distribution/poisson.py +4 -4
  230. mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
  231. mindspore/nn/probability/distribution/uniform.py +6 -6
  232. mindspore/nn/wrap/cell_wrapper.py +78 -34
  233. mindspore/nn/wrap/grad_reducer.py +8 -5
  234. mindspore/nn/wrap/loss_scale.py +105 -42
  235. mindspore/numpy/array_creations.py +1 -2
  236. mindspore/numpy/array_ops.py +3 -2
  237. mindspore/offline_debug/convert_async.py +2 -2
  238. mindspore/ops/_grad_experimental/__init__.py +0 -5
  239. mindspore/ops/_grad_experimental/grad_array_ops.py +1 -2
  240. mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
  241. mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
  242. mindspore/ops/_grad_experimental/grad_implementations.py +10 -0
  243. mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
  244. mindspore/ops/_grad_experimental/grad_math_ops.py +0 -181
  245. mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
  246. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  247. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +165 -109
  248. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +144 -86
  249. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +172 -187
  250. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +51 -57
  251. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +6 -17
  252. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +1 -1
  253. mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
  254. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  255. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  256. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  257. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  258. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  259. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  260. mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
  261. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  262. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  263. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  264. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  265. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  266. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  267. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  268. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
  269. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
  270. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  271. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  272. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  273. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  274. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  275. mindspore/ops/_op_impl/tbe/__init__.py +4 -4
  276. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  277. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  278. mindspore/ops/_primitive_cache.py +1 -1
  279. mindspore/ops/_tracefunc.py +45 -13
  280. mindspore/ops/_utils/utils.py +4 -1
  281. mindspore/ops/_vmap/vmap_array_ops.py +3 -3
  282. mindspore/ops/_vmap/vmap_base.py +3 -3
  283. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  284. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  285. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  286. mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
  287. mindspore/ops/arg_dtype_cast.py +54 -0
  288. mindspore/ops/composite/base.py +37 -10
  289. mindspore/ops/composite/math_ops.py +5 -4
  290. mindspore/ops/composite/multitype_ops/_compile_utils.py +273 -72
  291. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
  292. mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
  293. mindspore/ops/composite/multitype_ops/getitem_impl.py +40 -2
  294. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  295. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  296. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  297. mindspore/ops/deprecated.py +304 -0
  298. mindspore/ops/function/__init__.py +4 -1
  299. mindspore/ops/function/array_func.py +167 -189
  300. mindspore/ops/function/clip_func.py +81 -13
  301. mindspore/ops/function/debug_func.py +1 -1
  302. mindspore/ops/function/grad/grad_func.py +18 -8
  303. mindspore/ops/function/image_func.py +10 -4
  304. mindspore/ops/function/linalg_func.py +5 -5
  305. mindspore/ops/function/math_func.py +575 -386
  306. mindspore/ops/function/nn_func.py +470 -251
  307. mindspore/ops/function/random_func.py +86 -56
  308. mindspore/ops/function/sparse_func.py +1 -1
  309. mindspore/ops/function/sparse_unary_func.py +14 -12
  310. mindspore/ops/function/vmap_func.py +6 -5
  311. mindspore/ops/functional.py +15 -10
  312. mindspore/ops/op_info_register.py +235 -19
  313. mindspore/ops/operations/__init__.py +25 -17
  314. mindspore/ops/operations/_grad_ops.py +52 -7
  315. mindspore/ops/operations/_inner_ops.py +213 -12
  316. mindspore/ops/operations/_quant_ops.py +4 -8
  317. mindspore/ops/operations/_sequence_ops.py +42 -0
  318. mindspore/ops/operations/array_ops.py +64 -280
  319. mindspore/ops/operations/comm_ops.py +105 -57
  320. mindspore/ops/operations/custom_ops.py +10 -3
  321. mindspore/ops/operations/debug_ops.py +8 -4
  322. mindspore/ops/operations/image_ops.py +18 -12
  323. mindspore/ops/operations/math_ops.py +185 -138
  324. mindspore/ops/operations/nn_ops.py +716 -492
  325. mindspore/ops/operations/other_ops.py +0 -22
  326. mindspore/ops/operations/random_ops.py +53 -111
  327. mindspore/ops/operations/sparse_ops.py +3 -1
  328. mindspore/ops/primitive.py +24 -18
  329. mindspore/parallel/_auto_parallel_context.py +68 -8
  330. mindspore/parallel/_cost_model_context.py +2 -2
  331. mindspore/parallel/_offload_context.py +17 -3
  332. mindspore/parallel/_parallel_serialization.py +2 -2
  333. mindspore/parallel/_ps_context.py +12 -0
  334. mindspore/parallel/_tensor.py +14 -12
  335. mindspore/parallel/_transformer/layers.py +5 -3
  336. mindspore/parallel/_transformer/loss.py +1 -0
  337. mindspore/parallel/_transformer/moe.py +2 -2
  338. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  339. mindspore/parallel/_transformer/transformer.py +23 -3
  340. mindspore/parallel/_utils.py +11 -7
  341. mindspore/parallel/algo_parameter_config.py +85 -5
  342. mindspore/parallel/checkpoint_transform.py +6 -10
  343. mindspore/parallel/shard.py +4 -4
  344. mindspore/profiler/common/struct_type.py +3 -3
  345. mindspore/profiler/common/util.py +3 -2
  346. mindspore/profiler/envprofiling.py +1 -1
  347. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  348. mindspore/profiler/parser/ascend_flops_generator.py +2 -2
  349. mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
  350. mindspore/profiler/parser/ascend_hccl_generator.py +17 -12
  351. mindspore/profiler/parser/ascend_msprof_exporter.py +104 -252
  352. mindspore/profiler/parser/ascend_msprof_generator.py +8 -8
  353. mindspore/profiler/parser/ascend_op_generator.py +5 -5
  354. mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
  355. mindspore/profiler/parser/ascend_timeline_generator.py +9 -6
  356. mindspore/profiler/parser/base_timeline_generator.py +9 -7
  357. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +14 -10
  358. mindspore/profiler/parser/flops_parser.py +15 -11
  359. mindspore/profiler/parser/framework_parser.py +37 -21
  360. mindspore/profiler/parser/hccl_parser.py +16 -12
  361. mindspore/profiler/parser/integrator.py +22 -11
  362. mindspore/profiler/parser/memory_usage_parser.py +2 -2
  363. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  364. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  365. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  366. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  367. mindspore/profiler/parser/optime_parser.py +1 -1
  368. mindspore/profiler/parser/profiler_info.py +2 -2
  369. mindspore/profiler/parser/step_trace_parser.py +11 -14
  370. mindspore/profiler/profiling.py +139 -71
  371. mindspore/rewrite/api/node.py +102 -19
  372. mindspore/rewrite/api/node_type.py +5 -1
  373. mindspore/rewrite/api/scoped_value.py +9 -17
  374. mindspore/rewrite/api/symbol_tree.py +131 -47
  375. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  376. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  377. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  378. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
  379. mindspore/rewrite/common/rewrite_elog.py +5 -1
  380. mindspore/rewrite/namer.py +33 -24
  381. mindspore/rewrite/namespace.py +14 -5
  382. mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
  383. mindspore/rewrite/node/call_function.py +79 -0
  384. mindspore/rewrite/node/cell_container.py +135 -0
  385. mindspore/rewrite/node/control_flow.py +88 -0
  386. mindspore/rewrite/{node.py → node/node.py} +273 -234
  387. mindspore/rewrite/node/node_manager.py +254 -0
  388. mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
  389. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  390. mindspore/rewrite/parsers/assign_parser.py +216 -221
  391. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  392. mindspore/rewrite/parsers/class_def_parser.py +174 -113
  393. mindspore/rewrite/parsers/constant_parser.py +9 -6
  394. mindspore/rewrite/parsers/container_parser.py +9 -7
  395. mindspore/rewrite/parsers/for_parser.py +36 -15
  396. mindspore/rewrite/parsers/function_def_parser.py +24 -16
  397. mindspore/rewrite/parsers/if_parser.py +28 -24
  398. mindspore/rewrite/parsers/module_parser.py +196 -25
  399. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  400. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  401. mindspore/rewrite/parsers/return_parser.py +6 -6
  402. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  403. mindspore/rewrite/sparsify/utils.py +1 -1
  404. mindspore/rewrite/symbol_tree.py +525 -577
  405. mindspore/rewrite/symbol_tree_builder.py +9 -193
  406. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  407. mindspore/run_check/_check_version.py +2 -2
  408. mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
  409. mindspore/safeguard/rewrite_obfuscation.py +517 -0
  410. mindspore/scipy/linalg.py +1 -1
  411. mindspore/scipy/optimize/minimize.py +7 -3
  412. mindspore/train/_utils.py +7 -3
  413. mindspore/train/amp.py +323 -123
  414. mindspore/train/anf_ir_pb2.py +14 -2
  415. mindspore/train/callback/_backup_and_restore.py +2 -12
  416. mindspore/train/callback/_callback.py +29 -4
  417. mindspore/train/callback/_checkpoint.py +23 -8
  418. mindspore/train/callback/_early_stop.py +2 -2
  419. mindspore/train/callback/_landscape.py +4 -4
  420. mindspore/train/callback/_loss_monitor.py +2 -2
  421. mindspore/train/callback/_on_request_exit.py +2 -2
  422. mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
  423. mindspore/train/callback/_summary_collector.py +14 -7
  424. mindspore/train/callback/_time_monitor.py +58 -5
  425. mindspore/train/data_sink.py +5 -11
  426. mindspore/train/dataset_helper.py +83 -57
  427. mindspore/train/loss_scale_manager.py +2 -2
  428. mindspore/train/metrics/__init__.py +3 -3
  429. mindspore/train/metrics/cosine_similarity.py +1 -1
  430. mindspore/train/metrics/hausdorff_distance.py +3 -2
  431. mindspore/train/metrics/mean_surface_distance.py +3 -2
  432. mindspore/train/metrics/metric.py +39 -19
  433. mindspore/train/metrics/roc.py +2 -2
  434. mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
  435. mindspore/train/mind_ir_pb2.py +85 -36
  436. mindspore/train/model.py +185 -45
  437. mindspore/train/serialization.py +390 -150
  438. mindspore/train/summary/_writer_pool.py +3 -2
  439. mindspore/train/summary/summary_record.py +14 -10
  440. mindspore/train/train_thor/convert_utils.py +3 -3
  441. mindspore/train/train_thor/dataset_helper.py +1 -1
  442. mindspore/version.py +1 -1
  443. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/METADATA +6 -7
  444. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/RECORD +447 -507
  445. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/entry_points.txt +0 -1
  446. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  447. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  448. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  449. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  450. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  451. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  452. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  453. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  454. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  455. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  456. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  457. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  458. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  459. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  460. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  461. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  462. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  463. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  464. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  465. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  466. mindspore/_extends/graph_kernel/expander.py +0 -80
  467. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
  468. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  469. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  470. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  471. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  472. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  473. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  474. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  475. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  476. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  477. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  478. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  479. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  480. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  481. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  482. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  483. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  484. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  485. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  486. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  487. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  488. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  489. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  490. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  491. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  492. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  493. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  494. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  495. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  496. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  497. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  498. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  499. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  500. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  501. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  502. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  503. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  504. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  505. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  506. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  507. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  508. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  509. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  510. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  511. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  512. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  513. mindspore/dataset/datapreprocess/__init__.py +0 -20
  514. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  515. mindspore/include/api/net.h +0 -142
  516. mindspore/nn/lr_scheduler.py +0 -262
  517. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
  518. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
  519. mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
  520. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  521. mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
  522. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
  523. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
  524. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
  525. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  526. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  527. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
  528. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
  529. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  530. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  531. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
  532. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
  533. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
  534. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
  535. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
  536. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  537. mindspore/rewrite/node_visitor.py +0 -44
  538. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/WHEEL +0 -0
  539. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/top_level.txt +0 -0
@@ -266,10 +266,10 @@ def thor(net, learning_rate, damping, momentum, weight_decay=0.0, loss_scale=1.0
266
266
  \otimes\left(G_{i}^{(k)}+\lambda I\right)^{-1}\right) \nabla_{w_{i}} J^{(k)}
267
267
  \end{array}
268
268
 
269
- :math:`a_{i-1}` represents the input of i-th layer,and which is the activations of previous layer.
270
- :math:`D_{s_i}` represents the derivative of the loss function of the output of the i-th layer.
269
+ :math:`a_{i-1}` represents the input of :math:`i`-th layer,and which is the activations of previous layer.
270
+ :math:`D_{s_i}` represents the derivative of the loss function of the output of the :math:`i`-th layer.
271
271
  :math:`I` represents the identity matrix.
272
- :math:`\lambda` represents :math:`damping`, :math:`g_i` represents gradients of the i-th layer.
272
+ :math:`\lambda` represents :math:`damping`, :math:`g_i` represents gradients of the :math:`i`-th layer.
273
273
  :math:`\otimes` represents Kronecker product, :math:`\gamma` represents 'learning rate'.
274
274
 
275
275
  Note:
@@ -339,10 +339,10 @@ def thor(net, learning_rate, damping, momentum, weight_decay=0.0, loss_scale=1.0
339
339
  >>> from mindspore import Tensor
340
340
  >>>
341
341
  >>> # Define the network structure of LeNet5. Refer to
342
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/lenet.py
342
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/lenet.py
343
343
  >>> net = LeNet5()
344
344
  >>> # Create the dataset taking MNIST as an example. Refer to
345
- >>> # https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/mnist.py
345
+ >>> # https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/mnist.py
346
346
  >>> dataset = create_dataset()
347
347
  >>> temp = Tensor([4e-4, 1e-4, 1e-5, 1e-5], mstype.float32)
348
348
  >>> optim = nn.thor(net, learning_rate=temp, damping=temp, momentum=0.9, loss_scale=128, frequency=4)
@@ -424,7 +424,7 @@ class ThorGpu(Optimizer):
424
424
  self.matmul = P.MatMul()
425
425
  self.assign = P.Assign()
426
426
  self.mul = P.Mul()
427
- self.gather = P.GatherV2()
427
+ self.gather = P.Gather()
428
428
  self.one = Tensor(1, mstype.int32)
429
429
  self.feature_map = Tensor(1.0, mstype.float32)
430
430
  self.axis = 0
@@ -653,6 +653,7 @@ class ThorGpu(Optimizer):
653
653
  gradients = self.hyper_map(F.partial(apply_decay, self.weight_decay), self.decay_flags, params, gradients)
654
654
  gradients = clip_gradient(self.enable_clip_grad, gradients)
655
655
  lr = self.get_lr()
656
+ self.assignadd(self.global_step, self.global_step_increase_tensor)
656
657
  success = self.hyper_map(F.partial(_momentum_opt, self.opt, self.momentum, lr), gradients, params, moments)
657
658
  return success
658
659
 
@@ -739,7 +740,7 @@ class ThorAscend(Optimizer):
739
740
  self.log = P.Log()
740
741
  self.exp = P.Exp()
741
742
  self.sqrt = P.Sqrt()
742
- self.gather = P.GatherV2()
743
+ self.gather = P.Gather()
743
744
  self.assign = P.Assign()
744
745
  self.cast = P.Cast()
745
746
  self.eye = P.Eye()
@@ -1304,5 +1305,6 @@ class ThorAscend(Optimizer):
1304
1305
  gradients = self.hyper_map(F.partial(apply_decay, self.weight_decay), self.decay_flags, params, gradients)
1305
1306
  gradients = clip_gradient(self.enable_clip_grad, gradients)
1306
1307
  lr = self.get_lr()
1308
+ self.assignadd(self.global_step, self.global_step_increase_tensor)
1307
1309
  success = self.hyper_map(F.partial(_momentum_opt, self.opt, self.momentum, lr), gradients, params, moments)
1308
1310
  return success
@@ -16,6 +16,7 @@
16
16
  from mindspore import context
17
17
  from mindspore.nn.cell import Cell
18
18
  from mindspore.ops import operations as P
19
+ from mindspore.ops import functional as F
19
20
  from mindspore.ops.operations import _inner_ops as inner
20
21
  from mindspore.common import dtype as mstype
21
22
  from mindspore.common.tensor import Tensor
@@ -96,7 +97,6 @@ class Bijector(Cell):
96
97
  self.cast_base = P.Cast()
97
98
  self.dtype_base = P.DType()
98
99
  self.shape_base = P.Shape()
99
- self.fill_base = P.Fill()
100
100
  self.sametypeshape_base = inner.SameTypeShape()
101
101
  self.issubclass_base = inner.IsSubClass()
102
102
 
@@ -140,13 +140,13 @@ class Bijector(Cell):
140
140
  if self.issubclass_base(value_type, mstype.float_):
141
141
  return value
142
142
  return raise_type_error('input value of bijector', value_type, mstype.float_)
143
- dtype_tensor = self.fill_base(self.dtype, self.shape_base(value), 0.0)
143
+ dtype_tensor = F.fill(self.dtype, self.shape_base(value), 0.0)
144
144
  self.sametypeshape_base(value, dtype_tensor)
145
145
  return value
146
146
 
147
147
  def _shape_mapping(self, shape):
148
- shape_tensor = self.fill_base(self.parameter_type, shape, 0.0)
149
- dist_shape_tensor = self.fill_base(
148
+ shape_tensor = F.fill(self.parameter_type, shape, 0.0)
149
+ dist_shape_tensor = F.fill(
150
150
  self.parameter_type, self.batch_shape, 0.0)
151
151
  return (shape_tensor + dist_shape_tensor).shape
152
152
 
@@ -165,7 +165,7 @@ class Bijector(Cell):
165
165
  self.common_dtype = None
166
166
  # cast value to a tensor if it is not None
167
167
  if isinstance(value, bool) or value is None:
168
- raise TypeError("{} cannot be type {}".format(name, type(value)))
168
+ raise TypeError(f"{name} cannot be type {type(value)}")
169
169
  value_t = Tensor(value)
170
170
  # if the bijector's dtype is not specified
171
171
  if self.dtype is None:
@@ -14,6 +14,7 @@
14
14
  # ============================================================================
15
15
  """PowerTransform Bijector"""
16
16
  from mindspore.ops import operations as P
17
+ from mindspore.ops import functional as F
17
18
  from ..distribution._utils.utils import check_greater_equal_zero
18
19
  from ..distribution._utils.custom_ops import exp_generic, log_generic
19
20
  from .bijector import Bijector
@@ -68,10 +69,7 @@ class PowerTransform(Bijector):
68
69
  >>> print(ans4.shape)
69
70
  (3,)
70
71
  """
71
-
72
- def __init__(self,
73
- power=0.,
74
- name='PowerTransform'):
72
+ def __init__(self, power=0., name='PowerTransform'):
75
73
  param = dict(locals())
76
74
  param['param_dict'] = {'power': power}
77
75
  super(PowerTransform, self).__init__(name=name, param=param)
@@ -84,7 +82,6 @@ class PowerTransform(Bijector):
84
82
  self.equal_base = P.Equal()
85
83
  self.exp = exp_generic
86
84
  self.expm1 = P.Expm1()
87
- self.fill = P.Fill()
88
85
  self.log = log_generic
89
86
  self.log1p = P.Log1p()
90
87
  self.select_base = P.Select()
@@ -116,17 +113,18 @@ class PowerTransform(Bijector):
116
113
  power_local = self.cast_param_by_value(x, self.power)
117
114
 
118
115
  # broad cast the value of x and power
119
- ones = self.fill(self.dtypeop(power_local),
120
- self.shape(x + power_local), 1.)
116
+ ones = F.fill(self.dtypeop(power_local), self.shape(x + power_local),
117
+ 1.)
121
118
  power_local = power_local * ones
122
119
  x = x * ones
123
- safe_power = self.select_base(self.equal_base(power_local, P.ZerosLike()(power_local)),
124
- ones,
125
- power_local)
126
-
127
- forward_v = self.select_base(self.equal_base(power_local, P.ZerosLike()(power_local)),
128
- self.exp(x),
129
- self.exp(self.log1p(x * safe_power) / safe_power))
120
+ safe_power = self.select_base(
121
+ self.equal_base(power_local,
122
+ P.ZerosLike()(power_local)), ones, power_local)
123
+
124
+ forward_v = self.select_base(
125
+ self.equal_base(power_local,
126
+ P.ZerosLike()(power_local)), self.exp(x),
127
+ self.exp(self.log1p(x * safe_power) / safe_power))
130
128
  return forward_v
131
129
 
132
130
  def _inverse(self, y):
@@ -137,17 +135,18 @@ class PowerTransform(Bijector):
137
135
  power_local = self.cast_param_by_value(y, self.power)
138
136
 
139
137
  # broad cast the value of x and power
140
- ones = self.fill(self.dtypeop(power_local),
141
- self.shape(y + power_local), 1.)
138
+ ones = F.fill(self.dtypeop(power_local), self.shape(y + power_local),
139
+ 1.)
142
140
  power_local = power_local * ones
143
141
  y = y * ones
144
- safe_power = self.select_base(self.equal_base(power_local, P.ZerosLike()(power_local)),
145
- ones,
146
- power_local)
142
+ safe_power = self.select_base(
143
+ self.equal_base(power_local,
144
+ P.ZerosLike()(power_local)), ones, power_local)
147
145
 
148
- inverse_v = self.select_base(self.equal_base(power_local, P.ZerosLike()(power_local)),
149
- self.log(y),
150
- self.expm1(self.log(y) * safe_power) / safe_power)
146
+ inverse_v = self.select_base(
147
+ self.equal_base(power_local,
148
+ P.ZerosLike()(power_local)), self.log(y),
149
+ self.expm1(self.log(y) * safe_power) / safe_power)
151
150
 
152
151
  return inverse_v
153
152
 
@@ -167,14 +166,15 @@ class PowerTransform(Bijector):
167
166
  power_local = self.cast_param_by_value(x, self.power)
168
167
 
169
168
  # broad cast the value of x and power
170
- ones = self.fill(self.dtypeop(power_local),
171
- self.shape(x + power_local), 1.)
169
+ ones = F.fill(self.dtypeop(power_local), self.shape(x + power_local),
170
+ 1.)
172
171
  power_local = power_local * ones
173
172
  x = x * ones
174
173
 
175
- forward_log_j = self.select_base(self.equal_base(power_local, P.ZerosLike()(power_local)),
176
- x,
177
- (1. / power_local - 1) * self.log1p(x * power_local))
174
+ forward_log_j = self.select_base(
175
+ self.equal_base(power_local,
176
+ P.ZerosLike()(power_local)), x,
177
+ (1. / power_local - 1) * self.log1p(x * power_local))
178
178
 
179
179
  return forward_log_j
180
180
 
@@ -15,6 +15,7 @@
15
15
  """Softplus Bijector"""
16
16
  import numpy as np
17
17
  from mindspore.ops import operations as P
18
+ from mindspore.ops import functional as F
18
19
  from mindspore.nn.layer.activation import LogSigmoid
19
20
  from ..distribution._utils.custom_ops import exp_generic, log_generic
20
21
  from .bijector import Bijector
@@ -84,7 +85,6 @@ class Softplus(Bijector):
84
85
  self.abs = P.Abs()
85
86
  self.dtypeop = P.DType()
86
87
  self.cast = P.Cast()
87
- self.fill = P.Fill()
88
88
  self.greater = P.Greater()
89
89
  self.less = P.Less()
90
90
  self.log_sigmoid = LogSigmoid()
@@ -103,7 +103,7 @@ class Softplus(Bijector):
103
103
  too_large = self.greater(x, -self.threshold)
104
104
  too_small_value = self.exp(x)
105
105
  too_large_value = x
106
- ones = self.fill(self.dtypeop(x), self.shape(x), 1.0)
106
+ ones = F.fill(self.dtypeop(x), self.shape(x), 1.0)
107
107
  too_small_or_too_large = self.logicalor(too_small, too_large)
108
108
  x = self.select(too_small_or_too_large, ones, x)
109
109
  y = self.log(self.exp(x) + 1.0)
@@ -119,7 +119,7 @@ class Softplus(Bijector):
119
119
  too_large = self.greater(x, (-1) * self.threshold)
120
120
  too_small_value = self.log(x)
121
121
  too_large_value = x
122
- ones = self.fill(self.dtypeop(x), self.shape(x), 1.0)
122
+ ones = F.fill(self.dtypeop(x), self.shape(x), 1.0)
123
123
  too_small_or_too_large = self.logicalor(too_small, too_large)
124
124
  x = self.select(too_small_or_too_large, ones, x)
125
125
  y = x + self.log(self.abs(self.expm1((-1)*x)))
@@ -15,6 +15,7 @@
15
15
  """Utility functions to help distribution class."""
16
16
  import numpy as np
17
17
  from mindspore.ops import operations as P
18
+ from mindspore.ops import functional as F
18
19
  from mindspore.ops.operations import _inner_ops as inner
19
20
  from mindspore.ops.primitive import constexpr
20
21
  from mindspore.common import dtype as mstype
@@ -52,7 +53,6 @@ def log_generic(input_x):
52
53
  log = P.Log()
53
54
  less = P.Less()
54
55
  lessequal = P.LessEqual()
55
- fill = P.Fill()
56
56
  cast = P.Cast()
57
57
  dtype = P.DType()
58
58
  shape = P.Shape()
@@ -61,8 +61,8 @@ def log_generic(input_x):
61
61
 
62
62
  if not checktype(dtype(input_x), mstype.float_):
63
63
  input_x = cast(input_x, mstype.float32)
64
- nan = fill(dtype(input_x), shape(input_x), np.nan)
65
- inf = fill(dtype(input_x), shape(input_x), np.inf)
64
+ nan = F.fill(dtype(input_x), shape(input_x), np.nan)
65
+ inf = F.fill(dtype(input_x), shape(input_x), np.inf)
66
66
  neg_x = less(input_x, 0.0)
67
67
  nonpos_x = lessequal(input_x, 0.0)
68
68
  log_x = log(input_x)
@@ -15,6 +15,7 @@
15
15
  """Bernoulli Distribution"""
16
16
  from mindspore.common import dtype as mstype
17
17
  from mindspore.ops import operations as P
18
+ from mindspore.ops import functional as F
18
19
  from mindspore.ops import composite as C
19
20
  from mindspore import _checkparam as Validator
20
21
  from .distribution import Distribution
@@ -151,7 +152,6 @@ class Bernoulli(Distribution):
151
152
  self.cast = P.Cast()
152
153
  self.const = P.ScalarToTensor()
153
154
  self.floor = P.Floor()
154
- self.fill = P.Fill()
155
155
  self.less = P.Less()
156
156
  self.shape = P.Shape()
157
157
  self.select = P.Select()
@@ -200,8 +200,8 @@ class Bernoulli(Distribution):
200
200
  MODE(B) = 1 if probs1 > 0.5 else = 0
201
201
  """
202
202
  probs1 = self._check_param_type(probs1)
203
- zeros = self.fill(self.dtype, self.shape(probs1), 0.0)
204
- ones = self.fill(self.dtype, self.shape(probs1), 1.0)
203
+ zeros = F.fill(self.dtype, self.shape(probs1), 0.0)
204
+ ones = F.fill(self.dtype, self.shape(probs1), 1.0)
205
205
  comp = self.less(0.5, probs1)
206
206
  return self.select(comp, ones, zeros)
207
207
 
@@ -278,9 +278,9 @@ class Bernoulli(Distribution):
278
278
  probs0 = self.broadcast((1.0 - probs1), broadcast_shape_tensor)
279
279
  comp_zero = self.less(value, 0.0)
280
280
  comp_one = self.less(value, 1.0)
281
- zeros = self.fill(self.parameter_type, self.shape(
281
+ zeros = F.fill(self.parameter_type, self.shape(
282
282
  broadcast_shape_tensor), 0.0)
283
- ones = self.fill(self.parameter_type, self.shape(
283
+ ones = F.fill(self.parameter_type, self.shape(
284
284
  broadcast_shape_tensor), 1.0)
285
285
  less_than_zero = self.select(comp_zero, zeros, probs0)
286
286
  return self.select(comp_one, less_than_zero, ones)
@@ -15,6 +15,7 @@
15
15
  """Beta Distribution"""
16
16
  import numpy as np
17
17
  from mindspore.ops import operations as P
18
+ from mindspore.ops import functional as F
18
19
  from mindspore.ops import composite as C
19
20
  import mindspore.nn as nn
20
21
  from mindspore import _checkparam as Validator
@@ -186,7 +187,6 @@ class Beta(Distribution):
186
187
  self.pow = P.Pow()
187
188
  self.squeeze = P.Squeeze(0)
188
189
  self.cast = P.Cast()
189
- self.fill = P.Fill()
190
190
  self.shape = P.Shape()
191
191
  self.select = P.Select()
192
192
  self.logicaland = P.LogicalAnd()
@@ -266,7 +266,7 @@ class Beta(Distribution):
266
266
  comp2 = self.greater(concentration0, 1.)
267
267
  cond = self.logicaland(comp1, comp2)
268
268
  batch_shape = self.shape(concentration1 + concentration0)
269
- nan = self.fill(self.dtype, batch_shape, np.nan)
269
+ nan = F.fill(self.dtype, batch_shape, np.nan)
270
270
  mode = (concentration1 - 1.) / (concentration1 + concentration0 - 2.)
271
271
  return self.select(cond, mode, nan)
272
272
 
@@ -379,7 +379,7 @@ class Beta(Distribution):
379
379
  sample_shape = (1,)
380
380
  else:
381
381
  sample_shape = origin_shape
382
- ones = self.fill(self.dtype, sample_shape, 1.0)
382
+ ones = F.fill(self.dtype, sample_shape, 1.0)
383
383
  sample_gamma1 = C.gamma(
384
384
  sample_shape, alpha=concentration1, beta=ones, seed=self.seed)
385
385
  sample_gamma2 = C.gamma(
@@ -17,6 +17,7 @@ import numpy as np
17
17
  from mindspore import context
18
18
  from mindspore.common import Tensor
19
19
  from mindspore.ops import operations as P
20
+ from mindspore.ops import functional as F
20
21
  from mindspore.ops import composite as C
21
22
  from mindspore.ops.functional import stop_gradient
22
23
  from mindspore.ops.operations import _inner_ops as inner
@@ -149,7 +150,6 @@ class Categorical(Distribution):
149
150
  self.dtypeop = P.DType()
150
151
  self.exp = exp_generic
151
152
  self.expand_dim = P.ExpandDims()
152
- self.fill = P.Fill()
153
153
  self.gather = P.GatherNd()
154
154
  self.greater = P.Greater()
155
155
  self.issubclass = inner.IsSubClass()
@@ -292,7 +292,7 @@ class Categorical(Distribution):
292
292
  # here we simulate casting to int but still keeping float dtype
293
293
  value = self.cast(value, self.dtypeop(probs))
294
294
 
295
- zeros = self.fill(self.dtypeop(value), self.shape(value), 0.0)
295
+ zeros = F.fill(self.dtypeop(value), self.shape(value), 0.0)
296
296
  between_zero_neone = self.logicand(self.less(value, 0,),
297
297
  self.greater(value, -1.))
298
298
  value = self.select(between_zero_neone,
@@ -338,8 +338,8 @@ class Categorical(Distribution):
338
338
  # reshape into label shape N
339
339
  logits_pmf = self.gather(self.reshape(
340
340
  logits, (-1, num_classes)), index)
341
- nan = self.fill(self.dtypeop(logits_pmf),
342
- self.shape(logits_pmf), self.nan)
341
+ nan = F.fill(self.dtypeop(logits_pmf), self.shape(logits_pmf),
342
+ self.nan)
343
343
  logits_pmf = self.select(out_of_bound, nan, logits_pmf)
344
344
  ans = self.reshape(logits_pmf, label_shape)
345
345
  if drop_dim:
@@ -359,7 +359,7 @@ class Categorical(Distribution):
359
359
 
360
360
  value = self.cast(value, self.dtypeop(probs))
361
361
 
362
- zeros = self.fill(self.dtypeop(value), self.shape(value), 0.0)
362
+ zeros = F.fill(self.dtypeop(value), self.shape(value), 0.0)
363
363
  between_zero_neone = self.logicand(
364
364
  self.less(value, 0,), self.greater(value, -1.))
365
365
  value = self.select(between_zero_neone, zeros, P.Floor()(value))
@@ -394,7 +394,7 @@ class Categorical(Distribution):
394
394
  # reshape probs and fill less_than_zero places with 0
395
395
  probs = self.reshape(probs, (-1, num_classes))
396
396
  cdf = self.gather(self.cumsum(probs, 1), index)
397
- zeros = self.fill(self.dtypeop(cdf), self.shape(cdf), 0.0)
397
+ zeros = F.fill(self.dtypeop(cdf), self.shape(cdf), 0.0)
398
398
  cdf = self.select(less_than_zero, zeros, cdf)
399
399
  cdf = self.reshape(cdf, label_shape)
400
400
 
@@ -425,7 +425,7 @@ class Categorical(Distribution):
425
425
  sample_shape = (1,)
426
426
 
427
427
  probs_2d = self.reshape(probs, (-1, num_classes))
428
- sample_tensor = self.fill(self.dtype, shape, 1.0)
428
+ sample_tensor = F.fill(self.dtype, shape, 1.0)
429
429
  sample_tensor = self.reshape(sample_tensor, (-1, 1))
430
430
  num_sample = self.shape(sample_tensor)[0]
431
431
  samples = C.multinomial(probs_2d, num_sample, seed=self.seed)
@@ -170,7 +170,6 @@ class Cauchy(Distribution):
170
170
  self.const = P.ScalarToTensor()
171
171
  self.dtypeop = P.DType()
172
172
  self.exp = exp_generic
173
- self.fill = P.Fill()
174
173
  self.less = P.Less()
175
174
  self.log = log_generic
176
175
  self.log1p = log1p_generic
@@ -15,6 +15,7 @@
15
15
  """basic"""
16
16
  from mindspore import context
17
17
  from mindspore.ops import operations as P
18
+ from mindspore.ops import functional as F
18
19
  from mindspore.nn.cell import Cell
19
20
  from mindspore.ops.primitive import constexpr
20
21
  from mindspore.ops.operations import _inner_ops as inner
@@ -113,7 +114,6 @@ class Distribution(Cell):
113
114
  # ops needed for the base class
114
115
  self.cast_base = P.Cast()
115
116
  self.dtype_base = P.DType()
116
- self.fill_base = P.Fill()
117
117
  self.sametypeshape_base = inner.SameTypeShape()
118
118
  self.sq_base = P.Square()
119
119
  self.sqrt_base = P.Sqrt()
@@ -194,11 +194,11 @@ class Distribution(Cell):
194
194
  if broadcast_shape is None:
195
195
  broadcast_shape = self.shape_base(arg)
196
196
  common_dtype = self.dtype_base(arg)
197
- broadcast_shape_tensor = self.fill_base(
197
+ broadcast_shape_tensor = F.fill(
198
198
  common_dtype, broadcast_shape, 1.0)
199
199
  else:
200
200
  broadcast_shape = self.shape_base(arg + broadcast_shape_tensor)
201
- broadcast_shape_tensor = self.fill_base(
201
+ broadcast_shape_tensor = F.fill(
202
202
  common_dtype, broadcast_shape, 1.0)
203
203
  arg = self.broadcast(arg, broadcast_shape_tensor)
204
204
  # check if the arguments have the same dtype
@@ -15,6 +15,7 @@
15
15
  """Gamma Distribution"""
16
16
  import numpy as np
17
17
  from mindspore.ops import operations as P
18
+ from mindspore.ops import functional as F
18
19
  from mindspore.ops import composite as C
19
20
  import mindspore.nn as nn
20
21
  from mindspore import _checkparam as Validator
@@ -185,7 +186,6 @@ class Gamma(Distribution):
185
186
  self.squeeze = P.Squeeze(0)
186
187
  self.cast = P.Cast()
187
188
  self.dtypeop = P.DType()
188
- self.fill = P.Fill()
189
189
  self.shape = P.Shape()
190
190
  self.select = P.Select()
191
191
  self.greater = P.Greater()
@@ -265,8 +265,8 @@ class Gamma(Distribution):
265
265
  """
266
266
  concentration, rate = self._check_param_type(concentration, rate)
267
267
  mode = (concentration - 1.) / rate
268
- nan = self.fill(self.dtypeop(concentration),
269
- self.shape(concentration), np.nan)
268
+ nan = F.fill(self.dtypeop(concentration), self.shape(concentration),
269
+ np.nan)
270
270
  comp = self.greater(concentration, 1.)
271
271
  return self.select(comp, mode, nan)
272
272
 
@@ -15,6 +15,7 @@
15
15
  """Geometric Distribution"""
16
16
  import numpy as np
17
17
  from mindspore.ops import operations as P
18
+ from mindspore.ops import functional as F
18
19
  from mindspore.ops.operations import _inner_ops as inner
19
20
  from mindspore.ops import composite as C
20
21
  from mindspore import _checkparam as Validator
@@ -160,7 +161,6 @@ class Geometric(Distribution):
160
161
  self.cast = P.Cast()
161
162
  self.const = P.ScalarToTensor()
162
163
  self.dtypeop = P.DType()
163
- self.fill = P.Fill()
164
164
  self.floor = P.Floor()
165
165
  self.issubclass = inner.IsSubClass()
166
166
  self.less = P.Less()
@@ -212,7 +212,7 @@ class Geometric(Distribution):
212
212
  MODE(Geo) = 0
213
213
  """
214
214
  probs1 = self._check_param_type(probs1)
215
- return self.fill(self.dtype, self.shape(probs1), 0.)
215
+ return F.fill(self.dtype, self.shape(probs1), 0.)
216
216
 
217
217
  def _var(self, probs1=None):
218
218
  r"""
@@ -260,7 +260,7 @@ class Geometric(Distribution):
260
260
  value = self.floor(value)
261
261
  probs1 = self._check_param_type(probs1)
262
262
  pmf = self.exp(self.log(1.0 - probs1) * value + self.log(probs1))
263
- zeros = self.fill(self.dtypeop(pmf), self.shape(pmf), 0.0)
263
+ zeros = F.fill(self.dtypeop(pmf), self.shape(pmf), 0.0)
264
264
  comp = self.less(value, zeros)
265
265
  return self.select(comp, zeros, pmf)
266
266
 
@@ -283,7 +283,7 @@ class Geometric(Distribution):
283
283
  probs1 = self._check_param_type(probs1)
284
284
  probs0 = 1.0 - probs1
285
285
  cdf = 1.0 - self.pow(probs0, value + 1.0)
286
- zeros = self.fill(self.dtypeop(cdf), self.shape(cdf), 0.0)
286
+ zeros = F.fill(self.dtypeop(cdf), self.shape(cdf), 0.0)
287
287
  comp = self.less(value, zeros)
288
288
  return self.select(comp, zeros, cdf)
289
289
 
@@ -15,6 +15,7 @@
15
15
  """Gumbel Distribution"""
16
16
  import numpy as np
17
17
  from mindspore.ops import operations as P
18
+ from mindspore.ops import functional as F
18
19
  from mindspore import _checkparam as Validator
19
20
  from mindspore.common import dtype as mstype
20
21
  import mindspore.nn.probability.bijector as msb
@@ -101,7 +102,6 @@ class Gumbel(TransformedDistribution):
101
102
  self.const = P.ScalarToTensor()
102
103
  self.exp = exp_generic
103
104
  self.expm1 = P.Expm1()
104
- self.fill = P.Fill()
105
105
  self.lgamma = P.Lgamma()
106
106
  self.log = log_generic
107
107
  self.shape = P.Shape()
@@ -163,7 +163,7 @@ class Gumbel(TransformedDistribution):
163
163
  """
164
164
  The mode of the distribution.
165
165
  """
166
- return self.loc * self.fill(self.parameter_type, self.shape(self.scale), 1.0)
166
+ return self.loc * F.fill(self.parameter_type, self.shape(self.scale), 1.0)
167
167
 
168
168
  def _sd(self):
169
169
  r"""
@@ -173,7 +173,7 @@ class Gumbel(TransformedDistribution):
173
173
  STD(X) = \frac{\pi}{\sqrt(6)} * scale
174
174
  """
175
175
  scale = self.scale * \
176
- self.fill(self.parameter_type, self.broadcast_shape, 1.0)
176
+ F.fill(self.parameter_type, self.broadcast_shape, 1.0)
177
177
  return scale * np.pi / self.sqrt(self.const(6., mstype.float32))
178
178
 
179
179
  def _entropy(self):
@@ -184,7 +184,7 @@ class Gumbel(TransformedDistribution):
184
184
  H(X) = 1. + \log(scale) + Euler-Mascheroni_constant
185
185
  """
186
186
  scale = self.scale * \
187
- self.fill(self.parameter_type, self.broadcast_shape, 1.0)
187
+ F.fill(self.parameter_type, self.broadcast_shape, 1.0)
188
188
  return 1. + self.log(scale) + np.euler_gamma
189
189
 
190
190
  def _log_prob(self, value):
@@ -15,6 +15,7 @@
15
15
  """LogNormal Distribution"""
16
16
  import numpy as np
17
17
  from mindspore.ops import operations as P
18
+ from mindspore.ops import functional as F
18
19
  from mindspore.common import dtype as mstype
19
20
  import mindspore.nn.probability.bijector as msb
20
21
  import mindspore.nn.probability.distribution as msd
@@ -101,7 +102,6 @@ class LogNormal(msd.TransformedDistribution):
101
102
  self.expm1 = P.Expm1()
102
103
  self.log = log_generic
103
104
  self.erf = P.Erf()
104
- self.fill = P.Fill()
105
105
  self.greater = P.Greater()
106
106
  self.select = P.Select()
107
107
  self.shape = P.Shape()
@@ -202,7 +202,7 @@ class LogNormal(msd.TransformedDistribution):
202
202
  cdf = self.distribution("cdf", inverse_value, mean, sd)
203
203
 
204
204
  # to increase numerical stability, set cdf = 0 when value <= 0
205
- zeros = self.fill(self.dtypeop(cdf), self.shape(cdf), 0.0)
205
+ zeros = F.fill(self.dtypeop(cdf), self.shape(cdf), 0.0)
206
206
 
207
207
  return self.select(self.greater(value, 0.), cdf, zeros)
208
208
 
@@ -15,6 +15,7 @@
15
15
  """Logistic Distribution"""
16
16
  import numpy as np
17
17
  from mindspore.ops import operations as P
18
+ from mindspore.ops import functional as F
18
19
  from mindspore.ops import composite as C
19
20
  from mindspore import _checkparam as Validator
20
21
  from mindspore.common import dtype as mstype
@@ -153,7 +154,6 @@ class Logistic(Distribution):
153
154
  self.dtypeop = P.DType()
154
155
  self.exp = exp_generic
155
156
  self.expm1 = P.Expm1()
156
- self.fill = P.Fill()
157
157
  self.less = P.Less()
158
158
  self.log = log_generic
159
159
  self.log1p = P.Log1p()
@@ -179,7 +179,7 @@ class Logistic(Distribution):
179
179
  too_small_value = self.exp(x)
180
180
  too_large_value = x
181
181
  too_small_or_too_large = self.logicalor(too_small, too_large)
182
- ones = self.fill(self.dtypeop(x), self.shape(x), 1.0)
182
+ ones = F.fill(self.dtypeop(x), self.shape(x), 1.0)
183
183
  x = self.select(too_small_or_too_large, ones, x)
184
184
  y = self.log(self.exp(x) + 1.0)
185
185
  return self.select(too_small, too_small_value, self.select(too_large, too_large_value, y))
@@ -15,6 +15,7 @@
15
15
  """Poisson Distribution"""
16
16
  import numpy as np
17
17
  from mindspore.ops import operations as P
18
+ from mindspore.ops import functional as F
18
19
  from mindspore.ops import composite as C
19
20
  from mindspore import _checkparam as Validator
20
21
  from mindspore.common import dtype as mstype
@@ -149,7 +150,6 @@ class Poisson(Distribution):
149
150
  self.floor = P.Floor()
150
151
  self.dtypeop = P.DType()
151
152
  self.shape = P.Shape()
152
- self.fill = P.Fill()
153
153
  self.less = P.Less()
154
154
  self.equal = P.Equal()
155
155
  self.select = P.Select()
@@ -228,8 +228,8 @@ class Poisson(Distribution):
228
228
  value = self.cast(value, self.dtype)
229
229
  rate = self._check_param_type(rate)
230
230
  log_rate = self.log(rate)
231
- zeros = self.fill(self.dtypeop(value), self.shape(value), 0.0)
232
- inf = self.fill(self.dtypeop(value), self.shape(value), np.inf)
231
+ zeros = F.fill(self.dtypeop(value), self.shape(value), 0.0)
232
+ inf = F.fill(self.dtypeop(value), self.shape(value), np.inf)
233
233
  safe_x = self.select(self.less(value, zeros), zeros, value)
234
234
  y = log_rate * safe_x - self.lgamma(safe_x + 1.)
235
235
  comp = self.equal(value, safe_x)
@@ -254,7 +254,7 @@ class Poisson(Distribution):
254
254
  value = self._check_value(value, 'value')
255
255
  value = self.cast(value, self.dtype)
256
256
  rate = self._check_param_type(rate)
257
- zeros = self.fill(self.dtypeop(value), self.shape(value), 0.0)
257
+ zeros = F.fill(self.dtypeop(value), self.shape(value), 0.0)
258
258
  comp = self.less(value, zeros)
259
259
  safe_x = self.select(comp, zeros, value)
260
260
  cdf = 1. - self.igamma(1. + safe_x, rate)