深度学习框架大PK:TNN决战MNN,ncnn依旧经典

简介: 6月10日,腾讯优图实验室开源了一款深度学习推理框架TNN,高效解锁计算机视觉算法。开发者社区内,许多用户将其与ncnn,MNN等开源框架作比较。

微信图片_20220109125517.jpg


近年来,开发者社区中,「开源」成了新流行趋势。

 

尤其是深度学习框架,自腾讯2017年将ncnn开源之后,各大AI实验室都「慷慨」的将自己的框架开源,以实现较为快速的创新。

 

今年6月10日,腾讯又宣布基于ncnn设计的深度学习推理框架TNN也将开源。TNN开源后,许多开发者都将其与ncnn,MNN等开源框架作比较。


        微信图片_20220109125519.png

TNN性能略胜一筹,「剑指」移动端;MNN通用性表现更佳


TNN设计之初一方面是为了提高算力,另一方面强调了对移动设备的支持。不然用户就没必要放弃生态很好的MNN和大家都熟悉的ncnn来使用TNN了。

 

TNN是基于ncnn开发的,对其进行重构升级。除了算力显著的提升以外,基于TNN开发者还可以将深度学习算法移植到手机端,开发移动端的AI产品。

 

为了比较MNN,ncnn和TNN的性能,在以下的主流平台做了测试:

     微信图片_20220109125527.jpg微信图片_20220109125521.png微信图片_20220109125523.png微信图片_20220109125525.jpg

 

可以看到性能方面TNN还是有优势的。但是有些环境下的测试其实和MNN还是不相上下,阿里的开发团队也说,TNN的性能激励了MNN的提高,但相比当年2000ms到700ms的飞越还是差点意思。

 

TNN性能提升的关键是低精度计算,之前讲的没有办法移植到移动端的本质原因是手机处理器比较薄弱,因此框架适应中低端机是非常重要的。TNN在这方面做的很好,在中低端机上的性能提升约20%。

 

通用、轻便也是TNN框架的亮点之一,解决了一部分不同框架间的模型转换问题。但是TNN的模型转换需要基于ONNX,而不像MNN那样直接支持。操作上只是多了一步,通用性上又大打折扣了。

     微信图片_20220109125529.png

 

通用性上MNN的优势也不容置喙,MNN在通用性上下了很大的功夫,你看支持的算子数目就可以知道这算是MNN的一个工作重点。

 

算子实现上,MNN在计算后端的支持也是最广的。除了ARM v8.2,MNN在GPU算子的支持上也远超于其他两个框架。

        微信图片_20220109125531.png      

再讲讲开源的一个重要问题:代码可读性。尽管CPU的代码框架上,TNN和ncnn非常像,但是风格和结构远超ncnn,更加的易读。这点MNN也做得很不错,MNN和TNN在代码各结构上还是有很多相似点。这些相似点让MNN到TNN做代码迁移变的没有那么复杂。

 

总的来说,ncnn作为2017年第一个开源的框架,非常经典。在TNN和MNN的性能差距不大的情况下,选择哪个框架就属于因人而异的事情,各有各的优势。


从ncnn开始,深度学习框架开源已成大趋势


虽然企鹅最近因为一些花边新闻老是被调侃,但是深度学习框架开源这方面,真的要感谢这个傻白甜鹅在2017年7月开源的ncnn。几乎开启了深度学习框架开源的「热潮」。

 

在业界各方人士三年不懈努力(内卷)下,VGG16 在 RK3399 上单核心的推理速度从 2000 ms+ 压榨到了 700 ms+。这之中也正是因为开源,才能够集众人智慧,得到如此卓越的性能提升。

 

ncnn作为元老级别的框架,本身就是为移动平台优化的高性能神经网络推理计算来开发的。从设计之初,ncnn就在手机上进行部署和使用深思熟虑。ncnn当前在许多腾讯应用程序中使用,包括我们熟悉的微信、QQ等。

 

      微信图片_20220109125533.png      

 

MNN也是具有重大意义的一个开源框架。MNN是一个高效,轻量的深度学习框架。它支持深度模型推理与训练,尤其是在端侧的推理与训练性能在其中领先领先。目前,MNN已经在阿里巴巴的手机淘宝,手机天猫,优酷,钉钉,闲鱼等20个应用中使用。

 

MNN对于性能的提升有着卓越的贡献,因此也成为开发者的框架首选。

       微信图片_20220109125535.png      

TNN作为2020年鹅厂开源的一款移动端推理框架,具有高性能、轻量级的特点,拥有跨平台、高性能、模型压缩、代码裁剪等众多优势。目前TNN已经在手机QQ、微视、P图等应用中落地。

      微信图片_20220109125537.png      

除了这三个主流的框架,还有一些也经常被使用的框架,例如PPL。但是PPL现在还没有开源,可能商汤还是想「有所保留」的。其实ncnn开源的时候PPL就出来说过他们的性能更好,PPL其实也是被开发者们经常使用的框架之一了。


        微信图片_20220109125539.png      


百度开源了一个叫做Padle-Lite的框架。Paddle-Mobile是一个开放源代码的深度学习框架,旨在简化在移动,嵌入式和IoT设备上的推理。它与PaddlePaddle和其他来源的预训练模型兼容。


     微信图片_20220109125541.png      

