【Python】朴实无华的yolov5环境配置

news2025/2/25 10:09:04

前言

  最近有一个项目需要用到目标识别,于是我一下子就想到了大名鼎鼎的yolo,于是花了一天时间了解了一下。但是很遗憾的是,我自己随便配置的一个环境能运行torch,但是只要一训练yolov5的库,电脑就要蓝屏, 随后就去网上找一些配置教程,但是很遗憾的是听着很大气,但感觉大部分都是废话,效率不高且不够准确。于是打算根据自己的经验搓一个教程。

前期准备

  本文默认读者已具备python环境(conda也可),且懂一些基本的python知识,比如包管理等。如果不是的话,建议直接关掉本教程或者搭建好python环境之后再来看。

PyTorch安装

参考链接

  PyTorch环境的搭建虽然听着很复杂,但动手操作却不是很难。总结来说就是三步:安装cuda,安装cudann,pip安装torch相关的包

  关于cuda和cudann和pytorch之间的关系,参考这篇教程,我的理解是cuda是一个工作台,提供底层的gpu计算功能;而cudann是工作台上面的一个工具,利用cuda底层功能实现神经网络的基础模型;pytorch更像是一个利用工作台上的工具制作的一个更高级的设备,它依赖于cuda和cudann,但用起来更加方便,使调用gpu计算实现深度学习这个过程更加简单。

  概念部分结束,现在开始实操。这部分网上大部分的教程都是按部就班来,即先装cuda,再装cudann,再装pytorch。这是因为 很多人都觉得要找和自己显卡驱动版本适配的cuda版本,这肯定是需要的。但是!其实在安装cuda的过程中也可以选择安装驱动,也就是说cuda安装可以帮助你安装适配该版本cuda的对应驱动。而且使用指令nvidia-smi查看的Cuda Version以及NVIDIA控制面板中的版本并不是所谓的“支持的最高版本”,而是此时电脑上安装的驱动版本,完全可以在NVIDIA官网下载一个驱动更新的程序来更新。 那肯定会有人问了,显卡型号较老也能安装新版本的驱动吗? 从官网提供的驱动来看应该是没问题的,新版驱动对硬件的兼容性很好,如果不放心可以在这个链接中查一下自己电脑中显卡型号能够支持的驱动型号。这里以一个2023.5.2更新(发文日期前10天)的一个驱动为例,如下图所示。

在这里插入图片描述
可以看出支持的型号还是非常多的。

  相比于适配电脑上的显卡驱动型号,我认为cuda版本选择更应该参考的是pytorch包的版本,而这也是我为什么推荐先安装pytorch的原因,即先把pytorch版本确定下来,然后再去下载与之适配的cuda版本。

  • 安装pytorch
    这个步骤非常简单,直接到官网,复制下面一行命令在终端执行即可。【建议没什么特别要求就搞最新版的】

在这里插入图片描述

这个包有点大,需要忍一下。如果不想忍,去找找怎么给pip换源(或者conda换源)

  • 安装cuda
    安装好pytorch后,去NVIDIA官网找对应的cuda版本,然后下载安装,具体过程就不演示了,无脑下一步即可。重点强调中间的几个点:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    检验是否安装成功nvcc --version:
    在这里插入图片描述

  • 安装cudann
    这个就更简单了,同样到NVIDIA官网下载对应版本的压缩包,然后把解压文件放到cuda的安装路径下,应该会有文件夹合并的操作。

    检验是否安装成功:
    在这里插入图片描述

yolov5

  yolov5可以理解为就是一个基于python的项目,不过这个项目需要依赖前面配置的pytorch环境,所以前面得先配置一下环境(实际就是安装一个包及其依赖包)。剩下的开发过程就只需要看官网——即GitHub的链接即可。

开发过程随缘更新

遇到的问题

  一运行那个train.py文件,电脑就蓝屏,当时以为是cuda版本太高了不适配我的显卡,但后来尝试重装了一个11.8版本的cuda,即和我的pytorch版本对应上,没想到就好了,所以我才认为,cuda版本和pytorch版本适配才是最重要的。

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

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

