Tensorflow概率抽样需要很长时间
我正在尝试使用tfp进行采样过程。从贝塔分布中抽取样本,并将结果作为概率输入,从二项分布中抽取样本。它花了很长时间才跑完 我应该这样做还是有一个最佳的方法 '''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分布支持我们称之为“批处理形状”的概念。在这里,通过使用
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)