开源框架甚至有雷总的身影,小米主体业务还是在硬件方面,开源框架确实很稀奇。MACE是一个深度学习推理框架,针对Android,iOS,Linux和Windows设备上的移动异构计算进行了优化。


      微信图片_20220109125543.png    

 

最后,方便大家使用,放上开源框架大礼包:


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

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

TNN:https://github.com/Tencent/TNN

PL:https://github.com/PaddlePaddle/Paddle-Lite

MACE:https://github.com/XiaoMi/mace

 

当然大家有什么好的开源框架也可以在评论区分享分享。


相关文章
|
3月前
|
机器学习/深度学习 存储 监控
基于深度学习YOLO框架的城市道路损伤检测与评估项目系统【附完整源码+数据集】
本项目基于深度学习的YOLO框架,成功实现了城市道路损伤的自动检测与评估。通过YOLOv8模型,我们能够高效地识别和分类路面裂缝、井盖移位、坑洼路面等常见的道路损伤类型。系统的核心优势在于其高效性和实时性,能够实时监控城市道路,自动标注损伤类型,并生成损伤评估报告。
171 0
基于深度学习YOLO框架的城市道路损伤检测与评估项目系统【附完整源码+数据集】
|
3月前
|
机器学习/深度学习 自动驾驶 算法
基于深度学习的YOLO框架的7种交通场景识别项目系统【附完整源码+数据集】
在智慧交通和智能驾驶日益普及的今天,准确识别复杂交通场景中的关键元素已成为自动驾驶系统的核心能力之一。传统的图像处理技术难以适应高动态、复杂天气、多目标密集的交通环境,而基于深度学习的目标检测算法,尤其是YOLO(You Only Look Once)系列,因其检测速度快、精度高、可部署性强等特点,在交通场景识别中占据了重要地位。
342 0
基于深度学习的YOLO框架的7种交通场景识别项目系统【附完整源码+数据集】
|
9月前
|
机器学习/深度学习 存储 人工智能
MNN:阿里开源的轻量级深度学习推理框架,支持在移动端等多种终端上运行,兼容主流的模型格式
MNN 是阿里巴巴开源的轻量级深度学习推理框架,支持多种设备和主流模型格式,具备高性能和易用性,适用于移动端、服务器和嵌入式设备。
1930 18
MNN:阿里开源的轻量级深度学习推理框架,支持在移动端等多种终端上运行,兼容主流的模型格式
|
8月前
|
机器学习/深度学习 PyTorch TensorFlow
深度学习工具和框架详细指南:PyTorch、TensorFlow、Keras
在深度学习的世界中,PyTorch、TensorFlow和Keras是最受欢迎的工具和框架,它们为研究者和开发者提供了强大且易于使用的接口。在本文中,我们将深入探索这三个框架,涵盖如何用它们实现经典深度学习模型,并通过代码实例详细讲解这些工具的使用方法。
|
11月前
|
机器学习/深度学习 监控 PyTorch
深度学习工程实践:PyTorch Lightning与Ignite框架的技术特性对比分析
在深度学习框架的选择上,PyTorch Lightning和Ignite代表了两种不同的技术路线。本文将从技术实现的角度,深入分析这两个框架在实际应用中的差异,为开发者提供客观的技术参考。
269 7
|
9月前
|
机器学习/深度学习 运维 安全
深度学习在安全事件检测中的应用:守护数字世界的利器
深度学习在安全事件检测中的应用:守护数字世界的利器
332 22
|
6月前
|
机器学习/深度学习 编解码 人工智能
计算机视觉五大技术——深度学习在图像处理中的应用
深度学习利用多层神经网络实现人工智能,计算机视觉是其重要应用之一。图像分类通过卷积神经网络(CNN)判断图片类别,如“猫”或“狗”。目标检测不仅识别物体,还确定其位置,R-CNN系列模型逐步优化检测速度与精度。语义分割对图像每个像素分类,FCN开创像素级分类范式,DeepLab等进一步提升细节表现。实例分割结合目标检测与语义分割,Mask R-CNN实现精准实例区分。关键点检测用于人体姿态估计、人脸特征识别等,OpenPose和HRNet等技术推动该领域发展。这些方法在效率与准确性上不断进步,广泛应用于实际场景。
674 64
计算机视觉五大技术——深度学习在图像处理中的应用
|
10月前
|
机器学习/深度学习 传感器 数据采集
深度学习在故障检测中的应用:从理论到实践
深度学习在故障检测中的应用:从理论到实践
708 6
|
8月前
|
机器学习/深度学习 人工智能 运维
深度学习在流量监控中的革命性应用
深度学习在流量监控中的革命性应用
247 40
|
6月前
|
机器学习/深度学习 数据采集 存储
深度学习在DOM解析中的应用:自动识别页面关键内容区块
本文探讨了如何通过深度学习模型优化东方财富吧财经新闻爬虫的性能。针对网络请求、DOM解析与模型推理等瓶颈,采用代理复用、批量推理、多线程并发及模型量化等策略,将单页耗时从5秒优化至2秒,提升60%以上。代码示例涵盖代理配置、TFLite模型加载、批量预测及多线程抓取,确保高效稳定运行,为大规模数据采集提供参考。
126 0

热门文章

最新文章