软件简介

TNN是一个移动端高性能、轻量级推理框架,同时拥有跨平台、高性能、模型压缩、代码裁剪等众多突出优势。TNN框架在原有Rapidnet、ncnn框架的基础上进一步加强了移动端设备的支持以及性能优化,同时也借鉴了业界主流开源框架高性能和良好拓展性的优点。目前TNN已经在手Q、微视、P图等应用中落地,欢迎大家参与协同共建,促进TNN推理框架进一步完善。

快速开始

使用 TNN 非常简单,如果你有一个已经训练好的模型, 那么一般而言通过以下三个步骤就能完成模型在目标平台上的部署。

  1. 第一步是把训练好的模型转换成TNN的模型,为此我们提供了丰富的工具来帮助你完成这一步,无论你使用的是 TensorFlow、PyTorch、或者 Caffe,都可以轻松完成转换。

  2. 当你完成了模型的转换,第二步就是编译目标平台的 TNN 引擎了,你可以根据自己的目标平台的硬件支持情况,选择 CPU/ARM/OpenCL/Metal 等加速方案。 对于这些平台,TNN 都提供了一键编译的脚本,使用非常方便。

  3. 最后一步就是使用编译好的 TNN 引擎进行推理,你可以在自己的应用程序中嵌入对 TNN 的调用,这方面我们提供了丰富而详实的 demo 来帮助你完成。

技术方案

目前TNN已经在手Q、微视、P图等应用中落地:

  • 计算优化

    • 针对不同架构在硬件指令发射、吞吐、延迟、缓存带宽、缓存延迟、寄存器数量等特点,深度优化底层算子,极致利用硬件算力
    • 主流硬件平台(CPU: ARMv7, ARMv8, GPU: Mali, Adreno, Apple) 深度调优
    • CNN 核心卷积运算通过 Winograd,Tile-GEMM, Direct Conv 等多种算法实现,保证不同参数、计算尺度下高效计算
    • Op 融合:离线分析网络计算图,多个小 Op(计算量小、功能较简单)融合运算,减少反复内存读取、kernel 启动等开销
  • 低精度优化

    • 支持 INT8, FP16 低精度计算,减少模型大小、内存消耗,同时利用硬件低精度计算指令加速计算
    • 支持 INT8 Winograd 算法,(输入6bit), 在精度满足要求的情况下,进一步降低模型计算复杂度
    • 支持单模型多种精度混合计算,加速计算同时保证模型精度
  • 内存优化

    • 高效”内存池”实现:通过 DAG 网络计算图分析,实现无计算依赖的节点间复用内存,降低 90% 内存资源消耗
    • 跨模型内存复用:支持外部实时指定用于网络内存,实现“多个模型,单份内存”。
  • 主流模型实测性能:v0.1 2020.05.29

    • 麒麟970:

      model cpu time(单线程,ms) gpu time(ms)
      Mobilenet_v1 88 12
      Mobilenet_v1_int8 55  
      Mobilenet_v2 58 11
      Mobilenet_v2_int8 41  
      squeezenet_v1.0 127 20
      squeezenet_v1.0_int8 82  
    • 骁龙835:

      model cpu time(单线程,ms) gpu time(ms)
      Mobilenet_v1 94 16
      Mobilenet_v1_int8 62  
      Mobilenet_v2 61 14
      Mobilenet_v2_int8 47  
      squeezenet_v1.0 122 28
      squeezenet_v1.0_int8 93  
    • 骁龙845:

      model cpu time(单线程,ms) gpu time(ms)
      Mobilenet_v1 60 10
      Mobilenet_v1_int8 37  
      Mobilenet_v2 39 8
      Mobilenet_v2_int8 28  
      squeezenet_v1.0 74 14
      squeezenet_v1.0_int8 56  
  • TNN架构图:

     

  • 通过 ONNX 支持 TensorFlow, PyTorch, MXNet, Caffe 等多种训练框架,充分利用和融入不断完善的 ONNX 开源生态。当前支持 ONNX 算子55个,近期会完善到约80个,覆盖主流CNN网络

  • 支持主流安卓、iOS、Embedded Linux 操作系统,支持 ARM CPU, GPU 硬件平台(近期还会加入达芬奇 NPU 支持)

  • 模块化设计,将模型解析、计算图构建、优化、底层硬件适配、高性能 kernel 实现各部分抽象隔离,通过 Factory Mode 注册、构建设备,方便接入更多的底层硬件、加速方案。

  • Runtime 无任何第三方库依赖,CPU 动态库尺寸仅约 400KB,并提供基础图像变换操作,调用简单便捷。跨平台模型统一、调用接口统一,通过单个配置参数快速切换。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (2)

加载中
970可以试试
2020/09/02 19:25
回复
举报
在手机上训练算法模型吗?为什么不在专门的GPU服务器上做呢?
2020/09/01 12:21
回复
举报
更多评论
暂无内容
2020/06/15 08:00

轻量级部署,腾讯优图开源深度学习推理框架TNN

AI视线 点击关注上方“AI深度视线”,设“星标”公号 技术硬文,第一时间送达! 转自 | 机器之心 6 月 10 日,腾讯优图实验室宣布正式开源新一代移动端深度学习推理框架 TNN。 从学界到工业界,「开源」已经成为 AI 领域的关键词。 一方面,它以「授人以渔」的方式为 AI 构建了一个开放共进的生态环境,帮助行业加速 AI 应用落地;另一方面,在解决行业实际问题时实现持续更新和迭代,源源不断地给 AI 领域输送重要的技术养料和...

0
0
发表了博客
2020/06/12 09:35

轻量级部署,腾讯优图开源深度学习推理框架TNN - 知乎

