Pytorch项目打包和部署(1)——理论
文章目录一、什么是模型打包部署二、模型打包部署的作用三、学习模型打包部署的目的四、模型部署语言五、模型部署平台六、模型部署设备七、模型部署方式八、模型部署接口(服务器部署)九、模型部署相关工具十、模型可视化先上Pytorch官网:Pytorch英伟达显卡总结:一、什么是模型打包部署模型打包就是把程序化的模块打包成一个能在指定平台上可执行文件。Pytorch中的打包和调用方法:torch.save(
文章目录
先上Pytorch官网:Pytorch
英伟达显卡总结:
一、什么是模型打包部署
模型打包就是把程序化的模块打包成一个能在指定平台上可执行文件。
Pytorch中的打包和调用方法:
torch.save()
torch.load()
模型部署就是将打包好的文件在指定的平台上进行部署实施,使其能够正常使用。
二、模型打包部署的作用
模型打包的作用就是将零散的程序块打包成一个整体的可行性文件,方便使用程序调用这个模型。
模型部署的作用就是方使非专业人士能够使用专业程序。
另外一个作用就是提高工作效率。
三、学习模型打包部署的目的
目的是将Pytorch中的模型打包成能够使用其他语言进行调用的模型。
明白部署人员的工作情况,方便和部署人员做工作交接。
算法工程师的职责:
1.搭建训练模型,并将模型转成pt文件;
2.做一份相关文档说明给部署人员:
开发环境、系统、python版本、pytorch版本、numpy版本等。
四、模型部署语言
C、C++、JAVA、Python、Go、Julia、其他语言
C\C++和Python区别:
(1)语言类型不一样:编译性、解释性
(2)C++执行效率快
(3)python跨平台
(4)开发效率python快(代码简单)
选C++的原因:
(1)C++执行效率快,Python耗费的硬件资源比较大
(2)安全性:Python会被反编译,C/C++不会被反编译
五、模型部署平台
Windows平台、Linus平台、Android平台、OS平台
六、模型部署设备
(1)PC端——SDK部署(开发包部署)
① .pt
② .onnx
③ TVM
(2)Server端(服务器)
① HTTP(flask)
② TCP/IP(socket)
(3)Mobil端(移动设置:IOS,Android)
① IOS
② Android
(4)IOT端(传感器、板卡:Android)
物联网设备:
① NVIDIA—jitson系列:
Inviada nano(很垃圾,800块左右)
TX系列:TX、TX2(5000左右)
AGX系列(仅达到1060卡的级别,几万块,但功耗低)
② 华为海思:3950
③ 瑞星微:rk3399(比TX2便宜,2000左右)
④ 树莓派(CPU在跑)
⑤ FPGA(介于程序和芯片之间的东西)
七、模型部署方式
(1)使用指定的编程语言(C/C++/JAVA)调用Libtorch在对应的平台(Windows/Linux)编写程序,然后直接部署。(libtorch安照c++11标准下写的)
(2)先使用Python在任意平台编写模型(跨平台),然后使用torch.jit.trace()将Python文件转成c++文件,最后使用save()方法打包成.pt文件,然后使用C/C++/JAVA或其他语言在其他平台上调用。
(3)将Python模型转换成onnx,再转成caffe,tenssorflow等其他框架的模型。(坑较多)
八、模型部署接口(服务器部署)
HTTP(flask):BS架构(浏览器——服务器)
TCP/IP(socket):CS架构(客户端——服务端)
百度easydl官网
九、模型部署相关工具
(1)clion/vs2017
(2)libtorch
十、模型可视化
(1)Tensorboard/tensorboardX安装与使用
pytorch建议安装tensorboardX;
如果安装tensorboard,版本是最新的,tensorflow版本较低,无法使用它了,只能降版本;
建议安装tensorboardX,不与tensorflow冲突
(2)visdom
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)