点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入自动驾驶之心技术交流群

后台回复【领域综述】获取自动驾驶全栈近80篇综述论文!

后台回复【ECCV2022】获取ECCV2022所有自动驾驶方向论文!

最近学习整理了一些深度学习训练推理框架,顺便做了记录,涉及计算机视觉、语音、时序任务上的框架,共计20多种,感兴趣的同学可以follow收藏下~

1训练框架

Pytorch

PyTorch是由Facebook人工智能研究小组开发的一种基于Lua编写的Torch库的Python实现的深度学习库,也是目前使用范围和体验感最好的一款深度学习框架。它的底层基于Torch,但实现与运用全部是由python来完成。该框架主要用于人工智能领域的科学研究与应用开发。PyTroch最主要的功能有两个,其一是拥有GPU张量,该张量可以通过GPU加速,达到在短时间内处理大数据的要求;其二是支持动态神经网络,可逐层对神经网络进行修改,并且神经网络具备自动求导的功能。

一些学习资料与文档:

  • Awesome-pytorch-list:包含了NLP,CV,常见库,论文实现以及Pytorch的其他项目,地址:https://github.com/bharathgs/Awesome-pytorch-list;

  • PyTorch官方文档:官方发布文档,地址:https://pytorch.org/docs/stable/index.html;

  • Pytorch-handbook:pytorch hand book,地址:https://github.com/zergtant/pytorch-handbook;

  • PyTorch官方社区:pytorch开发者社区,地址:https://discuss.pytorch.org/

MXNet

MXNet 是亚马逊维护的深度学习库,它拥有类似于 Theano 和 TensorFlow 的数据流图,为多 GPU 提供了良好的配置。MXNet结合了高性能、clean的代码,高级API访问和低级控制,是深度学习框架中的佼佼者。

优点

  1. 速度上有较大优势;

  2. 灵活编程,支持命令式和符号式编程模型;

  3. 多平台支持:可运行于多CPU、多GPU、集群、服务器、工作站甚至移动mobile phone;

  4. 多语言支持:支持包括C++、Python、R、Scala、Julia、Matlab和JavaScript语言;

  5. 性能优化:使用一个优化的C++后端引擎并行I/O和计算,无论使用哪种语言都能达到最佳性能;

  6. 云端友好;

缺点

  1. 社区较小;

  2. 入门稍微困难些;

Tensorflow

TensorFlow是由谷歌开源并维护,可用于各类深度学习相关的任务中。TensorFlow = Tensor + Flow,Tensor就是张量,代表N维数组;Flow即流,代表基于数据流图的计算,其特性如下:

  • 支持Python、JavaScript、C ++、Java、Go、C#、Julia和R等多种编程语言;

  • GPU,iOS和Android等移动平台上都可运行;

  • 入门学习难度大;

  • 静态图操作;

Caffe

经典的深度学习框架,由贾扬清在加州大学伯克利分校读博期间主导开发,以C++/CUDA为主,需要编译安装,有python和matlab接口,支持单机多卡、多机多卡训练(目前已推出caffe2),特性如下:

  • 以C++/CUDA/Python代码为主,速度快,性能高;

  • 代码结构清晰,可读性和可拓展性强。

  • 支持命令行、Python和Matlab接口,使用方便;

  • CPU和GPU之间切换方便,多GPU训练方便;

  • 工具丰富,社区活跃;

  • 代码修改难度较大,不支持自动求导;

  • 不适合非图像(结构化)数据;

CNTK

微软开源的深度学习框架,CNTK具有高度优化的内置组件,可以处理来自Python,C ++或BrainScript的多维密集或稀疏数据。能够实现CNN,DNN,RNN等任务,能够优化海量的数据集加载。

主要特性:

  • CNTK性能优于其他的开源框架;

  • 适合做语音任务,CNTK本就是微软语音团队开源的,自然更适合做语音任务,便于在使用RNN等模型以及时空尺度时进行卷积;

学习资料与教程:

入门介绍:https://github.com/Microsoft/CNTK/wiki

官方入门教程:https://github.com/Microsoft/CNTK/wiki/Tutorial

官方论坛:https://github.com/Microsoft/CNTK/issues

Keras

一个小白非常友好的框架,上手简单,已被集成到Tensorflow中。Keras在高层可以调用TensorFlow、CNTK、Theano,还有更多优秀的库也在被陆续支持中。Keras的特点是能够快速搭建模型,高度模块化,搭建网络非常简洁,易于添加新模块,是高效地进行科学研究的关键。

学习资料:

  • https://tensorflow.rstudio.com/keras/

  • https://github.com/rstudio/keras

PaddlePaddle

百度开源框架,支持动态图和静态图,中文文档写的非常清楚,上手比较简单;

官网链接:https://www.paddlepaddle.org.cn/

