PaddlePaddle会和Python一样流行吗?

  深度学习引擎最近经历了开源热。2013年Caffe开源,很快成为了深度学习在图像处理中的主要框架,但那时候的开源框架还不多。随着越来越多的开发者开始关注人工智能,AI 巨头们纷纷选择了开源的道路:2015年9月Facebook开源了用于在Torch上更快速地训练神经网络的模块,11月Google开源 TensorFlow,2016年1月微软开源CNTK。最近,百度也宣布开源深度学习引擎 PaddlePaddle。

  在这场深度学习的框架之争中,究竟哪家能够胜出?PaddlePaddle的负责人徐伟认为,没有一家公司能够完全主导这个领域,要单一公司的深度学习框架完全主导该领域,就等同于用同一种程序语言开发所有的软件,未来深度学习的生态系统会因使用场景有最佳的框架使用。

  话虽如此,对于程序员来说,如果选择了更为流行的编程语言,就会有更多可使用的库,也能更轻松的做出好的产品。而紧跟程序语言的发展历史,我们发现最终最为流行的,总是最容易上手的。

  Python是非常好的例子,在编程语言排行榜上,2014年Python只有第六名。但随着大量年轻程序员的涌入,他们更愿意选择简单、易学、文档好的Python作为优先的学习对象,很快C、C++程序员很多也开始使用Python编程了。

  而今天发生在深度学习框架上的竞争,似乎也在重演编程语言的历史。

  去年TensorFlow发布的时候,对于它的质疑声不绝于耳。首先是对单机版TensorFlow的质疑,认为它在和Caffe、Torch和 Theano相比并没有优势。而在Google开源了分布式版本后,人们说它比Caffe慢,比Torch臃肿,而且不能进行太大调整。但如今在HackerNews上关于最受欢迎深度学习工具的投票,TensorFlow获得第一,得票率是第二名的接近2.6倍。

  程序员Vonnik解释了这个现象:使用TensorFlow的大部分都是来自Udacity课程的学生,他们大部分都没什么经验。但正是这些学生和初学者,而非那些经验丰富的资深人士,把Python变成了全球最流行的语言,也把TensorFlow推到了排名第一的位置。

  从Python和TensorFlow的历史来看,我们有理由认为,最为简单、易用的深度学习框架,将会在未来的竞争胜出。

  百度 PaddlePaddle

  在和几款最常用的深度学习框架TensorFlow、Torch、Caffe比较之前,我们先重点介绍新出现的PaddlePaddle。

  Paddle其实已经有多年历史了。早在 2013 年,百度就察觉到传统的基于单GPU的训练平台,已经无法满足深度神经网络在搜索、广告、文本、语音、图像等领域的训练需求,于是在徐伟的带领下开始搭建Paddle——一个多机并行的CPU/GPU混布的异构计算平台。Paddle从最早的开发到如今的开源,就一直以大规模数据处理和工业化的要求不断改进。我们可以看到PaddlePaddle有很多优异的特性。

  Github上介绍,PaddlePaddle有以下特点:

  · 灵活

  PaddlePaddle支持大量的神经网络架构和优化算法,支持任意复杂RNNs结构,高效处理batch,无需数据填充。简单书写配置文件即可实现复杂模型,比如拥有注意力(Attention)机制、外围记忆层(External Memory)或者用于神经机器翻译模型的深度时序快进网络。

  · 高效

  为了利用异构计算资源的能力,PaddlePaddle中的每一级都会进行优化,其中包括计算、内存、架构和通信。以下是几个例子:

  1.使用SSE/AVX内联函数、BLAS数据库(例如MKL、ATLAS、cuBLAS)和定制化的CPU/GPU Kernal来优化数学运算。

  2.高度优化RNNs网络,在没有Padding的情况下,也能处理不同长度的序列。

  3.优化的本地和分布式训练,同时支持高纬稀疏模型。

  · 可扩展

  有了PaddlePaddle,使用多个CPU和GPU以及机器来加速训练可以变得很轻松。 PaddlePaddle能通过优化通信,获得高吞吐量和性能。

  · 与产品的连接

  PaddlePaddle的部署也很简单。在百度,PaddlePaddle已经被用于产品和服务中,拥有大量用户。应用场景包括预估外卖的出餐时间、预判网盘故障时间点、精准推荐用户所需信息、海量图像识别分类、字符识别(OCR)、病毒和垃圾信息检测、机器翻译和自动驾驶等等。

  在PaddlePaddle简单、可扩展的逻辑下,徐伟评价说:“这将使工程师们能够快速、轻松地将深度学习技术应用到他们的产品当中,我们想让更多的人使用人工智能,人工智能对于我们的未来生活是非常重要的。”

  深度学习框架对比

  PaddlePaddle最主要的类比对象,来自UC伯克利的贾扬清开发的Caffe和Google的 TensorFlow。

  这是一张来自Spark Summit 2016的图,PaddlePaddle在开源前就在顶级的行业会议中进行了展示。

  PaddlePaddle、Caffe和TensorFlow都可以支持分布式训练,但相比之下PaddlePaddle 有很突出的优势。

  PaddlePaddle和Caffe在设计上有一些类似的地方,但是相比Caffe聚焦在视觉领域,PaddlePaddle可以在各种不同的场景中应用。而相比TensorFlow,PaddlePaddle的上手难度更低,也没有太多的Abstraction,速度也会更快。悦德财富:https://yuedecaifu.com

  而在RNN的性能表现上,PaddlePaddle的速度也要优于TensorFlow。

  总的来说

  1)Caffe具有出色的CNN实现功能的开发语言,在计算机视觉领域,Caffe仍然是最流行的工具包。Caffe的开发语言支持C++和Cuda,速度很快,但是由于一些历史性的遗留架构问题,它的灵活性不够强。而且对递归网络和语言建模的支持很差。Caffe支持所有主流开发系统,上手难度属于中等水平。

  2)TensorFlow是一个理想的RNN API实现,它使用了向量运算的符号图方法,使得开发的速度可以很快。TensorFlow支持的比较好的系统只有各种Linux系统和OSX,不过其对语言的支持比较全面,包含了Python、C++和Cuda等,开发者文档写得没有Caffe那么全面,所以上手比较难,在性能方面,也不如Caffe及PaddlePaddle。

  3)Torch没有跟随Python的潮流,反而选择了C语言实现,用Lua语言进行封装。Torch对卷积网络的支持非常好,运行在C++、C#和Jave等工业语言的速度较快,也不需要额外的编译。但是它的上手难度也很高,对初学者缺乏规范的例子,而且需要先迈过Lua的门槛,这对初学者是很大的障碍。

  4)而此次百度的PaddlePaddle性能优先并兼顾灵活,通过使用GPU异构计算来提升每台机器的数据处理能力,获得了业内“相当简洁、设计干净、稳定,速度较快,显存占用较小”等好评。

  而在关键的进入门槛上,相比Google TensorFlow和Facebook Torch,PaddlePaddle的上手难度低得多,且拥有非常优秀的业界特征,包括NLP和推荐等应用场景、对RNN很好的支持、高质量代码、以及分布式训练等,已经足以满足大多数AI场景的需求。且PaddlePaddle更加务实,可解决实际问题。

  据徐伟介绍,PaddlePaddle将在本月底发布最新版本,全面支持Mac操作系统、以及Cuda8.0和GCC5.4,同时进一步优化了安装过程,可以帮助更多开放者更好地“上手”。

  所以我们可以初步下一个结论,在中国的开发环境下,Google TensorFlow和Facebook Torch的上手难度都比较高,TensorFlow最好的训练环境Google Cloud也难以在中国获得支持。而Caffe虽然已经有了多年的积累,但是毕竟目前只是在视觉领域有比较好的发展,而且相比百度能提供的产业链支持,在资源投入上可能会有比较大的局限。相比之下,坐拥中国的本土市场,上手难度低得多的PaddlePaddle,将会有更好的技术和生态的环境。也许不久的将来,PaddlePaddle就会和Python在编程语言中所做的事情一样,成为最流行的深度学习引擎。

