BayesFlow Stochastic Graph (contrib)
[TOC]
Classes and helper functions for Stochastic Computation Graphs.
Stochastic Computation Graph Helper Functions
tf.contrib.bayesflow.stochastic_graph.surrogate_loss(sample_losses, stochastic_tensors=None, name='SurrogateLoss')
Surrogate loss for stochastic graphs.
This function will call loss_fn
on each StochasticTensor
upstream of sample_losses
, passing the losses that it influenced.
Note that currently surrogate_loss
does not work with StochasticTensor
s
instantiated in while_loop
s or other control structures.
Args:
sample_losses
: a list or tuple of final losses. Each loss should be per example in the batch (and possibly per sample); that is, it should have dimensionality of 1 or greater. All losses should have the same shape.stochastic_tensors
: a list ofStochasticTensor
s to add loss terms for. If None, defaults to allStochasticTensor
s in the graph upstream of theTensor
s insample_losses
.name
: the name with which to prepend created ops.
Returns:
Tensor
loss, which is the sum of sample_losses
and the
loss_fn
s returned by the StochasticTensor
s.
Raises:
TypeError
: ifsample_losses
is not a list or tuple, or if its elements are notTensor
s.ValueError
: if any loss insample_losses
does not have dimensionality 1 or greater.