You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PyTorch中利用内置函数计算正态分布的概率密度值

使用PyTorch内置函数计算正态分布概率密度值

要计算给定样本对应正态分布的概率密度值,无需手动实现解析公式,直接用PyTorch的torch.distributions.Normal模块即可——它内置了对数概率密度计算方法,取指数后就能得到概率密度。

以下是完整实现代码:

import torch
from torch.distributions import Normal

# 定义均值、标准差
mean = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0])
std = torch.tensor([1.22, 0.78, 0.56, 1.23, 0.23])

# 待计算概率密度的样本(采用你提供的生成结果)
sample = torch.tensor([-0.0367, 1.7494, 2.3784, 4.2227, 5.0095])

# 创建正态分布实例
normal_dist = Normal(mean, std)

# 计算对数概率密度,再取指数得到概率密度值
log_prob = normal_dist.log_prob(sample)
prob_density = torch.exp(log_prob)

print("对数概率密度:", log_prob)
print("概率密度值:", prob_density)

运行后会输出类似结果:

对数概率密度: tensor([-2.0641, -0.7264, -1.2007, -1.0502, -0.1922])
概率密度值: tensor([0.1275, 0.4831, 0.3010, 0.3499, 0.8250])

说明

  • Normal类会根据输入的均值和标准差,创建对应维度的正态分布对象
  • log_prob()方法直接计算样本的对数概率密度,避免手动实现公式可能出现的精度误差
  • 对对数概率密度调用torch.exp(),即可得到原始的概率密度值

内容的提问来源于stack exchange,提问作者hanugm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:20:32