提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
之前安装深度学习环境配置时,一直不明白这些软件、平台、架构、环境到底都有什么用,现在想清楚后记录一下。
一、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。
检测结果如图: