码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 深度学习推理框架


    现在主流的推理框架包括:TensorRT,ONNXRuntime,OpenVINO,ncnn,MNN,tnn 等。

    1. TensorRT

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

    2. ONNXRuntime

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

    3. OpenVINO

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

    4. NCNN/MNN/TNN

    不同于以上三款推理框架,NCNN/MNN这两款框架都是针对手机端的部署。ncnn 是腾讯开源的,MNN 是阿里开源。ncnn的 优势是开源较早,有非常稳定的社区,开源影响力也较高。MNN 开源略晚,但也是目前比较有影响力的手机端推理框架。tnn是腾讯基于ncnn 上开发的推理框架,而且支持服务端推理。

    ncnn代码结构相对直观,而且从实际使用经验上看更易于魔改

    https://github.com/Tencent/ncnn​github.com/Tencent/ncnn

    MNN代码逻辑相对于NCNN更加复杂,尤其是没接触过NC4HW4数据格式的用户,一开始上来看代码很可能是一脸懵逼,这个格式也导致了代码看起来没有NCHW格式直观易懂,但是对于优化更加友好

    https://github.com/alibaba/MNN​github.com/alibaba/MNN

    TNN是腾讯2020年6月开源的基于ncnn基础上的新一代跨平台深度学习推理框架,是首个同时支持移动端、桌面端、服务端的全平台开源版本。TNN新版本在通用性、易用性、性能方面进一步获得提升。参考:腾讯推理框架TNN简介

    5. MindSpore Lite

    华为最新开源的全场景深度学习框架MindSpore,其中包含了用于端侧的推理框架MindSpore Lite,支持大部分业界主流的模型,在硬件上除了支持ARM CPU、Mali GPU这些端侧通用硬件以外,对于华为NPU做了更好的支持,性能上有较大的优势。此外,MindSpore Lite针对IoT场景的超轻量化部署技术,对于单片机这些超低功耗的硬件也可运行
    MindSpore/mindspore华为最新开源的全场景深度学习框架MindSpore,其中包含了用于端侧的推理框架MindSpore Lite,支持大部分业界主流的模型,在硬件上除了支持ARM CPU、Mali GPU这些端侧通用硬件以外,对于华为NPU做了更好的支持,性能上有较大的优势。此外,MindSpore Lite针对IoT场景的超轻量化部署技术,对于单片机这些超低功耗的硬件也可运行

    MindSpore/mindspore​gitee.com/mindspore/mindspore正在上传…重新上传取消

    6. 如何选择?

    NVIDIA的TensorRT和Intel的OpenVINO是硬件厂商针对自己特定硬件的推理框架,如果你只想在这些特定硬件上运行,不考虑跨平台,可以选择。mnn、ncnn都是支持多种硬件的端侧推理框架,性能上MNN略占优势。

    针对具体的需求进行选择:

    (1)首先考虑训练模型能否转换到具体的推理后端。

    (2)其次考虑需要运行在何种平台上,如果是手机端,就是 ncnn 或者 MNN 这种,否则可以考虑 TensorRT,ONNXRuntime,OpenVINO。

    (3)再次就是考虑稳定性和运行效率,一般推理越快越稳,就越是受欢迎。最后考虑易用性,用户越友好,文档越全面就越好。

    性能可以参考:TVM、Openvino、TNN、NCNN前向推理框架使用心得_damon93的博客-CSDN博客

  • 相关阅读:
    基于JavaGUI的校园卡自助服务系统
    细说react源码中的合成事件
    【无标题(PC+WAP)花卉租赁盆栽绿植类pbootcms站模板
    前端食堂技术周刊第 115 期:Rolldown 正式开源、马斯克宣布 xAI 本周将开源 Grok、如何使用 Copilot 完成 50% 的日常工作?
    gitlab无法push(pre-receive hook declined)
    iOS 在CollectionView上做展开收起动画
    人工智能知识全面讲解:感知机原理
    Vue--Router--嵌套路由(children)的用法
    【Java编程进阶之路--三大特性】
    Spring-Cloud之Feign原理剖析
  • 原文地址:https://blog.csdn.net/javastart/article/details/127966891
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号