diff options
-rw-r--r-- | tensorflow/g3doc/api_docs/python/contrib.distributions.md | 178 | ||||
-rw-r--r-- | tensorflow/g3doc/api_docs/python/functions_and_classes/shard3/tf.contrib.distributions.DirichletMultinomial.md | 178 |
2 files changed, 288 insertions, 68 deletions
diff --git a/tensorflow/g3doc/api_docs/python/contrib.distributions.md b/tensorflow/g3doc/api_docs/python/contrib.distributions.md index c38a71eaaa..d162cde5f1 100644 --- a/tensorflow/g3doc/api_docs/python/contrib.distributions.md +++ b/tensorflow/g3doc/api_docs/python/contrib.distributions.md @@ -2322,7 +2322,7 @@ Sample `n` observations from the Multivariate Normal Distributions. DirichletMultinomial mixture distribution. This distribution is parameterized by a vector `alpha` of concentration -parameters for `k` classes. +parameters for `k` classes and `n`, the counts per each class.. #### Mathematical details @@ -2332,21 +2332,21 @@ probability of these draws being made from the distribution. The distribution has hyperparameters `alpha = (alpha_1,...,alpha_k)`, and probability mass function (pmf): -```pmf(counts) = C! / (c_1!...c_k!) * Beta(alpha + c) / Beta(alpha)``` +```pmf(counts) = N! / (n_1!...n_k!) * Beta(alpha + c) / Beta(alpha)``` -where above `C = sum_j c_j`, `N!` is `N` factorial, and +where above `N = sum_j n_j`, `N!` is `N` factorial, and `Beta(x) = prod_j Gamma(x_j) / Gamma(sum_j x_j)` is the multivariate beta function. -This is a mixture distribution in that `N` samples can be produced by: +This is a mixture distribution in that `M` samples can be produced by: 1. Choose class probabilities `p = (p_1,...,p_k) ~ Dir(alpha)` - 2. Draw integers `m = (m_1,...,m_k) ~ Multinomial(p, N)` + 2. Draw integers `m = (n_1,...,n_k) ~ Multinomial(N, p)` This class provides methods to create indexed batches of Dirichlet Multinomial distributions. If the provided `alpha` is rank 2 or higher, for every fixed set of leading dimensions, the last dimension represents one single Dirichlet Multinomial distribution. When calling distribution -functions (e.g. `dist.pdf(counts)`), `alpha` and `counts` are broadcast to the +functions (e.g. `dist.pmf(counts)`), `alpha` and `counts` are broadcast to the same shape (if possible). In all cases, the last dimension of alpha/counts represents single Dirichlet Multinomial distributions. @@ -2354,7 +2354,8 @@ represents single Dirichlet Multinomial distributions. ```python alpha = [1, 2, 3] -dist = DirichletMultinomial(alpha) +n = 2 +dist = DirichletMultinomial(n, alpha) ``` Creates a 3-class distribution, with the 3rd class is most likely to be drawn. @@ -2362,40 +2363,50 @@ The distribution functions can be evaluated on counts. ```python # counts same shape as alpha. -counts = [0, 2, 0] -dist.pdf(counts) # Shape [] +counts = [0, 0, 2] +dist.pmf(counts) # Shape [] # alpha will be broadcast to [[1, 2, 3], [1, 2, 3]] to match counts. -counts = [[11, 22, 33], [44, 55, 66]] -dist.pdf(counts) # Shape [2] +counts = [[1, 1, 0], [1, 0, 1]] +dist.pmf(counts) # Shape [2] # alpha will be broadcast to shape [5, 7, 3] to match counts. counts = [[...]] # Shape [5, 7, 3] -dist.pdf(counts) # Shape [5, 7] +dist.pmf(counts) # Shape [5, 7] ``` Creates a 2-batch of 3-class distributions. ```python alpha = [[1, 2, 3], [4, 5, 6]] # Shape [2, 3] -dist = DirichletMultinomial(alpha) +n = [3, 3] +dist = DirichletMultinomial(n, alpha) -# counts will be broadcast to [[11, 22, 33], [11, 22, 33]] to match alpha. -counts = [11, 22, 33] -dist.pdf(counts) # Shape [2] +# counts will be broadcast to [[2, 1, 0], [2, 1, 0]] to match alpha. +counts = [2, 1, 0] +dist.pmf(counts) # Shape [2] ``` - - - -#### `tf.contrib.distributions.DirichletMultinomial.__init__(alpha)` {#DirichletMultinomial.__init__} +#### `tf.contrib.distributions.DirichletMultinomial.__init__(n, alpha, name='DirichletMultinomial', allow_arbitrary_counts=False)` {#DirichletMultinomial.__init__} Initialize a batch of DirichletMultinomial distributions. ##### Args: -* <b>`alpha`</b>: Shape `[N1,..., Nn, k]` positive `float` or `double` tensor with - `n >= 0`. Defines this as a batch of `N1 x ... x Nn` different `k` - class Dirichlet multinomial distributions. +* <b>`n`</b>: Non-negative `float` or `double` tensor with shape + broadcastable to `[N1,..., Nm]` with `m >= 0`. Defines this as a batch + of `N1 x ... x Nm` different Dirichlet multinomial distributions. Its + components should be equal to integral values. +* <b>`alpha`</b>: Positive `float` or `double` tensor with shape broadcastable to + `[N1,..., Nm, k]` `m >= 0`. Defines this as a batch of `N1 x ... x Nm` + different `k` class Dirichlet multinomial distributions. +* <b>`name`</b>: The name to prefix Ops created by this distribution class. +* <b>`allow_arbitrary_counts`</b>: Boolean. This represents whether the pmf/cdf + allows for the `counts` tensor to be non-integral values. + The pmf/cdf are functions that can be evaluated at non-integral values, + but are only a distribution over non-negative integers. * <b>`Examples`</b>: @@ -2403,10 +2414,10 @@ Initialize a batch of DirichletMultinomial distributions. ```python # Define 1-batch of 2-class Dirichlet multinomial distribution, # also known as a beta-binomial. -dist = DirichletMultinomial([1.1, 2.0]) +dist = DirichletMultinomial(2.0, [1.1, 2.0]) # Define a 2-batch of 3-class distributions. -dist = DirichletMultinomial([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) +dist = DirichletMultinomial([3., 4], [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) ``` @@ -2414,7 +2425,26 @@ dist = DirichletMultinomial([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) #### `tf.contrib.distributions.DirichletMultinomial.alpha` {#DirichletMultinomial.alpha} -Parameters defining this distribution. +Parameter defining this distribution. + + +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.batch_shape(name='batch_shape')` {#DirichletMultinomial.batch_shape} + +Batch dimensions of this instance as a 1-D int32 `Tensor`. + +The product of the dimensions of the `batch_shape` is the number of +independent distributions of this kind the instance represents. + +##### Args: + + +* <b>`name`</b>: name to give to the op + +##### Returns: + + `Tensor` `batch_shape` - - - @@ -2428,7 +2458,56 @@ Parameters defining this distribution. #### `tf.contrib.distributions.DirichletMultinomial.dtype` {#DirichletMultinomial.dtype} +dtype of samples from this distribution. + + +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.entropy(name=None)` {#DirichletMultinomial.entropy} + +Entropy of the distribution in nats. + + +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.event_shape(name='event_shape')` {#DirichletMultinomial.event_shape} + +Shape of a sample from a single distribution as a 1-D int32 `Tensor`. + +##### Args: + + +* <b>`name`</b>: name to give to the op + +##### Returns: + + `Tensor` `event_shape` + + +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.get_batch_shape()` {#DirichletMultinomial.get_batch_shape} + +`TensorShape` available at graph construction time. + +Same meaning as `batch_shape`. May be only partially defined. +##### Returns: + + batch shape + + +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.get_event_shape()` {#DirichletMultinomial.get_event_shape} + +`TensorShape` available at graph construction time. + +Same meaning as `event_shape`. May be only partially defined. + +##### Returns: + + event shape - - - @@ -2440,23 +2519,25 @@ Parameters defining this distribution. - - - -#### `tf.contrib.distributions.DirichletMultinomial.log_pmf(counts, name=None)` {#DirichletMultinomial.log_pmf} +#### `tf.contrib.distributions.DirichletMultinomial.log_pmf(counts, name='log_pmf')` {#DirichletMultinomial.log_pmf} `Log(P[counts])`, computed for every batch member. -For each batch of counts `[c_1,...,c_k]`, `P[counts]` is the probability -that after sampling `sum_j c_j` draws from this Dirichlet Multinomial -distribution, the number of draws falling in class `j` is `c_j`. Note that +For each batch of counts `[n_1,...,n_k]`, `P[counts]` is the probability +that after sampling `n` draws from this Dirichlet Multinomial +distribution, the number of draws falling in class `j` is `n_j`. Note that different sequences of draws can result in the same counts, thus the probability includes a combinatorial coefficient. ##### Args: -* <b>`counts`</b>: Non-negative `float`, `double`, or `int` tensor whose shape can +* <b>`counts`</b>: Non-negative `float` or `double` tensor whose shape can be broadcast with `self.alpha`. For fixed leading dimensions, the last dimension represents counts for the corresponding Dirichlet Multinomial - distribution in `self.alpha`. + distribution in `self.alpha`. `counts` is only legal if it sums up to + `n` and its components are equal to integral values. The second + condition is relaxed if `allow_arbitrary_counts` is set. * <b>`name`</b>: Name to give this Op, defaults to "log_pmf". ##### Returns: @@ -2473,14 +2554,21 @@ Class means for every batch member. - - - -#### `tf.contrib.distributions.DirichletMultinomial.num_classes` {#DirichletMultinomial.num_classes} +#### `tf.contrib.distributions.DirichletMultinomial.n` {#DirichletMultinomial.n} + +Parameter defining this distribution. + + +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.name` {#DirichletMultinomial.name} -Tensor providing number of classes in each batch member. +Name to prepend to all ops. - - - -#### `tf.contrib.distributions.DirichletMultinomial.pmf(counts, name=None)` {#DirichletMultinomial.pmf} +#### `tf.contrib.distributions.DirichletMultinomial.pmf(counts, name='pmf')` {#DirichletMultinomial.pmf} `P[counts]`, computed for every batch member. @@ -2493,10 +2581,12 @@ probability includes a combinatorial coefficient. ##### Args: -* <b>`counts`</b>: Non-negative `float`, `double`, or `int` tensor whose shape can +* <b>`counts`</b>: Non-negative `float`, `double` tensor whose shape can be broadcast with `self.alpha`. For fixed leading dimensions, the last dimension represents counts for the corresponding Dirichlet Multinomial - distribution in `self.alpha`. + distribution in `self.alpha`. `counts` is only legal if it sums up to + `n` and its components are equal to integral values. The second + condition is relaxed if `allow_arbitrary_counts` is set. * <b>`name`</b>: Name to give this Op, defaults to "pmf". ##### Returns: @@ -2504,6 +2594,26 @@ probability includes a combinatorial coefficient. Probabilities for each record, shape `[N1,...,Nn]`. +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.sample(n, seed=None, name=None)` {#DirichletMultinomial.sample} + +Generate `n` samples. + +##### Args: + + +* <b>`n`</b>: scalar. Number of samples to draw from each distribution. +* <b>`seed`</b>: Python integer seed for RNG +* <b>`name`</b>: name to give to the op. + +##### Returns: + + +* <b>`samples`</b>: a `Tensor` of shape `(n,) + self.batch_shape + self.event_shape` + with values of type `self.dtype`. + + ## Posterior inference with conjugate priors. diff --git a/tensorflow/g3doc/api_docs/python/functions_and_classes/shard3/tf.contrib.distributions.DirichletMultinomial.md b/tensorflow/g3doc/api_docs/python/functions_and_classes/shard3/tf.contrib.distributions.DirichletMultinomial.md index 1d8cb6a6dd..31b1382ed8 100644 --- a/tensorflow/g3doc/api_docs/python/functions_and_classes/shard3/tf.contrib.distributions.DirichletMultinomial.md +++ b/tensorflow/g3doc/api_docs/python/functions_and_classes/shard3/tf.contrib.distributions.DirichletMultinomial.md @@ -1,7 +1,7 @@ DirichletMultinomial mixture distribution. This distribution is parameterized by a vector `alpha` of concentration -parameters for `k` classes. +parameters for `k` classes and `n`, the counts per each class.. #### Mathematical details @@ -11,21 +11,21 @@ probability of these draws being made from the distribution. The distribution has hyperparameters `alpha = (alpha_1,...,alpha_k)`, and probability mass function (pmf): -```pmf(counts) = C! / (c_1!...c_k!) * Beta(alpha + c) / Beta(alpha)``` +```pmf(counts) = N! / (n_1!...n_k!) * Beta(alpha + c) / Beta(alpha)``` -where above `C = sum_j c_j`, `N!` is `N` factorial, and +where above `N = sum_j n_j`, `N!` is `N` factorial, and `Beta(x) = prod_j Gamma(x_j) / Gamma(sum_j x_j)` is the multivariate beta function. -This is a mixture distribution in that `N` samples can be produced by: +This is a mixture distribution in that `M` samples can be produced by: 1. Choose class probabilities `p = (p_1,...,p_k) ~ Dir(alpha)` - 2. Draw integers `m = (m_1,...,m_k) ~ Multinomial(p, N)` + 2. Draw integers `m = (n_1,...,n_k) ~ Multinomial(N, p)` This class provides methods to create indexed batches of Dirichlet Multinomial distributions. If the provided `alpha` is rank 2 or higher, for every fixed set of leading dimensions, the last dimension represents one single Dirichlet Multinomial distribution. When calling distribution -functions (e.g. `dist.pdf(counts)`), `alpha` and `counts` are broadcast to the +functions (e.g. `dist.pmf(counts)`), `alpha` and `counts` are broadcast to the same shape (if possible). In all cases, the last dimension of alpha/counts represents single Dirichlet Multinomial distributions. @@ -33,7 +33,8 @@ represents single Dirichlet Multinomial distributions. ```python alpha = [1, 2, 3] -dist = DirichletMultinomial(alpha) +n = 2 +dist = DirichletMultinomial(n, alpha) ``` Creates a 3-class distribution, with the 3rd class is most likely to be drawn. @@ -41,40 +42,50 @@ The distribution functions can be evaluated on counts. ```python # counts same shape as alpha. -counts = [0, 2, 0] -dist.pdf(counts) # Shape [] +counts = [0, 0, 2] +dist.pmf(counts) # Shape [] # alpha will be broadcast to [[1, 2, 3], [1, 2, 3]] to match counts. -counts = [[11, 22, 33], [44, 55, 66]] -dist.pdf(counts) # Shape [2] +counts = [[1, 1, 0], [1, 0, 1]] +dist.pmf(counts) # Shape [2] # alpha will be broadcast to shape [5, 7, 3] to match counts. counts = [[...]] # Shape [5, 7, 3] -dist.pdf(counts) # Shape [5, 7] +dist.pmf(counts) # Shape [5, 7] ``` Creates a 2-batch of 3-class distributions. ```python alpha = [[1, 2, 3], [4, 5, 6]] # Shape [2, 3] -dist = DirichletMultinomial(alpha) +n = [3, 3] +dist = DirichletMultinomial(n, alpha) -# counts will be broadcast to [[11, 22, 33], [11, 22, 33]] to match alpha. -counts = [11, 22, 33] -dist.pdf(counts) # Shape [2] +# counts will be broadcast to [[2, 1, 0], [2, 1, 0]] to match alpha. +counts = [2, 1, 0] +dist.pmf(counts) # Shape [2] ``` - - - -#### `tf.contrib.distributions.DirichletMultinomial.__init__(alpha)` {#DirichletMultinomial.__init__} +#### `tf.contrib.distributions.DirichletMultinomial.__init__(n, alpha, name='DirichletMultinomial', allow_arbitrary_counts=False)` {#DirichletMultinomial.__init__} Initialize a batch of DirichletMultinomial distributions. ##### Args: -* <b>`alpha`</b>: Shape `[N1,..., Nn, k]` positive `float` or `double` tensor with - `n >= 0`. Defines this as a batch of `N1 x ... x Nn` different `k` - class Dirichlet multinomial distributions. +* <b>`n`</b>: Non-negative `float` or `double` tensor with shape + broadcastable to `[N1,..., Nm]` with `m >= 0`. Defines this as a batch + of `N1 x ... x Nm` different Dirichlet multinomial distributions. Its + components should be equal to integral values. +* <b>`alpha`</b>: Positive `float` or `double` tensor with shape broadcastable to + `[N1,..., Nm, k]` `m >= 0`. Defines this as a batch of `N1 x ... x Nm` + different `k` class Dirichlet multinomial distributions. +* <b>`name`</b>: The name to prefix Ops created by this distribution class. +* <b>`allow_arbitrary_counts`</b>: Boolean. This represents whether the pmf/cdf + allows for the `counts` tensor to be non-integral values. + The pmf/cdf are functions that can be evaluated at non-integral values, + but are only a distribution over non-negative integers. * <b>`Examples`</b>: @@ -82,10 +93,10 @@ Initialize a batch of DirichletMultinomial distributions. ```python # Define 1-batch of 2-class Dirichlet multinomial distribution, # also known as a beta-binomial. -dist = DirichletMultinomial([1.1, 2.0]) +dist = DirichletMultinomial(2.0, [1.1, 2.0]) # Define a 2-batch of 3-class distributions. -dist = DirichletMultinomial([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) +dist = DirichletMultinomial([3., 4], [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) ``` @@ -93,7 +104,26 @@ dist = DirichletMultinomial([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) #### `tf.contrib.distributions.DirichletMultinomial.alpha` {#DirichletMultinomial.alpha} -Parameters defining this distribution. +Parameter defining this distribution. + + +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.batch_shape(name='batch_shape')` {#DirichletMultinomial.batch_shape} + +Batch dimensions of this instance as a 1-D int32 `Tensor`. + +The product of the dimensions of the `batch_shape` is the number of +independent distributions of this kind the instance represents. + +##### Args: + + +* <b>`name`</b>: name to give to the op + +##### Returns: + + `Tensor` `batch_shape` - - - @@ -107,7 +137,56 @@ Parameters defining this distribution. #### `tf.contrib.distributions.DirichletMultinomial.dtype` {#DirichletMultinomial.dtype} +dtype of samples from this distribution. + + +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.entropy(name=None)` {#DirichletMultinomial.entropy} + +Entropy of the distribution in nats. + + +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.event_shape(name='event_shape')` {#DirichletMultinomial.event_shape} + +Shape of a sample from a single distribution as a 1-D int32 `Tensor`. + +##### Args: + + +* <b>`name`</b>: name to give to the op + +##### Returns: + + `Tensor` `event_shape` + + +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.get_batch_shape()` {#DirichletMultinomial.get_batch_shape} +`TensorShape` available at graph construction time. + +Same meaning as `batch_shape`. May be only partially defined. + +##### Returns: + + batch shape + + +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.get_event_shape()` {#DirichletMultinomial.get_event_shape} + +`TensorShape` available at graph construction time. + +Same meaning as `event_shape`. May be only partially defined. + +##### Returns: + + event shape - - - @@ -119,23 +198,25 @@ Parameters defining this distribution. - - - -#### `tf.contrib.distributions.DirichletMultinomial.log_pmf(counts, name=None)` {#DirichletMultinomial.log_pmf} +#### `tf.contrib.distributions.DirichletMultinomial.log_pmf(counts, name='log_pmf')` {#DirichletMultinomial.log_pmf} `Log(P[counts])`, computed for every batch member. -For each batch of counts `[c_1,...,c_k]`, `P[counts]` is the probability -that after sampling `sum_j c_j` draws from this Dirichlet Multinomial -distribution, the number of draws falling in class `j` is `c_j`. Note that +For each batch of counts `[n_1,...,n_k]`, `P[counts]` is the probability +that after sampling `n` draws from this Dirichlet Multinomial +distribution, the number of draws falling in class `j` is `n_j`. Note that different sequences of draws can result in the same counts, thus the probability includes a combinatorial coefficient. ##### Args: -* <b>`counts`</b>: Non-negative `float`, `double`, or `int` tensor whose shape can +* <b>`counts`</b>: Non-negative `float` or `double` tensor whose shape can be broadcast with `self.alpha`. For fixed leading dimensions, the last dimension represents counts for the corresponding Dirichlet Multinomial - distribution in `self.alpha`. + distribution in `self.alpha`. `counts` is only legal if it sums up to + `n` and its components are equal to integral values. The second + condition is relaxed if `allow_arbitrary_counts` is set. * <b>`name`</b>: Name to give this Op, defaults to "log_pmf". ##### Returns: @@ -152,14 +233,21 @@ Class means for every batch member. - - - -#### `tf.contrib.distributions.DirichletMultinomial.num_classes` {#DirichletMultinomial.num_classes} +#### `tf.contrib.distributions.DirichletMultinomial.n` {#DirichletMultinomial.n} + +Parameter defining this distribution. + + +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.name` {#DirichletMultinomial.name} -Tensor providing number of classes in each batch member. +Name to prepend to all ops. - - - -#### `tf.contrib.distributions.DirichletMultinomial.pmf(counts, name=None)` {#DirichletMultinomial.pmf} +#### `tf.contrib.distributions.DirichletMultinomial.pmf(counts, name='pmf')` {#DirichletMultinomial.pmf} `P[counts]`, computed for every batch member. @@ -172,10 +260,12 @@ probability includes a combinatorial coefficient. ##### Args: -* <b>`counts`</b>: Non-negative `float`, `double`, or `int` tensor whose shape can +* <b>`counts`</b>: Non-negative `float`, `double` tensor whose shape can be broadcast with `self.alpha`. For fixed leading dimensions, the last dimension represents counts for the corresponding Dirichlet Multinomial - distribution in `self.alpha`. + distribution in `self.alpha`. `counts` is only legal if it sums up to + `n` and its components are equal to integral values. The second + condition is relaxed if `allow_arbitrary_counts` is set. * <b>`name`</b>: Name to give this Op, defaults to "pmf". ##### Returns: @@ -183,3 +273,23 @@ probability includes a combinatorial coefficient. Probabilities for each record, shape `[N1,...,Nn]`. +- - - + +#### `tf.contrib.distributions.DirichletMultinomial.sample(n, seed=None, name=None)` {#DirichletMultinomial.sample} + +Generate `n` samples. + +##### Args: + + +* <b>`n`</b>: scalar. Number of samples to draw from each distribution. +* <b>`seed`</b>: Python integer seed for RNG +* <b>`name`</b>: name to give to the op. + +##### Returns: + + +* <b>`samples`</b>: a `Tensor` of shape `(n,) + self.batch_shape + self.event_shape` + with values of type `self.dtype`. + + |