【深度学习基础篇-常见的深度学习框架】

  • 文前白话
    • 常见的深度学习框架
      • 1、Caffe
      • 2、TensorFlow
      • 3、 PyTorch
    • 其他框架
      • Reference

文前白话

深度学习是一个发展极为迅速的技术领域,除众多高校和科研院所围绕算法理论进行探索外,Google、Facebook、Microsoft、百度等很多IT公司也纷纷投身其中,先后推出了一系列深度学习的基础平台架构,如Cafe、TensorFlow、PyTorch、MXNet等。这些深度学习框架已经成功地被应用于计算机视觉、语音识别、自然语言处理等领域。这里介绍影响力比较大的几个框架。

常见的深度学习框架

1、Caffe

Caffe(Convolutional Architecture for Fast Feature Embedding)是一个兼具表达性、速度和思维模块化的深度学习框架,最初是由美国加州大学伯克利分校视觉和学习中心(Berkeley Vision and Learning Center,BVLC)开发的。Caffe在BSD协议许可下开源,项目托管于GitHub。2017年4月,Facebook发布Caffe2,其中加入了递归神经网络等新功能。2018年3月底,Caffe2并入PyTorch。Caffe不仅完全开源,而且拥有多个活跃的社区用于沟通并解答问题。

此外,Caffe还具有以下特点:

  • 表示和实现分离:Caffe 使用Google的Protocol Bufer定义模型文件,采用特殊的文本文件prototxt表示网络结构,以有向无环图形式的网络构建
  • 文档比较丰富:Caffe带有一系列参考模型和快速上手例程,还提供了一整套工具集,可用于模型训练、预测、微调、发布、数据预处理及自动测试等。
  • 接口类型多样:Caffe的内核是用C+编写的,还提供了PVhon 和MATLAB接口,供使用者选择熟悉的语言调用、部署算法应用。
  • 训练速度较快:利用OpenBLAS、cuBLAS等计算库,而且支持基于GPU的加选计算内核库,如NVIDIA cuDNN和Intel MKL,能够利用GPU实现计算加速。

早期的 Caffe 版本存在不支持多机、不可跨平台、可扩展性差等不足,尤其是 Caffe 的安装过程需要大量的依赖包,使初学者不易上手;虽然Cafe2在工程上做了很多优化,但仍然存在部分问题。

2、TensorFlow

TensorFlow是一个异构分布式系统上的大规模机器学习框架,最初是由Google Brain团队开发的,旨在方便研发人员对机器学习和深度神经网络的研究。2015年底,TensorFlow正式在GitHub上开源,目前已经被广泛应用于学术研究和工业应用。TensorFlow既可部署在由多个CPU或GPU组成的服务器集群中,也可使用AP1应用在移动设备中。

总体来看,TensorFlow具有以下特点:

  • 技术支持强大:依托Google在深度学习领域的巨大影响力和强大的推广能力,成为当今最炙手可热的深度学习框架,官网上可以查看最佳官方用途、研究模型、示例和教程。
  • 编程接口丰富:以使用广泛的Python 语言为主,并能应用C++、Java、JavaScript、Swift等多种常用的编程语言。
  • 移植性好:不仅可以在Google Cloud和AWS中运行,而且支持Windows 7、Windows10等多种操作系统,还可以在ARM架构上编译和优化;用户可以在各种服务器和移动设备上部署自己的训练模型,无须执行单独的模型解码器或加载Python 解释器。
  • 功能齐全:如基于计算图实现自动微分,使用数据流图进行数值计算,具备GPU加速支持等,性能相对较优异。

作为当前最流行的深度学习框架之一,TensorFlow尽管取得了极大的成功,但是存在版本之间兼容性不足、底层运行机制过于复杂等问题,增加了普通用户在开发和调试过程中的难度。

3、 PyTorch

PyTorch是一个快速和灵活的深度学习框架,建立在旧版的Torch和Caffe2框架之上,利用改版后的Torch C/CUDA作为后端。PyTorch通过集成加速库,如Intel MKL和NVIDIA cuDNN等,最大限度地提升处理速度。其核心CPU、GPUTensor 和神经网络后端Torch、Torch CUDA、THNN(Torch 神经网络)和THCUNN(Torch CUDA神经网络)等,都是使用C99API编写的单独库,并且融入了Caffe2的生产功能。同时,PyTorch与Python深度集成,还允许使用其他Python库。