飞桨针对不同硬件环境,提供了丰富的支持方案,生态较为完善:

  1. Paddle Inference:飞桨原生推理库,用于服务器端模型部署,支持Python、C、C++、Go等语言,将模型融入业务系统的首选;

  2. Paddle Serving:飞桨服务化部署框架,用于云端服务化部署,可将模型作为单独的Web服务;

  3. Paddle Lite:飞桨轻量化推理引擎,用于 Mobile 及 IoT 等场景的部署,有着广泛的硬件支持;

  4. Paddle.js:使用 JavaScript(Web)语言部署模型,用于在浏览器、小程序等环境快速部署模型;

  5. PaddleSlim:模型压缩工具,获得更小体积的模型和更快的执行性能;

  6. X2 Paddle:辅助工具,将其他框架模型转换成Paddle模型,转换格式后可以方便的使用上述5个工具;

OneFlow

项目地址:https://github.com/Oneflow-Inc/oneflow

一流科技开源的深度学习框架,使用类似PyTorch的API编程模型使用全局视图API将模型缩放为n维并行/分布式执行使用静态图编译器加速/部署模型。主要有以下优势:

  1. 分布式性能(高效性)是深度学习框架的核心技术难点,OneFlow围绕性能提升和异构分布式扩展,采用静态编译和流式并行的核心理念和架构,解决了集群层面的内存墙挑战;

  2. OneFlow计算集群内部的通信和调度消耗,提高硬件利用率,加快模型训练速度,训练成本时间大幅缩减;

  3. 自动支持模型并行与流水并行:OneFlow天生支持数据并行、模型并行和混合并行,无需定制化开发;

MegEngine

项目地址:https://www.megengine.org.cn/

MegEngine 是旷视完全自主研发的深度学习框架,中文名为“天元”,是旷视 AI 战略的重要组成部分,负责 AI 三要素(算法,算力,数据)中的“算法”。MegEngine 的研发始于 2014 年,旷视内部全员使用。如今,旷视的所有算法均基于 MegEngine 进行训练和推理。

MegEngine 特性:

  1. 训练推理一体化:MegEngine 支持多种硬件平台( CPU,GPU,ARM ),不同硬件上的推理框架和 MegEngine 的训练框架无缝衔接;部署时无需做额外的模型转换,速度/精度和训练保持一致,有效解决了 AI 落地中“部署环境和训练环境不同,部署难”的问题。

  2. 动静合一:动态图易调试,静态图好部署。MegEngine 在静态图的基础上,逐渐加入支持完整动态图的功能,在动态模式下加速研发过程,无需改变模型代码一键切换至静态模式下的部署,为科研和算法工程师同时提供便利。

  3. 兼容并包:MegEngine 的顶层 API 基于 Python,采取了类似于 PyTorch 的风格。简单直接,易于上手,便于现有项目进行移植或整合。

  4. 灵活高效:MegEngine 底层的高性能算子库对于不同的硬件架构进行了深度适配和优化,并提供高效的亚线性内存优化策略,对于生产环境繁多的计算设备提供了极致的性能保证,高效易用的分布式训练实现能有效支持富有弹性的大规模训练。

DeepLearning4j

基于Java的深度学习框架,正式诞生于2013年,在2017年加入Eclipse基金会,由美国的Skymind开源并维护。

项目地址:https://github.com/eclipse/deeplearning4j

  • 支持神经网络模型的构建、模型训练和部署;

  • 能够与现有大数据生态进行无缝衔接(Hadoop、Spark等),也是可以原生态支持分布式模型训练的框架之一;

  • 支持多线程;

  • 跨平台(硬件:CUDA GPu,x86,ARM,PowerPC;操作系统:Windows/Mac/Linux/Android);

2推理框架

TensorRT

Nvidia自家的推理库,几乎是自动驾驶边缘部署领域的标配,更新也很频繁,issue反馈及时,社区维护较好;TensorRT的应用场景很多,服务端、嵌入式端、PC端;利用Pytorch、TF或者其他框架训练好的模型,转化为TensorRT的格式,然后利用TensorRT推理引擎去运行模型,从而提升模型在英伟达板子上的运行速度,速度提升的比例是比较可观的。

项目链接:https://github.com/NVIDIA/TensorRT

NCNN

腾讯开源的ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP,将 AI 带到你的指尖。

项目链接:https://github.com/Tencent/ncnn

TNN

Tencent Youtu Lab开源的高性能、轻量级神经网络推理框架。它还具有跨平台、高性能、模型压缩和代码裁剪等诸多突出优势。TNN框架在原有Rapidnet和ncnn框架的基础上进一步加强了对移动设备的支持和性能优化。同时,它借鉴了业界主流开源框架的高性能和良好的可扩展性特点,并扩展了对X86和NV GPU的支持。在手机上,TNN已被许多应用程序使用。作为腾讯云人工智能的基本加速框架,TNN为许多业务的实施提供了加速支持。

项目链接:https://github.com/Tencent/TNN

MNN

MNN是一个高效、轻量级的深度学习框架。它支持深度学习模型的推理和训练,在设备推理和训练方面具有业界领先的性能。目前,MNN已整合在淘宝、天猫、优酷、鼎语、仙语等30多个阿里巴巴应用中,涵盖直播、短视频捕获、搜索推荐、图片搜索、互动营销、股权分销、安全风险控制等70多个使用场景。此外,MNN还用于嵌入式设备,如物联网。

项目链接:https://github.com/alibaba/MNN

TensorFlow Lite

这是Google在2017年I/O开发者大会上开源的将TensorFlow训练好的模型迁移到Android App的框架,地址和一些学习资源如下:TensorFlow Lite使用Android Neural Networks API,默认调用CPU,目前最新的版本已经支持GPU。

项目地址:https://tensorflow.google.cn/lite/

Core ML

Core ML是2017年Apple公司在WWDC上与iOS11同时发布的移动端机器学习框架,底层使用Accelerate和Metal分别调用CPU和GPU。Core ML需要将你训练好的模型转化为Core ML model。

在一年之后,也就是2018年WWDC上,Apple发布了Core ML 2,主要改进就是通过权重量化等技术优化模型的大小,使用新的Batch Predict API提高模型的预测速度,以及容许开发人员使用MLCustomLayer定制自己的Core ML模型。

项目地址:https://developer.apple.com/documentation/coreml

Paddle-Mobile

Paddle-Mobile是2017年百度PaddlePaddle组织下的移动端深度学习开源框架,当时叫做mobile-deep-learning(MDL)。支持安卓和ios平台,CPU和GPU使用,提供量化工具。可以直接使用Paddle Fluid训练好的模型,也可以将Caffe模型进行转化,或者使用ONNX格式的模型。

项目地址:https://github.com/PaddlePaddle/paddle-mobile

caffe2

Caffe2是facebook在2017年发布的一个跨平台、轻量级、模块化和可扩展的深度学习框架。Caffe2以原Caffe为基础,在设计时考虑到了表达、速度和模块化。不仅仅支持Windows,Linux,Macos三大桌面系统,也支持移动端iOS,Android,可以说是集训练和推理于一身。

MACE

MACE是2018年小米在开源中国开源世界高峰论坛中宣布开源的移动端框架,以OpenCL和汇编作为底层算子,提供了异构加速可以方便在不同的硬件上运行模型,同时支持各种框架的模型转换。

Mobile AI Compute Engine (MACE)是一个专为移动端异构计算平台(支持Android, iOS, Linux, Windows)优化的神经网络计算框架。主要从以下的角度做了专门的优化:

  • 性能:代码经过NEON指令,OpenCL以及Hexagon HVX专门优化,并且采用 Winograd算法来进行卷积操作的加速。此外,还对启动速度进行了专门的优化。

  • 功耗:支持芯片的功耗管理,例如ARM的big.LITTLE调度,以及高通Adreno GPU功耗选项。

  • 系统响应:支持自动拆解长时间的OpenCL计算任务,来保证UI渲染任务能够做到较好的抢占调度, 从而保证系统UI的相应和用户体验。

  • 内存占用:通过运用内存依赖分析技术,以及内存复用,减少内存的占用。另外,保持尽量少的外部 依赖,保证代码尺寸精简。

  • 模型加密与保护:模型保护是重要设计目标之一。支持将模型转换成C++代码,以及关键常量字符混淆,增加逆向的难度。

  • 硬件支持范围:支持高通,联发科,以及松果等系列芯片的CPU,GPU与DSP(目前仅支持Hexagon)计算加速。CPU模式支持Android, iOS, Linux等系统。

  • 模型格式支持支持TensorFlow, Caffe和ONNX等模型格式。

项目地址:https://github.com/XiaoMi/mace-models

NNIE

NNIE 是 Neural Network Inference Engine 的简称,是海思媒体 SoC 中专门针对神经网 络特别是深度学习卷积神经网络进行加速处理的硬件单元,支持现有大部分的公开网 络,如 Alexnet、VGG16、Googlenet、Resnet18、Resnet50 等分类网络,Faster R- CNN、YOLO、SSD、RFCN 等检测网络,以及 SegNet、FCN 等场景分割网络。目前 NNIE 配套软件及工具链仅支持以 Caffe 框架,使用其他框架的网络模型需要转化 为 Caffe 框架下的模型。该框架在海思系列芯片上性能极佳,很大的缺陷就在于仅限于海思系列芯片。

其它

PaddlePaddle和MegEngine同样支持部署,上述已做介绍!

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D感知、多传感器融合、SLAM、高精地图、规划控制、AI模型部署落地等方向;

