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

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

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

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

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

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

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

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

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

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

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

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

再讲讲开源的一个重要问题:代码可读性。尽管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等。

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

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

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

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

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

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

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

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

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

  1. TensorFlow领衔,七大深度学习框架大对比!

    作者|黄文坚 唐源 编辑|小智 TensorFlow 在 2015 年年底一出现就受到了极大的关注,在一个月内获得了 GitHub上超过一万颗星的关注,目前在所有的机器学习.深度学习项目中排名第一,甚 ...

  2. 2019 深度学习框架大盘点!看 PyTorch、TensorFlow 如何强势上榜?

    点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 本文将以一个视频的方式讲解 2019 年深度学习各大框架.视频作者来自人工智能领域的网红小哥  ...

  3. AI开发者看过来,主流移动端深度学习框架大盘点

    简书作者 dangbo 在<移动端深度学习展望>一文中对现阶段的移动端深度学习做了相关展望.作者认为,现阶段的移动端 APP 主要通过以下两种模式来使用深度学习: online 方式:移动 ...

  4. 深度学习框架TensorFlow、Caffe、MXNet、PyTorch如何抉择?6 位大咖现身说法

    2017 年 6 月,EGO 邀请了 6 位行业大咖,聚焦深度学习框架选择与应用实战,进行了近 3 小时的在线探讨.本文根据当天内容精编而成.6位参与人分别是(排名不分先后): 彭垚-七牛人工智能实验 ...

  5. 详解 6 大主流深度学习框架

    导读:近几年,随着深度学习的爆炸式发展,相关理论和基础架构得到了很大突破,它们奠定了深度学习繁荣发展的基础.这其中涌现了几个著名的深度学习平台,本文将对这些平台进行简要介绍. 作者:涂铭 金智勇 来源 ...

  6. 从TensorFlow到PyTorch:九大深度学习框架哪款最适合你?

    人工智能AI与大数据技术实战  公众号: weic2c 开源的深度学习神经网络正步入成熟,而现在有许多框架具备为个性化方案提供先进的机器学习和人工智能的能力.那么如何决定哪个开源框架最适合你呢?本文试 ...

  7. 对比深度学习十大框架

    原文链接:http://www.sohu.com/a/123190925_465975 2016 年已经过去,BEEVA Labs 数据分析师 Ricardo Guerrero Gomez-Ol 近日 ...

  8. 深度学习框架zf_深度学习十大框架比较

    框架比较(转): 1 TensorFlow 对于那些听说过深度学习但还没有太过专门深入的人来说,TensorFlow 是他们最喜欢的深度学习框架,但在这里我要澄清一些事实. 在 TensorFlow ...

  9. 大数据早报:百度开源移动端深度学习框架 中国联通成立大数据公司(9.26)

    数据早知道,上36dsj看早报! 来源36大数据,作者:奥兰多 『深度学习』百度开源移动端深度学习框架mobile-deep-learning 2017 年 9 月 25 日,百度在 GitHub 开 ...

最新文章

  1. 使用 IntraWeb (8) - 系统模板
  2. 模块加载过程代码分析1
  3. 认识微软Visual Studio Tools for AI
  4. 变异蛮牛 树,dfs,二分图染色 牛客白月赛44
  5. 【2011-04-06】SQL Server 2000 日志传送搭建
  6. Java泛型教程–示例类,接口,方法,通配符等
  7. php分享十三:mysql事物
  8. 生产是什么意思_俗话说:“牛遇无春年,出力好耕田”是啥意思?有什么道理?...
  9. 好系统教你如何禁用或删除启动应用程序以加速Windows
  10. 苹果iOS开发深入浅出Cocoa之类与对象
  11. Spring简单的定时器
  12. RADIUS协议指南
  13. 一张表带你了解自动化测试工具Parasoft VS TestBed
  14. HTML中的header标签怎么用?HTML中header标签的作用_header标签正确用法
  15. Java实现阿里云企业邮箱发送邮件
  16. Android Camera 测光梳理
  17. 《黑白团团队》第九次团队作业:Beta冲刺第一天
  18. C# RabbitMQ: None of the specified endpoints were reachable
  19. Makefile + vcs + dve
  20. python中,获取字符串的长度

热门文章

  1. pandas读取csv Error tokenizing data. C error: Expected 18 fields in line 173315, saw 20
  2. 同时用引用和指针 int *a;
  3. 绘制ROC 曲线 计算 AUC PR曲线(精准率 召回率)示例
  4. 学习Guava Cache知识汇总
  5. 在Ubuntu上编写一个开机自启动的Python脚本
  6. 2018年【计算机视觉机器学习人工智能】国际重要会议汇总
  7. 编译IGSTK5.2
  8. TensorFlow练习12: 判断男声女声
  9. 从39个kaggle竞赛中总结出来的图像分割的Tips和Tricks(附资源)
  10. 独家 | 综述:情感树库上语义组合的递归深层模型