diff options
Diffstat (limited to 'tensorflow/g3doc/api_docs/python/functions_and_classes/shard3/tf.contrib.distributions.OneHotCategorical.md')
-rw-r--r-- | tensorflow/g3doc/api_docs/python/functions_and_classes/shard3/tf.contrib.distributions.OneHotCategorical.md | 638 |
1 files changed, 638 insertions, 0 deletions
diff --git a/tensorflow/g3doc/api_docs/python/functions_and_classes/shard3/tf.contrib.distributions.OneHotCategorical.md b/tensorflow/g3doc/api_docs/python/functions_and_classes/shard3/tf.contrib.distributions.OneHotCategorical.md new file mode 100644 index 0000000000..835cbffe13 --- /dev/null +++ b/tensorflow/g3doc/api_docs/python/functions_and_classes/shard3/tf.contrib.distributions.OneHotCategorical.md @@ -0,0 +1,638 @@ +OneHotCategorical distribution. + +The categorical distribution is parameterized by the log-probabilities +of a set of classes. The difference between OneHotCategorical and Categorical +distributions is that OneHotCategorical is a discrete distribution over +one-hot bit vectors whereas Categorical is a discrete distribution over +positive integers. OneHotCategorical is equivalent to Categorical except +Categorical has event_dim=() while OneHotCategorical has event_dim=K, where +K is the number of classes. + +This class provides methods to create indexed batches of OneHotCategorical +distributions. If the provided `logits` or `probs` is rank 2 or higher, for +every fixed set of leading dimensions, the last dimension represents one +single OneHotCategorical distribution. When calling distribution +functions (e.g. `dist.prob(x)`), `logits` and `x` are broadcast to the +same shape (if possible). In all cases, the last dimension of `logits,x` +represents single OneHotCategorical distributions. + +#### Examples + +Creates a 3-class distiribution, with the 2nd class, the most likely to be +drawn from. + +```python +p = [0.1, 0.5, 0.4] +dist = OneHotCategorical(probs=p) +``` + +Creates a 3-class distiribution, with the 2nd class the most likely to be +drawn from, using logits. + +```python +logits = [-2, 2, 0] +dist = OneHotCategorical(logits=logits) +``` + +Creates a 3-class distribution, with the 3rd class is most likely to be drawn. + +```python +# counts is a scalar. +p = [0.1, 0.4, 0.5] +dist = OneHotCategorical(probs=p) +dist.prob([0,1,0]) # Shape [] + +# p will be broadcast to [[0.1, 0.4, 0.5], [0.1, 0.4, 0.5]] to match. +samples = [[0,1,0], [1,0,0]] +dist.prob(samples) # Shape [2] +``` +- - - + +#### `tf.contrib.distributions.OneHotCategorical.__init__(logits=None, probs=None, dtype=tf.int32, validate_args=False, allow_nan_stats=True, name='OneHotCategorical')` {#OneHotCategorical.__init__} + +Initialize OneHotCategorical distributions using class log-probabilities. + +##### Args: + + +* <b>`logits`</b>: An N-D `Tensor`, `N >= 1`, representing the log probabilities of a + set of Categorical distributions. The first `N - 1` dimensions index + into a batch of independent distributions and the last dimension + represents a vector of logits for each class. Only one of `logits` or + `probs` should be passed in. +* <b>`probs`</b>: An N-D `Tensor`, `N >= 1`, representing the probabilities of a set + of Categorical distributions. The first `N - 1` dimensions index into a + batch of independent distributions and the last dimension represents a + vector of probabilities for each class. Only one of `logits` or `probs` + should be passed in. +* <b>`dtype`</b>: The type of the event samples (default: int32). +* <b>`validate_args`</b>: Python `Boolean`, default `False`. When `True` distribution + parameters are checked for validity despite possibly degrading runtime + performance. When `False` invalid inputs may silently render incorrect + outputs. +* <b>`allow_nan_stats`</b>: Python `Boolean`, default `True`. When `True`, statistics + (e.g., mean, mode, variance) use the value "`NaN`" to indicate the + result is undefined. When `False`, an exception is raised if one or + more of the statistic's batch members are undefined. +* <b>`name`</b>: `String` name prefixed to Ops created by this class. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.allow_nan_stats` {#OneHotCategorical.allow_nan_stats} + +Python boolean describing behavior when a stat is undefined. + +Stats return +/- infinity when it makes sense. E.g., the variance +of a Cauchy distribution is infinity. However, sometimes the +statistic is undefined, e.g., if a distribution's pdf does not achieve a +maximum within the support of the distribution, the mode is undefined. +If the mean is undefined, then by definition the variance is undefined. +E.g. the mean for Student's T for df = 1 is undefined (no clear way to say +it is either + or - infinity), so the variance = E[(X - mean)^2] is also +undefined. + +##### Returns: + + +* <b>`allow_nan_stats`</b>: Python boolean. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.batch_shape` {#OneHotCategorical.batch_shape} + +Shape of a single sample from a single event index as a `TensorShape`. + +May be partially defined or unknown. + +The batch dimensions are indexes into independent, non-identical +parameterizations of this distribution. + +##### Returns: + + +* <b>`batch_shape`</b>: `TensorShape`, possibly unknown. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.batch_shape_tensor(name='batch_shape_tensor')` {#OneHotCategorical.batch_shape_tensor} + +Shape of a single sample from a single event index as a 1-D `Tensor`. + +The batch dimensions are indexes into independent, non-identical +parameterizations of this distribution. + +##### Args: + + +* <b>`name`</b>: name to give to the op + +##### Returns: + + +* <b>`batch_shape`</b>: `Tensor`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.cdf(value, name='cdf')` {#OneHotCategorical.cdf} + +Cumulative distribution function. + +Given random variable `X`, the cumulative distribution function `cdf` is: + +``` +cdf(x) := P[X <= x] +``` + +##### Args: + + +* <b>`value`</b>: `float` or `double` `Tensor`. +* <b>`name`</b>: The name to give this op. + +##### Returns: + + +* <b>`cdf`</b>: a `Tensor` of shape `sample_shape(x) + self.batch_shape` with + values of type `self.dtype`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.copy(**override_parameters_kwargs)` {#OneHotCategorical.copy} + +Creates a deep copy of the distribution. + +Note: the copy distribution may continue to depend on the original +intialization arguments. + +##### Args: + + +* <b>`**override_parameters_kwargs`</b>: String/value dictionary of initialization + arguments to override with new values. + +##### Returns: + + +* <b>`distribution`</b>: A new instance of `type(self)` intitialized from the union + of self.parameters and override_parameters_kwargs, i.e., + `dict(self.parameters, **override_parameters_kwargs)`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.covariance(name='covariance')` {#OneHotCategorical.covariance} + +Covariance. + +Covariance is (possibly) defined only for non-scalar-event distributions. + +For example, for a length-`k`, vector-valued distribution, it is calculated +as, + +```none +Cov[i, j] = Covariance(X_i, X_j) = E[(X_i - E[X_i]) (X_j - E[X_j])] +``` + +where `Cov` is a (batch of) `k x k` matrix, `0 <= (i, j) < k`, and `E` +denotes expectation. + +Alternatively, for non-vector, multivariate distributions (e.g., +matrix-valued, Wishart), `Covariance` shall return a (batch of) matrices +under some vectorization of the events, i.e., + +```none +Cov[i, j] = Covariance(Vec(X)_i, Vec(X)_j) = [as above] +```` + +where `Cov` is a (batch of) `k' x k'` matrices, +`0 <= (i, j) < k' = reduce_prod(event_shape)`, and `Vec` is some function +mapping indices of this distribution's event dimensions to indices of a +length-`k'` vector. + +##### Args: + + +* <b>`name`</b>: The name to give this op. + +##### Returns: + + +* <b>`covariance`</b>: Floating-point `Tensor` with shape `[B1, ..., Bn, k', k']` + where the first `n` dimensions are batch coordinates and + `k' = reduce_prod(self.event_shape)`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.dtype` {#OneHotCategorical.dtype} + +The `DType` of `Tensor`s handled by this `Distribution`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.entropy(name='entropy')` {#OneHotCategorical.entropy} + +Shannon entropy in nats. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.event_shape` {#OneHotCategorical.event_shape} + +Shape of a single sample from a single batch as a `TensorShape`. + +May be partially defined or unknown. + +##### Returns: + + +* <b>`event_shape`</b>: `TensorShape`, possibly unknown. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.event_shape_tensor(name='event_shape_tensor')` {#OneHotCategorical.event_shape_tensor} + +Shape of a single sample from a single batch as a 1-D int32 `Tensor`. + +##### Args: + + +* <b>`name`</b>: name to give to the op + +##### Returns: + + +* <b>`event_shape`</b>: `Tensor`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.event_size` {#OneHotCategorical.event_size} + +Scalar `int32` tensor: the number of classes. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.is_continuous` {#OneHotCategorical.is_continuous} + + + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.is_scalar_batch(name='is_scalar_batch')` {#OneHotCategorical.is_scalar_batch} + +Indicates that `batch_shape == []`. + +##### Args: + + +* <b>`name`</b>: The name to give this op. + +##### Returns: + + +* <b>`is_scalar_batch`</b>: `Boolean` `scalar` `Tensor`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.is_scalar_event(name='is_scalar_event')` {#OneHotCategorical.is_scalar_event} + +Indicates that `event_shape == []`. + +##### Args: + + +* <b>`name`</b>: The name to give this op. + +##### Returns: + + +* <b>`is_scalar_event`</b>: `Boolean` `scalar` `Tensor`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.log_cdf(value, name='log_cdf')` {#OneHotCategorical.log_cdf} + +Log cumulative distribution function. + +Given random variable `X`, the cumulative distribution function `cdf` is: + +``` +log_cdf(x) := Log[ P[X <= x] ] +``` + +Often, a numerical approximation can be used for `log_cdf(x)` that yields +a more accurate answer than simply taking the logarithm of the `cdf` when +`x << -1`. + +##### Args: + + +* <b>`value`</b>: `float` or `double` `Tensor`. +* <b>`name`</b>: The name to give this op. + +##### Returns: + + +* <b>`logcdf`</b>: a `Tensor` of shape `sample_shape(x) + self.batch_shape` with + values of type `self.dtype`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.log_prob(value, name='log_prob')` {#OneHotCategorical.log_prob} + +Log probability density/mass function (depending on `is_continuous`). + +##### Args: + + +* <b>`value`</b>: `float` or `double` `Tensor`. +* <b>`name`</b>: The name to give this op. + +##### Returns: + + +* <b>`log_prob`</b>: a `Tensor` of shape `sample_shape(x) + self.batch_shape` with + values of type `self.dtype`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.log_survival_function(value, name='log_survival_function')` {#OneHotCategorical.log_survival_function} + +Log survival function. + +Given random variable `X`, the survival function is defined: + +``` +log_survival_function(x) = Log[ P[X > x] ] + = Log[ 1 - P[X <= x] ] + = Log[ 1 - cdf(x) ] +``` + +Typically, different numerical approximations can be used for the log +survival function, which are more accurate than `1 - cdf(x)` when `x >> 1`. + +##### Args: + + +* <b>`value`</b>: `float` or `double` `Tensor`. +* <b>`name`</b>: The name to give this op. + +##### Returns: + + `Tensor` of shape `sample_shape(x) + self.batch_shape` with values of type + `self.dtype`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.logits` {#OneHotCategorical.logits} + +Vector of coordinatewise logits. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.mean(name='mean')` {#OneHotCategorical.mean} + +Mean. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.mode(name='mode')` {#OneHotCategorical.mode} + +Mode. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.name` {#OneHotCategorical.name} + +Name prepended to all ops created by this `Distribution`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.param_shapes(cls, sample_shape, name='DistributionParamShapes')` {#OneHotCategorical.param_shapes} + +Shapes of parameters given the desired shape of a call to `sample()`. + +This is a class method that describes what key/value arguments are required +to instantiate the given `Distribution` so that a particular shape is +returned for that instance's call to `sample()`. + +Subclasses should override class method `_param_shapes`. + +##### Args: + + +* <b>`sample_shape`</b>: `Tensor` or python list/tuple. Desired shape of a call to + `sample()`. +* <b>`name`</b>: name to prepend ops with. + +##### Returns: + + `dict` of parameter name to `Tensor` shapes. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.param_static_shapes(cls, sample_shape)` {#OneHotCategorical.param_static_shapes} + +param_shapes with static (i.e. `TensorShape`) shapes. + +This is a class method that describes what key/value arguments are required +to instantiate the given `Distribution` so that a particular shape is +returned for that instance's call to `sample()`. Assumes that +the sample's shape is known statically. + +Subclasses should override class method `_param_shapes` to return +constant-valued tensors when constant values are fed. + +##### Args: + + +* <b>`sample_shape`</b>: `TensorShape` or python list/tuple. Desired shape of a call + to `sample()`. + +##### Returns: + + `dict` of parameter name to `TensorShape`. + +##### Raises: + + +* <b>`ValueError`</b>: if `sample_shape` is a `TensorShape` and is not fully defined. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.parameters` {#OneHotCategorical.parameters} + +Dictionary of parameters used to instantiate this `Distribution`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.prob(value, name='prob')` {#OneHotCategorical.prob} + +Probability density/mass function (depending on `is_continuous`). + +##### Args: + + +* <b>`value`</b>: `float` or `double` `Tensor`. +* <b>`name`</b>: The name to give this op. + +##### Returns: + + +* <b>`prob`</b>: a `Tensor` of shape `sample_shape(x) + self.batch_shape` with + values of type `self.dtype`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.probs` {#OneHotCategorical.probs} + +Vector of coordinatewise probabilities. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.reparameterization_type` {#OneHotCategorical.reparameterization_type} + +Describes how samples from the distribution are reparameterized. + +Currently this is one of the static instances +`distributions.FULLY_REPARAMETERIZED` +or `distributions.NOT_REPARAMETERIZED`. + +##### Returns: + + An instance of `ReparameterizationType`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.sample(sample_shape=(), seed=None, name='sample')` {#OneHotCategorical.sample} + +Generate samples of the specified shape. + +Note that a call to `sample()` without arguments will generate a single +sample. + +##### Args: + + +* <b>`sample_shape`</b>: 0D or 1D `int32` `Tensor`. Shape of the generated samples. +* <b>`seed`</b>: Python integer seed for RNG +* <b>`name`</b>: name to give to the op. + +##### Returns: + + +* <b>`samples`</b>: a `Tensor` with prepended dimensions `sample_shape`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.stddev(name='stddev')` {#OneHotCategorical.stddev} + +Standard deviation. + +Standard deviation is defined as, + +```none +stddev = E[(X - E[X])**2]**0.5 +``` + +where `X` is the random variable associated with this distribution, `E` +denotes expectation, and `stddev.shape = batch_shape + event_shape`. + +##### Args: + + +* <b>`name`</b>: The name to give this op. + +##### Returns: + + +* <b>`stddev`</b>: Floating-point `Tensor` with shape identical to + `batch_shape + event_shape`, i.e., the same shape as `self.mean()`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.survival_function(value, name='survival_function')` {#OneHotCategorical.survival_function} + +Survival function. + +Given random variable `X`, the survival function is defined: + +``` +survival_function(x) = P[X > x] + = 1 - P[X <= x] + = 1 - cdf(x). +``` + +##### Args: + + +* <b>`value`</b>: `float` or `double` `Tensor`. +* <b>`name`</b>: The name to give this op. + +##### Returns: + + `Tensor` of shape `sample_shape(x) + self.batch_shape` with values of type + `self.dtype`. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.validate_args` {#OneHotCategorical.validate_args} + +Python boolean indicated possibly expensive checks are enabled. + + +- - - + +#### `tf.contrib.distributions.OneHotCategorical.variance(name='variance')` {#OneHotCategorical.variance} + +Variance. + +Variance is defined as, + +```none +Var = E[(X - E[X])**2] +``` + +where `X` is the random variable associated with this distribution, `E` +denotes expectation, and `Var.shape = batch_shape + event_shape`. + +##### Args: + + +* <b>`name`</b>: The name to give this op. + +##### Returns: + + +* <b>`variance`</b>: Floating-point `Tensor` with shape identical to + `batch_shape + event_shape`, i.e., the same shape as `self.mean()`. + + |