pytorch 多元正态分布
时间: 2023-12-25 07:29:59 浏览: 423
多元正态分布是指具有多个随机变量的正态分布。在PyTorch中,可以使用torch.distributions.MultivariateNormal来创建多元正态分布对象。该对象可以用于生成服从多元正态分布的随机样本,计算概率密度函数(PDF)和对数概率密度函数(log PDF)等操作。
下面是一个使用PyTorch创建多元正态分布对象并生成随机样本的示例:
```python
import torch
from torch.distributions.multivariate_normal import MultivariateNormal
# 定义均值和协方差矩阵
mean = torch.tensor([0.0, 0.0])
covariance_matrix = torch.tensor([[1.0, 0.5], [0.5, 2.0]])
# 创建多元正态分布对象
multivariate_normal = MultivariateNormal(mean, covariance_matrix)
# 生成随机样本
samples = multivariate_normal.sample()
print("Random sample from multivariate normal distribution:")
print(samples)
# 计算概率密度函数(PDF)
pdf = multivariate_normal.log_prob(samples)
print("Log probability density function (PDF):")
print(pdf)
```
这段代码首先导入了torch和MultivariateNormal类。然后,我们定义了均值和协方差矩阵,并使用它们创建了一个多元正态分布对象。接下来,我们使用sample()方法生成一个随机样本,并使用log_prob()方法计算该样本的对数概率密度函数。
阅读全文