相比于TensorFlow,PyTorch具有以下特点:

  • PyTorch 可替代NumPy,可以获得GPU加速带来的便利,以便快速进行数据预处理。
  • PyTorch提供的变量可以自动更新,构建自己的计算图,充分控制自己的梯度。
  • PyTorch 是动态图,可以随意调用函数,使代码更简捷。
  • PyTorch提供了很多方便的工具。]

2020年1月15日,Facebook正式发布了PyTorch1.4,这是自2019年10月发布PyTorch1.3后,时隔3个月迎来的一次版本升级。新版本增加了很多功能,包括支持分布式模型并行训练,为PyTorch Mobile提供Build级别的支持,对Java Binding的支持,以及剪枝方法等。此外,还对音频、视觉和文本域库进行了升级。

其他框架

除了上述几个深度学习框架,还有不少框架都有一定的影响力和用户。例如:

  • Theano是第一个有较大影的力的Python深度学习框架,最初诞生于加拿大蒙特利尔大学实叠室。Theano以计算图为框架,采用GPU加速计算,为之后深度学习框架的开发提供了重要借鉴,但由于在工程设计上存在一定的缺陷,2017年已停止开发。

  • MXNet是一个面向效率和灵活性设计的深度学习框架,吸收了不同框架(如Troch7、Theano 等)的优点,提供了多种开发的语言接口,如Python、C++、JavaScript等,并且可在CPU、GPU、服务器、台式机或者移动设备上运行。2016年11月,MXNet被Aws正式选择为其云计算的官方深度学习平台。2017年1月,MXNet项目进入Apache基金会,成为Apache的孵化器项目。尽管MXNet拥有众多的接口,尤其在分布式支持、内存与显存优化等方面获得了不少人的支持和赞誉,但由于推广力度不够、接口文档更新不及时等原因,导致目前使用的人不多,社区不大。

  • CNTK是Microsoft推出的一个开源深度学习工具包,它通过一系列计算步骤构成有向图来表达网络,并且支持CPU和GPU模式。CNTK的所有API均基于C++设计,并提供了很多先进算法的实现,还提供了基于C++、C#和Python的接口,因此在速度、灵活性和可扩展性等方面表现较佳,但因其早期的文档有些晦涩难懂,推广力度不够,导致社区不够活跃。

  • Keras是一个高层次的深度神经网络框架接口,由Python 编写而成并基于TensorFlow、Theano及CNTK后端,相当于TensorFlow、Theano、CNTK的上层接口,具有操作简单、上手容易、文档资料丰富、环境配置容易等优点,但因其过度封装导致缺乏灵活性、使用受限。**

  • PadllePaddle是百度研发的开源开放的深度学习平台**,是国内最早开源的深度学习平台,拥有官方支持的工业级应用模型,涵盖自然语言处理、计算机视觉、推荐引擎等领域。 PadalePaddle3.0版本升级为全面的深度学习开发套件,除了核心框架,还开放了VisualDL、PARL、AutoDL、EayDL、AIStudio等深度学习工具组件和服务平台,已经被国内企业广泛使用,也拥有一定的开发者社区生态。但是总体来看,PadlePacdale 在国内外的流行度和关注度还远远不够。

Reference

深度卷积神经网络原理与实践