相关文章

为什么是ChatGPT引发了AI浪潮?

目录 BERT和GPT简介 BERT和GPT核心差异 GPT的优势 GPT的劣势 总结 随着近期ChatGPT的火热,引发各行各业都开始讨论AI,以及AI可以如何应用到各个细分场景。为了不被时代“抛弃”,我也投入了相当的精力用于研究和探索。但在试验的过程中&…

FE_Vue学习笔记 插槽 slot

插槽分为匿名插槽、具名插槽、作用域插槽。子组件中: 匿名插槽只能有一个;可以有多个具名插槽;作用域插槽中可以有匿名插槽和具名插槽。 当项目中一个组件可以多次复用时,我们可以把这个组件封装成单独的.vue文件,从…

【UDS】ISO15765-2之网络时间参数

文章目录 简介分类1. N_As2. N_Ar3. N_Bs4. N_Br5. N_Cs5. N_Cr 总结 ->返回总目录<- 简介 网络层定时参数定义了N_As、N_Ar、N_Bs、N_Br、N_Cs、N_Cr六个参数。 这些时间参数在多帧传输中可以定义在下图的过程中 分类 1. N_As 方向&#xff1a; 发送方->接收方 …

听我一句劝,不要去外包,两年外包生涯做完,感觉自己废了一半....

先说一下自己的情况。大专生&#xff0c;17年通过校招进入湖南某软件公司&#xff0c;干了接近5年的点点点&#xff0c;今年年上旬&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01;而我已经在一个企业干了五年的功能测试…

springmvc执行请求的顺序

当一个请求执行时&#xff0c;springMVC的DispatcherServlet&#xff08;前端控制器&#xff09; 会拦截到他&#xff0c;然后调用HandlerMapping &#xff08;处理器映射器&#xff09;&#xff0c;找到对应的URL地址&#xff0c;然后返回给前端控制器。前端控制器根据返回的U…

基于列系数比较一组迭代次数的顺序

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入有3个节点&#xff0c;训练集AB各由6张二值化的图片组成&#xff0c;让A中每行有1个1&#xff0c;B中全是0&#xff0c;排列组合A &#xff0c;统计迭代次数的顺序。共有729组不同的排列组合&#xff0c;但按照对称性只有26…

第一个Go语言程序

第一个Go语言程序 目录 第一个Go语言程序引言Go的开发环境安装GoPATH编辑器 第一个Go程序总结 引言 本系列博客将手把手带着大家从零基础入门go语言&#xff0c;不定时更新吧&#xff0c;自己学到哪就更新到哪&#xff0c;先讲讲为什么要学习go语言&#xff1a;列出以下几点go…

<TensorRT> 下载及部署

TensorRT-下载及部署 1、下载前相关查询 查看显卡驱动版本&#xff1a;nvidia-smi 查看cuda版本&#xff1a;nvcc -V cuda与显卡驱动对应表&#xff1a;https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#title-new-features TensorRT兼容性查询&#…

详解静态、动态代理以及应用场景

一篇不太一样的代理模式详解&#xff0c;仔细阅读&#xff0c;你一定会获取不一样的代理见解&#xff0c;而不是人云亦云。 查看了社区里关于代理模式描述&#xff0c;发现很多博客千篇一律甚至存在共性错误&#xff0c;写此文提出自己对代理的见解。 静态代理动态代理 JDKCGLi…

ChitGPT回答tp6写答题系统

答题系统是一个涉及多个模块的复杂系统&#xff0c;需要涉及到前端展示、后台管理、题库管理、试卷生成、考试管理等方面。下面我将简单介绍用thinkphp6框架如何实现一个基本的答题系统。 首先&#xff0c;我们需要创建数据库并设计数据表&#xff0c;包括用户表、题目表、试卷…

