gpt4 book ai didi

python - 如何在 TensorFlow Probability 中创建分布数组?

转载 作者:行者123 更新时间:2023-12-01 08:10:56 27 4
gpt4 key购买 nike

我正在尝试使用 Tensorflow Probability 编写代码,以使用 EM 算法对一组样本(来自多个高斯分布)进行分类。

因为我想为任何一般问题编写此代码(如果样本来自 2 个高斯分布或 8 个高斯分布,我希望它能够工作)。

我现在遇到的问题是我找不到创建tfd.Normal数组的方法。

我想将其作为数组(或其他类似类型的数据),因为这样我可以处理不确定数量的分布。

谁能帮我解决这个问题吗?

下面的代码可以解决吗?

true_mu = np.array([20,60], dtype=np.float64)
true_sigma = np.array([8,4], dtype=np.float64)
true_dist = tfd.Normal(loc=true_mu, scale=true_sigma)

最佳答案

TFP 发行版具有开箱即用的批量功能。您的代码应该可以工作,并表示 2 个正态分布的向量,其中第一个是 N(X|20, 8),第二个是 N(X|60, 4).

您可以通过 true_dist.batch_shape 查询(在本例中将返回 [2])。

您现在可以采样:true_dist.sample()(返回形状为 [2] 的 float64)。

您可以计算概率:true_dist.log_prob(0)(返回形状为[2]的 float64,表示[log N(0|20, 8), log N(0|60, 4)])。

您可以估计每个批处理成员的独立概率:true_dist.log_prob([0, 1])(返回形状为[2]<的float64/code>,代表[log N(0|20, 8), log N(1|60, 4)])。

另请注意,TFP 分布会广播其参数,因此如果您想要两个具有相同位置和不同比例的法线,您可以编写 tfd.Normal(0, [10, 20])

关于python - 如何在 TensorFlow Probability 中创建分布数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55258627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com