yolo使用gpu识别不出检测框

部署运行你感兴趣的模型镜像

项目场景:

操作系统:windows10
硬件设备:RTX1650(其他可能出现该问题的显卡:游戏本显卡1650,1660以及1660Ti)


问题描述

yolo系列运行成功后,在cpu中能跑出检测框来,gpu中识别不出检测框
c语言代码:

darknet_no_gpu.exe detect yolov3.cfg yolov3.weights dog.jpg

cpu用时:1148.185000 milli-seconds.

darknet.exe detect yolov3.cfg yolov3.weights dog.jpg

gpu用时:517.685000 milli-seconds.


python语言代码:

python detect.py --weights yolov7.pt --source bus.jpg --no-trace --device cpu

cpu用时:(720.1ms) Inference

python detect.py --weights yolov7.pt --source bus.jpg --no-trace

gpu用时:(231.3ms) Inference


原因分析:

猜测原因:RTX1650没有达到CUDNN_HALF使用要求


解决方案:

总结:需要关闭CUDNN_HALF
一、yolov3;Visual Studio 2019;c语言

方法一:右键属性 -> C/C++ -> 预处理器定义 -> 删除cudnn_half
方法二:使用记事本打开darknet.vcxproj -> 编辑 -> 查找 ->删除cudnn_half

二、yolov7;PyCharm Community Edition 2021;python语言
在主函数中添加

torch.backends.cudnn.enabled = False

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think>好的,用户想了解如何配置和使用GPU加速YOLO目标检测模型的推理。首先,我需要回忆一下相关的知识。记得YOLO模型在GPU上运行通常需要CUDA和cuDNN的支持,这可能涉及到安装合适的驱动和库。用户提到的ONNXRuntime,应该是指用ONNX格式的模型进行推理,所以可能需要配置ONNXRuntime的GPU版本。 然后,用户的问题可能包括几个步骤:安装必要的软件环境,比如CUDA和cuDNN;安装支持GPU的ONNXRuntime;然后是在代码中指定使用GPU进行推理。可能需要检查系统是否已经安装了正确的驱动,如果没有,用户需要先安装。然后,安装ONNXRuntime的时候,可能需要通过pip安装特定的版本,比如onnxruntime-gpu。 接下来,代码部分可能需要使用适当的provider,比如CUDAExecutionProvider,来让ONNXRuntime使用GPU。用户可能需要修改他们的代码,在初始化推理会话的时候指定使用GPU。另外,预处理和后处理部分可能不需要修改,但数据传输到GPU的过程可能需要考虑,比如使用GPU张量。 还需要考虑版本兼容性,比如CUDA版本和ONNXRuntime的版本是否匹配。如果版本不匹配,可能会导致错误。此外,如果用户使用的是PyTorch版本的YOLO,可能需要使用不同的方法来启用GPU,比如将模型和输入数据移动到GPU上,并确保使用半精度推理以加速。 可能的相关问题包括如何验证GPU是否被正确使用,如何处理多GPU的情况,或者如何优化推理速度。用户可能还会遇到常见问题,比如内存不足,或者CUDA版本不兼容,需要给出一些解决方案。 最后,要确保引用提供的参考信息,比如使用ONNXRuntime加载模型并自动选择设备的部分,可能需要指出参考来源。</think>### 如何使用GPU加速YOLO目标检测模型推理 #### 1. **环境配置** - **安装GPU驱动和CUDA工具包** 确保系统已安装与GPU型号匹配的NVIDIA驱动,并安装对应版本的CUDA工具包(如CUDA 11.x)。CUDA是GPU加速计算的基础框架[^1]。 - **安装cuDNN库** cuDNN是深度神经网络加速库,需与CUDA版本兼容,从NVIDIA官网下载后配置到系统路径。 #### 2. **安装GPU支持的推理框架** - **ONNXRuntime-GPU版本** 使用以下命令安装支持GPU的ONNXRuntime: ```bash pip install onnxruntime-gpu ``` 确保`onnxruntime-gpu`版本与CUDA版本匹配(例如CUDA 11.x对应`onnxruntime-gpu==1.10.0`)。 - **PyTorch-GPU版本(可选)** 若使用PyTorch版YOLO,安装GPU版PyTorch: ```bash pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113 ``` #### 3. **代码配置** - **ONNXRuntime GPU推理示例** 在代码中显式指定使用CUDA执行提供器: ```python import onnxruntime as ort # 配置GPU选项 providers = [ ('CUDAExecutionProvider', { 'device_id': 0, # 指定GPU设备ID 'arena_extend_strategy': 'kNextPowerOfTwo', 'cudnn_conv_algo_search': 'EXHAUSTIVE' }), 'CPUExecutionProvider' # 备用CPU ] # 创建推理会话 session = ort.InferenceSession("yolo_model.onnx", providers=providers) # 输入数据转换为GPU张量(自动处理) inputs = {"images": preprocessed_image} outputs = session.run(None, inputs) ``` - **PyTorch GPU推理示例** 若使用原生PyTorch实现: ```python import torch from models.yolo import Model model = torch.load("yolo_model.pt").to('cuda:0') # 加载模型到GPU model.half() # 启用半精度加速 # 输入数据移至GPU image_tensor = preprocessed_image.to('cuda:0', dtype=torch.float16) outputs = model(image_tensor) ``` #### 4. **验证GPU使用** - 通过任务管理器或`nvidia-smi`命令观察GPU显存占用和计算负载。 - 在代码中打印ONNXRuntime或PyTorch的设备信息: ```python print(ort.get_device()) # ONNXRuntime设备检测 print(torch.cuda.is_available()) # PyTorch GPU可用性检测 ``` #### 5. **性能优化建议** - **批量推理**:单次处理多张图像以提高GPU利用率。 - **混合精度推理**:使用`float16`减少显存占用和计算时间。 - **TensorRT部署(进阶)**:将模型转换为TensorRT引擎以获得更高推理速度。
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值