机器学习 - 预测训练模型

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

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


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

相关推荐
IT_陈寒几秒前
JavaScript开发者必知的5个高效调试技巧,比console.log强10倍!
前端·人工智能·后端
SJLoveIT5 分钟前
手写transformer中自注意力机制,并解释每个矩阵及其运算的含义
深度学习·矩阵·transformer
咚咚王者9 分钟前
人工智能之语言领域 自然语言处理 第十四章 预训练模型
人工智能·自然语言处理
EasyCVR10 分钟前
从流媒体转发到智能分析:EasyCVR的视频技术演进
人工智能·ffmpeg·音视频·视频监控·gb28181
hughnz13 分钟前
走进贝克休斯油田技术服务世界
大数据·人工智能·能源·钻井
GlobalInfo15 分钟前
汽车电感式位置传感器行业单项冠军申请趋势分析报告
大数据·人工智能·汽车
zandy101116 分钟前
企业合同管理系统选型全指南:专业 CLM 系统选型核心逻辑与实操框架
大数据·人工智能
数据小玩子16 分钟前
精准归因:如何量化分析光伏电站的每一分发电损失?
大数据·人工智能·数据可视化·助睿数智·光伏电站运营
EasyDSS18 分钟前
EasyDSS视频流媒体WebRTC技术解析:智慧校园直播、点播与会议一体化融合实践
运维·网络·人工智能·架构·音视频·m3u8·点播技术
Swift社区20 分钟前
ArkUI 的 UI 复用机制解析
人工智能·ui·arkui