每日学术速递5.7

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Multimodal Procedural Planning via Dual Text-Image Prompting 标题&#xff1a;通过双文本图像提示进行多模态程序规划 作者&#xff1a;Yujie Lu, Pan Lu, Zhiyu Chen, Wanron…

微信小程序文件上传、下载和图片处理、文件操作API的使用

这次按照我的理解来做这部分的笔记 首先&#xff0c;复习上节课所学的内容。就是网络请求api的使用 现在我有一个需求就是点击按钮实现获取后端返回的图片 先打开服务器 看一下我们要返回的图片路径 书写结构 看一下返回来的数据。是在data下的banners里。因此我们封装一下 这…

【利用AI刷面试题】50道前端基础面试题

文章目录 以下是一些可能出现在前端基础面试中的问题&#xff1a;1. 如何判断当前浏览器是否支持某个 HTML5 特性&#xff1f;2. Box-sizing 属性有哪些取值&#xff0c;分别代表什么意思&#xff1f;3. 什么是浏览器的同源策略&#xff1f;4. 什么是 CORS&#xff1f;如何使用…

rabbitmq+mqtt+docker-compose搭建MQTT服务器和.netcore 客户端实现 订阅+发布

1 搭建MQTT服务器 1.1 Dockerfile 内容 FROM rabbitmq:3.11.6-management COPY install_rabbitmq_plus.sh /usr/local/ RUN chmod 777 /usr/local/install_rabbitmq_plus.sh RUN /bin/sh /usr/local/install_rabbitmq_plus.sh 1.2 容器中需要安装插件的命令 放在 insta…

假如ChatGPT 去面试前端工程师,结果会怎么样?

近日&#xff0c;有个叫 ChatGPT 的同学来我司面试前端&#xff0c;考考他面试八股文。先来问问闭包。 第一问&#xff0c;说说 JS 闭包 追问&#xff0c;详细讲讲闭包 由于篇幅太长&#xff0c;转成文字&#xff0c;以下皆为 ChatGPT 回答 闭包是一个非常重要的 JavaScript 概…

Maven构建Java项目Maven构建项目测试Maven引入外部依赖Maven项目模板

目录 Maven 构建 Java 项目 解释一下这段代码&#xff0c;为什么可以构建一个目录清晰的maven项目“mvn archetype:generate "-DgroupIdcom.companyname.bank" "-DartifactIdconsumerBanking" "-DarchetypeArtifactIdmaven-archetype-quickstart&qu…

volatile的实现简单概述

文章目录 内存屏障volatile关键字的实现synchronized关键字的实现 内存屏障 在讲解是关键字之前&#xff0c;先来了解下内存屏障的概念。 处理器保障禁止内存重排序的指令被称为基本内存屏障。其作用是禁止该屏障前后之间的操作进行重排序&#xff0c;要确保指令前的操作要先…

华为OD机试真题 Java 实现【服务中心选址】【2023Q1 100分 】

一、题目描述 一个快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置&#xff0c;并希望能够以此为依据为新的服务中心选址&#xff0c;使服务中心到所有区域的距离的总和最小。 给你一个数组 positions&#xff0c;其中 positions[i] [le…

域名批量查询是否注册-老域名批量查询

域名到期时间批量查询软件 您是否也曾遇到过域名到期或续费时间即将到来&#xff0c;而需要手动一个一个查询每个域名的情况&#xff0c;这不仅费时效率低&#xff0c;还可能会遗漏一些域名。那么&#xff0c;我们为您介绍一款可以帮助您快速、便捷查询多个域名到期时间的软件—…

分享去年学习github命令行操作的笔记

git branch -M main 给远程分支改名 一、本地库操作 1.创建本地目录&#xff0c;用于存储要上传的文本文件。可以手动创建也可以用带命令行 mkdir <文件名> 2.进入文件夹cd <文件名> 3第一次创建时需要初始化仓库git init mac显示隐藏文件SHIFTCOMMAND. mac…