深度学习中模型的推理和训练

目录

训练(training)阶段

会包含三步:

  1. 前向传播(forward):算预测结果
  2. 计算损失(loss)
  3. 反向传播(backward):计算梯度
  4. 参数更新(optimizer.step)

👉 这一步才需要梯度、计算图、反传。

在 PyTorch 里通常写成:

python 复制代码
import torch
import torch.nn as nn
import torch.optim as optim

# 1. 定义模型
model = nn.Linear(10, 1)

# 2. 损失函数 & 优化器
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=1e-3)

# 3. 切换到训练模式
model.train()

for epoch in range(100):
    # 假数据
    x = torch.randn(32, 10)
    y = torch.randn(32, 1)

    # ===== 前向传播 =====
    y_pred = model(x)
    loss = criterion(y_pred, y)

    # ===== 反向传播 =====
    optimizer.zero_grad()   # 清空旧梯度
    loss.backward()         # 计算梯度
    optimizer.step()        # 更新参数

    print(f"epoch {epoch}, loss = {loss.item():.4f}")

推理(inference)阶段

只做:

  • 前向传播
  • 不计算 loss
  • 不做反向传播
  • 不更新参数

因此:

  • 不需要梯度
  • 不需要保留计算图
  • 显存占用和计算量都更小
  • 速度更快

在 PyTorch 里通常写成:

python 复制代码
import torch
import torch.nn as nn

# 已训练好的模型
model = nn.Linear(10, 1)
model.load_state_dict(torch.load("model.pt"))

# 1. 切换到推理模式
model.eval()

# 2. 禁用梯度
with torch.no_grad():
    x = torch.randn(1, 10)

    # ===== 仅前向传播 =====
    y_pred = model(x)

print(y_pred)
相关推荐
vx_biyesheji0001几秒前
计算机毕业设计:Python汽车市场智能决策系统 Flask框架 可视化 机器学习 AI 大模型 大数据(建议收藏)✅
大数据·人工智能·python·算法·django·汽车·课程设计
源码之家2 分钟前
计算机毕业设计:Python汽车销量智能可视化与预测系统 Flask框架 可视化 机器学习 AI 大模型 大数据(建议收藏)✅
大数据·人工智能·python·机器学习·信息可视化·汽车·课程设计
Dfreedom.3 分钟前
神经网络算法全景解析
人工智能·神经网络·算法
特别关注外国供应商5 分钟前
Netskope 安全与网络重塑人工智能
网络·人工智能·安全·零信任·访问控制·sase·netskope
财经资讯数据_灵砚智能6 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年4月2日
大数据·人工智能·python·信息可视化·语言模型·自然语言处理·ai编程
F_U_N_7 分钟前
研发效率革命:AI如何重构环境配置与团队协作?
人工智能·重构·ai编程
nihao56110 分钟前
深度学习(2):逻辑回归 md版本
人工智能·深度学习·逻辑回归
格林威11 分钟前
GigE Vision 多相机同步优化方案: PTP + 硬件触发 + 时间戳对齐
c++·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
kishu_iOS&AI12 分钟前
机器学习 —— 浅析
人工智能·算法·机器学习