嵌入式学深度学习:1Pytorch框架搭建

Posted 江安吴彦祖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式学深度学习:1Pytorch框架搭建相关的知识,希望对你有一定的参考价值。

嵌入式学深度学习:1、Pytorch框架搭建

1、介绍

  • 深度学习是机器学习的一种,如下图:

    目前深度学习应用场景较多.

    在嵌入式领域也经常会用到普通传感器无法检测、而用机器视觉能很方便完成的任务,比如流水线检测、无接触姿态检测等。

    而传统的计算机视觉要求使用者掌握图像处理的基本知识,较为复杂,而采用深度学习的图像处理则要求较低。

    且掌握了深度学习不仅只能做视觉,将不同的数据丢入深度学习会得到不同的东西,比如将语音数据丢给深度学习就得到了语音识别,将文本数据丢给深度学习就得到了自然语言处理。

    因此,嵌入式工程师如果能掌握深度学习的应用方法,无疑会给自己的项目研发带来很大便利。

    目前深度学习一些基本步骤都已经被封装的很好了,我们应用时只需要简单的调用框架中的各个模块来组合成各种网络结构即可

    目前常见的框架有TensorFlow和Pytorch,二者综合对比如下:

    因此,这里选用PyTorch进行学习。深度学习离不开数据,常用的数据库以下链接有介绍:
    深度学习常见数据库
    这里选用CIFAR-10 & CIFAR-100进行学习。

2、Pytorch开发环境搭建

整体搭建教程见如下链接:

2.1、查看GPU是否支持CUDA

  • 深度学习在训练模型时比较耗时间,但训练好之后应用时就对算力要求不高。因此在训练模型时我们通过显卡来加速训练。

    因此我们的显卡需要支持cuda,否则只能搭建cpu版本的Pytorch

    CUDA支持显卡查询
    进入以上链接进行查询:

  • 也可以用本地的nvida控制面板进行查询,如下图:

2.2、安装Miniconda

  • Miniconda为我们提供了包管理功能,类似于PIP,能大为简化我们的安装过程。
    这里安装Miniconda就够用了,它只包含了Conda和python,不需要安装完整功能的Anaconda。

    以下是conda的官网:
    conda官网

  • 由于我们pytorch支持的python不同,windows下面pytorch只支持python3.7-3.9,因此我们需要选择与之匹配的python版本的miniconda,这里选择3.8。

  • 下载好之后,一路默认配置agree即可:

    默认安装路径在:
    C:\\Users\\WCC\\miniconda3

2.3、使用Conda安装pytorch

  • Conda为我们提供了包管理功能,我们打开Pytorch官网:
    Pytorch官网
    如下是选择版本的界面:

  • 现在最新版本的已经是Pytorch2.0了。在Compute Platform这一栏,显示有CUDA和CPU。
    其中CUDA是运行在GPU上的,而CPU版本是纯CPU版本的。
    因为不同显卡算力不同,支持的CUDA版本也不同,所以需要看自己的显卡支持的CUDA版本,如下:

  • 这里我的显卡最高支持CUDA 11.5,因此,不能安装最新版本的Pytorch 2.0,只能安装支持CUDA 11.5的Pytorch。

  • 没有恰好CUDA11.5的,因此只能更改自己电脑的CUDA版本,选择将电脑的CUDA11.5降低为CUDA11.3。

    在以下网址选择CUDA版本:
    CUDA版本

    这里选择CUDA 11.3.0

    然后进行下载:

  • 下载完后双击安装包即可完成安装。
    安装完成之后,在命令行界面输入:
    nvcc -V

    出现这个界面,说明已经完成CUDA的安装。

  • 有了CUDA之后,还需要安装用于加速计算的库cuDNN
    cuDNN库
    点击上述链接后如下图,单击下载按钮:

  • 由于我们的CUDA版本是11.3,因此这里我们需要选择相匹配的cuDNN

    大约700MB大小。

  • 下载完成后,将压缩包里面的bin、include、lib三个文件夹覆盖掉原本CUDA安装路径下的文件夹:
    C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.3

  • 下面我们打开Miniconda的命令行界面:

    如下,可以查看conda的版本,即可测试Conda安装成功。就可使用Conda来安装Pytorch了。

  • 由于我们的显卡最高支持CUDA11.5,因此我们只能选择Pytorch1.12.1,其使用的CUDA是11.3。

  • 我们将命令行复制到CONDA里面:注意这里要关闭科学上网工具

    选择YES

    下面就开始下载了。

  • 下载全部完成后耐心等待其完成解压缩和安装。直到最后所用的命令行都被清除掉,如下:

    输入命令行:

    conda list

    会显示出所有conda下面安装的东西,如下:

    这个界面说明Pytorch安装成功。可以用python环境测试是否能import pytorch

    出现True说明安装成功,已经可以使用了。

2.4、安装常用库

接下来安装常用的一些依赖库:

  • 在conda中执行以下命令:
    pip install pandas matplotlib notebook

3、简单使用验证

  • 由于我们安装了notebook,因此我们可以直接在浏览器中写代码。
    打开Miniconda的命令行,输入:
    jupyter notebook

  • 会自动的用默认浏览器打开一个页面:

  • 然后新建一个python3脚本,如下

  • 输入代码:

  • 每一行输入代码之后可以点击运行,看到运行结果。

    点击quit退出。

  • 以下链接提供了一些测试代码,可以进行测试

    测试Pytorch的程序