加入我们:自动驾驶之心技术交流群汇总!

自动驾驶之心【知识星球】

想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D感知、多传感器融合、目标跟踪)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!

20+汇总|计算机视觉深度学习训练推理框架相关推荐

  1. 8个计算机视觉深度学习中常见的Bug

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|人工智能与算法学习 导读 给大家总结了8个计算机视觉深度 ...

  2. Google和微软分别提出分布式深度学习训练新框架:GPipe PipeDream

    [进群了解最新免费公开课.技术沙龙信息] 作者 | Jesus Rodriguez 译者 | 陆离 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) [导读]微软和谷歌一直在致 ...

  3. 计算机视觉深度学习 相关整理

    1.计算机视觉 1.1 发展历程 深度学习发展历程-目标分类: 分类模型和精度 LeNet 串联,2个卷积3个全连接,最早用于数字识别 AlexNet(12年ImageNet冠军) 残差,5个卷积3个 ...

  4. 计算机视觉深度学习顶会_顶会论文接收量再破纪录,计算机视觉创新正在发生什么变化?丨 CVPR 2019分享会...

    把握计算机视觉(Computer Vision)最新的发展方向和技术成就,CVPR 无疑是最好的途径之一. 这个计算机视觉领域的顶会将于2个月后在美国长滩召开,现已公开其最新论文接受数据:5165 篇 ...

  5. 计算机视觉深度学习实战三:频域分析及其变换

    频域分析及变换 更多精彩内容请关注微信公众号:听潮庭. 如何让卷积更快:空域卷积=频域卷积 高斯金字塔 图像金字塔化:先进行图像平滑,再进行降采样, 根据降采样率,得到一系列尺寸逐渐减小的图像. 操作 ...

  6. 全球名校AI课程库(44)| 慕尼黑工大 · 计算机视觉深度学习进阶课『Advanced Deep Learning for Computer Vision』

  7. 独家|深度学习训练和推理之间有什么差异?

    作者:Michael Copeland 翻译:杨光 校对:丁楠雅 本文约2200字,建议阅读5分钟.资深科技编辑Michael copeland解释了深度学习的基本原理. 就像在学校上课一样,神经网络 ...

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

    从学界到工业界,"开源"已经成为AI领域的一个关键词.一方面,它以"授人以渔"的方式为AI构建了一个开放共进的生态环境,帮助行业加速AI应用落地:另一方面,在解 ...

  9. 上海交大开源训练框架,支持大规模基于种群多智能体强化学习训练

    机器之心专栏 作者:上海交大和UCL多智能体强化学习研究团队 基于种群的多智能体深度强化学习(PB-MARL)方法在星际争霸.王者荣耀等游戏AI上已经得到成功验证,MALib 则是首个专门面向 PB- ...

最新文章

  1. 宜阳一高中历年录取分数线_上海高中TOP30!从录取分数线看上海高中排名!
  2. 单元测试(Unit Test)学习
  3. python tablewidget 颜色_【整理】PyQt如何修改QTableView中表格颜色即如何修改QModelIndex颜色 | 勤奋的小青蛙...
  4. EntityFramework(EF)贪婪加载和延迟加载的选择和使用
  5. 学用状态机模式,写的报销流程,请指教
  6. C#调试WebService
  7. c# 解析JSON的几种办法
  8. 火灾检测、人流量统计、安全帽检测,飞桨开源一键运行的产业案例教程
  9. Intel/Altera 系列FPGA简介
  10. java ajaxsubmit_jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
  11. Firefox扩展开发初级教程——开发一个简单的扩展
  12. linux V4L2子系统——v4l2架构(1)之整体架构
  13. Beyong Compare过期
  14. k8s执行init时出现 Initial timeout of 40s passed
  15. C22-利用泰勒公式求sin(x)的值
  16. linux fping命令使用
  17. 什么是 socket?
  18. 章节六:带参数请求数据
  19. [转]基于WorldWind平台的建筑信息模型在GIS中的应用
  20. Linux多定时器实现之三——Windows和Linux通用版

热门文章

  1. 爱快软路由ADSL/PPPoE之“间隔时长重拨“参数设置不当导致远程ssh连接频繁断线
  2. PO、VO、DAO、BO、DTO、POJO区别
  3. SQL Server 拼音简码获取
  4. K8s-进入容器内部
  5. 沃顿商学院最受欢迎的谈判课
  6. 云同步的便签内容在哪里能找到,换了电脑怎样能找到以前的便签内容
  7. 支付宝 微信都可以打赏一下
  8. 案例——封装一个轮播图插件
  9. 产品需求规格说明书写法
  10. 贝叶斯系列——贝叶斯定理、贝叶斯决策、朴素贝叶斯、贝叶斯网络、贝叶斯滤波器