机器学习 - 预测训练模型

接着上篇博客机器学习-训练模型做进一步说明。

There are three things to make predictions (also called performing inference) with a PyTorch model:

  1. Set the model in evaluation mode (model.eval())
  2. Make the predictions using the inference mode context manager (with torch.inference_mode(): ...)
  3. All predictions should be made with objects on the same device (e.g. data and model on GPU only or data and model on CPU only).

The first two items make sure all helpful calculations and settings PyTorch uses behind the scenes during training but aren't necessary for inference are turned off (this results in faster computation). And the third ensures that you won't run into cross-device errors.


下面代码片段是连接之前的博客

python 复制代码
import torch

# 1. Set the model in evaluation mode 
model_0.eval() 

# 2. Setup the inference mode context manager
with torch.inference_mode():
  # 3. Make sure the calculations are done with the model and data on the same device
  y_preds = model_0(X_test)

print(y_preds)

plot_predictions(predictions=y_preds)

# 结果如下
tensor([[0.8685],
        [0.8825],
        [0.8965],
        [0.9105],
        [0.9245],
        [0.9384],
        [0.9524],
        [0.9664],
        [0.9804],
        [0.9944]])

在下图,能看到预测点跟测试点很靠近,这结果挺理想的

这里稍微介绍一下 torch.inference_mode()

torch.inference.mode() 是一个上下文管理器,用于控制推断模式下的模型行为。在深度学习中,模型在训练和推断 (或称为预测) 阶段有不同的行为。在推断阶段,通常不需要计算梯度,也不需要跟踪计算图,这样可以提高推断速度并减少内存占用。torch.inference_mode() 上下文管理器就是为了控制模型在推断阶段的行为。

当进入torch.inference_mode() 上下文环境时,PyTorch会关闭梯度跟踪,并且禁用自动微分机制。这意味着在此环境中,无法调用backward()方法计算梯度,也无法通过梯度进行参数更新。这样可以确保模型在推断阶段不会意外地计算梯度,提高了推断的速度和效率。


都看到这里,点个赞支持一下呗~

相关推荐
我是小邵8 分钟前
长对话先收口:用“工作记忆 vs 长期记忆“管理 AI 上下文
人工智能·ai·llm·长期记忆·中间迷失·上下文收口
广州宏帝箱包9 分钟前
出口背包的包装有没有防潮、防摔的加固处理
大数据·人工智能
jimmyleeee10 分钟前
大模型安全之二十八:Agent 权限与策略控制:从最小权限到多层监督
人工智能·安全
仙魁XAN15 分钟前
【WorkBuddy·基础入门】第 8 篇 :从材料到汇报:用 WorkBuddy 制作第一份 PPT
人工智能·workbuddy·workbuddy 基础入门·ppt 自动生成
船厂电气自动化ai大模型24 分钟前
AI大模型与数学|第81天 课程:正交向量、正交基、格拉姆‑施密特(Gram‑Schmidt)正交化
开发语言·数据结构·人工智能·线性代数·机器学习
罗狮粉 9926 分钟前
AI-Gateway — 面向 AI Agent 的本地 Runtime Gateway
人工智能·python·inscode·ai编程
FL162386312927 分钟前
电力场景变电站设备识别关键部件识别分割数据集labelme格式1660张15类别
人工智能·机器学习
武子康29 分钟前
vLLM 的 token 预算还有余量,为什么请求仍被抢占?
人工智能·llm·agent
人工智能培训30 分钟前
大语言模型:从语言理解到通用智能的跃迁
linux·服务器·前端·人工智能
程序员清风30 分钟前
生产级智能体平台设计:任务编排、工具管理与运行监控
人工智能·python·aigc