深度学习模型部署

1. 简介

  • 模型部署有以下模型格式
    • ONNX
    • NCNN
    • OpenVINO
    • TensorRT
    • Mediapipe

2. ONNX(中间格式)

  • ONNX:Open Neural Network Exchange (开放神经网络交换)
  • ONNX是一套表示深度神经网络模型的开放格式,由微软和Facebook于2017推出,然后迅速得到了各大厂商和框架的支持
  • ONNX定义了一组与环境和平台无关的标准格式,为AI模型的互操作性提供了基础,使AI模型可以在不同框架和环境下交互使用。硬件和软件厂商可以基于ONNX标准优化模型性能,让所有兼容ONNX标准的框架受益,简单来说,ONNX就是模型转换的中间人
  • 无论使用什么样的训练框架来训练模型(比如TensorFlow/Pytorch/Paddle),都可以在训练后将这些框架的模型统一转为ONNX存储
  • ONNX文件内容包含
    • 神经网络模型的权重
    • 神经网络模型的结构信息
    • 神经网络中各层的输入输出等信息

3. NCNN (手机端)

  • NCNN是一个为手机端极致优化的高性能神经网络前向计算框架,也是腾讯优图实验室成立以来的第一个开源项目
  • NCNN 从设计之初深刻考虑手机端的部署和使用,无第三方依赖,跨平台,手机端 CPU 的速度快于目前所有已知的开源框架
  • 基于 NCNN,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 App
  • 在Linux、Windows和Android、以及iOS、macOS平台上都可以使用GPU来部署模

4. OpenVINO (英特尔平台)

  • OpenVINO是一种可以加快高性能计算机视觉和深度学习视觉应用开发速度的工具套件,支持各种英特尔平台的硬件加速器上进行深度学习,并且允许直接异构执行
  • OpenVINO™工具包是用于快速开发应用程序和解决方案的综合工具包,可解决各种任务,包括模拟人类视觉,自动语音识别,自然语言处理,推荐系统等。该工具包基于最新一代的人工神经网络,包括卷积神经网络(CNN),循环和基于注意力的网络,可在英特尔®硬件上扩展计算机视觉和非视觉工作负载,从而最大限度地提高性能
  • 它通过从边缘到云的高性能,人工智能和深度学习推理来加速应用程序
  • OpenVINO在模型部署前,首先会对模型进行优化,模型优化器会对模型的拓扑结构进行优化,去掉不需要的层,对相同的运算进行融合、合并以加快运算效率,减少内存拷贝;FP16、INT8量化也可以在保证精度损失很小的前提下减小模型体积,提高模型的性能
  • 在部署方面,OpenVIVO的开发也是相对比较简单的,提供了C、C++和python3种语言编程接口
  • 最大的优势呢,其实还是在Intel的不同硬件平台上进行部署的时候,移植会很方便。推理引擎对不同的硬件提供统一的接口,底层实现直接调用硬件指令集的加速库,应用程序开发人员不需要关心底层的硬件实现,即可在不同的硬件平台上加速模型推理

5. TensorRT

  • NVIDIA TensorRT™ 是用于高性能深度学习推理的 SDK。此 SDK 包含深度学习推理优化器和运行时环境,可为深度学习推理应用提供低延迟和高吞吐量
  • 在推理过程中,基于 TensorRT 的应用程序的执行速度可比 CPU 平台的速度快 40 倍。借助 TensorRT,您可以优化在所有主要框架中训练的神经网络模型,精确校正低精度,并最终将模型部署到超大规模数据中心、嵌入式或汽车产品平台中
  • TensorRT 以 NVIDIA 的并行编程模型 CUDA 为基础构建而成,可帮助您利用 CUDA-X 中的库、开发工具和技术,针对人工智能、自主机器、高性能计算和图形优化所有深度学习框架中的推理
  • TensorRT 针对多种深度学习推理应用的生产部署提供 INT8 和 FP16 优化,例如视频流式传输、语音识别、推荐和自然语言处理。推理精度降低后可显著减少应用延迟,这恰巧满足了许多实时服务、自动和嵌入式应用的要求