李沐《动手学深度学习》第二版 pytorch笔记1 环境搭建

李沐《动手学深度学习》第二版pytorch笔记1 搭建环境

文章目录

感觉从9月份正式学习AI以来,有点依赖云端环境,不肯动手搭建本地环境, 现在感觉还是得踏实点搞搞

此时尚有耐心

虚拟环境搭建

创建虚拟环境

查看已有的虚拟环境

conda env list

激活虚拟环境

conda activate d2l

安装深度学习框架和d2l软件包

安装d2l

  • 查看当前环境已有的包

    conda list
    
  • 使用当前虚拟环境下的pip来安装d2l

    D:\\Anaconda3\\envs\\d2l\\Scripts\\pip.exe install d2l==0.17.5
    

    经过漫长的安装,还是得调整一下…

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

     D:\\Anaconda3\\envs\\d2l\\Scripts\\pip.exe install scipy
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    😂,再把pandas变回1.2.4 不管那个mizani了😂

    mizani是一个用于图形的scales包

安装pytorch

  • 这一步巨慢…

    conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3
    

连接到虚拟环境测试一下

  • 好耶,成功安装GPU版本

再试试…好难搞

  • 上面那个多一个dll文件我去路径里面删掉一个就🆗,但是下面这个👇…

  • module ‘numpy.core.multiarray’ has no attribute ‘from_dlpack’ 这个实在找不到解决方案啊😭

    • 看到StackOverflow有个历史回答可是它还不在了…
  • woc… base环境下好像numpy直接用不了了,会不会就是那个warning导致的嘞

下载代码包

curl好像失败了

…不如直接下载

暂时懒得研究curl

慢的想哭😭 试试Mamba

  • 参考

    • https://www.jianshu.com/p/877cc62fb829
    • https://xuzhougeng.top/archives/use-mamba-instead-of-conda
    • https://www.jianshu.com/p/f4b6b6e60f10
    • https://www.iotword.com/3808.html
  • 安装

    conda install mamba -n base -c conda-forge
    

    漫长啊漫长

  • 下完了之后

整出了越来越多离谱的问题

  • 下午折腾出的问题越来越多

    base 环境 和 d2l环境都崩溃😅

  • 卸载不了,也下载不了

    疯了啊啊啊

    我把site-packages里面的全删了也没有一点用啊…

    WARNING: Error parsing requirements for numpy: [Errno 2] No such file or directory: 'd:\\\\anaconda3\\\\lib\\\\site-packages\\\\numpy-1.21.5.dist-info\\\\METADATA'

    soga… 没有meta文件,我把d2l虚拟环境下的复制过去了

    终于可以卸载了…

  • 在base环境把d2l卸载之后,突然正常了???…

  • 可惜没有完整记录下来和bug斗智斗勇的过程全都记录下来…

    • 但是勇气增加了是真的…

毁灭吧… 把d2l虚拟环境删了重新搞一遍😅…

  • jupyter一遍一遍地崩溃 ,然后又找不到原因, 我是真的崩溃了

  • 假装心平气和地 conda env remove -n d2l 😅

工欲善其事,必先利其器:这回把mamba装上!!!

  • mamba官方文档

  • 下载安装包把mambaforge装上了

    安装的时候add to 环境变量是not recommended的,但是我还是勾选了,省的自己配置

    不过yysy ,会不和其他的真的发生conflict

    下午那种安装方式是not recommended的

  • 👇芜湖

用mamba重新搞一次d2l 😅

创建d2l

mamba create -name d2l python=3.8 -y

激活捏

官方文档说的没错,确实还是要conda 来激活和退出

奇怪的事情发生了…

  • 刚刚创建的d2l变成了ame?????

mamba create失败了;再来一次😅,已经被磨平棱角了捏

  • 大概懂了… 可能conflict了???

  • 还是用 conda来 create、 activate和deactivate吧…

    • 其他的可以用mamba

安装深度学习框架pytorch和d2l软件包 再来捏O(∩_∩)O

  • 安装d2l

    mamba install d2l==0.17.5
    
  • 安装深度学习框架

    mamba install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3
    

    有进度条比conda一直转圈圈强多了捏😄

受不起惊吓了… 但还是决定再来一次

  • 安装失败woc…

  • 没关系,再来😅

    这个cached的机制不错…

插播:本地环境没有那个什么numpy.core的毛病了

  • 有个warning,但貌似是成功了
  • woc… 成功了😭😭😭

  • 今天折腾了n小时…

其他积累

以上是关于嵌入式学深度学习:1Pytorch框架搭建的主要内容,如果未能解决你的问题,请参考以下文章

本科生学深度学习,搭建环境,再不入坑就晚了

本科生学深度学习,搭建环境,再不入坑就晚了

本科生学深度学习,搭建环境,再不入坑就晚了

深度学习之初识篇——小白也能跑通的深度学习万能框架交通标识牌检测

深度学习框架太抽象?其实不外乎这五大核心组件

深度学习框架太抽象?其实不外乎这五大核心组件