训练好的深度学习模型是怎么部署的?

训练好的深度学习模型是怎么部署的?,第1张

先说结论:部署的方式取决于需求

需求一:简单的demo演示,只要看看效果的,像是学校里面的demo展示这种

caffe、tf、pytorch等框架随便选一个,切到test模式,拿python跑一跑就好,顺手写个简单的GUI展示结果

高级一点,可以用CPython包一层接口,然后用C++工程去调用

需求二:要放到服务器上去跑,但一不要求吞吐二不要求时延的那种,说白了还是有点玩玩的意思

caffe、tf、pytorch等框架随便选一个,按照官方的部署教程,老老实实用C++部署,例如pytorch模型用工具导到libtorch下跑(官方有教程,很简单)

这种还是没有脱离框架,有很多为训练方便保留的特性没有去除,性能并不是最优的;

另外,这些框架要么CPU,要么NVIDIA GPU,对硬件平台有要求,不灵活;还有,框架是真心大,占内存(tf还占显存),占磁盘

需求三:放到服务器上跑,要求吞吐和时延(重点是吞吐)

这种应用在互联网企业居多,一般是互联网产品的后端AI计算,例如人脸验证、语音服务、应用了深度学习的智能推荐等。由于一般是大规模部署,这时不仅仅要考虑吞吐和时延,还要考虑功耗和成本。所以除了软件外,硬件也会下功夫,比如使用推理专用的NVIDIA P4、寒武纪MLU100等。这些推理卡比桌面级显卡功耗低,单位能耗下计算效率更高,且硬件结构更适合高吞吐量的情况软件上,一般都不会直接上深度学习框架。对于NVIDIA的产品,一般都会使用TensorRT来加速(我记得NVIDIA好像还有TensorRT inference server什么的,名字记不清了,反正是不仅可以加速前传,还顺手帮忙调度了)。TensorRT用了CUDA、CUDNN,而且还有图优化、fp16、int8量化等。反正用NVIDIA的一套硬软件就对了

需求四:放在NVIDIA嵌入式平台上跑,注重时延

比如PX2、TX2、Xavier等,参考上面(用全家桶就对了),也就是贵一点嘛

需求五:放在其他嵌入式平台上跑,注重时延

硬件方面,要根据模型计算量和时延要求,结合成本和功耗要求,选合适的嵌入式平台。比如模型计算量大的,可能就要选择带GPU的SoC,用opencl/opengl/vulkan编程;也可以试试NPU,不过现在NPU支持的算子不多,一些自定义Op多的网络可能部署不上去对于小模型,或者帧率要求不高的,可能用CPU就够了,不过一般需要做点优化(剪枝、量化、SIMD、汇编、Winograd等)顺带一提,在手机上部署深度学习模型也可以归在此列,只不过硬件没得选,用户用什么手机你就得部署在什么手机上23333。为老旧手机部署才是最为头疼的上述部署和优化的软件工作,在一些移动端开源框架都有人做掉了,一般拿来改改就可以用了,性能都不错。

需求六:上述部署方案不满足我的需求

比如开源移动端框架速度不够——自己写一套。比如像商汤、旷世、Momenta都有自己的前传框架,性能应该都比开源框架好。只不过自己写一套比较费时费力,且如果没有经验的话,很有可能费半天劲写不好

在jetson nano部署剪枝版的yolov3项目,
>pytorch有两个包无法原因是PyTorch的包没有放在anaconda及free通道和镜像源。根据查询相关公开信息显示,pytorch有两个包无法下载是因为PyTorch的包并没有放在anaconda以及它的free通道和镜像源上,所以会从pytorch官方指定的地址下载包,而这个文件存储在亚马逊S3上,因此下载时几乎无法下载。可以在浏览器或终端中设置代理服务器,以便更加稳定地进行下载。

选择带GPU的镜像后
更新源,安装必要依赖

配置中文环境

sudo vim /etc/environment
添加下面两行

接着

安装pytorch

安装vision

配置zsh

个人配置

深度学习GPU服务器是科学计算服务器的一种,科学计算服务器主要用于科学研究,是高性能计算机的一种,介于一般服务器与超级计算机之间。目前,科学计算服务器大约占整个服务器市场的5%左右,风虎云龙是目前所知国内专注于科学计算高性能服务器的厂商品牌,多年来一直紧跟科学发展,密切关注人工智能、机器学习、深度学习发展,结合科研发展需要研发生产高性能科学计算服务器,提供专业的售前、售中和售后服务,以及高性能计算集群的安装、调试、优化、培训、维护等技术支持和服务。

上海风虎信息作为深度学习服务器的专业厂商,专注为科研院所和高校师生打造高性能服务器,建议您选择深度学习服务器时需要注意以下几点:

1深度学习需要大量的并行计算资源,而且动辄计算几天甚至数周,而英伟达NVIDIA、英特尔Intel、AMD显卡(GPU)恰好适合这种工作,提供几十上百倍的加速,性能强劲的GPU能在几个小时内完成原本CPU需要数月完成的任务,所以目前深度学习乃至于机器学习领域已经全面转向GPU架构,使用GPU完成训练任务。

2如今即使使用GPU的深度学习服务器也要持续数天乃至数月(取决于数据规模和深度学习网络模型),需要使用单独的设备保障,保证训练任务能够小时长期稳定运行。

3独立的深度学习工作站(服务器)可以方便实现实验室计算资源共享,多用户可以在个人电脑编写程序,远程访问到深度学习服务器上排队使用计算资源,减少购买设备的开支并且避免了在本地计算机配置复杂的软件环境。

上海风虎信息专注于深度学习GPU服务器开发,根据TensorFlow,Pytorch,Caffe,Keras,Theano等软件计算特征,向您推荐入门级、中级、顶级GPU服务器典型配置,欢迎查阅,谢谢。


拥有高性能计算领域优秀的专业工程师团队,具有 10 年以上高性能计算 行业技术支持经验,提供专业的售前、售中和售后服务,以及高性能计算集群的安装、调 试、优化、培训、维护等技术支持和服务。在深度学习、量化计算、分子动力学、生物信 息学、雷达信号处理、地震数据处理、光学自适应、转码解码、医学成像、图像处理、密 码破解、数值分析、计算流体力学、计算机辅助设计等多个科研领域积累了深厚的技术功 底,和熟练的技术支持能力。提供 Caffe, TensorFlow, Abinit, Amber, Gromacs, Lammps, NAMD, VMD, Materials Studio, Wien2K, Gaussian, Vasp, CFX, OpenFOAM, Abaqus, Ansys, LS-DYNA, Maple, Matlab, Blast, FFTW, Nastran 等软件的安装、调 试、优化、培训、维护等技术支持和服务。

使用开发神之手框架需要完成以下几个步骤:
1、下载开发神之手框架,可以从官网上下载,或者从GitHub下载;
2、安装开发神之手框架,可以使用Pip命令进行安装;
3、初始化项目,可以使用“神之手”命令行工具来完成;
4、添加模块,可以使用“神之手”命令行工具或编辑配置文件来完成;
5、编写代码,可以使用Python语言或其他语言;
6、使用“神之手”命令行工具来构建项目;
7、发布应用,可以使用“神之手”命令行工具或者使用第三方持续集成工具来完成。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13422464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-02
下一篇 2023-08-02

发表评论

登录后才能评论

评论列表(0条)

保存