Tensorflow概率抽样需要很长时间

Tensorflow概率抽样需要很长时间,tensorflow,sampling,montecarlo,tensorflow-probability,Tensorflow,Sampling,Montecarlo,Tensorflow Probability,我正在尝试使用tfp进行采样过程。从贝塔分布中抽取样本,并将结果作为概率输入,从二项分布中抽取样本。它花了很长时间才跑完 我应该这样做还是有一个最佳的方法 ''' ''TFP分布支持我们称之为“批处理形状”的概念。在这里,通过使用phi.shape=[100000]给出probs=phi,您实际上创建了一批10万个二进制数。然后你要从这些样本中抽取10万次,这是为了创建1e10样本,这需要一段时间!相反,请尝试以下方法: m = 100000 s = tfd.Sample( tfd.Be

我正在尝试使用tfp进行采样过程。从贝塔分布中抽取样本,并将结果作为概率输入,从二项分布中抽取样本。它花了很长时间才跑完

我应该这样做还是有一个最佳的方法

'''


''

TFP分布支持我们称之为“批处理形状”的概念。在这里,通过使用
phi.shape=[100000]
给出
probs=phi
,您实际上创建了一批10万个二进制数。然后你要从这些样本中抽取10万次,这是为了创建1e10样本,这需要一段时间!相反,请尝试以下方法:

m = 100000
s = tfd.Sample(
    tfd.Beta(2,2),
    sample_shape = m
)
phi = s.sample()

### Second sample from Binominal distribution 
s2 = tfd.Binomial(total_count=10, probs=phi)

y = s2.sample()
或者,使用
tfd.BetaBinomial

bb = tfd.BetaBinomial(total_count=10, concentration1=2, concentration0=2)
bb.sample(100000)
但最重要的是,看看通过TFP的形状语义讨论的示例笔记本:


干杯

哈哈,这很有帮助。谢谢!
bb = tfd.BetaBinomial(total_count=10, concentration1=2, concentration0=2)
bb.sample(100000)