tf.contrib.bayesflow.stochastic_tensor.SampleValue

class tf.contrib.bayesflow.stochastic_tensor.SampleValue

Defined in tensorflow/contrib/bayesflow/python/ops/stochastic_tensor_impl.py.

See the guide: BayesFlow Stochastic Tensors (contrib) > Stochastic Tensor Value Types

Draw samples, possibly adding new outer dimensions along the way.

This ValueType draws samples from StochasticTensors run within its context, increasing the rank according to the requested shape.

Examples:

mu = tf.zeros((2,3))
sigma = tf.ones((2, 3))
with sg.value_type(sg.SampleValue()):
  st = sg.StochasticTensor(
    tf.contrib.distributions.Normal, mu=mu, sigma=sigma)
# draws 1 sample and does not reshape
assertEqual(st.value().get_shape(), (2, 3))
mu = tf.zeros((2,3))
sigma = tf.ones((2, 3))
with sg.value_type(sg.SampleValue(4)):
  st = sg.StochasticTensor(
    tf.contrib.distributions.Normal, mu=mu, sigma=sigma)
# draws 4 samples each with shape (2, 3) and concatenates
assertEqual(st.value().get_shape(), (4, 2, 3))

Properties

shape

stop_gradient

Methods

__init__

__init__(
    shape=(),
    stop_gradient=False
)

Sample according to shape.

For the given StochasticTensor st using this value type, the shape of st.value() will match that of st.distribution.sample(shape).

Args:

  • shape: A shape tuple or int32 tensor. The sample shape. Default is a scalar: take one sample and do not change the size.
  • stop_gradient: If True, StochasticTensors' values are wrapped in stop_gradient, to avoid backpropagation through.

declare_inputs

declare_inputs(
    unused_stochastic_tensor,
    unused_inputs_dict
)

popped_above

popped_above(unused_value_type)

pushed_above

pushed_above(unused_value_type)