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' )