6. Mediapipe

  • MediaPipe是一款由 Google Research 开发并开源的多媒体机器学习模型应用框架。在谷歌,一系列重要产品,如 YouTube、Google Lens、ARCore、Google Home 以及 Nest,都已深度整合了 MediaPipe
  • 作为一款跨平台框架,MediaPipe 不仅可以被部署在服务器端,更可以在多个移动端 (安卓和苹果 iOS)和嵌入式平台(Google Coral 和树莓派)中作为设备端机器学习推理 (On-device Machine Learning Inference)框架
  • MediaPipe 还支持 TensorFlow 和 TF Lite 的推理引擎(Inference Engine),任何 TensorFlow 和 TF Lite 的模型都可以在 MediaPipe 上使用
  • 在移动端和嵌入式平台,MediaPipe 也支持设备本身的 GPU 加速

7 . 总结

7.1 推理框架对比

模型推理部署框架应用平台贡献者
NCNN移动端腾讯公司开发的移动端平台部署工具
OpenVINOCPU,GPU,嵌入式平台都可以使用,尤其是在CPU上首选OPenVINO。DepthAI嵌入式空间AI平台。Intel公司针对自家设备开开发的部署工具
TensorRT只能用在NIVDIA的GPU上的推理框架。NIVDIA的Jetson平台。NVIDIA公司针对自家GPU开发的部署工具
Mediapipe服务端,移动端,嵌入式平台,TPUGoogle针对自家硬件设备和深度学习框架开发的部署工具
ONNXRuntime可以运行在多平台 (Windows,Linux,Mac,Android,iOS) 上的一款推理框架,它接受 ONNX 格式的模型输入,支持 GPU 和 CPU 的推理由微软、亚马逊 、Facebook 和 IBM 等公司共同开发的开放神经网络交换格式

7.2 推理框架选择

  • ONNXRuntime: 是可以运行在多平台 (Windows,Linux,Mac,Android,iOS) 上的一款推理框架,它接受 ONNX 格式的模型输入,支持 GPU 和 CPU 的推理。唯一不足就是 ONNX 节点粒度较细,推理速度有时候比其他推理框架如 TensorRT 较低。

  • NCNN:是针对手机端的部署。优势是开源较早,有非常稳定的社区,开源影响力也较高。

  • OpenVINO: 是 Intel 家出的针对 Intel 出品的 CPU 和 GPU 友好的一款推理框架,同时它也是对接不同训练框架如 TensorFlow,Pytorch,Caffe 等。不足之处可能是只支持 Intel 家的硬件产品。

  • TensorRT: 针对 NVIDIA 系列显卡具有其他框架都不具备的优势,如果运行在 NVIDIA 显卡上, TensorRT 一般是所有框架中推理最快的。一般的主流的训练框架如TensorFlow 和 Pytorch 都能转换成 TensorRT 可运行的模型。当然了,TensorRT 的限制就是只能运行在 NVIDIA 显卡上,同时不开源 kernel。

  • MediaPipe: 不支持除了tensorflow之外的其他深度学习框架。MediaPipe 的主要用例是使用推理模型和其他可重用组件对应用机器学习管道进行快速原型设计。MediaPipe 还有助于将机器学习技术部署到各种不同硬件平台上的演示和应用程序中,为移动、桌面/云、web和物联网设备构建世界级ML解决方案和应用程序。

  • 参考1

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度学习模型是一种人工智能算法,它通过多层神经元网络的结构来模拟人脑的工作原理,并用于解决复杂的问题。Python是一种广泛应用于数据科学和机器学习的编程语言,而Linux是一种开源操作系统。 在Python中,我们可以使用许多开源深度学习库来构建简单的深度学习模型,例如TensorFlow和PyTorch。这些库提供了一系列高级API和函数,帮助我们更轻松地实现各种深度学习模型。通过调用这些库中的函数,我们可以构建具有不同层次和不同功能的神经网络模型。 具体而言,我们可以使用Python的numpy库处理和转换数据,使用TensorFlow或PyTorch创建神经网络模型的结构,然后训练该模型并进行预测。在这个过程中,我们需要定义模型的网络架构、损失函数和优化器,并使用训练数据进行迭代优化。最后,我们可以使用模型来进行预测并评估其性能。 在Linux系统中,我们可以使用终端命令行来编写和运行Python代码。Linux提供了一个开发环境,可以方便地进行代码编辑和调试。我们可以使用文本编辑器(如Vim或Emacs)来编写代码,并使用命令行工具(如Python解释器)来运行代码。 总结起来,使用Python和Linux,我们可以轻松地实现简单的深度学习模型。我们可以使用Python的深度学习库来构建模型的结构,并使用Linux提供的工具来编写和运行源代码。这样,我们可以快速开发和调试深度学习模型,从而更好地理解和应用该领域的技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值