2020-08-19

部署语言

主要是c\c++和python
C\C++和Python区别:
(1)语言类型不一样:编译性、解释性
(2)C++执行效率快
(3)python跨平台
(4)开发效率python快(代码简单)

C++的优势:
(1)C++执行效率快,Python耗费的硬件资源比较大
(2)安全性:Python会被反编译,C/C++不会被反编译

部署接口

HTTP(flask):BS架构(浏览器——服务器)——RESTful API
TCP/IP(socket):CS架构(客户端——服务端)——gRPC API
通常不会去单独使用gRPC,而是将gRPC作为一个部件进行使用,这是因为在生产环境,我们面对大并发的情况下,需要使用分布式系统来去处理,而gRPC并没有提供分布式系统相关的一些必要组件。而且,真正的线上服务还需要提供包括负载均衡,限流熔断,监控报警,服务注册和发现等等必要的组件

部署设备

(1)PC端——SDK部署(开发包部署)
① .pt
② .onnx
③ TVM
(2)Server端(服务器)
① HTTP(flask)
② TCP/IP(socket)
(3)Mobil端(移动设置:IOS,Android)
① IOS
② Android

部署方式

一、所有模型+ REST API
例如使用flask创建接口,并使用flask启动接口,此方式用于没有并发请求的单线程,不适用于生产部署。但是可在此基础上进行优化,使其能用于生产部署,改进方式参考链接Deploy to Production
二 、pytorch模型部署
(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等其他框架的模型。(坑较多)
三、 keras、tensorflow模型部署
使用Docker与TensorFlow Serving进行部署,可参考tensorflow官网以及博客

注意

模型生产部署需要考虑:多线程,并发,线程安全问题(加锁)以及消息队列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值