百度Paddle会和Python一样,成为最流行的深度学习引擎吗?的更多相关文章

  1. 用Python实现随机森林算法,深度学习

    用Python实现随机森林算法,深度学习 拥有高方差使得决策树(secision tress)在处理特定训练数据集时其结果显得相对脆弱.bagging(bootstrap aggregating 的缩 ...

  2. 百度DMLC分布式深度机器学习开源项目(简称“深盟”)上线了如xgboost(速度快效果好的Boosting模型)、CXXNET(极致的C++深度学习库)、Minerva(高效灵活的并行深度学习引擎)以及Parameter Server(一小时训练600T数据)等产品,在语音识别、OCR识别、人脸识别以及计算效率提升上发布了多个成熟产品。

    百度为何开源深度机器学习平台?   有一系列领先优势的百度却选择开源其深度机器学习平台,为何交底自己的核心技术?深思之下,却是在面对业界无奈时的远见之举.   5月20日,百度在github上开源了其 ...

  3. Python、机器学习、计算机视觉、深度学习入门

    1.简明Python教程 2.Python计算机视觉编程 3.机器学习实践 4.吴恩达机器学习 5.李飞飞深度学习与计算机视觉

  4. python之感知器-从零开始学深度学习

    感知器-从零开始学深度学习 未来将是人工智能和大数据的时代,是各行各业使用人工智能在云上处理大数据的时代,深度学习将是新时代的一大利器,在此我将从零开始记录深度学习的学习历程. 我希望在学习过程中做到 ...

  5. 深度学习“四大名著”发布!Python、TensorFlow、机器学习、深度学习四件套!

    Python 程序员深度学习的"四大名著": 这四本书着实很不错!我们都知道现在机器学习.深度学习的资料太多了,面对海量资源,往往陷入到"无从下手"的困惑出境. ...

  6. 【Python开发】【神经网络与深度学习】网络爬虫之图片自动下载器

    python爬虫实战--图片自动下载器 之前介绍了那么多基本知识[Python爬虫]入门知识(没看的赶紧去看)大家也估计手痒了.想要实际做个小东西来看看,毕竟: talk is cheap show ...

  7. 【Python开发】【神经网络与深度学习】网络爬虫之python实现

    一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛. 网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一 ...

  8. python streamlit 速成web页面,深度学习模型展示.

    #  点我查看 参考文献 py中一个web应用,Streamlit 是一个开源 Python 库,可让您轻松创建和共享用于机器学习和数据科学的精美自定义 Web 应用程序.只需几分钟,您就可以构建和部 ...

  9. 【Python开发】【神经网络与深度学习】如何利用Python写简单网络爬虫

    平时没事喜欢看看freebuf的文章,今天在看文章的时候,无线网总是时断时续,于是自己心血来潮就动手写了这个网络爬虫,将页面保存下来方便查看   先分析网站内容,红色部分即是网站文章内容div,可以看 ...

随机推荐

  1. Jqplot使用总结之二(双Y轴)

    最近需要用Jqplot做双Y轴的Chart图,首先我找到了文档上的例子并对数据做了一些调整: 1.例子展示: var s1 = [["2002-01-01", 112000], [ ...

  2. 比对工具之 BWA 使用方法

    BWA算法简介: BWA-bactrack BWA-SW BWA-MEM BWA安装: # installing BWA .tar.bz2 -C /opt/biosoft/ cd /opt/bioso ...

  3. 能在CAD2004以下版本里面打开2007以上版本文件的外挂

    下载地址:http://yunpan.cn/cjrxMKNubXQ5E  访问密码 1974 老何CAD工具安装办法:[推荐]先安装老何工具箱,然后用[扩展添加老何cad下拉菜单.bat]就完成老何下 ...

  4. jquery 全选功能

    1.直接全选(复选框名字要统一) <input type="CHECKBOX" id="cbSelectAll" onclick="$('inp ...

  5. html年月日下拉联动菜单 年月日三下拉框联动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. dede调用文章里的图片

    {dede:arclist row='6' orderby='pubdate' typeid='5' idlist='' channelid='1'} <li><a href='[f ...

  7. HTML5自学笔记[ 21 ]canvas绘图实例之马赛克

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  8. MySQL 存储php中json_encode格式中文问题及解决

    MySQL 存储php中json_encode格式信息  ,遇到中文时, 会变成一堆类似uxxxx信息. 1. 原因分析:在存储到数据库时!MySQL 不会存储 unicode 字符: MySQL 仅 ...

  9. Eclipse上安装GIT插件EGit

    一.Eclipse上安装GIT插件EGit Eclipse的版本eclipse-java-helios-SR2-win32.zip(在Eclipse3.3版本找不到对应的 EGit插件,无法安装) E ...

  10. 集成 Apple Pay

    作者感言 在中秋过后终于把国内的三大支付平台SDK集成都搞定了, 现在我们终于可以来研究Apple自家的支付Apple Pay最后:如果你有更好的建议或者对这篇文章有不满的地方, 请联系我, 我会参考 ...