文章目录
前言
随着人工智能的不断发展,深度学习这门技术也越来越重要,很多高校计算机系研究生、博士会以此技术作为科研手段进行学术性研究。但深度学习入门是比较困难的,其原因之一是深度学习框架环境安装是很复杂的,那么这篇文章就是捋顺深度学习pytorch框架以及跑通Yolox-demo,并介绍pytorch框架各个安装环节的作用。
一、Pytorch是什么?
Pytorch是torch的Python版本,是由Facebook开源的神经网络架构,是专门针对GPU加速的深度神经网络(DNN)编程。Torch是一个经典的对多位矩阵数据进行操作的张量库(Numpy),在机器学习和其他数学密集型应用有广泛的应用。Pytorch的计算图是动态的,可以根据计算需要实时改变计算图。
二、搭建Pytorch框架步骤
1.安装Anaconda
Anaconda是包管理器和环境管理器,也是专注于数据分析和Python发行版本,内含了一大批常用数据科学包。Anaconda其最主要的作用是可以创建不同的虚拟环境,在不同的项目中如果面临版本冲突的问题,就可以用虚拟环境来解决,在每一个虚拟环境下安装每一个项目的环境,就可以避免不同项目版本不同的问题。
建议在清华源下载,Anaconda官网不稳定
清华源链接:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive
(这里我下载的是下载aconda3-5.0.1-Windows-x86_64.exe)
2.安装CUDA和CUDNN
CUDA和CUDNN是NVIDIA支持GPU的两个库,用于高性能计算和深度学习神经网络计算的支持。CUDA是NVIDIA支持GPU的通用并行计算架构,该架构使GPU解决复杂的计算问题。CUDNN是基于CUDA的深度学习GPU加速库。
安装CUDA,在cmd命令行中输入nvidia -smi来查看NVIDIA的驱动版本。NVIDIA版本信息里面附带着CUDA最高适应版本。在NVIDIA官网下载适应电脑版本的CUDA。
(在这里我下载的是CUDA 11.6版本)
CUDA下载链接:https://developer.nvidia.com/cuda-downloads
安装CUDNN与已安装CUDA版本是有对应关系的,在NVIDIA官网下在符合"CUDA11.6"版本的CUDNN。
CUDNN下载链接:https://developer.nvidia.cn/rdp/cudnn-archive
3.安装Pytorch
a. 打开Anaconda Prompt,查看当前的环境
conda info --env
b. 创建准备安装Pytorch虚拟环境
conda create -n 环境名 python=3.6
c. 激活准备安装Pytorch框架的环境
activate 环境名
d. 安装Pytorch框架,进入pytorch官网,选择已安装CUDA版本、系统、编程语言等信息,在 Run this Commend 中赋值pip 语句,打开Anaconda Prompt选择激活准备安装的虚拟环境,输入Pytorch 安装 pip语句,进行安装。
e. 验证Pytorch是否安装成功
print(torch.cuda.is_avaliable())
如果返回true则是安装成功。
三、Pycharm上跑通Yolox
1、下载Yolox项目
官方GitHub链接:https://github.com/Megvii-BaseDetection/YOLOX
2、导入pycharm并设置好Pytorch环境
Conda environment 下 location,要选择Anaconda目录下的已安装Torch的虚拟环境(这里的YOLOX-main是我创建好的虚拟环境并安装了Torch)。
3、在Yolox项目github链接上下载权重Yolox-s文件
Yolox-s是轻量级的权重文件,将下载好的Yolox-s文件复制到Yolox项目的根目录下。
4、运行Yolox-demo(Yolox/tools/demo.py)
在Terminal中输入
python tools/demo.py image -f exps/default/yolox_s.py -c ./yolox_s.pth --path assets/dog.jpg --conf 0.3 --nms 0python tools/demo.py image -f exps/default/yolox_s.py -c ./yolox_s.pth --path assets/dog.jpg --conf 0.3 --nms 0
点击回车,运行结果如下图:
5、查看Yolox项目运行结果
在YOLOX-outputs中我们可以看到指定识别的图片准确率(这里同一辆自行车出现两种识别是因为,用的轻量级的权重文件,就会导致过拟合的结果)
总结
Point 1: 深入了解Anaconda、Cuda、Cudnn和NVIDIA的概念,要分析并得出自己一个的理解。
Point 2:对于Yolox目标检测模型的构建可以去查一下资料。
Point 3 :一定要注重基础理论知识的概念,宁可耗费时间也要理解其原理。