【常见的深度学习框架】相关推荐

  1. 【CS231n 课程笔记】第八讲-----常见的深度学习框架,以及GPU和CPU介绍。

    目录 0.写在前面 1.CPU VS GPU 1.1GPU 与CPU的比较 1.2性能测试 1.3实践中的问题 2.深度学习框架 2.1 计算图思想和深度学习框架 2.2 tensorflow 2.2 ...

  2. 深度学习:常见深度学习框架【Theano、TensorFlow、Keras、Caffe/Caffe2、MXNet、CNTK、PyTorch】

    常见的深度学习框架有 TensorFlow .Caffe.Theano.Keras.PyTorch.MXNet等,如下图所示.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领 ...

  3. 常见深度学习框架比较

    常见的深度学习框架有 TensorFlow .Caffe.Theano.Keras.PyTorch.MXNet等,如下图所示.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领 ...

  4. 百度嵌入式深度学习框架Paddle-Mobile介绍

    本篇内容介绍嵌入式深度学习的应用场景.Paddle-Mobile的特性优势以及使用开发方法,预计阅读时间4分钟 嵌入式深度学习有哪些应用 深度学习技术已经在互联网的诸多方向产生影响,关于深度学习和神经 ...

  5. TensorFlow贡献者黄文坚:解读对比13个深度学习框架后的选择

    [AI创新者]TensorFlow贡献者黄文坚:解读对比13个深度学习框架后的选择 AI创新者 Google 人工智能 深度学习 TensorFlow 阅读5774  [AI创新者]是CSDN人工智能 ...

  6. numpy pytorch 接口对应_拆书分享篇深度学习框架PyTorch入门与实践

    <<深度学习框架PyTorch入门与实践>>读书笔记 <深度学习框架PyTorch入门与实践>读后感 小作者:马苗苗  读完<<深度学习框架PyTorc ...

  7. 百度官方文档Plus版,PaddlePaddle深度学习框架介绍

    作者:木羊同学 来源:华章计算机(hzbook_jsj) 现在深度学习框架不但内卷严重,而且头部效应明显.一提起深度学习框架,首先想到的肯定是Google家的TensorFlow,和Facebook家 ...

  8. 国产首款——飞桨PaddlePaddle深度学习框架介绍

    现在深度学习框架不但内卷严重,而且头部效应明显.一提起深度学习框架,首先想到的肯定是Google家的TensorFlow,和Facebook家的PyTorch.究竟排名谁先谁后,还要看你是工业界还是学 ...

  9. 好书分享——《深度学习框架PyTorch:入门与实践》

    内容简介 : <深度学习框架PyTorch:入门与实践>从多维数组Tensor开始,循序渐进地带领读者了解PyTorch各方面的基础知识.结合基础知识和前沿研究,带领读者从零开始完成几个经 ...

最新文章

  1. (2016北京集训十)【xsy1529】小Q与进位制 - 分治FFT
  2. 广西卫生职业技术学院计算机考试,广西卫生职业技术学院单招2021年春招分数线...
  3. 周刊#003提要:吴恩达团队盘点2019 AI 大事件圣诞 AI 论战
  4. Winform中将Bitmap对象通过pictureBox显示图片
  5. python argpare 模块的简单用法
  6. 如何在 Github 工作流文件里引用自定义实现的 action
  7. Flash开发的基本概念
  8. ShardingSphere-Proxy 分库分表 简单示例
  9. java boolean byte_java基础boolean类型所占字节问题
  10. 【信号与系统】复习总结笔记
  11. OEM/ODM windows 10 源镜像下载
  12. 三极管放大电路的基本原理
  13. 世园会开幕式上的机器人_小胖机器人驻扎“2019北京世园会”媒体分会场
  14. 多表查询和动态SQL
  15. 猿如意|IntelliJ IDEA Community下载安装以及基础开发设置和快捷键设置的详细教程
  16. 客户要管理,就靠crm吗?
  17. 138企业邮箱pop/imap和smtp服务器地址
  18. 开源社区ECE:Elastic认证考试复盘总结134贴
  19. 玩吧斗兽棋的一些攻略 同级子谁胜负问题
  20. 众所周知的广告屏蔽神器uBlock/Adguard,为啥你装上后和没装一样?

热门文章

  1. python入门爬虫微信简单的实现微信好友数量
  2. 为什么电路板上的线路总是弯曲的?
  3. 关于Requests代理,你应该知道的
  4. 高中生的高效学习法之“纵横术”
  5. 太阳光线为什么是近似平行的?------余弦定理搞起
  6. 4-4模拟赛 囚人的旋律——DP
  7. vue如何修改网页的图标,title
  8. 【GNSS】GNSS原理:双频观测模型
  9. Exception in thread main java.lang.ArrayIndexOutOfBoundsException: 4 at text.Division.main(Divisi
  10. AR程序(拍照、AR识别、存储)