簡體   English   中英

如何參數化 Tensorflow 分布?

[英]How to parametrize Tensorflow Distributions?

如何參數化 Tensorflow 分布? 即我想要一個分類分布並想向它添加高斯噪聲。 tfp.distributions.Normal 將 loc 作為輸入,如何將此 loc 設置為分類分布?

Categorical 在整數的有限集合中具有值,這不會真正進行類型檢查。 如果您有一組平均位置並希望從您可以做的分類中選擇它們,例如

num_categories = 5
means = np.linspace(-10, 10, num_categories)
jd = tfd.JointDistributionSequential([
  tfd.Categorical(logits=tf.zeros([num_categories])),
  lambda c: tfd.Normal(loc=tf.gather(means, c), scale=1.)
])

(有關這種模型規范的更多信息,請參閱使用 JointDistributions 建模

但這相當於高斯混合

msf = tfd.MixtureSameFamily(
    tfd.Categorical(logits=tf.zeros(num_categories])),
    tfd.Normal(loc=means, scale=1.))

您還可以使用FiniteDiscrete * 作為一種實值分類。

一些進一步的入門建議閱讀:

* - 由於某種原因,我們的 API 文檔中沒有導出 FiniteDiscrete。 我會考慮修復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM