当前位置: 首页 > wzjs >正文

中国电力建设集团网站群wordpress用户分组

中国电力建设集团网站群,wordpress用户分组,jsp体育用品网站建设,儿童手工制作大全简单一、为什么说深度神经网络是21世纪的「炼金术」? 在开始代码之前,我们先看一组震撼数据: GPT-3模型参数量达到1750亿(相当于人类大脑神经元数量的1/10)Stable Diffusion生成一张图片需要150亿次浮点运算AlphaFold预测…

在这里插入图片描述

一、为什么说深度神经网络是21世纪的「炼金术」?

在开始代码之前,我们先看一组震撼数据:

  • GPT-3模型参数量达到1750亿(相当于人类大脑神经元数量的1/10)
  • Stable Diffusion生成一张图片需要150亿次浮点运算
  • AlphaFold预测蛋白质结构的准确率超过人类专家

这些看似魔法的技术背后,都藏着一个共同的核心——深度神经网络。让我们用Python揭开这层神秘面纱。

二、环境搭建:打造你的AI炼丹炉(完整说明)

2.1 配置命令逐行解析

# 创建名为torch_gpu的虚拟环境,指定Python 3.10
conda create -n torch_gpu python=3.10  # 激活刚创建的虚拟环境(后续操作都在该环境中进行)
conda activate torch_gpu  # 安装PyTorch全家桶(包含CUDA 12.1支持)
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia# 验证GPU是否可用(输出True表示成功)
python -c "import torch; print(torch.cuda.is_available())"

关键点说明

  1. 虚拟环境的作用:隔离不同项目的依赖,避免版本冲突
  2. CUDA版本选择:需与显卡驱动匹配(可通过nvidia-smi查看最高支持的CUDA版本)
  3. 常见问题解决:若输出False,检查驱动版本或重新安装对应CUDA版本
  4. 注意事项:确保安装的PyTorch版本与CUDA版本兼容(可通过PyTorch官网查询)

三、张量操作:深度学习的乐高积木

3.1 张量创建与自动微分

import torch# 标量(单个数值)
temperature = torch.tensor(36.5)  # 体温值# 向量(一维数组) 
blood_pressure = torch.tensor([120, 80])  # 血压值# 矩阵(二维数组)
ecg_data = torch.randn(10, 1000)  # 10秒心电信号# 自动微分演示
x = torch.tensor(2.0, requires_grad=True)  # 需要追踪梯度
y = x**3 + 3*x + 1  # 定义计算图
y.backward()         # 反向传播计算梯度
print(f"当x=2时,导数dy/dx = {x.grad}")  # 输出:3*(2)^2 + 3 = 15

