尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

深入解析:python学智能算法(三十九)|使用PyTorch模块的normal()函数绘制正态分布函数图

深入解析:python学智能算法(三十九)|使用PyTorch模块的normal()函数绘制正态分布函数图
📅 发布时间:2026/6/20 2:24:15

深入解析:python学智能算法(三十九)|使用PyTorch模块的normal()函数绘制正态分布函数图

【1】引言

前序已经学习了使用Numpy和PyTorch模块绘制正态分布函数图的基本技巧,掌握了
p(x)=12πσ2exp(−12σ2(x−μ)2)p(x)=\frac{1}{\sqrt{2\pi\sigma^2}}exp(-\frac{1}{2\sigma^2}(x-\mu)^2)p(x)=2πσ2​1​exp(−2σ21​(x−μ)2)
在PyTorch里面绘制图像的基本技巧。
今天更进一步,使用torch.normal()函数直接绘制正态分布函数图。

【2】torch.normal()函数

【2.1】生成随机数

torch.normal()函数可以直接绘制正态分布函数图。
这个函数的作用是生成符合正态分布的随机数,比如:

# 引入模块 
import torch
# 使用torch.normal()函数生成随机数
x=torch.normal(0,1,(2,3))
print(x)
a=len(x)
print('a=',a)

这个代码运行会生成2行3列的满足均值为0、标准差为1的正态分布随机数。

【2.2】对随机数绘图

torch.normal()函数可以直接获得正态分布随机数,那数据就可以画出图像。
这个图像的最佳画法就是使用hist()函数来绘制概率分布图,随机数如何分布的情况一目了然。
为了做对比,我们也可以自己按照上述正态分布函数式来自定义图像。
这里给出代码:

import torch
import matplotlib.pyplot as plt
import numpy as np
# 生成不同样本量的数据
sample_sizes = [100, 1000, 10000]  # 三种样本量
# 生成x轴数据(用于理论曲线)
x_range = np.arange(-5, 5,0.01)
datasets = [torch.normal(0, 1, (size,)).numpy() for size in sample_sizes]
# 定义正态分布概率密度函数(理论曲线)
def normal_pdf(x, mean=0, std=1):
return (1 / (std * np.sqrt(2 * np.pi))) * np.exp(-0.5 * ((x - mean) / std) ** 2)
# 计算理论曲线值
y_theoretical = normal_pdf(x_range)
# 创建画布和子图
fig, ax = plt.subplots(1, 3)
for i in range(3):
ax[i].hist(datasets[i],bins=int(sample_sizes[i]*0.3), density=True, alpha=0.5, color='skyblue', edgecolor='black')
# 叠加理论正态分布曲线
ax[i].plot(x_range, y_theoretical, 'r-', linewidth=2, label='理论分布')
print(len(datasets[i]))
if i == 0:  # 仅第一个子图显示y轴标签(避免重复)
ax[i].set_ylabel('torch.normal', fontsize=12)
if i == 1:  # 仅第二个子图显示x轴标签(避免重复)
ax[1].set_xlabel('x', fontsize=12)
plt.show()

代码给出了三个数量级的随机数概率分布直方图,第一个有100个数据,第二个有1000个数据,第三个有10000个数据。数据越多,理论上正态分布的效果越明显,实际的图像效果为:
在这里插入图片描述
虽然图像在高度上发生了变化,但显然数据越多,直方图和曲线图拟合得更好。

【3】细节

需要注意的是,图像越来越黑,是因为hist()函数绘制了很多边框,边框的颜色edgecolor是黑色的。bins=int(sample_sizes[i]*0.3)表明数据越多,边框越多,所以黑色越来越多。

ax[i].hist(datasets[i],bins=int(sample_sizes[i]*0.3), density=True, alpha=0.5, color=‘skyblue’, edgecolor=‘black’)

如果想让图像的颜色一致,最佳办法就是统一所有的边框数量,比如限制边框数量为30,此时的图像效果为:
在这里插入图片描述

【4】说明

虽然上述代码简洁的表明了torch.normal()函数可以生成好用的正态分布随机数,但是这个代码显然写起来要比numpy模块复杂一些。
并且当前只对torch.normal(0, 1, (size,))画了图,还没有开展更复杂的图像绘制。,学习的路还长。

【5】总结

学习了使用PyTorch模块的normal()函数绘制正态分布函数图的基本方法。

相关新闻

  • 2025污水处理设备厂家 TOP 企业品牌推荐排行榜,一体化,生活,工业,养殖,医疗,农村,学校,餐厨,隧洞,高速污水处理设备公司推荐!
  • 详细介绍:告别“下次注意”,用这套结构化事故复盘方案就对了
  • 关于树状数组的一些东西

最新新闻

  • 如何快速掌握跨设备控制:终极多平台键鼠共享方案
  • 2026年台州市PMP培训机构哪家好?官方授权R.E.P.报考指南 - 众智商学院课程中心
  • 2026衢州2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水
  • 武汉南华光电职业技术学校 2026 年报名入口以及招生办联系方式 - 武汉中职最新信息发布
  • 4.1 自由振动 固有频率与固有振型
  • ComfyUI TTP Toolset:3步掌握8K超分辨率图像分块处理技术,普通电脑也能轻松实现AI图像增强

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号