如何评价深度学习框架Keras

热门推荐:
  来自kdnuggets
  作者:Matthew May
  机器之心编译出品
  参与:柒柒、微胖、张之乎
  Github十大深度学习项目,其中包含了大量的代码库,框架以及学习资料。看看Github上的人们都在使用哪些工具,都在从哪些资源那里进行学习。
  最新KDnuggets软件调查结果表明,在过去12个月,73%的数据科学家都会使用免费的数据科学工具。不言而喻,Python和R语言(两者皆为开源)以及各自的生态系统,是这些免费的数据科学工具中,数据科学家们运用的最突出、最必不可少的。
  Github已成为名副其实的开源软件交流中心,其上寄存了几乎所有想得到的项目类型。深度学习在学术、研究和兴趣方面的普及程度越来越高,并在数据科学方面越来越重要,我们将探索一下Github里出类拔萃的深度学习项目。
  需要注意的是,大部分人认为属于深度学习的一些重要项目并没有出现在该名单上,原因在于在Github搜索「深度学习」时并没有涉及到这些项目。
  1 Caffe
  ★ 7905
  Caffe是利用Python和MATLAB两者结合创建的深度学习程序库。由伯克利大学的伯克利视觉与学习中心创办,如果人们仅把Caffe当做计算机视觉应用是情有可原的;事实上,这是一个通用的深度学习程序库,能够开发卷积网络,并创建其他视觉、语音等应用。
  2 Data Science IPython Notebooks
  ★ 4386
  这是由Donne Martin策划收集的IPython笔记本。话题涵盖大数据、Hadoop、scikit-learn和科学Python堆栈以及很多其他方面的内容。至于深度学习,像是TensorFlow、Theano和Caffe之类的框架也均被涵盖其中,当然还有相关的特定构架和概念等。
  3 ConvNetJS
  ★ 3924
  由斯坦福博士生Andrej Karpathy写就,他也一直维持着博客更新。ConvNetJS是一个由Java实现的神经网络及其通用模块,并且包括大量的基于浏览器的实例。这些文档和实例数不胜数,且非常完整。不要让java和神经网络结合在一起的想法把你吓跑了,这可是个非常受欢迎而且非常有用的项目。
  4 Keras
  ★ 3852
  Keras也是一种Python深度学习程序库,但它利用了TensorFlow和Theano,这也意味着它可以在目前已知最受欢迎的2个深度学习研发库中的任一个上运行。也是那些越来越多的被形容为非常高级的库之一,而所有这些高等级库都非常相似:抽象化底层的深度学习引擎,使使用者可以更快、更便捷以及更灵活地部署神经网络。Keras支持主流深度学习架构,自带30秒的快速入门指南,并有着完善的文档。
  5 MXNet
  ★ 3278
  作为一个深度学习框架,MXNet旨在灵活和高效,并且通过允许混合使用指令式编程及符号式编程的技巧来提高代码生产力。这个项目可以和多种语言绑定,如Python, R, 以及 Julia。同时MXNet还附带了一系列神经网络指南和蓝本。另外值得注意的是,一个相关项目用Java在浏览器环境中实现MXNet,有兴趣的朋友可以通过该链接(http://webdocs.cs.ualberta.ca/~bx3/mxnet/classify.html)对一个图形分类模型进行测试。
  ★ 2253
  这是一个各种计算和编程主题有关资源(包括Node.Js, GoLang和深度学习)的Github版本库。
  之所以说「似乎(appears)」,是因为Github版本库都是用中文写的,谷歌提供的翻译甚至会带来更多不解。不过,有许多链接,所以如果你能说中文或看得懂中文,或许这里有些有价值的东西。
  7 Deeplearning4j
  ★ 1824
  Deeplearning4j是为Java 和Scala打造的一款具有工业强度的深度学习框架。作为唯一值得研究的JVM深度学习解决方案之一,它在这个领域有着明显的优势。不仅可以很好地与Hadoop 以及Spark的结合,它还可以使用GPU。它的文档和指南也非常可靠。
  8 Machine Learning Tutorials
  ★ 1759
  这是一张机器学习和深度学习教程,文章和资源的名单。这张列表根据通过主题进行组织,包括了许多与深度学习有关的类别,包括计算机视觉,加强学习以及各种架构。由于内容广泛,几个月来,已经在社交媒体上小有名气,你也可以点击此处(/ujjwalkarn/Machine-Learning-Tutorials/blob/master/contributing.md)做些贡献。
  9 DeepLearn Toolbox
  ★ 1651
  DeepLeanToolBox是一个供MATLAB和Octave使用的深度学习工具箱。很遗憾,这个项目现在已被废弃并停止维护。其Github版本库也指向了在修习深度学习方面颇具价值的其他选择:Theano和TensorFlow。
  如果说这个已经废弃的云端版本库还有点什么价值,那就是这个链接(http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)了,这本由Yoshua Bengio撰写的教程被包含在了这个版本库中以作为学习人工智能所使用的深度学习架构的学习资源。
  10 LISA Lab Deep Learning Tutorials
  ★ 1555
  这个Github版本库汇总了加拿大蒙特利尔大学的LISA实验室深度学习课程的练习材料。其介绍文档摘取如下:
  这套练习材料将介绍你们了解一些最重要的深度学习算法,以及展示如何使用Theano运行这些算法。
  Theano是一个使撰写深度学习模型变得简单,并允许用户选择GPU对他们进行训练的python库。
  以上内容由于日东部时间晚10点,于Github搜索词条「deep learning」获取,并根据星值由高至低排序。
  作者简历:
  Matthew May是一位正在进行并行式机器学习算法研究的计算机硕士研究生,同时Matthew也是一位数据挖掘研习者,数据发烧友,热忱的机器学习科学家。
  &本文由机器之心原创编译,转载请联系本公众号获得授权。
  ?------------------------------------------------
  加入机器之心(全职记者/实习生):
  投稿或寻求报道:
  广告&商务合作:
  机器之心是Comet Labs旗下的前沿科技媒体。Comet Labs是由联想之星发起、独立运作的全球人工智能和智能机器加速投资平台,携手全球领先的产业公司和投资机构,帮助创业者解决产业对接、用户拓展、全球市场、技术整合、资金等关键问题。旗下业务还包括:Comet旧金山加速器、Comet北京加速器、Comet垂直行业加速器。
  ↓↓↓点击「阅读原文」查看机器之心网站,获取更多精彩内容。
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
未来在这里发声
知名IT评论人,曾就职于多家知名IT企业,现是科幻星系创建人
未来在这里发声。
新媒体的实践者、研究者和批判者。
立足终端领域,静观科技变化。深入思考,简单陈述。
智能硬件领域第一自媒体。点击上方“公众号”可以订阅哦!摘要转自:爱可可-爱生活Elephas brings deep learning with Keras to Apache Spark. Elephas intends to keep the simplicity and usability of Keras, allowing for fast prototyping of distributed models to run on large data sets.?λ?φα? is Greek for ivory and an accompanying project to κ?ρα?, meaning horn. If this seems weird mentioning, like a bad dream, you should confirm it actually is at the Keras documentation. Elephas also means elephant, as in stuffed yellow elephant.For now, elephas is a straight forward parallelization of Keras using Spark's RDDs and data frames. Models are initialized on the driver, then serialized and shipped to workers. Spark workers deserialize the model and train their chunk of data before broadcasting their parameters back to the driver. The &master& model is updated by averaging worker parameters.链接:/maxpumperla/elephas原文链接://5559?sourcetype=page&lfid=2195&lcardid=2195_-_5559&mid=5559&luicode=&_status_id=5559&uicode=欢迎参加人工智能与机器学习微信讲座!参加方法:微信扫描以下二维码或搜索ML_admin,加群主为好友。我们安排了群务处理您的申请请求。“完整内容”请点击【阅读原文】↓↓↓机器学习研究会(gh_c)
 文章为作者独立观点,不代表大不六文章网立场
gh_c机器学习研究会是北京大学大数据与机器学习创新中心旗下的学生组织,旨在构建一个机器学习从事者交流的平台。除了及时分享领域资讯外,协会还会举办各种业界巨头/学术神牛讲座、学术大牛沙龙分享会、real data 创新竞赛等活动。热门文章最新文章gh_c机器学习研究会是北京大学大数据与机器学习创新中心旗下的学生组织,旨在构建一个机器学习从事者交流的平台。除了及时分享领域资讯外,协会还会举办各种业界巨头/学术神牛讲座、学术大牛沙龙分享会、real data 创新竞赛等活动。&&&&违法和不良信息举报电话:183-
举报邮箱:Copyright(C)2017 大不六文章网&之前本打算安装Caffe,但是依赖包太多了,大大小小的问题真是头疼,也是因为机器的原因,本来想在自己笔记本上就在实体机上安装Ubuntu然后装caffe等深度学习框架,但是固态硬盘最近出了问题,拿去返修了。无奈在虚拟机上安装(Caffe好像不行,或许不开GPU,没看,虚拟机上安装的话,因为其驱动是vmtool之类的,感觉有点奇怪,检查个显卡版本是vmtool云云就放弃了),之后又在实体机上试了试,也没成功,具体这里就不说了。前两天在虚拟机上安装成功了Keras这个框架,照着教程就能安装成功,这里做记录。我这里以虚拟机VMware Workstations 12,实体机(笔记本)硬件环境,CPU是i7-3630m,GPU是GT650m,16G RAM,虚拟机上环境是Ubuntu14.04的64位稳定版(4核,8G RAM)。安装vim和git安装python及其包安装Theano安装GPU依赖包安装cuDNN安装Keras缺少libyaml解决办法pip安装Keras(第二种方法,从第六步开始,比较快)Keras Google Group测试导入Keras参考使用超级管理员root用户安装,具体设置方法参考这里。1.安装vim和git首先下载并安装vim和git(sudo apt-get install vim git),我已经安装过了。2.安装python及其包看官方安装教程,里面说到:Keras uses the following dependencies:numpy,&scipypyyamlTheanoSee&installation instructions.HDF5&and&h5py&(optional, required if you use model saving/loading functions)Optional but recommended if you use CNNs:&cuDNN.Anaconda Python Distribution(http://www.continuum.io/downloads#all,在其中选择linux版本),为什么安装这个发行版,因为里面的包全(numpy,scipy,pyyaml,hdf5之类的包已经在里面了,但h5py没有,稍后安装)。在那个continuum上进行下载格式为sh的文件(Anaconda-2.3.0-Linux-x86_64.sh),参考sh文件安装方法里的其它回答。12chmod +777 Anaconda-2.3.0-Linux-x86_64.sh./Anaconda-2.3.0-Linux-x86_64.sh使用chmod + 777命令赋予sh文件权限,之后运行当前目录下的sh文件进入安装。&之后选择安装目录,这里我直接回车enter安装在用户目录下,这时才正式开始安装python及其包,例如pandas或者hdf5等。之后再一次的用户输入是选择是否添加Anaconda的环境变量,yes添加了。我们也可以在上面看到theano-0.7.0的np19py27_0已经安装了。再通过pip管理器安装h5py。3.安装Theano根据Easy Installation of an Optimized Theano on Current Ubuntu — Theano 0.7 documentation里的教程,依次输入如下命令:12sudoapt-getinstallpython-numpypython-scipypython-devpython-pippython-noseg++libopenblas-devgitsudopipinstallTheano虽然部分之前已经通过Anaconda安装过,但还有些没安装。4.安装GPU依赖包我这里没有安装,因为在虚拟机上,下面是部分,更多参考这里。不过我也列出Ubuntu14.04在安装GPU的包时候用到的命令(摘自教程):12sudo apt-get install nvidia-currentsudo apt-get install nvidia-cuda-toolkit # As of October 31th, 2014, provide cuda 5.5, not the latest cuda 6.5截止目前(日),cuda出到7.5了,以至于前阵子网上找到教程安装caffe,里面用的都是6.5,主要是官网现在我就找不到6.5的下载地址,下载页面只有7.5的,除非有网友共享6.5的了(百度网盘据说有网友共享)。然后再测试GPU,到此为止,我们已经装完了下面这几个:numpy,&scipypyyamlTheanoSee&installation instructions.HDF5&and&h5py&(optional, required if you use model saving/loading functions)5.安装cuDNN唯有下面这个可选项,选择性安装:Optional but recommended if you use CNNs:&cuDNN.当然,安装cuDNN的前提是安装了GPU的NVIDIA包(第4步),因为是虚拟机环境所以我这里同样给出下载地址(NVIDIA cuDNN – GPU Accelerated Deep Learning &/cudnn),这里给出一篇搜到的参考博文(NVIDIA CuDNN 安装说明 – 普兒 – 博客园 &/platero/p/4118139.html)。6.安装Keras以上,都是安装Keras的依赖包,现在我们正是开始安装keras,首先将其从github repo上clone下来。1234cdgitclone/fchollet/keras.gitcdkerassudopythonsetup.pyinstall依次执行上述命令。简单解释一下,首先切换到root根目录,然后在根目录下克隆下keras代码库,切换进clone的keras文件夹中,开始安装。&执行结束前有个小bug(下图),我们可以看到编译终止,系统提示找不到libyaml。&虽然最后完成了Keras的配置,但是有小问题,那么我们就把这个缺少的包(libyaml)装上,在重新安装一下试试。7.缺少libyaml解决办法1234567cdwget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gztar xzvf yaml-0.1.4.tar.gzcd yaml-0.1.4./configure --prefix=/usr/localmakesudo make install依次执行以上命令,并重新进入keras文件目录,执行python setup.py install命令,重新安装keras,这次没有报错。8.pip安装Keras(第二种方法,从第六步开始,比较快)当然,我们也可以用pip安装从第六步开始,命令如下,我这里已经安装完就不测试了。1sudopipinstallkeras9.如果有问题,可以在google的group中讨论Keras Google group.10.测试导入Keras到此安装完成,可以直接在shell中键入python,之后输入from keras.models import Sequential,一切正常。更多例子参考这里(Examples – Keras Documentation &http://keras.io/examples/)。10.参考Download Ubuntu Desktop | Download | Ubuntu &/download/desktop/ubuntu设置root用户密码 – 清风专栏 – 博客频道 – CSDN.NET &http://blog.csdn.net/breeze_vickie/article/details/5063861Keras Documentation &http://keras.io/#installationEasy Installation of an Optimized Theano on Current Ubuntu — Theano 0.7 documentation &http://deeplearning.net/software/theano/install_ubuntu.html#install-ubuntuDownload Anaconda Python Distribution &http://www.continuum.io/downloads#allubuntu14.10桌面版安装Anaconda for python3.4 | 星龙剑 &/index.php//ubuntu14-10-anaconda-for-python3-4LINUX下如何安装SH文件_百度知道 &/link?url=PUDaNO-XrfWz125blmWwHJBgC7GT1ru3L_uvlW0lu0IuWBhKcAJnGsBEEUyv_P9XhzESbPYyPFPBS-t3I5wKi_NVIDIA cuDNN – GPU Accelerated Deep Learning &/cudnnNVIDIA CuDNN 安装说明 – 普兒 – 博客园 &/platero/p/4118139.htmlUbuntu下搭建Ruby On Rails(见其中常见的问题及解决办法1,libyaml安装失败) – Leo Chin – 博客园 &/hnrainll/archive//2824818.htmlExamples – Keras Documentation &http://keras.io/examples/
欢迎转载:
推荐:    
4【原】初步认识电脑五大主流深度学习框架对比:MXNET是最好选择--百度百家
五大主流深度学习框架对比:MXNET是最好选择
分享到微信朋友圈
近日,微软数据科学家 Anusua Trivedi 发表系列文章讲解深度学习,这是此系列的第一篇,对主流深度学习框架进行了比较分析。
背景和途径
本博客系列基于我即将在新加坡 Hadoop+Strata 世界峰会上发表的关于深度学习模型复用性的演讲。该系列分几个部分来描述我的经验,并深入讨论我选择使用深度学习模型背后的原因。
深度学习是研究的融合领域,在多个领域中都有其应用。我尝试展示迁移学习和微调策略是如何在不同的不相交领域中复用相同的卷积神经网络模型的。该模型在多种不同领域中的应用对于使用该微调模型来说,意义非凡。
在本博客中,我描述并比较了常用的开源深度学习构架。我深入讨论了每个构架各自的优缺点,以及为什么我选择在我的工作中使用 Theano。
符号计算构架(如 CNTK,MXNET,TensorFlow,Theano)被定义为一个向量运算符的符号图,例如矩阵的加法/乘法或卷积。一个层仅是这些运算符的组合。构造块(运算符)良好的粒度允许用户在不需要在低级语言(如 Caffe)中实现的情况下,开发新的复杂层类型。
在我的工作中,我使用了不同的符号计算框架。然而,我发现由于每个框架的设计和目前的实现方法不同,它们都有各自的优缺点,没有一个框架能完美地满足所有的需要。针对我的需要,我选择使用 Theano。
我们比较了下列符号计算框架:
软件:Theano
开发者:Université de Montréal
软件证书:BSD 证书
是否开源:是
平台:跨平台
编写语言:Python
接口:Python
是否支持 CUDA:是
自动微分:是
是否有预训练模型:通过 &Lasagne 的 model zoo
循环网络:是
卷积网络:是
随机储存器/动态贝叶斯网络:是
TensorFlow
软件:TensorFlow
开发者:Google Brain Team
软件证书:Apache 2.0
是否开源:是
平台:Linux,Mac OS X
编写语言:C++,Python
接口:Python,C/C++
是否支持 CUDA:是
自动微分:是
是否有预训练模型:否
循环网络:是
卷积网络:是
随机储存器/动态贝叶斯网络:是
软件:MXNET
开发者:分布式(深度)机器学习社区
软件证书:Apache 2.0
是否开源:是
平台:Ubuntu, OS X, Windows, AWS, Android, iOS, JavaScript
编写语言:C++, Python, Julia, Matlab, R, Scala
接口:C++, Python, Julia, Matlab, JavaScript, R, Scala
是否支持 CUDA:是
自动微分:是
是否有预训练模型:是
循环网络:是
卷积网络:是
随机储存器/动态贝叶斯网络:是
非符号构架优点:
像 torch,caffe 这样的非符号(命令式)神经网络构架的计算部分的设计非常相似。
根据可表达性,设计良好的命令构架也能揭露类图接口(例如 torch/nngraph)。
非符号架构缺点:
命令构架主要的缺点实际上在于人工优化。例如,就地操作必须要人工实现。
大多命令构架设计得不够好,比不上符号构架的可表达性。
符号构架优点:
符号构架可能可以从依赖图中自动推导优化。
一个符号构架可以利用更多内存复用机会,这点 MXNET 做得很好。
符号构架能自动计算最佳进度表。详情请参照 TensorFlow 白皮书:http://download.tensorflow.org/paper/whitepaper2015.pdf
符号构架缺点:
现存可用开源符号构架的表现仍逊色于命令构架。
符号构架缺点:
现存可用开源符号构架的表现仍逊色于命令构架。
增加新运算符
在这些构架中,增加一个表现理想的运算符并不容易。
代码复用性
训练深度网络非常耗时。所以,Caffe 发布了一些预训练模型/权重(model zoo),它们能作为初始权重被用于特殊领域或自定义图像的迁移学习或微调深度网络。
TheanoLasagne:是构建在顶尖 Theano 上的高级构架。在 Lasagne 中使用 Caffe 预训练模型权重非常容
TensorFlow:不支持预训练模型。
MXNET:拥有 caffe 转换工具,能够适应 caffe 预训练模型权重。
低级 Tensor 操作符
理想而高效的低级运算符实现能充当新模型的原料,节省了写新运算符的工作量。
控制流运算符
控制流运算符增加符号引擎的表达性和通用性。
Theano:纯净的符号计算构架。高级构架能适应所使用的期望平均值。成功案例包括 Keras、Lasagne、blocks。
TensorFlow:设计良好,不仅考虑到了神经网络的训练,同时避免彻底成为神经网络构架,是非常出色的成果。图像、队列、图像增加器等能成为更高级包装的有用构造块。
MXNET:除了符号部分,MXNET 也支持图像分类——从数据加载到构建模型,该模型有可以开始训练的方法。
单 GPU 下的基准测试
我使用单 GPU (NVIDIA Quadro K1200 GPU)在 MNIST 数据集上对 LeNet 模型进行了基准测试。
显存有限可能是大型模型的常见问题。
单 GPU 速度
Theano 花了很长的时间编译图像,特别是模型复杂的时候。TensorFlow 有点慢。
Theano(高级的 Lasagne 和 Keras)是深度学习模型的极佳选择。很容易用 Lasagne/Keras 实现新网络或者编辑现存网络。我更喜欢用 phthon 语言,并且因为 Lasagne/Keras 有非常成熟的 python 接口而更喜欢使用它们。然而,它们不支持 R。我已经尝试在 Lasagne/Keras 中使用迁移学习和微调,编辑一个现存网络并自定义特定域的自定义数据是非常容易的。
不同构架之间的比较显示了 MXNET 是最好的选择(更好的表现/记忆)。此外,它对 R 的支持很出色。事实上,它是唯一支持所有 R 功能的构架。在 MXNET 中,迁移学习和微调网络是可能实现的,但是不太容易(和 Lasagne/Keras 相比)。这使得编辑现存训练好的网络更困难,因此使用特定域的自定义数据也有点难。
本文选自:RevolutionAnalytics ,作者:Anusua Trivedi&,机器之心编译;
(C)机器之心,最专业的前沿科技媒体和产业服务平台,每日提供优质产业资讯与深度思考,欢迎关注微信公众号「机器之心」(almosthuman2014),或登录机器之心网站& , 查看更多精彩内容。
阅读:1443
分享到微信朋友圈
在手机阅读、分享本文
还可以输入250个字
推荐文章RECOMMEND
阅读:5073
热门文章HOT NEWS
华谊兄弟最终没有带来大反转的惊喜。
冯先生失眠中
智能电视行业观察
百度新闻客户端
百度新闻客户端
百度新闻客户端
扫描二维码下载
订阅 "百家" 频道
观看更多百家精彩新闻

我要回帖

 

随机推荐