机器学习 - 预测训练模型

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

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()方法计算梯度,也无法通过梯度进行参数更新。这样可以确保模型在推断阶段不会意外地计算梯度,提高了推断的速度和效率。


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

相关推荐
独立开发者阿乐2 分钟前
DeepSeek 会引用什么样的网页内容
人工智能·结构化数据·geo优化·ai爬虫·llms.txt·deepseek收录
成旭先生12 分钟前
银行卡识别 API:一张照片读出卡号、BIN 与发卡行
人工智能·算法·ocr·api接口·金融科技·银行卡识别·支付风控
Eric.4613 分钟前
8G 显存极限优化|SDXL+ComfyUI 本地部署 AI 漫剧批量生产工作流(源码 + 报错根治)
人工智能·ai绘画·comfyui·本地部署·ai漫剧
司南不思南29 分钟前
一次注意力计算到底长什么样?——从 QKV 投影到 KV Cache 的完整拆解
人工智能
涓涓52735 分钟前
物资领用无度?管家通物资出入库把用卡标准
人工智能
weixin_7503302337 分钟前
AI获客技术选型:基于OPC架构的智能营销方案实践
人工智能·架构·ai获客
用户7217465882641 分钟前
三层时间结构与静音间隔:把 ASR 词级毫秒时间戳变成 SRT 字幕轴
人工智能·ai编程
Evan_Lai42 分钟前
(一)独热编码、标签编码、目标编码、序数编码详解
python·机器学习
ADark43 分钟前
FDE 入门 · 05|进场第一周:别急着开会,也别催权限
人工智能