news 2026/5/30 19:29:51

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/5/30 19:28:34

HTML Canvas绘图交互:Miniconda-Python3.9镜像Bokeh可视化库

HTML Canvas绘图交互&#xff1a;Miniconda-Python3.9镜像Bokeh可视化库 在数据驱动决策日益普及的今天&#xff0c;一个常见的痛点浮现出来&#xff1a;我们能用Python轻松处理百万行数据&#xff0c;却常常只能以静态图片的形式展示结果。这种“分析强、表达弱”的割裂感&…

作者头像 李华
网站建设 2026/5/29 0:45:47

基于 51 单片机温度控制电机搅拌系统设计

一、系统整体设计方案 本系统以 STC89C52RC 单片机为控制核心&#xff0c;聚焦化工实验、食品加工、溶液制备等场景的恒温搅拌需求&#xff0c;可实现温度实时采集&#xff08;0-100℃&#xff09;、目标温度设定、加热 / 制冷控制、电机搅拌启停与转速调节&#xff08;3 挡可调…

作者头像 李华
网站建设 2026/5/28 22:53:57

基于单片机温湿度阳光 CO 瓦斯气压光照环境监测系统设计

一、系统整体设计方案 本系统以 STM32F103C8T6 单片机为控制核心&#xff0c;聚焦工业车间、家庭厨房、地下实验室等多场景的全面环境监测需求&#xff0c;可实现温湿度、阳光强度、CO 浓度、瓦斯浓度、大气压力、光照强度 6 项参数同步采集、实时显示、异常报警及数据存储功能…

作者头像 李华
网站建设 2026/5/28 23:02:17

各省市GDP最低城市,其中有你的城市吗?

一张地图&#xff0c;直观揭示了我国区域经济的另一个剖面&#xff1a;在省域内部&#xff0c;发展同样存在不均衡。这些“省内经济洼地”的规模与成因各异&#xff0c;共同构成了中国经济的基底图谱。 数据显示&#xff0c;各省最低城市的经济体量差距巨大。 江苏的“末位”…

作者头像 李华
网站建设 2026/5/28 21:07:35

Paperzz 毕业论文:把 “毕业劫” 拆成 “四步走” 的无痛毕业指南

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿 paperzz - 毕业论文-AIGC论文检测-AI智能降重-ai智能写作https://www.paperzz.cc/dissertation “开题被打回 3 次&#xff0c;文献格式改到眼瞎&#xff0c;数据跑不出结果只能熬夜凑字数”—— 这届毕业…

作者头像 李华