YOLOv5目标检测学习(2):运行一个yolo应用所需要配置的深度学习环境

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、CUDA、CUDNN的下载安装
    • 1.1 CUDA的安装
    • 1.2 cuDNN的配置
  • 二、anaconda的安装
    • 1.卸载python
    • 2.安装anaconda
  • 三、Pytorch、python虚拟环境安装
    • 1.创建虚拟环境
    • 2.安装pytorch
  • 四、pycharm上运行深度学习示例
  • 五、总结所有软件的版本


前言

我想完整的记录一下一个新手接触深度学习和yolo算法完成目标检测任务的全过程,包括基本软件环境的下载安装、训练集的准备和处理、训练的过程、参数的调整、性能的分析,以及模型的部署这几个方面。

一、CUDA、CUDNN的下载安装

我的电脑配置:Windows10系统,10代i5,2060显卡,16G内存,安装有python3.8版本
在这里插入图片描述

软件:
①IDE:pycharm
②深度学习的模型训练工具:CUDA、CUDNN
③深度学习管理工具:anaconda

由于pycharm我已经安装好了,所以就不介绍了。

1.1 CUDA的安装

①打开英伟达控制界面,可以查看cuda支持的版本
在这里插入图片描述
这一步主要是为了看显卡支持cuda最高哪个版本,我的最高支持12.2.146版本
②下载CUDA toolkit

链接: cuda官网
我选择下载12.2.0版本
在这里插入图片描述
选择Windows版本的local本地下载模式。
在这里插入图片描述
然后一路同意即可。
其中选择自定义安装,可以安装到其他盘去,不用安C盘。
安装好后可以查看到版本号
在这里插入图片描述

还可以查看cuda的安装路径。
在这里插入图片描述
在这里插入图片描述
下载好后文件如图:
在这里插入图片描述

1.2 cuDNN的配置

链接: cudnn
这里首先注意一个问题,我下载的cuda是2023年6月的12.2版本,所以cudnn我选择了相匹配的版本
在这里插入图片描述
然后解压。下载后发现其实cudnn不是一个exe文件,而是一个压缩包,解压后,有三个文件夹,把三个文件夹拷贝到cuda的安装目录下。
cuDNN 其实就是 CUDA 的一个补丁而已,专为深度学习运算进行优化的。然后再参加环境变量。

下一步是添加环境变量。
在这里插入图片描述
就像这样添加,要把bin、lib、include、libnvvp都添加进去。
最后打开终端进行验证。输入这两个exe程序,只要最后是pass就可以了。
在这里插入图片描述
在这里插入图片描述
注意:cuda没有samples文件夹是因为11.6版本后就取消了,想要自己去git上下。

二、anaconda的安装

1.卸载python

安装anaconda前需要先卸载掉以前下载的python,并删除环境变量。
在这里插入图片描述
用终端查看:
在这里插入图片描述
现在没有python了,而且好的一点是环境变量里的python路径是自动删除的,不用手动去删了。

2.安装anaconda

使用清华镜像源下载,我选了一个不早也不新的版本。
在这里插入图片描述
在这里插入图片描述
最后如图:
在这里插入图片描述
输入下面的五个环境变量。
在这里插入图片描述

简要说明五条路径的用途:这五个环境变量中,1是Python需要,2是conda自带脚本,3是jupyter notebook动态库, 4是使用C with python的时候.
最后可以在终端里面验证。
在这里插入图片描述

下载好anaconda后,会自动安装一个新版本的python,我这里查看是3.11.4版本
在这里插入图片描述

三、Pytorch、python虚拟环境安装

为什么需要学会这个呢?其实刚刚安装好Anaconda会自带一个基础环境。但是我们后续的项目每一个需要的安装包不同,为了避免冲突,所以我们可以为每一个项目配置一个虚拟环境,这样就不相互打扰了。

1.创建虚拟环境

用anaconda终端:
在这里插入图片描述
输入这个命令:conda env list
来查看当前有多少虚拟环境。
在这里插入图片描述
刚好我这里只有一个base环境。
在这里插入图片描述
利用 conda create 指令创建新的虚拟环境

conda create –n 虚拟环境名字(如yolov5) python=版本

我这里是:

conda create –n yolov5p1 python=3.11.4

在这里插入图片描述
输入y,继续:
在这里插入图片描述
加载一堆东西后界面如图。
在这里插入图片描述
现在就有两个环境了。