执行过程解析

  1. requires_grad=True:开启梯度追踪,PyTorch会记录所有操作以构建计算图
  2. 构建计算图:y = x³ + 3x + 1
  3. backward():自动计算所有相关梯度(需确保y是标量)
  4. x.grad:存储最终梯度值
  5. 注意事项:若对非标量张量调用backward(),需传入gradient参数(例如y.backward(torch.ones_like(y))

四、MNIST实战:第一个AI程序

4.1 数据加载与可视化

from torchvision import datasets, transforms# 数据预处理流水线
transform = transforms.Compose([transforms.ToTensor(),  # 将PIL图像转为Tensortransforms.Normalize((0.1307,), (0.3081,))  # 标准化(MNIST专用参数)
])# 下载数据集(首次运行需下载)
train_set = datasets.MNIST(root='./data',      # 存储路径train=True,         # 训练集download=True,      # 自动下载transform=transform # 应用预处理
)# 可视化第一个样本
import matplotlib.pyplot as plt
plt.imshow(train_set.data[0].numpy(), cmap='gray')  # 转为numpy数组
plt.title(f'真实标签: {train_set.targets[0].item()}') # 显示标签
plt.axis('off')  # 关闭坐标轴
plt.show()

关键参数说明

  1. Normalize参数:通过大数据集统计得出(均值0.1307,标准差0.3081)
  2. download=True:首次使用需下载约60MB数据集(确保网络连接正常)
  3. cmap='gray':指定灰度色彩映射
  4. 注意事项:若下载失败,可手动从MNIST官网下载并放置到./data目录

五、全连接网络:数字识别核心

5.1 网络结构详解

import torch.nn as nnclass Net(nn.Module):def __init__(self):super().__init__()self.fc1 = nn.Linear(784, 512)  # 输入784像素,输出512维self.fc2 = nn.Linear(512, 256)  # 隐藏层self.fc3 = nn.Linear(256, 10)   # 输出10个数字的概率self.dropout = nn.Dropout(0.2)   # 随机丢弃20%神经元防止过拟合self.relu = nn.ReLU()           # 激活函数def forward(self, x):x = x.view(-1, 784)  # 将28x28图像展平为784维向量x = self.relu(self.fc1(x))  # 第一层计算+激活x = self.dropout(x)        # 随机丢弃部分节点x = self.relu(self.fc2(x)) # 第二层计算+激活return self.fc3(x)         # 输出未激活的logits

各组件作用

  1. nn.Linear:实现y = Wx + b的线性变换
  2. ReLU:引入非线性(公式:max(0, x)
  3. Dropout:训练时随机屏蔽神经元,增强泛化能力(仅在训练模式下生效)
  4. view(-1, 784)-1表示自动计算批次大小(根据输入自动调整)
  5. 注意事项Dropout在评估模式下会自动禁用(通过model.eval()切换)

六、训练循环:模型的学习过程

6.1 完整训练流程

model = Net()
criterion = nn.CrossEntropyLoss()  # 交叉熵损失函数
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)  # 优化器for epoch in range(10):  # 遍历数据集10次for images, labels in train_loader:  # 分批加载数据# 前向传播outputs = model(images)  # 模型预测loss = criterion(outputs, labels)  # 计算损失# 反向传播optimizer.zero_grad()  # 清空历史梯度loss.backward()        # 自动求导计算梯度optimizer.step()       # 更新网络参数# 验证阶段model.eval()  # 切换为评估模式(关闭Dropout等)with torch.no_grad():  # 禁用梯度计算correct = 0total = 0for images, labels in test_loader:outputs = model(images)_, predicted = torch.max(outputs.data, 1)  # 取每行最大值的索引total += labels.size(0)  # 累计样本总数correct += (predicted == labels).sum().item()  # 统计正确数print(f'Epoch [{epoch+1}/10], 准确率: {100 * correct / total:.2f}%')model.train()  # 切换回训练模式

关键步骤解析

  1. optimizer.zero_grad():防止梯度累积(每次反向传播前必须清空)
  2. loss.backward():自动计算所有参数的梯度(依赖计算图)
  3. torch.max(outputs.data, 1)dim=1表示按行取最大值(返回值和索引)
  4. model.eval():关闭Dropout等训练专用层
  5. 注意事项:确保train_loadertest_loader已正确定义(可通过torch.utils.data.DataLoader创建)

技术要点总结表

技术点作用描述类比解释
张量(Tensor)多维数据容器,支持GPU加速类似NumPy数组,但更强大
自动微分自动计算梯度自动驾驶中的导航系统
激活函数引入非线性变换神经元的"开关"机制
Dropout防止过拟合的正则化方法随机让部分神经元"失明"
交叉熵损失衡量预测与真实值的差异考试成绩的误差计算
反向传播根据损失调整网络参数老师根据错误调整教学方式

下一步建议

  1. 尝试修改网络层数观察准确率变化(例如增加隐藏层)
  2. 调整学习率体验不同收敛速度(例如尝试lr=0.01
  3. 可视化训练过程中的损失曲线(使用matplotlib绘制)
  4. 添加Batch Normalization层对比效果(通过nn.BatchNorm1d实现)

本文原创,原创不易,如需转载,请联系作者授权。



文章转载自:

http://IzTsSiSh.zmpqt.cn
http://ujCBuJRa.zmpqt.cn
http://FWUX8uDV.zmpqt.cn
http://0UsnGV28.zmpqt.cn
http://Gamuv0F9.zmpqt.cn
http://Wihj454t.zmpqt.cn
http://IMylZx69.zmpqt.cn
http://eRBtXETL.zmpqt.cn
http://mo0ghxxi.zmpqt.cn
http://Gok9oVWE.zmpqt.cn
http://ASxTDsor.zmpqt.cn
http://HqTVZtLQ.zmpqt.cn
http://hFKeqbgX.zmpqt.cn
http://OEX0MozQ.zmpqt.cn
http://aCSn73Uq.zmpqt.cn
http://b1qn3K23.zmpqt.cn
http://3UvLOqxU.zmpqt.cn
http://eQyODVRQ.zmpqt.cn
http://oEn2N1hu.zmpqt.cn
http://0PpJbCMh.zmpqt.cn
http://axmOpL5m.zmpqt.cn
http://yaMQeHcl.zmpqt.cn
http://hUvq9VQp.zmpqt.cn
http://scA2hhET.zmpqt.cn
http://m1LGTGjd.zmpqt.cn
http://A08Xqjv9.zmpqt.cn
http://PZvBT9pm.zmpqt.cn
http://RAjfOYUC.zmpqt.cn
http://NzMRTsCB.zmpqt.cn
http://zEr6Hx20.zmpqt.cn
http://www.dtcms.com/wzjs/734881.html

相关文章:

  • 唐山哪个公司可以制作网站成品网页大全下载
  • 中国万网域名查询瀑布流网站如何seo
  • 如何做网站界面免费行情软件app网站大全入口
  • fqapps com网站怎么做邯郸最新工程项目公示
  • 济宁网站建设招聘网页设计实用教程
  • 网站功能介绍wordpress 游戏 模板下载
  • 珍岛外贸网站建设wordpress 浮窗音乐
  • 做网站服务器价格多少合适扁平化设计网站代码
  • 网站建设咨询有客诚信网站建设咨询南宁网站建设南宁
  • 无锡优化网站价格学校网站建设审批
  • 做紧固件上什么网站网络促销策略
  • 基本网站建设语言移动wap站点
  • 阿里云建站百度收录吗泰州网站优化公司
  • 北京市建设工程造价管理协会网站网站推广销售腾讯会员被告怎么办
  • 老渔哥网站建设公司网站策划书是什么
  • 网站单页别人是怎么做的wordpress 媒体库设置
  • 如何让百度快速收录网站文章阿里巴巴官网首页
  • 网站正能量视频不懂我意思吧wordpress中的全站链接怎么改
  • 宁波网站建设-中国互联网站开发要注意的漏洞
  • 瑞丽住建局网站品牌建设的六个步骤
  • iis 创建网站wordpress 下载按钮
  • 网站广告下悬浮代码怎么做企业网站设计制作服务
  • 建立网站需要什么条件wordpress4.5.2主题
  • 宁夏建设工程质量网站虚拟主机云主机
  • 网站建设的关键石家庄建筑网
  • 长春网站seo外包php视频网站怎么做
  • 自己如何开网站公司网站公司
  • 苏州松陵镇哪里做网站青海教育厅门户网站
  • 青浦做网站公司ps软件下载电脑版要钱吗
  • 建站之星官方网站网站到首页排名