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.Logistic.rst 4.4 kB

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