乐趣区

关于深度学习:一键飞桨轻松实现飞桨框架和套件的下载安装

大家好,我是漫步,很荣幸能和大家分享一个搭建飞桨全系列产品开发和应用环境的小工具。心愿它可能帮忙你在新场景下疾速搭建飞桨工作台,让大家可能更简略地将飞桨安利给身边的敌人。

01 简介

你是否在新的虚拟环境或者新电脑上配置飞桨环境时发现一个个克隆飞桨的仓库很麻烦?没有关系!我给大家提供了一个超级不便的工具,你能够 一键装置飞桨框架以及 CUDA(目前该工具默认装置 CUDA11.2 版本)和 CUDNN 的环境配置,并且能够一键下载并装置本人想要的飞桨套件,省去搜寻、下载、环境配置的工夫,更专一于我的项目内容的开发。

你能够通过 AI Studio 我的项目的挂载 数据集 或者 GitHub 仓库 获取该工具(后文统称“一键飞桨”工具)。

  • AI Studio 我的项目

https://aistudio.baidu.com/aistudio/datasetdetail/189777

  • GitHub 仓库

https://github.com/sanbuphy/fool-proof-paddle

02 操作步骤

接下来我将具体介绍在 Linux 和 Windows 零碎上如何应用“一键飞桨”工具。

备注:所有操作都在装置工具解压后的文件夹内实现。

Linux 环境下应用阐明

Linux 环境下的下载

如果仅仅为了下载,你能够间接在解压“一键飞桨”后的文件目录下输出 bash main.sh 命令行,随后输出 1 即可进入下载抉择界面。

在下载抉择界面,通过间断输出飞桨框架或者飞桨套件对应的大写字母,即可下载对应的仓库。假如咱们想下载飞桨框架 Paddle 仓库、飞桨模型压缩工具 PaddleSlim 仓库、飞桨轻量化推理引擎 Paddle Lite 仓库,咱们能够间断输出大写字母 ABC,即可实现以上仓库的主动下载。依据图片所示,能够大略理解套件的下载办法,例如:

最初看到以下内容,就阐明已下载胜利!

Linux 环境下的装置

为了实现飞桨框架以及飞桨套件的装置,首先在命令行输出 source main.sh,即呈现以下界面。

随后输出 2 以执行装置飞桨框架以及飞桨套件,呈现的界面如下图所示。

随后输出 1 以装置飞桨框架及对应 CUDA 环境。输出 2 以装置之前下载好的飞桨套件。

Windows 环境下应用阐明

Windows 环境中的下载

输出 python main.py 而后输出对应的字母实现下载。如果你没有装置 git bash,此时会主动下载并装置 git bash。留神,请一路依照默认装置!不要本人改装置地点。

输出字母后便进入下载方式的抉择,此时举荐第一次抉择 N,第二次抉择 Y 即可应用 gitee 的 http 形式下载各个仓库,速度较快。最初,当看到下方内容,就阐明曾经下载胜利啦!

Windows 环境下的装置

在对应虚拟环境中执行 python main.py,其余依照提醒操作即可实现飞桨框架的装置和所有已下载套件的装置。

除了能够装置飞桨框架,目前“一键飞桨”工具反对下载和装置的飞桨套件如下:(不断更新中)

  • PaddleDetection
  • PaddleSpeech
  • PaddleClas
  • PaddleSeg
  • PaddleNLP
  • PaddleVideo
  • PaddleOCR
  • PaddleGAN
  • PaddleSlim
  • FastDeploy 

03 工具制作过程分享

尽管该我的项目看起来简略,但理论整个工具的制作过程遇见了较多艰难。在此特别感谢帮忙我测试的每个敌人,因为你们让我的项目更为持重。制作工具的初始,我也思考过间接应用 Python 做成跨平台下载与装置工具,但思考到可实现性和速度,最终采纳了更简略间接的性能实现形式。同时,为了避免装置问题产生,装置代码中还退出了很多防御性查看(是否装置、是否下载、是否装置胜利),最大水平进步了工具的稳健性。接下来我将针对 Linux 和 Windows 版本别离介绍实现过程中的艰难点:

Linux 环境工具制作分享

主我的项目的入口次要起到工作散发的作用,制作过程中先保障了每局部的独立性能后才进行整体集成,以保障单元的可执行、可测试。

为了疾速实现性能,这里抉择了简略粗犷的 shell 数组形式。对于下载局部的实现可在 download_paddle.sh 里查看:

如果你想要退出新的下载仓库,能够用同样的形式在上面退出即可。在环境装置环节,思考到网络可能存在不稳固的状况,采纳“wget -c”保障飞桨程序安装包能顺利装置。

与 CPU 版本的飞桨不同,GPU 版本装置好后还需进行环境配置。

环境配置环节,CUDA 和 CUDNN 的装置最为让人头痛。为此,退出检测环境和驱动 CUDA 版本的判断,以笼罩大部分用户装置的根底环境。同时依据 NVIDIA 官网文档具体对照了 gcc 版本确定了装置逻辑(CUDA 程序安装对 gcc 版本有要求)。这让不同用户都能够稳固装置,防止报错。

接下来是 CUDNN 装置环节,在这一部分我还做了多项查看保障装置的正确:

脚本的最初退出环境变量,以让默认链接过程能搜寻到对应的依赖。这里应用 CUDA 而非网上常见的 CUDA 11.2 等实现操作,是因为 CUDA 的实质是软链接,在实现装置后会被主动软链接为装置版本。软链接对象可在对应文件夹下应用 ll 命令查看。通过这种形式,可实现 WSL 和 Linux 实体机的独特兼容。

至此,下载和装置的脚本思路曾经介绍结束,接下来我将介绍无关套件装置脚本的一个值得注意的小技巧:局部套件须要运行 python 脚本以验证成果。通过应用 ` 笼罩局部 python 脚本,实现了用 python – c 在 shell 脚本中验证残缺套件。

也能够通过一一宰割实现雷同目标。但过于繁琐,并不举荐。

至此,Linux 环境工具制作过程曾经大略介绍结束。总体来说应用 Linux 装置脚本制作较为简单(集体偏爱)。

Windows 环境工具制作分享

Windows 工具的制作比 Linux 环境要繁琐的多。因为很多调用形式非凡,且与 Linux 齐全不兼容,所以在查阅工具的过程中破费了很多工夫。这里我采纳在脚本中间接下载安装 git-windows 的形式,以实现 Linux 环境的下载工具的间接复用。对于 Windows 环境下的飞桨装置工具,一开始我没有想好怎么利用以后虚拟环境解释器去装置对应的环境,只能用这种办法对须要 pip 装置的库进行装置:

之后我看到了能够通过 sys.executable 取得以后解释器的门路,这就给了咱们间接运行命令行的可能,之后的 pip 装置都会在后面加上这样一句用于对应虚拟环境解释器的指定:

在 Windows 环境下,因为默认命令行短少很多工具,所以咱们要通过 powershell 简介进行下载、装置、转移操作:

此时最难的一步是装置 CUDNN,须要满足以下条件:
1)管理员权限操作,因为 CUDA 的装置地点默认在须要管理员操作权限的中央;
2)复制文件后须要笼罩指标文件;
3)在 powershell 或者 cmd 中实现这些操作。最初我和小伙伴探讨出一个折中的计划,咱们通过一个间接的 python 文件执行拷贝,同时显式指定了须要笼罩。

但这里面临另一个问题,因为咱们装置的环境是 python3.7,但 shutil 的 copytree 只有在 python3.8 之后的版本才反对显式笼罩的操作,所以在这里对源码进行了改良:

看完了飞桨装置和环境配置,咱们最初来看下套件的装置,其全副实现逻辑在 paddle_tools.py 中。因为咱们须要把套件装置到对应的执行环境中,并且要满足在对应文件夹下执行命令的需要,所以在每个执行函数的结尾都必须进行一个“初始化”的操作:

这里的 cd_dst_dir 就是进入指标文件夹的意思,通过获取函数名和当前目录能够间接让 os.system 运行的 cmd 进入预期文件夹,便可实现后续指令的顺利运行:

局部 Windows 用户会在装置 PaddleDetection 过程中遇到 pycootools 编译问题,导致库无奈应用。这里退出了提醒和下载,以保障装置后的间接应用:

至此,咱们大抵浏览了 Linux 和 Windows 的飞桨环境配置、装置、套件下载工具的制作流程。心愿对你有些帮忙,实践上你也能够依据这样的一套模板革新出本人的任何装置工具。

04 总结

本我的项目还在不断更新迭代,后续还将退出 PaddleRS、PaddleTS、Paddle3D、PaddleRec、VisualDL 库和飞桨 awesome-DeepLearning 仓库。

如果你有想法,欢送退出和我一起欠缺这个工具或各类 bug 报告。后续,咱们还会逐渐补充欠缺各库的简介,以帮忙大家简略轻松的摸索其余套件。欢送大家 fork 我的项目,和我一起体验应用飞桨的高兴!

https://aistudio.baidu.com/aistudio/projectdetail/5448389

退出移动版