考虑从具有给定均值和标准差的正态分布生成随机样本的以下代码。
# import the torch module
import torch
# create the mean with 5 values
mean = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0])
# create the standard deviation with 5 values
std = torch.tensor([1.22, 0.78, 0.56, 1.23, 0.23])
# create normal distribution
print(torch.normal(mean, std))输出:
tensor([-0.0367, 1.7494, 2.3784, 4.2227, 5.0095])但是我想要计算特定样本的正态分布的概率密度值,给出平均值和标准差。在PyTorch中有任何函数可以用来做同样的事情吗?
请注意,我可以通过编码正态分布的解析表达式和给定的均值和标准差来得到pdf值。但是,我想使用一个内置的PyTorch。
发布于 2022-09-07 11:15:58
有torch.distributions,提供了一些有用的方法。不如:
dist = torch.distributions.normal.Normal(mean, std)
print(torch.exp(dist.log_prob(torch.Tensor(my_value))))其结果似乎与scipy.stats.norm.pdf()的收益率相同。
https://stackoverflow.com/questions/73634337
复制相似问题