YOLOv5目标检测学习(3):anaconda、虚拟环境、cuda、pytorch、pycharm之间的关系,以及配置时出现的问题

news2024/9/28 15:28:31

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

文章目录

  • 一、anaconda、虚拟环境、cuda、pytorch、pycharm之间的关系
    • 1.1 anaconda:python第三方包的安装和管理工具
    • 1.2 虚拟环境:可以使不同项目中使用不同版本的Python和依赖包,而不会相互干扰
    • 1.3 cuda:利用GPU进行通用目的计算的平台和编程模型
    • 1.4 pytorch:开源的深度学习框架,与cuda相辅相成,可以理解成一个python库
    • 1.5 pycharm:类似于C++的VS平台,就是个IDE
  • 二、虚拟环境详解
    • 2.1 虚拟环境的创建与选择
    • 2.2 问题:我明明安装anaconda是在D盘,但是创建的新的虚拟环境却安装到了C盘的.conda里面,怎么办呢?
    • 2.3 问题:我的虚拟环境base明明在D盘,为什么打开anaconda终端显示的却是C盘呢?
  • 三、anaconda详解
    • 问题①:不同的虚拟环境,anaconda安装的库是不一样的吗?
    • 问题②:用anaconda安装的库和用python终端安装的库,会有不同的存储位置吗?
  • 四、yolov5代码在pycharm里面如何运行


之前安装深度学习环境配置时,一直不明白这些软件、平台、架构、环境到底都有什么用,现在想清楚后记录一下。

一、anaconda、虚拟环境、cuda、pytorch、pycharm之间的关系

1.1 anaconda:python第三方包的安装和管理工具

1.2 虚拟环境:可以使不同项目中使用不同版本的Python和依赖包,而不会相互干扰

虚拟环境是Python中用来隔离项目所需依赖包的工具。通过创建虚拟环境,您可以在同一台计算机上的不同项目中使用不同版本的Python和依赖包,而不会相互干扰。虚拟环境的主要作用包括:

隔离项目依赖:每个项目可以有自己独立的虚拟环境,其中包含项目所需的特定版本的Python解释器和依赖包。这样可以避免不同项目之间的依赖冲突。

版本控制:通过虚拟环境,您可以精确控制项目所使用的Python版本和依赖包版本,确保项目在不同环境中具有一致的运行结果。

便于共享和部署:将项目的虚拟环境打包成一个文件,可以方便地共享给其他人或部署到其他计算机上,确保项目在不同环境中的一致性。

简化依赖安装:在虚拟环境中安装依赖包时,这些包只会安装到当前虚拟环境中,不会影响全局Python环境,从而简化了依赖包的安装和管理过程。

1.3 cuda:利用GPU进行通用目的计算的平台和编程模型

CUDA(Compute Unified Device Architecture)是由NVIDIA推出的并行计算平台和编程模型,用于利用NVIDIA GPU进行通用目的计算。CUDA允许开发人员使用C、C++、Python等编程语言在GPU上编写并行程序,从而加速各种计算密集型任务。

CUDA的主要作用包括:

并行计算:CUDA允许开发人员利用GPU的并行计算能力,将计算任务分解成多个线程并在GPU上同时执行,从而加速计算过程。GPU的大量并行处理单元可以同时处理多个任务,适用于需要大量计算的科学计算、深度学习、图形渲染等领域。

加速计算:相比于传统的CPU,GPU具有更多的处理核心和内存带宽,能够在相同时间内处理更多的数据。CUDA可以利用GPU的并行计算能力,加速各种计算密集型任务,提高计算效率。

深度学习:CUDA广泛应用于深度学习领域,训练和推理深度神经网络需要大量的矩阵运算和并行计算,GPU的并行计算能力可以显著加速深度学习模型的训练过程。

科学计算:CUDA也被广泛应用于科学计算领域,如数值模拟、物理模拟、天气预报等,可以加速复杂的科学计算任务。

1.4 pytorch:开源的深度学习框架,与cuda相辅相成,可以理解成一个python库

PyTorch是一个开源的深度学习框架,由Facebook的人工智能研究团队开发和维护。PyTorch提供了灵活的张量计算和动态计算图的功能,使得深度学习模型的设计、训练和部署变得更加简单和高效。

PyTorch的主要特点和用途包括:

动态计算图:PyTorch使用动态计算图,允许用户在运行时定义计算图,这使得模型的设计和调试更加灵活和直观。相比于静态计算图的框架,如TensorFlow,PyTorch更适合用于研究和实验性项目。

易于使用:PyTorch提供了简洁而直观的API,使得用户可以快速构建和训练深度学习模型。它的API设计符合Pythonic风格,易于学习和使用。

动态神经网络:PyTorch支持动态神经网络,可以根据输入数据的不同动态构建计算图,适用于需要灵活处理变长序列数据的任务,如自然语言处理和时间序列预测。

强大的计算能力:PyTorch提供了丰富的张量操作和自动微分功能,支持各种复杂的神经网络结构和训练算法。同时,PyTorch可以利用CUDA加速计算,充分发挥GPU的并行计算能力。

广泛应用:PyTorch被广泛应用于深度学习领域,包括图像识别、自然语言处理、语音识别等各种任务。许多研究机构和工业界都在使用PyTorch进行深度学习研究和开发。

1.5 pycharm:类似于C++的VS平台,就是个IDE

二、虚拟环境详解

不同的虚拟环境可以理解为一个不同版本的python+不同版本不同种类的python第三方库的集合。

比如我想实现一个yolov5的目标检测应用,git上的代码需要一个低版本的python和一些库,我就创建一个虚拟环境A,在pycharm里选择这个环境。

我又要实现一个yolov8的应用,需要一个最新版本的python和其他库,那我就再创建一个虚拟环境B,让这个项目选择B。

2.1 虚拟环境的创建与选择

用anaconda终端,输入指令即可创建。这个不说了,几个重要点:
①虚拟环境创建时可以选择具体创建python哪个版本,这样的话以后各种不同的项目,可以根据版本情况去创建不同环境,需要使用时只需在pycharm中:
选择设置–解释器–选择对应的需要的虚拟环境即可。
这是我安装anaconda时创建的base虚拟环境,可以看到里面有许多包。
在这里插入图片描述

2.2 问题:我明明安装anaconda是在D盘,但是创建的新的虚拟环境却安装到了C盘的.conda里面,怎么办呢?

由于虚拟环境每次创建会伴随着大量不同的包的安装,每次都会占用几个G的空间,要是放C盘里肯定不行。
在这里插入图片描述

2.3 问题:我的虚拟环境base明明在D盘,为什么打开anaconda终端显示的却是C盘呢?

在这里插入图片描述
在Anaconda环境中,虚拟环境的安装路径和Anaconda终端的默认路径可能会有所不同。当在Anaconda终端中打开时,终端的默认路径通常会显示为某个默认路径,而不一定是当前激活的虚拟环境的路径

"base"虚拟环境位于D盘,但Anaconda终端打开时显示的默认路径是C盘。这是因为Anaconda终端的默认路径通常是Anaconda的安装路径,而不是当前激活的虚拟环境的路径

虽然Anaconda终端显示的默认路径可能与当前激活的虚拟环境的路径不同,但这并不影响在虚拟环境中工作和运行Python程序。只要已经激活了正确的虚拟环境,可以在该虚拟环境中安装和运行Python包。

三、anaconda详解

问题①:不同的虚拟环境,anaconda安装的库是不一样的吗?

是的,不同的虚拟环境可以拥有不同的库和包安装情况。在Anaconda中,每个虚拟环境都是独立的,拥有自己的Python解释器和库安装路径。这意味着您可以在每个虚拟环境中安装不同版本的Python包和库,而不会相互影响。

当您创建一个新的虚拟环境时,该环境会拥有自己独立的site-packages目录,用于存储该环境中安装的Python包和库。因此,在不同的虚拟环境中安装的库是相互隔离的,一个虚拟环境中安装的库不会影响到其他虚拟环境。

这种隔离的机制使得在不同项目中使用不同版本的库变得更加灵活和方便。您可以根据项目的需求,在不同的虚拟环境中安装所需的库,而不必担心版本冲突或其他问题。

问题②:用anaconda安装的库和用python终端安装的库,会有不同的存储位置吗?

是的。anaconda安装的库安装在D盘,
在这里插入图片描述
但是我用终端pip安装的库在C盘:
在这里插入图片描述

四、yolov5代码在pycharm里面如何运行

从git上下载好yolov5代码后,直接从pycharm上打开。
在这里插入图片描述
里面的代码后面将进行详细解析,现在把python解释器设置为之前用anaconda创建的虚拟环境。
在这里插入图片描述
里面有各种各样的库。

从git上下载一个yolov5s.pt文件,然后复制到yolov5的文件夹里面,就可以直接运行detect.py了。
运行结果如下:
在这里插入图片描述
可以看到以下信息:

正在使用YOLOv5模型进行目标检测,模型的权重文件为yolov5s.pt。
数据源为data\images目录,数据配置文件为data\coco128.yaml。
图像尺寸为[640, 640],置信度阈值为0.25,IoU阈值为0.45,最大检测数为1000。
使用的设备为CUDA:0(NVIDIA GeForce RTX 2060,6144MiB)。
模型的详细信息为YOLOv5 2024-3-5 Python-3.11.4 torch-2.2.1+cu121。
模型结构包含213层,共7225885个参数,推理速度为16.4 GFLOPs。
对两张图片进行了目标检测,分别是bus.jpg和zidane.jpg。
bus.jpg图像中检测到了4个人和1辆公交车。
zidane.jpg图像中检测到了2个人和2条领带。
检测速度为36.9ms每张图像,NMS处理时间为2.0ms。
检测结果如图:
在这里插入图片描述

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

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

相关文章

【C++11】包装器和bind

文章目录 一. 为什么要有包装器?二. 什么是包装器?三. 包装器的使用四. bind 函数模板1. 为什么要有 bind ?2. 什么是 bind ?3. bind 的使用场景 一. 为什么要有包装器? function 包装器,也叫作适配器。C 中的 funct…

js之原型链

在JavaScript中,原型链是一种用于实现继承和属性查找的机制。每个对象都有一个内部属性[[Prototype]],这个属性指向创建该对象时使用的构造函数的“prototype"属性。对象的方法和属性定义在它的原型对象上。 1.原型(Prototypes&#xf…

【Netty 源码】服务端启动流程源码分析 篇一

【Netty 源码】服务端启动流程源码分析 篇一 1.原生Java NIO服务端创建流程 使用Java NIO创建服务端时,通常我们需要先创建Channel,Selector两个对象,然后将Channel绑定端口并注册到Selector上,最后对事件轮询监听 //第一步&…

ptmalloc、tcmalloc与jemalloc对比分析

文章目录 一、内存管理二、ptmalloc系统角度看ptmalloc内存管理用户角度看ptmalloc内存管理线程中内存管理从工作原理来看从作用来看Chunk说明问题 三、tcmalloc系统角度看tcmalloc内存管理用户角度看tcmalloc内存管理tcmalloc的优势 四、jemalloc系统角度看jemalloc内存管理用…

【Web - 框架 - Vue】随笔 - Vue的简单使用(01) - 快速上手

【Web - 框架 - Vue】随笔 - Vue的简单使用(01) - 快速上手 Vue模板代码 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>模板</title> </head> <body> <div></di…

js 获取浏览器相关的宽高尺寸

window 屏幕 屏幕分辨率的高&#xff1a; window.screen.height 屏幕分辨率的宽&#xff1a; window.screen.width 屏幕可用工作区高度&#xff1a; window.screen.availHeight 屏幕可用工作区宽度&#xff1a; window.screen.availWidth document 网页 网页可见区域宽&#xf…

基于网格搜索的随机森林回归算法Python实现

摘要 随机森林回归算法的应用领域很广&#xff0c;可用于市场销售预测、客户细分、商品推荐等领域&#xff0c;也可应用于气候模型预测、土地利用分析、水资源管理等环境领域问题。其算法的Python实现涉及到多参数调优问题&#xff0c;本文使用了网格搜索法&#xff0c;以MSE作…

Springer旗下SCI,16天见刊!稳定检索13年,质量稳定

毕业推荐 SCIE&#xff1a; • 计算机类&#xff0c;6.5-7.0&#xff0c;JCR1区&#xff0c;中科院2区 • 2个月19天录用&#xff0c;6天见刊&#xff0c;36天检索 SCI&EI&#xff08;CCF-C类&#xff09; • 算法类&#xff0c;2.0-3.0&#xff0c;JCR3区&#xff0c…

笔记76:32位/64位操作系统的区别

64位系统和32位系统的区别: 操作系统只是硬件和应用软件中间的一个平台32位操作系统针对的32位的CPU设计64位操作系统针对的64位的CPU设计我们的CPU从原来的8位&#xff0c;16位&#xff0c;到现在的32位和64位&#xff1b;CPU处理计算的时候“数据”和“指令”是不同对待的 &…

