news 2026/4/25 7:16:57

Inter的电脑使用GPU加速训练

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Inter的电脑使用GPU加速训练

换新电脑就是不一样,但是突然发现是inter的显卡,下面说一下如何使用inter的显卡加速训练。先大致步骤说一下:将ultralytics软件包中的torch_utils.py中的select_device函数修改一下,然后使用训练代码进行进行训练就可以了。

一、环境

现在的YOLO直接下载ultralytics这个软件库,再加上数据集,就可以了。

首先找到下载好的ultralytics软件包中需要修改的函数代码文件,下面是以conda环境为例的路径:

Anaconda3\envs\你的环境名\Lib\site-packages\ultralytics\utils\torch_utils.py

找到后用编译器打开,在183行找到如图的代码加上一个else语句让他可以识别到xpu就可以了,

代码如下:

elif device == 'xpu' or device.startswith('xpu:'): # 检查 Intel XPU 是否可用 if hasattr(torch, 'xpu') and torch.xpu.is_available(): # 解析设备索引,例如 ‘xpu:0’ device_idx = 0 if ':' in device: device_idx = int(device.split(':')[1]) # 检查索引是否有效 if device_idx < torch.xpu.device_count(): device_obj = torch.device(f'xpu:{device_idx}') if verbose: print(f'使用 Intel XPU 设备: xpu:{device_idx} ({torch.xpu.get_device_name(device_idx)})') return device_obj else: raise ValueError(f"无效的 XPU 设备索引 {device_idx},可用设备数为 {torch.xpu.device_count()}") else: raise ValueError(f"请求使用 Intel XPU (‘device={device}’),但 XPU 不可用。请检查驱动和 IPEX 安装。")

然后就保存退出就可以了。

二、训练代码

这样就可以使用常规训练代码训练了,但是在训练1轮之后会报错,这个 _clear_memory 是一个通用工具函数,它在每个训练周期(epoch)结束后都可能被调用,目的是防止显存(VRAM)峰值。这个会自动调用CUDA,所以在训练代码开头加上一个猴子补丁,下面是训练代码:

# ============ 【1. 必加:猴子补丁,解决所有CUDA硬编码问题】 ============ import os os.environ['NUM_WORKERS'] = '0' # Windows必须 os.environ['PYTHONWARNINGS'] = 'ignore' import torch import ultralytics.engine.trainer as trainer_module # --- 修补 _get_memory 函数 --- _original_get_memory = trainer_module.BaseTrainer._get_memory def _patched_get_memory(self, fraction=False): """永远返回一个极低的内存使用率,让框架跳过清理,避免调用 torch.cuda""" return 0.01 if fraction else 1024 # 返回1%使用率或1024字节 trainer_module.BaseTrainer._get_memory = _patched_get_memory print("✅ 关键补丁已应用:内存检查函数已替换,规避CUDA调用。") # ============ 【2. 正常训练流程】 ============ from ultralytics import YOLO # 设置设备 device = torch.device('xpu:0') print(f"训练设备: {device}") # 加载模型并移动 model = YOLO('yolov8n.pt') # 请确保此权重文件存在 model.model.to(device) print(f"模型已移至: {next(model.model.parameters()).device}") # 开始训练 results = model.train( data='data/data.yaml', # 你的数据集配置文件 epochs=5, imgsz=640, batch=32, device='xpu', # 框架用此参数处理数据位置 workers=0, amp=False, # 必须关闭,避免AMP相关CUDA调用 half=False, # 必须关闭 verbose=True, name='yolo_xpu_final_fixed', plots=True, ) print(f"\n🎉 训练完成!结果保存在: {results.save_dir}")

你可以根据自己的数据集来修改2中的参数(注释的不要修改),然后就可以开始在新电脑上进行GPU加速训练了。非常的好用,快速解决问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 17:46:01

有效修复 Google Photos 备份卡住问题

当 Google Photos 备份卡住时&#xff0c;备份过程会持续更长时间&#xff0c;非常耗时&#xff0c;尤其是在您正准备用手机玩游戏或看电影的时候。为了轻松解决此备份问题&#xff0c;我们列出了 14 种简单实用的解决方法。如果这些方法都无效&#xff0c;您仍然可以使用其他方…

作者头像 李华
网站建设 2026/4/21 7:54:52

自考人必看!9个降AI率工具推荐,高效避坑指南

自考人必看&#xff01;9个降AI率工具推荐&#xff0c;高效避坑指南 AI降重工具&#xff1a;自考人的高效避坑指南 随着人工智能技术的快速发展&#xff0c;越来越多的自考生在论文写作过程中依赖AI生成内容。然而&#xff0c;AI生成的文章往往存在明显的“AI痕迹”&#xff0c…

作者头像 李华
网站建设 2026/4/17 21:10:57

基于单片机温湿度检测显示报警控制系统设计

一、系统整体设计方案 本系统以 STC89C52RC 单片机为控制核心&#xff0c;聚焦工业仓储、家庭室内、实验室等场景的温湿度监测需求&#xff0c;可实现环境温湿度实时采集、数据直观显示、超阈值声光报警及参数阈值自定义功能&#xff0c;兼顾检测精度与报警及时性&#xff0c;为…

作者头像 李华
网站建设 2026/4/16 11:05:03

解锁 LLM 中 AI Agent 的效率密码,掌握实用优化技巧【线上直播】

在 AI Agent 飞速发展的当下&#xff0c;如何提升提示词效率、让模型响应更精准高效&#xff0c;成为许多开发者关注的核心问题。无论是刚接触 LLM 与 AI Agent 的新手&#xff0c;还是正在实操中遭遇效率瓶颈的从业者&#xff0c;都可能被这些问题困扰&#xff1a;MCP Service…

作者头像 李华
网站建设 2026/4/20 15:39:16

【AI×实时Linux:极速实战宝典】显存池 - 编写自定义 Allocator 预分配全量显存,杜绝运行时的 cudaMalloc 开销

简介在高性能计算和人工智能应用中&#xff0c;显存管理是影响程序性能的关键因素之一。传统的显存分配方式&#xff08;如使用 cudaMalloc 动态分配显存&#xff09;可能会导致运行时的随机延迟&#xff0c;尤其是在频繁分配和释放显存的场景下。为了优化显存管理&#xff0c;…

作者头像 李华