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
)

構(gòu)造一個 StochasticTensor.

StochasticTensor 由分區(qū)支持,它的 value 方法將在每次調(diào)用時返回相同的值.value 返回什么值由 dist_value_type(默認SampleValue)控制.

一些分布的樣本函數(shù)是不可微的(例如來自離散分布的樣本,如伯努利),因此要區(qū)分樣本上游的 wrt 參數(shù)需要像評分函數(shù)估計器一樣的梯度估計.這是通過傳遞一個可微分 loss_fn 到StochasticTensor,其默認為一個函數(shù),其導(dǎo)數(shù)是分數(shù)函數(shù)估計.調(diào)用 stochastic_graph.surrogate_loss(final_losses) 將調(diào)用 loss() 的每一個 StochasticTensor 上游的最終損失.

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

ARGS:

  • dist:一個分配實例.
  • name:這個StochasticTensor和它操作的名字.
  • dist_value_type:一個 _StochasticValueType,這將決定 StochasticTensor 的值將是什么.如果沒有提供,將使用 value_type 上下文管理器設(shè)置的值類型.
  • loss_fn:可以調(diào)用 (st, st.value(), influenced_loss),其中 st 是這個 StochasticTensor,并返回張量損失.默認情況下,loss_fn 是 score_function 或者更準確地說,是分數(shù)函數(shù)的積分,這樣當采用梯度時,分數(shù)函數(shù)就會產(chǎn)生.有關(guān)其他的損失函數(shù)和基準,請參閱 stochastic_gradient_estimators.

注意:

  • TypeError:如果區(qū)不是一個分配實例.
  • TypeError:如果 loss_fn 是不可調(diào)用的.

entropy

entropy( name = 'entropy' )

loss

loss ( 
final_loss ,
name = 'Loss'
)

mean

mean ( name = 'mean' )

value

value ( name = 'value' )
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號