contrib.distributions.bijectors.Chain

tf.contrib.distributions.bijectors.Chain

class tf.contrib.distributions.bijectors.Chain

Defined in tensorflow/contrib/distributions/python/ops/bijectors/chain_impl.py.

See the guide: Random variable transformations (contrib) > Bijectors

Bijector which applies a sequence of bijectors.

Example Use:

chain = Chain([Exp(), Softplus()], name="one_plus_exp")

Results in:

  • Forward:

python exp = Exp() softplus = Softplus() Chain([exp, softplus]).forward(x) = exp.forward(softplus.forward(x)) = tf.exp(tf.log(1. + tf.exp(x))) = 1. + tf.exp(x)

  • Inverse:

python exp = Exp() softplus = Softplus() Chain([exp, softplus]).inverse(y) = softplus.inverse(exp.inverse(y)) = tf.log(tf.exp(tf.log(y)) - 1.) = tf.log(y - 1.)

Properties

bijectors

dtype

dtype of Tensors transformable by this distribution.

event_ndims

Returns then number of event dimensions this bijector operates on.

graph_parents

Returns this Bijector's graph_parents as a Python list.

is_constant_jacobian

Returns true iff the Jacobian is not a function of x.

Note: Jacobian is either constant for both forward and inverse or neither.

Returns:

  • is_constant_jacobian: Python bool.

name

Returns the string name of this Bijector.

validate_args

Returns True if Tensor arguments will be validated.

Methods

__init__

__init__(
    bijectors=None,
    validate_args=False,
    name=None
)

Instantiates Chain bijector.

Args:

  • bijectors: Python list of bijector instances. An empty list makes this bijector equivalent to the Identity bijector.
  • validate_args: Python bool indicating whether arguments should be checked for correctness.
  • name: Python str, name given to ops managed by this object. Default: E.g., Chain([Exp(), Softplus()]).name == "chain_of_exp_of_softplus".

Raises:

  • ValueError: if bijectors have different dtypes.

forward

forward(
    x,
    name='forward'
)

Returns the forward Bijector evaluation, i.e., X = g(Y).

Args:

  • x: Tensor. The input to the "forward" evaluation.
  • name: The name to give this op.

Returns:

Tensor.

Raises:

  • TypeError: if self.dtype is specified and x.dtype is not self.dtype.
  • NotImplementedError: if _forward is not implemented.

forward_event_shape

forward_event_shape(input_shape)

Shape of a single sample from a single batch as a TensorShape.

Same meaning as forward_event_shape_tensor. May be only partially defined.

Args:

  • input_shape: TensorShape indicating event-portion shape passed into forward function.

Returns:

  • forward_event_shape_tensor: TensorShape indicating event-portion shape after applying forward. Possibly unknown.

forward_event_shape_tensor

forward_event_shape_tensor(
    input_shape,
    name='forward_event_shape_tensor'
)

Shape of a single sample from a single batch as an int32 1D Tensor.

Args:

  • input_shape: Tensor, int32 vector indicating event-portion shape passed into forward function.
  • name: name to give to the op

Returns:

  • forward_event_shape_tensor: Tensor, int32 vector indicating event-portion shape after applying forward.

forward_log_det_jacobian

forward_log_det_jacobian(
    x,
    name='forward_log_det_jacobian'
)

Returns both the forward_log_det_jacobian.

Args:

  • x: Tensor. The input to the "forward" Jacobian evaluation.
  • name: The name to give this op.

Returns:

Tensor.

Raises:

  • TypeError: if self.dtype is specified and y.dtype is not self.dtype.
  • NotImplementedError: if neither _forward_log_det_jacobian nor {_inverse, _inverse_log_det_jacobian} are implemented.

inverse

inverse(
    y,
    name='inverse'
)

Returns the inverse Bijector evaluation, i.e., X = g^{-1}(Y).

Args:

  • y: Tensor. The input to the "inverse" evaluation.
  • name: The name to give this op.

Returns:

Tensor.

Raises:

  • TypeError: if self.dtype is specified and y.dtype is not self.dtype.
  • NotImplementedError: if _inverse is not implemented.

inverse_event_shape

inverse_event_shape(output_shape)

Shape of a single sample from a single batch as a TensorShape.

Same meaning as inverse_event_shape_tensor. May be only partially defined.

Args:

  • output_shape: TensorShape indicating event-portion shape passed into inverse function.

Returns:

  • inverse_event_shape_tensor: TensorShape indicating event-portion shape after applying inverse. Possibly unknown.

inverse_event_shape_tensor

inverse_event_shape_tensor(
    output_shape,
    name='inverse_event_shape_tensor'
)

Shape of a single sample from a single batch as an int32 1D Tensor.

Args:

  • output_shape: Tensor, int32 vector indicating event-portion shape passed into inverse function.
  • name: name to give to the op

Returns:

  • inverse_event_shape_tensor: Tensor, int32 vector indicating event-portion shape after applying inverse.

inverse_log_det_jacobian

inverse_log_det_jacobian(
    y,
    name='inverse_log_det_jacobian'
)

Returns the (log o det o Jacobian o inverse)(y).

Mathematically, returns: log(det(dX/dY))(Y). (Recall that: X=g^{-1}(Y).)

Note that forward_log_det_jacobian is the negative of this function.

Args:

  • y: Tensor. The input to the "inverse" Jacobian evaluation.
  • name: The name to give this op.

Returns:

Tensor.

Raises:

  • TypeError: if self.dtype is specified and y.dtype is not self.dtype.
  • NotImplementedError: if _inverse_log_det_jacobian is not implemented.

© 2017 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/contrib/distributions/bijectors/Chain

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部