YOLOv5 环境配置指南

在这里插入图片描述

系统要求

  • Windows/Linux/MacOS
  • NVIDIA GPU (推荐) 或 CPU
  • Python 3.8+
  • CUDA 11.8+ (如果使用 GPU)

安装步骤

1. 安装 Conda

如果还没有安装 Conda,请先从官网下载并安装 Miniconda。

2. 创建虚拟环境

# 创建名为 yolov5 的新环境,使用 Python 3.8
conda create -n yolov5 python=3.8 -y
# 激活环境
conda activate yolov5

3. 安装 NVIDIA 驱动和 CUDA

  1. 访问 NVIDIA 驱动下载页面 下载并安装最新的显卡驱动
  2. 检查 NVIDIA 驱动安装:
# 查看显卡和驱动信息
nvidia-smi

4. 安装 CUDA 和 cuDNN

  1. 访问 NVIDIA CUDA 下载页面 下载 CUDA 11.8
  2. 安装 CUDA 11.8,按照安装向导完成安装
  3. 访问 NVIDIA cuDNN 下载页面(需要注册 NVIDIA 账户)
  4. 下载 cuDNN v8.9.x 版本(与 CUDA 11.8 兼容):
    • 访问 cuDNN 下载页面
    • 选择 “Download cuDNN v8.9.x for CUDA 11.x”
    • 下载适用于 Windows 的 zip 文件
  5. 解压下载的 cuDNN 文件,将文件复制到 CUDA 目录:
# 假设 cuDNN 解压在 D:\Downloads\cudnn_11.8
# 复制文件到 CUDA 目录
$CUDA_PATH = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8"
$CUDNN_PATH = "C:\cuDNN\cudnn"# 复制 bin 文件
Copy-Item "$CUDNN_PATH\bin\*" "$CUDA_PATH\bin"# 复制 include 文件
Copy-Item "$CUDNN_PATH\include\*" "$CUDA_PATH\include"# 复制 lib 文件
Copy-Item "$CUDNN_PATH\lib\*" "$CUDA_PATH\lib\x64"
  1. 验证 CUDA 安装:
# 检查 CUDA 版本
nvcc --version# 检查 CUDA 样例
cd "C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.8\1_Utilities\deviceQuery"
nvcc deviceQuery.cu -o deviceQuery.exe
.\deviceQuery.exe

4. 安装 PyTorch

根据你的 CUDA 版本选择合适的安装命令:

对于 CUDA 11.8:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

对于 CPU 版本:

pip install torch torchvision torchaudio

4. 安装 YOLOv5

# 使用 ultralytics 包(推荐)
pip install ultralytics# 或者从源码安装
git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org -r requirements.txt

5. 验证安装

5.1 CUDA和cuDNN测试脚本

创建文件 test_cuda_cudnn.py

import torch
import torch.backends.cudnn as cudnndef test_cuda_cudnn():print("PyTorch version:", torch.__version__)# 检查CUDA是否可用print("\nCUDA是否可用:", torch.cuda.is_available())if torch.cuda.is_available():print("CUDA版本:", torch.version.cuda)print("当前CUDA设备:", torch.cuda.current_device())print("CUDA设备名称:", torch.cuda.get_device_name(0))# 检查cuDNN是否可用print("\ncuDNN是否可用:", cudnn.is_available())if cudnn.is_available():print("cuDNN版本:", cudnn.version())print("cuDNN是否已启用:", cudnn.enabled)if __name__ == "__main__":test_cuda_cudnn()
5.2 YOLOv5 GPU测试脚本

创建文件 test.py

import torch
from ultralytics import YOLO# 检查 CUDA 是否可用
print(f"CUDA is available: {torch.cuda.is_available()}")
print(f"PyTorch version: {torch.__version__}")# 设置默认设备为GPU
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print(f"Using device: {device}")# 如果有GPU,显示GPU信息
if torch.cuda.is_available():print(f"GPU: {torch.cuda.get_device_name(0)}")try:# 加载改进版模型到GPUprint("\n正在加载模型...")model = YOLO("yolov5su.pt")  # 使用改进的u版本模型model.to(device)  # 将模型移到GPU# 打印模型信息print("\n模型加载成功!")print(f"模型类型: {type(model)}")print(f"模型任务: {model.task}")print(f"模型使用设备: {model.device}")# 尝试进行一次简单预测来验证模型print("\n正在进行测试预测...")# 使用一个示例图像,如果没有,可以注释掉这行# results = model("path/to/test/image.jpg")# print("预测完成!结果:", results)except Exception as e:print(f"\n错误: 模型加载或预测失败\n{str(e)}")
5.3 cuDNN安装脚本

创建文件 setup_cudnn.ps1