2.安装pytorch

链接: pytorch
这个是pytorch官网,可以直接找到系统推荐的pytorch版本。
在这里插入图片描述
这里我遇到一个问题,就是这里pytorch支持的是cuda的11.8和12.1版本,但是我之前下载的cuda是12.2版本的,不知道后面会有什么影响。
然后复制下面的指令,放到anaconda终端里运行:
经过漫长的安装,最后如图:
在这里插入图片描述
会有各种各样的库。
输入python
输入 import torch
输入 torch.cuda.is_available(),这个命令是检查我们pytorch的GPU能否用。
如果显示True,就说明我们这个PyTorch安装成功了
在这里插入图片描述

四、pycharm上运行深度学习示例

这里奇怪的是,别人的教程里配置pycharm和pytorch还有好几步,但是这里我直接就可以运行代码:

import torch
print(torch.cuda.is_available())

打开pycharm,创建一个例程,运行结果如图:
在这里插入图片描述

至此,所有的深度学习环境就配置好了。

五、总结所有软件的版本

CUDA:12.2.0
cuDNN:8.9.2
anaconda:23.7.2
python:3.11.4

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

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

相关文章

【算法训练营】:期末考试

清华大学驭风计划课程链接 学堂在线 - 精品在线课程学习平台 (xuetangx.com) 如果需要答案代码可以私聊博主 有任何疑问或者问题,也欢迎私信博主,大家可以相互讨论交流哟~~ 考题12-1 题目描述 输入格式 输出格式 输出到标准输出。 输出一行一个整数…

php 把数字转化为大写中文

1. 120002129.25 转化后壹億贰仟萬贰仟壹佰贰拾玖圆贰角伍分2. 12000.2145 转化后壹萬贰仟圆贰角壹分肆厘伍毫3. 1020001211 转化后壹拾億贰仟萬壹仟贰佰壹拾壹圆整大致思路这样的: 从小数点分割成两部分,整数部分和小数部分分别处理。 整数四个一组进行处理,用substr函数分…

蓝桥杯练习题-特殊日期

问题描述: 对于一个日期,我们可以计算出年份的各个数位上的数字之和,也可以分别计算月和日的各位数字之和。 请问1900年1月1日至9999年12月31日总共有多少天?年份的数位数字之和等于月的数位数字之和加日的数位之和 例如&#xff…

电销平台架构的演变与升级

简介 信也科技电销平台承载了公司400多坐席的日常外呼任务,随着公司业务规模不断增长,业务复杂度不断提升,营销模式需要多样化,营销流程需要更加灵活。为了更好地赋能业务、提高客户转化率,电销平台不断升级优化&#…

利用Spring整合Redis

文章目录 利用Spring整合Redis引入依赖配置Redis 访问RedisString类型数据Hash类型数据List类型数据Set类型数据SortedSort类型数据全局key简化多次访问同一个key情况代码 Redis中的事务核心方法execute()事务代码实例 参考文献 利用Spring整合Redis 引入依赖 spring-boot-st…

springboot快速构建项目

1.Spring的基本步骤 2.构建项目 第一次下包速度比较慢,可以考虑使用镜像 至此项目构建完成 3.启动并配置数据库 新建一个数据库,新建一个表 下面这里也可以【重构-重命名】为yml后缀(代码可粘下面的,后面有写) Yml后…

FreeRTOS_day2

作业:1.使用ADC采样光敏电阻数值,如何根据这个数值调节LED灯亮度。 2.总结DMA空闲中断接收数据的使用方法 打开DAM,允许接收外部设备数据,调用中断接收回调函数

Eclipse调试技巧 条件断点 监视

