您当前的位置: 主页 > 行业动态

行业动态

计算机视觉深度学习训练推理框架

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访问和低级控制,是深度学习框架中的佼佼者。

640 (1).png

优点

  1. 速度上有较大优势;
  2. 灵活编程,支持命令式和符号式编程模型;
  3. 多平台支持:可运行于多CPU、多GPU、集群、服务器、工作站甚至移动mobile phone;
  4. 多语言支持:支持包括C++、Python、R、Scala、Julia、Matlab和JavaScript语言;
  5. 性能优化:使用一个优化的C++后端引擎并行I/O和计算,无论使用哪种语言都能达到最佳性能;
  6. 云端友好;

缺点

  1. 社区较小;
  2. 入门稍微困难些;

Tensorflow


640 (2).png

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);


上一篇: 智能座舱技术现状及发展趋势研究
下一篇:没有了
  • 地址:陕西省西咸新区沣东新城能源金茂区能源路秦创原·科创大厦9楼
  • 邮箱:chejp@163.com
  • 电话:15191489572
Copyright © 2020-2021 西安图宾智能科技有限公司 版权所有陕ICP备2021013228号
Top