# Script to copy cuDNN files to CUDA directory
$CUDA_PATH = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8"
$CUDNN_PATH = "C:\cuDNN\cudnn"# Create directories if they don't exist
if (-not (Test-Path "$CUDA_PATH\bin")) {New-Item -ItemType Directory -Path "$CUDA_PATH\bin" -Force
}
if (-not (Test-Path "$CUDA_PATH\include")) {New-Item -ItemType Directory -Path "$CUDA_PATH\include" -Force
}
if (-not (Test-Path "$CUDA_PATH\lib\x64")) {New-Item -ItemType Directory -Path "$CUDA_PATH\lib\x64" -Force
}# Copy bin files
Write-Host "Copying bin files..."
Copy-Item "$CUDNN_PATH\bin\*" "$CUDA_PATH\bin" -Force# Copy include files
Write-Host "Copying include files..."
Copy-Item "$CUDNN_PATH\include\*" "$CUDA_PATH\include" -Force# Copy lib files
Write-Host "Copying lib files..."
Copy-Item "$CUDNN_PATH\lib\*" "$CUDA_PATH\lib\x64" -ForceWrite-Host "cuDNN setup completed!"

常见问题

  1. CUDA 错误

    • 确保已安装正确版本的 NVIDIA 驱动
    • 确保 PyTorch 和 CUDA 版本匹配
  2. 内存不足

    • 减小批处理大小
    • 使用更小的模型(如 yolov5s 而不是 yolov5x)
  3. 依赖冲突

    • 建议在干净的虚拟环境中安装
    • 按照版本要求严格安装依赖

其他资源

  • YOLOv5 官方文档
  • PyTorch 安装指南
  • CUDA 工具包下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/907785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

标准精读:2025 《可信数据空间 技术架构》【附全文阅读】

《可信数据空间 技术架构》规范了可信数据空间的技术架构,明确其作为国家数据基础设施的定位,以数字合约和使用控制技术为核心,涵盖功能架构(含服务平台与接入连接器的身份管理、目录管理、数字合约管理等功能)、业务流程(登记、发现、创建空间及数据流通利用)及安全要求…

02.上帝之心算法用GPU计算提速50倍

本文介绍了上帝之心的算法及其Python实现,使用Python语言的性能分析工具测算性能瓶颈,将算法最耗时的部分重构至CUDA C语言在纯GPU上运行,利用GPU核心更多并行更快的优势显著提高算法运算速度,实现了结果不变的情况下将耗时缩短五…

Elasticsearch的集群管理介绍

Elasticsearch 集群管理是确保分布式环境下系统稳定运行、高可用和高性能的关键。以下从集群架构、节点类型、故障转移到监控优化,全面解析 Elasticsearch 集群管理的核心要点: 一、集群架构与节点类型 1. 基本概念 集群(Cluster):由一个或多个节点组成,共同存储数据并…

高速串行接口

1.网口设计方案 上图中给出了两种网口设计方案,最上面是传统设计方式,下面是利用GT作为PHY层的设计,然后FPGA中设计协议层和MAC层。 2.SRIO SRIO的本地操作和远程操作 3.其他高速接口 srio rapid io aurora8b10b aurora64b66b pcie s…

第3节 Node.js 创建第一个应用

Node.js 非常强大,只需动手写几行代码就可以构建出整个HTTP服务器。事实上,我们的Web应用以及对应的Web服务器基本上是一样的。 在我们创建Node.js第一个"Hello, World!"应用前,让我们先了解下Node.js应用是由哪几部分组成的&…

ubuntu 安装上传的 ffmpeg_7.1.1.orig.tar.xz并使用

在 Ubuntu 上安装并编译上传的 ffmpeg_7.1.1.orig.tar.xz 源码包,请按照以下详细步骤操作: 步骤 1:安装编译依赖 # 更新软件包列表 sudo apt update# 安装编译工具和基础依赖 sudo apt install -y build-essential autoconf automake cmake …

【Netty系列】核心概念

目录 1. EventLoop 与线程模型 2. Channel(通道) 3. ChannelHandler 与 Pipeline 4. ByteBuf(数据容器) 5. Bootstrap 与 ServerBootstrap 6. Future 与 Promise 7. 其他核心概念 总结 Netty 是一个高性能、异步事件驱动的…

C# Costura.Fody 排除多个指定dll

按照网上的说在 FodyWeavers.xml 里修改 然后需要注意的是 指定多个排除项 不是加 | 是换行 一个换行 就排除一项 我测试的 <?xml version"1.0" encoding"utf-8"?> <Weavers xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&quo…

C++基础算法————广度优先搜索(BFS)

