咱们好,我是漫步,很荣幸能和咱们共享一个建立飞桨全系列产品开发和运用环境的小东西。希望它能够协助你在新场景下快速建立飞桨工作台,让咱们能够更简略地将飞桨安利给身边的朋友。
01 简介
你是否在新的虚拟环境或许新电脑上装备飞桨环境时发现一个个克隆飞桨的库房很费事?没有关系!我给咱们供给了一个超级便利的东西,你能够一键装置飞桨结构以及CUDA(现在该东西默许装置CUDA11.2版别)和CUDNN的环境装备,而且能够一键下载并装置自己想要的飞桨套件,省去查找、下载、环境装备的时刻,更专注于项目内容的开发。
你能够经过AI Studio项意图挂载数据集或许GitHub库房获取该东西(后文总称“一键飞桨”东西)。
- AI Studio项目
aistudio.baidu.com/aistudio/da…
- GitHub库房
github.com/sanbuphy/fo…
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项目,和我一起体验运用飞桨的快乐!
aistudio.baidu.com/aistudio/pr…