當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python mxnet.ndarray.random.multinomial用法及代碼示例

用法:

mxnet.ndarray.random.multinomial(data, shape=_Null, get_prob=False, out=None, dtype='int32', **kwargs)

參數

  • data(NDArray) - 一個n最後一個維度有長度的維度數組k,其中k是每個多項分布的可能結果的數量。例如,具有形狀的數據(m, n, k)指定m*n多項分布,每個分布k可能的結果。
  • shape(int or tuple of ints, optional) - 從每個分布中抽取的樣本數。如果 shape 為空,將從每個分布中抽取一個樣本。
  • get_prob(bool, optional) - 如果為真,則還將返回包含抽取樣本的對數似然的第二個數組。這通常用於強化學習,您可以在其中提供獎勵作為頭部梯度 w.r.t。這個數組來估計梯度。
  • out(NDArray, optional) - 將輸出存儲到現有的 NDArray。
  • dtype(str or numpy.dtype, optional) - 樣本輸出數組的數據類型。默認值為 int32。注意對數似然數組的數據類型與data.

返回

對於具有 n 尺寸和形狀 (d1, d2, …, dn-1, k) 的輸入 data 以及具有形狀 (s1, s2, …, sx) 的輸入 shape ,返回具有形狀 (d1, d2, … dn-1, s1, s2, …, sx) 的 NDArray。返回的 NDArray 的 s1, s2, … sx 維度由從 datak 維度中提供的每個相應多項分布采樣的 0 索引值組成。

對於案件n`=1, and `x`=1 (one shape dimension), returned NDArray has shape `(s1,).

如果 get_prob 設置為 True,則此函數返回格式列表:[ndarray_output, log_likelihood_output],其中 log_likelihood_output 是與采樣輸出具有相同形狀的 NDArray。

返回類型

列表,或NDArray

來自多個多項分布的並發采樣。

注意

輸入分布必須標準化,即 data 必須沿其最後一個維度求和為 1。

例子

>>> probs = mx.nd.array([0, 0.1, 0.2, 0.3, 0.4])
>>> mx.nd.random.multinomial(probs)
[3]
<NDArray 1 @cpu(0)>
>>> probs = mx.nd.array([[0, 0.1, 0.2, 0.3, 0.4], [0.4, 0.3, 0.2, 0.1, 0]])
>>> mx.nd.random.multinomial(probs)
[3 1]
<NDArray 2 @cpu(0)>
>>> mx.nd.random.multinomial(probs, shape=2)
[[4 4]
 [1 2]]
<NDArray 2x2 @cpu(0)>
>>> mx.nd.random.multinomial(probs, get_prob=True)
[3 2]
<NDArray 2 @cpu(0)>
[-1.20397282 -1.60943794]
<NDArray 2 @cpu(0)>

相關用法


注:本文由純淨天空篩選整理自apache.org大神的英文原創作品 mxnet.ndarray.random.multinomial。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。