You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

mindspore.nn.probability.distribution.Cauchy.rst 4.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. mindspore.nn.probability.distribution.Cauchy
  2. ================================================
  3. .. py:class:: mindspore.nn.probability.distribution.Cauchy(loc=None, scale=None, seed=None, dtype=mindspore.float32, name='Cauchy')
  4. 柯西分布(Cauchy distribution)。
  5. **参数:**
  6. - **loc** (int, float, list, numpy.ndarray, Tensor) - 柯西分布的位置。
  7. - **scale** (int, float, list, numpy.ndarray, Tensor) - 柯西分布的比例。
  8. - **seed** (int) - 采样时使用的种子。如果为None,则使用全局种子。默认值:None。
  9. - **dtype** (mindspore.dtype) - 事件样例的类型。默认值:mindspore.float32。
  10. - **name** (str) - 分布的名称。默认值:'Cauchy'。
  11. **支持平台:**
  12. ``Ascend``
  13. .. note::
  14. - `scale` 必须大于零。
  15. - `dtype` 必须是float,因为柯西分布是连续的。
  16. - GPU后端不支持柯西分布。
  17. **样例:**
  18. >>> import mindspore
  19. >>> import mindspore.nn as nn
  20. >>> import mindspore.nn.probability.distribution as msd
  21. >>> from mindspore import Tensor
  22. >>> # 初始化loc为3.0和scale为4.0的柯西分布。
  23. >>> cauchy1 = msd.Cauchy(3.0, 4.0, dtype=mindspore.float32)
  24. >>> # 柯西分布可以在没有参数的情况下初始化。
  25. >>> # 在这种情况下,'loc'和'scale'必须通过参数传入。
  26. >>> cauchy2 = msd.Cauchy(dtype=mindspore.float32)
  27. >>> # 下面是用于测试的Tensor
  28. >>> value = Tensor([1.0, 2.0, 3.0], dtype=mindspore.float32)
  29. >>> loc_a = Tensor([2.0], dtype=mindspore.float32)
  30. >>> scale_a = Tensor([2.0, 2.0, 2.0], dtype=mindspore.float32)
  31. >>> loc_b = Tensor([1.0], dtype=mindspore.float32)
  32. >>> scale_b = Tensor([1.0, 1.5, 2.0], dtype=mindspore.float32)
  33. >>> # 公共接口对应的概率函数的私有接口,包括`prob`、`log_prob`、`cdf`、`log_cdf`、`survival_function`、`log_survival`,具有以下相同的参数。
  34. >>> # 参数:
  35. >>> # value (Tensor):要评估的值。
  36. >>> # loc (Tensor):分布的位置。默认值:self.loc.
  37. >>> # scale (Tensor):分布的比例。默认值:self.scale.
  38. >>> # `prob`示例。
  39. >>> # 通过将'prob'替换为函数的名称,可以对其他概率函数进行类似的调用
  40. >>> ans = cauchy1.prob(value)
  41. >>> print(ans.shape)
  42. (3,)
  43. >>> # 根据分布b进行评估。
  44. >>> ans = cauchy1.prob(value, loc_b, scale_b)
  45. >>> print(ans.shape)
  46. (3,)
  47. >>> # 在函数调用期间必须传入`loc`和`scale`
  48. >>> ans = cauchy2.prob(value, loc_a, scale_a)
  49. >>> print(ans.shape)
  50. (3,)
  51. >>> # 函数`mode`和`entropy`具有相同的参数。
  52. >>> # 参数:
  53. >>> # loc (Tensor):分布的位置。默认值:self.loc.
  54. >>> # scale (Tensor):分布的比例。默认值:self.scale.
  55. >>> # `mode`示例。
  56. >>> ans = cauchy1.mode() # return 3.0
  57. >>> print(ans.shape)
  58. ()
  59. >>> ans = cauchy1.mode(loc_b, scale_b) # return loc_b
  60. >>> print(ans.shape)
  61. (3,)
  62. >>> # 在函数调用期间必须传入`loc`和`scale`。
  63. >>> ans = cauchy2.mode(loc_a, scale_a)
  64. >>> print(ans.shape)
  65. (3,)
  66. >>> # 'kl_loss'和'cross_entropy'的接口相同:
  67. >>> # 参数:
  68. >>> # dist (str):分布的类型。仅支持"Cauchy"。
  69. >>> # loc_b (Tensor):分布b的位置。
  70. >>> # scale_b (Tensor):分布b的比例。
  71. >>> # loc (Tensor):分布a的位置。默认值:self.loc.
  72. >>> # scale (Tensor):分布a的比例。默认值:self.scale.
  73. >>> # `kl_loss`示例。`cross_entropy`也类似。
  74. >>> ans = cauchy1.kl_loss('Cauchy', loc_b, scale_b)
  75. >>> print(ans.shape)
  76. (3,)
  77. >>> ans = cauchy1.kl_loss('Cauchy', loc_b, scale_b, loc_a, scale_a)
  78. >>> print(ans.shape)
  79. (3,)
  80. >>> # 必须传入额外的`loc`和`scale`。
  81. >>> ans = cauchy2.kl_loss('Cauchy', loc_b, scale_b, loc_a, scale_a)
  82. >>> print(ans.shape)
  83. (3,)
  84. >>> # `sample`示例。
  85. >>> # 参数:
  86. >>> # shape (tuple):样本的shape。默认值:()
  87. >>> # loc (Tensor):分布的位置。默认值:self.loc.
  88. >>> # scale (Tensor):分布的比例。默认值:self.scale.
  89. >>> ans = cauchy1.sample()
  90. >>> print(ans.shape)
  91. ()
  92. >>> ans = cauchy1.sample((2,3))
  93. >>> print(ans.shape)
  94. (2, 3)
  95. >>> ans = cauchy1.sample((2,3), loc_b, scale_b)
  96. >>> print(ans.shape)
  97. (2, 3, 3)
  98. >>> ans = cauchy2.sample((2,3), loc_a, scale_a)
  99. >>> print(ans.shape)
  100. (2, 3, 3)
  101. .. py:method:: loc
  102. :property:
  103. 返回分布位置。
  104. .. py:method:: scale
  105. :property:
  106. 返回分布比例。