解锁网络数据:入门级IP代理使用教程

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

Spring Security认证授权流程详解

认证的工作原理 过滤链 Spring Security框架的作用就是安全访问控制即对所有进入系统的请求进行拦截, 校验每个请求是否能够访问到它所期望的资源 通过Filter或AOP等技术可以实现安全访问控制功能,而Spring Security对Web资源的保护是靠Filter实现的,Spring Security有一个过…

在 .NET 项目中复制资源文件夹到生成目录

本文主要介绍在使用 Visual Studio 进行调试和发布时&#xff0c;如何在 .NET 项目中复制资源文件夹到生成目录。 1. 背景 在开发 .NET 项目的过程中&#xff0c;我们有时会遇到需要在 debug 、 release 或是发布时将资源文件夹复制到生成目录的需求。这些资源可能包括图片、配…

Java旋转矩阵

题目&#xff1a; 给你一幅由 N N 矩阵表示的图像&#xff0c;其中每个像素的大小为 4 字节。请你设计一种算法&#xff0c;将图像旋转 90 度。 不占用额外内存空间能否做到&#xff1f; 示例 1: 给定 matrix [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵&…

运筹从业者也需要的因果推断入门:基础概念解析和体系化方法理解

文章目录 1 引言2 相关关系 VS 因果关系2.1 相关关系2.2 因果关系2.3 相关关系不等于因果关系 3 因果推断方法3.1 方法体系3.2 方法理解 4 运筹从业者也需要因果推断4.1 问题描述4.2 算法方案4.3 算法验证 5 总结6 相关阅读 1 引言 已经3月初了&#xff0c;原计划的因果推断学…

抖音在线点赞任务发布接单运营平台PHP网站源码多个支付通道+分级会员制度,附带系统搭建教程

介绍 1、三级代理裂变&#xff0c;静态返佣/动态返佣均可设置。&#xff08;烧伤制度&#xff09;。 2、邀请二维码接入防红跳转。 3、自动机器人做任务&#xff0c;任务时间可设置&#xff0c;机器人价格时间可设置。 4、后台可设置注册即送X天机器人。 5、不同级别会员使…

浅谈JUC的理解(含JUC知识体系图)

浅谈JUC的理解 一、前言感悟二、并发知识三、一年前回答四、补充体系回答五、补充层次回答六、碎碎念 本文除了说技术&#xff0c;更多的是在一个两年多开发经验的程序员视角下&#xff0c;记录下自己探索到的世界。 如有不妥之处&#xff0c;还请指正。共勉。 一、前言感悟 当…

上海雷卯湿敏元器件存储及使用规范

湿敏等级是指材料或产品对湿度变化的敏感程度。它用于评估材料或产品在湿度变化条件下的稳定性和可靠性。 湿敏等级通常通过数字表示&#xff08;如MSL- Moisture Sensitivity Level&#xff09;&#xff0c;从1到6级不等&#xff0c;每个级别代表不同的湿敏程度。较低的级别表…

基于网络爬虫的购物平台价格监测系统的设计与实现

通过对网络爬虫的购物平台价格监测系统的业务流程进行梳理可知&#xff0c;网络爬虫的购物平台价格监测系统主要由前台买家模块、后台卖家模块以及管理员模块构成。前台功能包含登录功能、注册功能、系统首页功能、唯品会商品详情浏览、唯品会商品收藏、唯品会商品点赞、唯品会…

9. 内核、文件系统加载工具

内核、文件系统加载工具 内核、文件系统加载工具是嵌入式开发必备的工具 1. 烧写BootLoader 1.1 通过超级终端方式 烧写 Bootloader 可以使用超级终端的“传送” |“发送文件”命令进入发送文件对话框&#xff0c;使用 Xmodem 协议和 Kermit 协议发送 Bootloader 的各个文件…

DenseNet笔记

&#x1f4d2;from ©实现pytorch实现DenseNet&#xff08;CNN经典网络模型详解&#xff09; - 知乎 (zhihu.com) 是什么之 DenseBlock 读图&#xff1a; x0是inputH1的输入是x0 (input)H2的输入是x0和x1 (x1是H1的输出) Summary&#xff1a; 传统卷积网&#xff0c;网…