6 月 10 日,腾讯优图实验室宣布正式开源新一代移动端深度学习推理框架 TNN。 机器之心发布,机器之心编辑部。 从学界到工业界,「开源」已经成为 AI 领域的关键词。 一方面,它以「授人以渔」的方式为 AI 构建了一个开放共进的生态环境,帮助行业加速 AI 应用落地;另一方面,在解决行业实际问题时实现持续更新和迭代,源源不断地给 AI 领域输送重要的技术养料和创造力。可以说「开源」是 AI 落地和繁荣不可或缺的源动力。 6 ...

0
0
2020/06/10 17:10

腾讯优图开源深度学习推理框架TNN,助力AI开发降本增效

从学界到工业界,“开源”已经成为AI领域的一个关键词。一方面,它以“授人以渔”的方式为AI构建了一个开放共进的生态环境,帮助行业加速AI应用落地;另一方面,在解决行业实际问题时持续更新和迭代,源源不断地给AI领域输送重要的技术养料和创造力,可以说开源是AI落地和繁荣不可或缺的源动力。 6月10日,腾讯优图实验室宣布正式开源新一代移动端深度学习推理框架TNN,通过底层技术优化实现在多个不同平台的轻量部署落地,性能...

0
0
发表了博客
2020/06/10 15:37

腾讯优图开源深度学习推理框架TNN,助力AI开发降本增效

### **腾讯优图开源深度学习推理框架TNN,激发AI生产力** 从学界到工业界,“开源”已经成为AI领域的一个关键词。一方面,它以“授人以渔”的方式为AI构建了一个开放共进的生态环境,帮助行业加速AI应用落地;另一方面,在解决行业实际问题时持续更新和迭代,源源不断地给AI领域输送重要的技术养料和创造力,可以说开源是AI落地和繁荣不可或缺的源动力。 ![](https://oscimg.oschina.net/oscnet/up-812e065ea2a01d0975c58f51aa6...

0
0
2020/06/12 10:31

腾讯优图开源深度学习推理框架TNN,助力AI开发降本增效

允中 发自 凹非寺 量子位 编辑 | 公众号 QbitAI 从学界到工业界,“开源”已经成为AI领域的一个关键词。 一方面,它以“授人以渔”的方式为AI构建了一个开放共进的生态环境,帮助行业加速AI应用落地;另一方面,在解决行业实际问题时持续更新和迭代,源源不断地给AI领域输送重要的技术养料和创造力,可以说开源是AI落地和繁荣不可或缺的源动力。 6月10日,腾讯优图实验室宣布正式开源新一代移动端深度学习推理框架TNN,通过底层...

0
0
2020/06/10 16:22

腾讯优图开源深度学习推理框架TNN,助力AI开发降本增效

从学界到工业界,“开源”已经成为AI领域的一个关键词。一方面,它以“授人以渔”的方式为AI构建了一个开放共进的生态环境,帮助行业加速AI应用落地;另一方面,在解决行业实际问题时持续更新和迭代,源源不断地给AI领域输送重要的技术养料和创造力,可以说开源是AI落地和繁荣不可或缺的源动力。 6月10日,腾讯优图实验室宣布正式开源新一代移动端深度学习推理框架TNN,通过底层技术优化实现在多个不同平台的轻量部署落地,性能...

0
0
发表了博客
2020/06/11 15:29

腾讯优图开源深度学习推理框架TNN,助力AI开发降本增效 - 云计算头条的个人空间 - OSCHINA

送 Doris 限量T恤,快来围观!>>> 从学界到工业界,“开源”已经成为AI领域的一个关键词。一方面,它以“授人以渔”的方式为AI构建了一个开放共进的生态环境,帮助行业加速AI应用落地;另一方面,在解决行业实际问题时持续更新和迭代,源源不断地给AI领域输送重要的技术养料和创造力,可以说开源是AI落地和繁荣不可或缺的源动力。 6月10日,腾讯优图实验室宣布正式开源新一代移动端深度学习推理框架TNN,通过底层技术优化实现在...

0
0
发表了博客
2020/09/06 10:27

模型量化调优

一、MNN 量化和调优 1、量化工具 https://www.yuque.com/mnn/en/tool_quantize 2、量化调优 https://www.yuque.com/mnn/en/tqr7ft 量化后的模型继续trainning调优 二、NCNN量化 https://github.com/Tencent/ncnn/blob/master/docs/how-to-use-and-FAQ/quantized-int8-inference.md 三、TNN量化 https://github.com/Tencent/TNN/blob/master/doc/cn/user/quantization.md...

0
0
发表了博客
2020/12/26 15:48

Windows版Tcpdump抓包工具

windows命令行下抓包的工具比较难找,windump确实是命令行下的,但是它需要安装winpcap,而winpcap从3.0开始官方就已经不提供nogui的安装包,终于给我找到一个windows版本的tcpdump,而且不需要另外安装winpcap 这个软件是收费的,不过官方说试用版是全功能 另外注意:tcpdump抓包时默认只抓取前96bytes,所以当需要抓取全部的报文时需要指定-s 0 —————————————————————————————————— tcpdum...

0
0
01/25 15:49

AI模型在移动设备的部署

*作者:声网Agora 周世付* 近年来,随着AI技术的快速发展,AI模型部署到移动端设备的需求越来越强烈。AI模型部署到移动端设备,能带来诸多好处: 1. 对于公司而言,无需为AI模型部署云端服务器,能够大幅度降低公司的运营和服务成本; 2. 对于用户而言,用户的数据,如视频、图片、声音、文字等,无需上传至云端服务器,可在本地移动端进行计算,用户的隐私得到有效的保护。 然而,AI模型在移动端设备部署,却面临如下挑战和限制...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
2 评论
27 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部