阅读(10.6k) 书签 (0)

TensorFlow StochasticTensor详细介绍

2018-08-29 16:08 更新

tf.contrib.bayesflow.stochastic_tensor.StochasticTensor


tf.contrib.bayesflow.stochastic_tensor.StochasticTensor 类

定义在:tensorflow/contrib/bayesflow/python/ops/stochastic_tensor_impl.py.

参见指南:BayesFlow随机张量(contrib)>随机张量类

StochasticTensor 是一个由分布支持的 BaseStochasticTensor.

StochasticTensor 属性


  • distribution
  • dtype
  • graph
  • name
  • value_type

方法


__init__

__init__ (
DIST ,
name = 'StochasticTensor' ,
dist_value_type = None,
loss_fn = sge.score_function
)

构造一个 StochasticTensor.

StochasticTensor 由分区支持,它的 value 方法将在每次调用时返回相同的值.value 返回什么值由 dist_value_type(默认SampleValue)控制.

一些分布的样本函数是不可微的(例如来自离散分布的样本,如伯努利),因此要区分样本上游的 wrt 参数需要像评分函数估计器一样的梯度估计.这是通过传递一个可微分 loss_fn 到StochasticTensor,其默认为一个函数,其导数是分数函数估计.调用 stochastic_graph.surrogate_loss(final_losses) 将调用 loss() 的每一个 StochasticTensor 上游的最终损失.

loss() 将返回 None,StochasticTensor 以支持重新配置的分布; 如果值类型是 MeanValueType 或  loss_fn = None,它也将返回 none.

ARGS:

  • dist:一个分配实例.
  • name:这个StochasticTensor和它操作的名字.
  • dist_value_type:一个 _StochasticValueType,这将决定 StochasticTensor 的值将是什么.如果没有提供,将使用 value_type 上下文管理器设置的值类型.
  • loss_fn:可以调用 (st, st.value(), influenced_loss),其中 st 是这个 StochasticTensor,并返回张量损失.默认情况下,loss_fn 是 score_function 或者更准确地说,是分数函数的积分,这样当采用梯度时,分数函数就会产生.有关其他的损失函数和基准,请参阅 stochastic_gradient_estimators.

注意:

  • TypeError:如果区不是一个分配实例.
  • TypeError:如果 loss_fn 是不可调用的.

entropy

entropy( name = 'entropy' )

loss

loss ( 
final_loss ,
name = 'Loss'
)

mean

mean ( name = 'mean' )

value

value ( name = 'value' )