一、引言 在计算机科学中,搜索算法是解决各种问题的关键工具之一。广度优先搜索(Breadth-First Search,简称BFS)作为其中一种重要的搜索算法,以其独特的搜索策略和广泛的应用场景,在众多领域发挥着重要作用。对于初学者来说,深入理解和掌握BFS算法是提升编程能力、解决…

关于Web安全:7. WebShell 管理与持久化后门

一、菜刀马 菜刀马&#xff08;ChinaZ WebShell&#xff09; 是一种与“中国菜刀&#xff08;ChinaZ&#xff09;”客户端配合使用的 WebShell 木马&#xff0c;广泛应用于 Web 渗透测试中&#xff0c;主要使用 PHP/ASP/JSP 等语言编写。 它的本质是一个一句话木马&#xff0…

【仿生系统】qwen的仿生机器人解决方案

收到完整需求后&#xff0c;我将从系统架构设计、算法实现路径、训练方法三个维度为您构建完整的仿生机器人解决方案。以下是分阶段实施方案&#xff1a; 一、核心系统架构设计&#xff08;模块化可进化架构&#xff09; 1. 多模态感知引擎 - 视觉子系统&#xff1a;YOLOv8SAM…

Tomcat- AJP协议文件读取/命令执行漏洞(幽灵猫复现)详细步骤

一、漏洞描述 Apache Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器.默认情况下,Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互.但Apache Tomcat在AJP协议的实现上存在漏洞,导致攻击者可以通过发送恶意的AJP请求,可以读取或者包含Web应…

IEEE P370:用于高达 50 GHz 互连的夹具设计和数据质量公制标准

大多数高频仪器&#xff0c;如矢量网络分析仪 &#xff08;VNA&#xff09; 和时域反射仪 &#xff08;TDR&#xff09;&#xff0c;都可以在同轴接口的末端进行非常好的测量。然而&#xff0c;复杂系统中使用的互连很少具有同轴接口。用于表征这些设备的夹具的设计和实施会对测…

OneForAll 使用手册

OneForAll 使用手册 一、概述 OneForAll 是一款功能强大的子域名收集工具&#xff0c;旨在帮助安全测试人员和网络管理员全面发现目标域名的所有子域名&#xff0c;为后续的安全评估和漏洞测试提供基础支持。它集成了多种子域名发现方法&#xff0c;包括搜索引擎查询、DNS 枚…

从前端工程化角度解析 Vite 打包策略:为何选择 Rollup 而非 esbuild。

文章目录 前言一、esbuild 与 Rollup 的技术特性对比&#xff08;一&#xff09;esbuild&#xff1a;极速开发利器&#xff0c;功能尚待完善&#xff08;二&#xff09;Rollup&#xff1a;专业打包工具&#xff0c;功能全面强大 二、Vite 打包策略的工程化考量因素&#xff08;…

Chrome 通过FTP,HTTP 调用 Everything 浏览和搜索本地文件系统

【提问1】 Chrome调用本地 everything.exe, everything 好像有本地 FTP 服务器&#xff1f; 【DeepSeek R1 回答】 是的&#xff0c;Everything 确实内置了 HTTP/FTP 服务器功能&#xff0c;这提供了一种相对安全的浏览器与本地应用交互的方式。以下是完整的实现方案&#x…

Java八股文智能体——Agent提示词(Prompt)

这个智能体能够为正在学习Java八股文的同学提供切实帮助&#xff1a;不仅可以帮你优化答案表述&#xff0c;还能直接解答八股文相关问题——它会以面试者的视角&#xff0c;给出贴合求职场景的专业回答。 将以下内容发送给任何一个LLM&#xff0c;他会按照你提示词的内容&…

Android 缓存应用冻结器(Cached Apps Freezer)

一、核心功能与原理 1. 功能概述 目标&#xff1a;通过冻结后台缓存应用的进程&#xff0c;减少其对 CPU、内存等系统资源的消耗&#xff0c;优化设备性能与续航。适用场景&#xff1a;针对行为不当的后台应用&#xff08;如后台偷偷运行代码、占用 CPU&#xff09;&#xff…

内存管理 : 06 内存换出

内存换出的重要性及与换入的关系 现在我们讲第25讲&#xff0c;主题是内存的换出&#xff08;swipe out&#xff09;。实际上&#xff0c;上一讲我们讲的是内存的换入&#xff0c;而这一节聚焦于内存的换出。 换入和换出必须合在一起工作&#xff0c;不能只有换入而没有换出。…

第一节 51单片机概述

目录 一、单片机系统组成 &#xff08;一&#xff09;、单片机硬件系统 &#xff08;二&#xff09;单片机的软件系统 二、STC89C52单片机 &#xff08;1&#xff09;、基本信息 &#xff08;2&#xff09;、命名规则 &#xff08;3&#xff09;、单片机内部结构图 &am…