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

深度学习入门到实战:用PyTorch打通数学、张量与模型训练全链路​

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。

一. 人工智能、机器学习与深度学习的关系

1.1 概念层次解析

  • 人工智能(AI):使机器模拟人类智能的广义领域

  • 机器学习(ML):通过数据驱动的方法让系统自动改进性能

  • 深度学习(DL):基于多层神经网络的机器学习子领域

关系示意图

人工智能 ⊃ 机器学习 ⊃ 深度学习

image.png

二. PyTorch环境配置

2.1 Conda环境管理

# 创建虚拟环境  
conda create -n pytorch_env python=3.9  
# 激活环境  
conda activate pytorch_env  
# 安装PyTorch(根据CUDA版本选择)  
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia  # GPU版本  
conda install pytorch torchvision torchaudio cpuonly -c pytorch  # CPU版本

2.2 验证安装

import torch  
print(torch.__version__)            # 输出:2.0.1  
print(torch.cuda.is_available())    # 输出:True(GPU可用时)

三. 数学基础与张量操作

3.1 标量、向量、张量

image.png

代码示例:张量创建与操作

# 创建张量  
x = torch.empty(2, 3)  # 未初始化  
y = torch.zeros(2, 3, dtype=torch.int32)  
z = torch.randn(2, 3)  # 标准正态分布  
# 数学运算  
a = torch.tensor([[1,2],[3,4]], dtype=torch.float32)  
b = torch.tensor([[5,6],[7,8]], dtype=torch.float32)  
print(a + b)    # 逐元素加法  
print(a @ b.T)  # 矩阵乘法

四. 数据预处理与线性代数

4.1 数据标准化

from torchvision import transforms  
transform = transforms.Compose([  transforms.ToTensor(),  transforms.Normalize(mean=[0.485, 0.456, 0.406],   std=[0.229, 0.224, 0.225])  
])  
# 应用到数据集  
dataset = datasets.CIFAR10(..., transform=transform)

4.2 线性代数核心操作

# 矩阵分解  
A = torch.randn(3, 3)  
U, S, V = torch.svd(A)  # 奇异值分解  
# 特征值计算  
eigenvalues = torch.linalg.eigvalsh(A)  
# 张量缩并  
tensor = torch.einsum('ijk,jl->ikl', a, b)

五. 神经网络基础

5.1 神经元数学模型

image.png

  • wi:权重

  • bb:偏置(提供平移能力)

  • ff:激活函数

代码示例:单神经元实现

class Neuron(nn.Module):  def __init__(self, input_dim):  super().__init__()  self.linear = nn.Linear(input_dim, 1)  self.activation = nn.Sigmoid()  def forward(self, x):  return self.activation(self.linear(x))  
neuron = Neuron(3)  
output = neuron(torch.tensor([0.5, -1.2, 0.8]))

六. 模型训练全流程

6.1 训练要素定义

image.png

6.2 典型训练循环

model = nn.Sequential(  nn.Linear(784, 128),  nn.ReLU(),  nn.Linear(128, 10)  
)  
criterion = nn.CrossEntropyLoss()  
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)  
for epoch in range(10):  for inputs, labels in train_loader:  optimizer.zero_grad()  outputs = model(inputs.view(-1, 784))  loss = criterion(outputs, labels)  loss.backward()  optimizer.step()  print(f'Epoch {epoch+1}, Loss: {loss.item():.4f}')

七. 激活函数与反向传播

7.1 常见激活函数对比

image.png

7.2 反向传播数学原理

链式法则示例:

image.png

其中 z=∑wixi+bz=∑wixi+b,y=f(z)y=f(z)

代码示例:手动实现反向传播

x = torch.tensor(2.0, requires_grad=True)  
y = torch.tensor(3.0)  
w = torch.tensor(1.0, requires_grad=True)  
b = torch.tensor(0.5, requires_grad=True)  
# 前向计算  
z = w * x + b  
loss = (z - y)**2  
# 反向传播  
loss.backward()  
print(w.grad)  # 输出:4.0 (∂loss/∂w = 2*(wx + b - y)*x = 2*(2+0.5-3)*2 = 4)

image.png

:本文代码基于PyTorch 2.0+版本实现,运行前需安装:

pip install torch torchvision matplotlib

更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。

相关文章:

  • TRC20代币创建教程指南
  • 腾讯2025年校招笔试真题手撕(二)
  • 高等数学-求导
  • 中证500股指期货的名词解释
  • 电脑中了勒索病毒如何自救
  • 自动获取ip地址安全吗?如何自动获取ip地址
  • GStreamer开发笔记(四):ubuntu搭建GStreamer基础开发环境以及基础Demo
  • Java虚拟机 -方法调用
  • CSS回顾
  • 101个α因子#22
  • GUI之按钮效果汇总
  • C++中this指针有什么用?
  • 22. 用例依赖装饰器的实现思路和方法
  • Python 列表常用函数介绍
  • 智能呼叫系统的功能
  • 零基础入门:MinerU 和 PyTorch、CUDA的关系
  • 多模态大语言模型arxiv论文略读(八十九)
  • 【paddle】常见的数学运算
  • 技术篇-2.5.Matlab应用场景及开发工具安装
  • OpenCV CUDA 模块图像过滤-----创建一个计算图像导数的滤波器函数createDerivFilter()
  • ps建设网站步骤/永州网络推广
  • 上网站建设/游戏优化大师有用吗
  • 东莞虎门建设网站寻找/搜索排名查询
  • 如何把网站建设好/抓关键词的方法10条
  • 网站上的美工图片要怎么做/seo1新地址在哪里
  • 网络营销网站建设流程/重庆seo网站推广费用