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.Distribution.rst 10 kB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. mindspore.nn.probability.distribution.Distribution
  2. ===================================================
  3. .. py:class:: mindspore.nn.probability.distribution.Distribution(seed, dtype, name, param)
  4. 所有分布的基类。
  5. **参数:**
  6. - **seed** (int) - 采样时使用的种子。如果为None,则使用0。
  7. - **dtype** (mindspore.dtype) - 事件样例的类型。
  8. - **name** (str) - 分布的名称。
  9. - **param** (dict) - 用于初始化分布的参数。
  10. **支持平台:**
  11. ``Ascend`` ``GPU``
  12. .. note::
  13. 派生类必须重写 `_mean` 、 `_prob` 和 `_log_prob` 等操作。必填参数必须通过 `args` 或 `kwargs` 传入,如 `_prob` 的 `value` 。
  14. .. py:method:: cdf(value, *args, **kwargs)
  15. 在给定值下计算累积分布函数(Cumulatuve Distribution Function, CDF)。
  16. **参数:**
  17. - **value** (Tensor) - 要计算的值。
  18. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  19. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  20. .. note::
  21. 可以通过 `args` 或 `kwargs` 传递其 `dist_spec_args` 来选择性地将Distribution传递给函数。
  22. **返回:**
  23. Tensor, 累积分布函数的值。
  24. .. py:method:: construct(name, *args, **kwargs)
  25. 重写Cell中的 `construct` 。
  26. .. note::
  27. 支持的函数包括:'prob'、'log_prob'、'cdf', 'log_cdf'、'survival_function'、'log_survival'、'var'、
  28. 'sd'、'mode'、'mean'、'entropy'、'kl_loss'、'cross_entropy'、'sample'、'get_dist_args'、'get_dist_type'。
  29. **参数:**
  30. - **name** (str) - 函数名称。
  31. - **args** (list) - 函数所需的位置参数列表。
  32. - **kwargs** (dict) - 函数所需的关键字参数字典。
  33. **返回:**
  34. Tensor, name对应函数的值。
  35. .. py:method:: cross_entropy(dist, *args, **kwargs)
  36. 计算分布a和b之间的交叉熵。
  37. **参数:**
  38. - **dist** (str) - 分布的类型。
  39. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  40. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  41. .. note::
  42. Distribution b的 `dist_spec_args` 必须通过 `args` 或 `kwargs` 传递给函数。 传入Distribution a的 `dist_spec_args` 是可选的。
  43. **返回:**
  44. Tensor, 交叉熵的值。
  45. .. py:method:: entropy(*args, **kwargs)
  46. 计算熵。
  47. **参数:**
  48. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  49. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  50. .. note::
  51. 可以通过 `args` 或 `kwargs` 传递其 `dist_spec_args` 来选择性地将Distribution传递给函数。
  52. **返回:**
  53. Tensor, 熵的值。
  54. .. py:method:: get_dist_args(*args, **kwargs)
  55. 返回分布的参数列表。
  56. **参数:**
  57. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  58. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  59. .. note::
  60. 传递给字类的参数的顺序应该与通过 `_add_parameter` 初始化默认参数的顺序相同。
  61. **返回:**
  62. list[Tensor], 参数列表。
  63. .. py:method:: get_dist_type()
  64. 返回分布类型。
  65. **返回:**
  66. string, 分布类型名字。
  67. .. py:method:: kl_loss(dist, *args, **kwargs)
  68. 计算KL散度,即KL(a||b)。
  69. **参数:**
  70. - **dist** (str) - 分布的类型。
  71. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  72. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  73. .. note::
  74. Distribution b的 `dist_spec_args` 必须通过 `args` 或 `kwargs` 传递给函数。 传入Distribution a的 `dist_spec_args` 是可选的。
  75. **返回:**
  76. Tensor, KL散度。
  77. .. py:method:: log_cdf(value, *args, **kwargs)
  78. 计算给定值对于的累积分布函数的对数。
  79. **参数:**
  80. - **value** (Tensor) - 要计算的值。
  81. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  82. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  83. .. note::
  84. 可以通过 `args` 或 `kwargs` 传递其 `dist_spec_args` 来选择性地将Distribution传递给函数。
  85. **返回:**
  86. Tensor, 累积分布函数的对数。
  87. .. py:method:: log_prob(value, *args, **kwargs)
  88. 计算给定值对应的概率的对数(pdf或pmf)。
  89. **参数:**
  90. - **value** (Tensor) - 要计算的值。
  91. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  92. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  93. .. note::
  94. 可以通过 `args` 或 `kwargs` 传递其 `dist_spec_args` 来选择性地将Distribution传递给函数。
  95. **返回:**
  96. Tensor, 累积分布函数的对数。
  97. .. py:method:: log_survival(value, *args, **kwargs)
  98. 计算给定值对应的生存函数的对数。
  99. **参数:**
  100. - **value** (Tensor) - 要计算的值。
  101. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  102. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  103. .. note::
  104. 可以通过 `args` 或 `kwargs` 传递其 `dist_spec_args` 来选择性地将Distribution传递给函数。
  105. **返回:**
  106. Tensor, 生存函数的对数。
  107. .. py:method:: mean(*args, **kwargs)
  108. 计算期望。
  109. **参数:**
  110. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  111. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  112. .. note::
  113. 可以通过 `args` 或 `kwargs` 传递其 `dist_spec_args` 来选择性地将Distribution传递给函数。
  114. **返回:**
  115. Tensor, 概率分布的期望。
  116. .. py:method:: mode(*args, **kwargs)
  117. 计算众数。
  118. **参数:**
  119. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  120. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  121. .. note::
  122. 可以通过 `args` 或 `kwargs` 传递其 `dist_spec_args` 来选择性地将Distribution传递给函数。
  123. **返回:**
  124. Tensor, 概率分布的众数。
  125. .. py:method:: prob(value, *args, **kwargs)
  126. 计算给定值下的概率。对于离散分布是计算概率质量函数(Probability Mass Function),而对于连续分布是计算概率密度函数(Probability Density Function)。
  127. **参数:**
  128. - **value** (Tensor) - 要计算的值。
  129. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  130. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  131. .. note::
  132. 可以通过 `args` 或 `kwargs` 传递其 `dist_spec_args` 来选择性地将Distribution传递给函数。
  133. **返回:**
  134. Tensor, 概率值。
  135. .. py:method:: sample(*args, **kwargs)
  136. 采样函数。
  137. **参数:**
  138. - **shape** (tuple) - 样本的shape。
  139. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  140. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  141. .. note::
  142. 可以通过 `args` 或 `kwargs` 传递其 `dist_spec_args` 来选择性地将Distribution传递给函数。
  143. **返回:**
  144. Tensor, 根据概率分布采样的样本。
  145. .. py:method:: sd(*args, **kwargs)
  146. 计算标准差。
  147. **参数:**
  148. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  149. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  150. .. note::
  151. 可以通过 `args` 或 `kwargs` 传递其 `dist_spec_args` 来选择性地将Distribution传递给函数。
  152. **返回:**
  153. Tensor, 概率分布的标准差。
  154. .. py:method:: survival_function(value, *args, **kwargs)
  155. 计算给定值对应的生存函数。
  156. **参数:**
  157. - **value** (Tensor) - 要计算的值。
  158. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  159. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  160. .. note::
  161. 可以通过 `args` 或 `kwargs` 传递其 `dist_spec_args` 来选择性地将Distribution传递给函数。
  162. **返回:**
  163. Tensor, 生存函数的值。
  164. .. py:method:: var(*args, **kwargs)
  165. 计算方差。
  166. **参数:**
  167. - **args** (list) - 位置参数列表,具体需要的参数根据子类的实现确定。。
  168. - **kwargs** (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。
  169. .. note::
  170. 可以通过 `args` 或 `kwargs` 传递其 `dist_spec_args` 来选择性地将Distribution传递给函数。
  171. **返回:**
  172. Tensor, 概率分布的方差。