实验代码 import java.util.Scanner;public class Test {// 判断n是否为质数public static boolean isPrime(int n){if (n < 2)return false;for (int i 2; i < n; i){if (n % i 0)return false;}return true;}public static void main(String[] args){Scanner scanne…

前端每日一练:深入理解CSS浮动、问题及清除浮动解决方案

深入理解CSS浮动、问题及解决方案 在CSS布局中&#xff0c;浮动&#xff08;float&#xff09;是一种常见的布局属性&#xff0c;用于控制元素在其父元素中的位置&#xff0c;使其可以浮动到左侧或右侧。然而&#xff0c;浮动也会引起一些常见的问题&#xff0c;主要涉及到高度…

专治Java底子差,线程操作篇(1)

&#x1f497;推荐阅读文章&#x1f497; &#x1f338;JavaSE系列&#x1f338;&#x1f449;1️⃣《JavaSE系列教程》&#x1f33a;MySQL系列&#x1f33a;&#x1f449;2️⃣《MySQL系列教程》&#x1f340;JavaWeb系列&#x1f340;&#x1f449;3️⃣《JavaWeb系列教程》…

[网络安全] PKI

一、PKI 概述 名称; 公钥基础设施 (Public Key Facility) 作用: 通过加密技术和数字签名保证信息安全 组成: 公钥机密技术、数字证书、CA、RA 二、信息安全三要素 机密性&#xff1a;确保仅信息发收双方 能看懂信息 完整性&#xff1a; 确保信息发收完整&#xff0c;不被破坏 …

最新基于R语言lavaan结构方程模型(SEM)技术应用

结构方程模型&#xff08;Sructural Equation Modeling&#xff0c;SEM&#xff09;是分析系统内变量间的相互关系的利器&#xff0c;可通过图形化方式清晰展示系统中多变量因果关系网&#xff0c;具有强大的数据分析功能和广泛的适用性&#xff0c;是近年来生态、进化、环境、…

前端每日一练:如何隐藏一个元素​?

css 中隐藏元素的方法有很多&#xff0c;但他们也各有差异&#xff0c;不同场景选择合适的方式能事倍功半&#xff01; 方式​ 占位​ 点击事件​ display: none​ ❌​ ❌​ opacity: 0​ ✅​ ✅​ visibility: hidden​ ✅​ ❌​ clip-path: circle(0)​ ✅​…

支小蜜校园防欺凌系统如何有效应对学生霸凌?

学生霸凌不仅直接伤害到被霸凌者的身心健康&#xff0c;也对整个校园的和谐氛围构成了威胁。为了应对这一问题&#xff0c;校园防欺凌系统应运而生&#xff0c;成为维护校园安全、保护学生权益的重要工具。那么当校园防欺凌系统面对学生霸凌时&#xff0c;该如何有效应对呢&…

STM32CubeMX学习笔记8 -ADC

1. ADC简介 ADC 是Analog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。简单地说就是将模拟电压值&#xff0c;转换成对应的肉眼…

ACM题解Day10|总结篇|进制转化,GCD ,LCM ,二分答案

&#x1f525;博客介绍&#xff1a; 27dCnc [Cstring中find_first_not_of()函数和find_last_not_of()函数-CSDN博客] 方差,期望 概率 今日打卡: 算法周总结 ACM题解Day3| To Crash or not To Crash,Integer Prefix ,I don’t want to pay for the Late Jar-CSDN博客 第3题:…

单例服务拆分为分布式架构

将独立业务服务拆分为分布式 为啥会有这个想法&#xff1f;因为我要造锤子&#xff0c;拿着造好的锤子&#xff0c;去找锤子&#xff0c;没有造锤子的经验无法找一个造锤子的坑。 现有情况说明 单机软件&#xff1a;就是将软件安装在自己的电脑上&#xff0c;自己用的那种&…

回文数0102

学习回文数&#xff0c;突发奇想加入了键盘输入&#xff0c;最后形成的代码&#xff1a;如下public static void main(String[] args) {Scanner scnew Scanner(System.in);System.out.println("请输入一串数字");int xsc.nextInt();int num0;//利用while循环获取数字…

硬核程序员接单指南,速看!

程序员单没接着&#xff0c;时间还浪费了&#xff1f;惹得一身晦气。遇上了1k开发一个“淘宝”网站的“深井”&#xff1f;不是来下单的&#xff0c;倒像是来许愿的……估摸着是把程序员当阿拉丁神灯。 莫非那些兼职月入3k&#xff0b;的人&#xff0c;都是托儿&#xff1f;带着…

【MySQL】索引下推

索引下推&#xff08;ICP&#xff09;是一种在存储引擎层使用过滤数据的优化方式。使用ICP的好处在于其可以减少存储引擎必须访问基表的次数和MySQL服务器必须访问存储引擎的次数。但ICP的加速效果取决于存储引擎内通过ICP筛掉的数据比例。   举个例子 CREATE INDEX zip_las…