多項分布。
繼承自:Distribution
用法
tf.compat.v1.distributions.Multinomial(
total_count, logits=None, probs=None, validate_args=False, allow_nan_stats=True,
name='Multinomial'
)參數
-
total_count形狀可廣播到[N1,..., Nm]和m >= 0的非負浮點張量。將此定義為一批N1 x ... x Nm不同的多項分布。它的組件應該等於整數值。 -
logits浮點張量表示正事件的非歸一化 log-probabilities,其形狀可廣播到[N1,..., Nm, K]m >= 0,並且 dtype 與total_count相同。將此定義為一批N1 x ... x Nm不同的K類多項分布。隻應傳入logits或probs之一。 -
probs具有可廣播到[N1,..., Nm, K]m >= 0和與total_count相同 dtype 的形狀的正浮點張量。將此定義為一批N1 x ... x Nm不同的K類多項分布。probs在其形狀的最後部分中的組件應總和為1。隻應傳入logits或probs之一。 -
validate_argsPythonbool,默認False。盡管可能會降低運行時性能,但檢查True分發參數的有效性時。當False無效輸入可能會默默呈現不正確的輸出。 -
allow_nan_statsPythonbool,默認True。當True時,統計信息(例如,均值、眾數、方差)使用值“NaN”來指示結果未定義。當False時,如果一個或多個統計數據的批處理成員未定義,則會引發異常。 -
namePythonstr名稱以此類創建的 Ops 為前綴。
屬性
-
allow_nan_statsPythonbool說明未定義統計信息時的行為。統計數據在有意義時返回 +/- 無窮大。例如,柯西分布的方差是無窮大的。但是,有時統計數據是未定義的,例如,如果分布的 pdf 在分布的支持範圍內沒有達到最大值,則模式是未定義的。如果均值未定義,則根據定義,方差未定義。例如: df = 1 的 Student's T 的平均值是未定義的(沒有明確的方式說它是 + 或 - 無窮大),因此方差 = E[(X - mean)**2] 也是未定義的。
-
batch_shape來自單個事件索引的單個樣本的形狀作為TensorShape.可能部分定義或未知。
批次維度是該分布的獨立、不同參數化的索引。
-
dtypeTensor的DType由此Distribution處理。 -
event_shape單個批次的單個樣品的形狀作為TensorShape.可能部分定義或未知。
-
logits坐標邏輯的向量。 -
name此Distribution創建的所有操作前的名稱。 -
parameters用於實例化此Distribution的參數字典。 -
probs在該坐標中繪製1的概率。 -
reparameterization_type說明如何重新參數化分布中的樣本。目前這是靜態實例
distributions.FULLY_REPARAMETERIZED或distributions.NOT_REPARAMETERIZED之一。 -
total_count用於構建樣本的試驗次數。 -
validate_argsPythonbool表示啟用了可能昂貴的檢查。
此多項分布由 probs 參數化,(批量)長度 - K prob(概率)向量( K > 1 )使得 tf.reduce_sum(probs, -1) = 1 和 total_count 試驗次數,即多項式每次抽取的試驗次數。它是在(一批)長度上定義的 - K 向量 counts 使得 tf.reduce_sum(counts, -1) = total_count 。多項式與 K = 2 時的二項式分布相同。
數學細節
多項式是在 K -類計數上的分布,即非負整數 counts = n = [n_0, ..., n_{K-1}] 的長度 - K 向量。
概率質量函數 (pmf) 是,
pmf(n; pi, N) = prod_j (pi_j)**n_j / Z
Z = (prod_j n_j!) / N!
其中:
probs = pi = [pi_0, ..., pi_{K-1}],pi_j > 0,sum_j pi_j = 1,total_count = N,N一個正整數,Z是歸一化常數,並且,N!表示N階乘。
分布參數在所有函數中自動廣播;有關詳細信息,請參見示例。
陷阱
類數 K 不得超過:
self.dtype可表示的最大整數,即2**(mantissa_bits+1)(IEE754),- 最大
Tensor索引,即2**31-1。
換一種說法,
K <= min(2**31-1, {
tf.float16:2**11,
tf.float32:2**24,
tf.float64:2**53 }[param.dtype])注意:此條件僅在 self.validate_args = True 時有效。
例子
創建一個 3 類分布,使用 logits 最有可能繪製 3 類分布。
logits = [-50., -43, 0]
dist = Multinomial(total_count=4., logits=logits)
創建一個 3 類分布,第 3 類最有可能被繪製。
p = [.2, .3, .5]
dist = Multinomial(total_count=4., probs=p)
分布函數可以根據計數進行評估。
# counts same shape as p.
counts = [1., 0, 3]
dist.prob(counts) # Shape []
# p will be broadcast to [[.2, .3, .5], [.2, .3, .5]] to match counts.
counts = [[1., 2, 1], [2, 2, 0]]
dist.prob(counts) # Shape [2]
# p will be broadcast to shape [5, 7, 3] to match counts.
counts = [[...]] # Shape [5, 7, 3]
dist.prob(counts) # Shape [5, 7]
創建 2 批 3 類分布。
p = [[.1, .2, .7], [.3, .3, .4]] # Shape [2, 3]
dist = Multinomial(total_count=[4., 5], probs=p)
counts = [[2., 1, 1], [3, 1, 1]]
dist.prob(counts) # Shape [2]
dist.sample(5) # Shape [5, 2, 3]
相關用法
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.quantile用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.covariance用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.variance用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.cdf用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.log_survival_function用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.cross_entropy用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.survival_function用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.log_cdf用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.kl_divergence用法及代碼示例
- Python tf.compat.v1.distributions.Bernoulli.cross_entropy用法及代碼示例
- Python tf.compat.v1.distributions.Bernoulli.covariance用法及代碼示例
- Python tf.compat.v1.distributions.Normal.log_survival_function用法及代碼示例
- Python tf.compat.v1.distributions.Laplace.stddev用法及代碼示例
- Python tf.compat.v1.distributions.Uniform.log_survival_function用法及代碼示例
- Python tf.compat.v1.distributions.Gamma.cdf用法及代碼示例
- Python tf.compat.v1.distributions.Normal.log_cdf用法及代碼示例
- Python tf.compat.v1.distributions.Gamma.log_cdf用法及代碼示例
- Python tf.compat.v1.distributions.Laplace.cross_entropy用法及代碼示例
- Python tf.compat.v1.distributions.Dirichlet.covariance用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.distributions.Multinomial。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
