本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

报码:从PyTorch到Mxnet ,对比7大Python深度学习框架

时间:2017-03-05 18:46来源:报码现场 作者:118开奖 点击:
参与:王宇欣、李亚洲 选择什么深度学习框架一直是开发者非常关心的一个话题,而且深度学习框架之间的「战争」也越来越激烈。过去一段时间,机器之心发过多篇机器学习框架的

参与:王宇欣、李亚洲

选择什么深度学习框架一直是开发者非常关心的一个话题,而且深度学习框架之间的「战争」也越来越激烈。过去一段时间,机器之心发过多篇机器学习框架的对比文章,但随着 Python 逐渐成为机器学习社区最受欢迎的语言,支持 Python 的深度学习框架的性能也值得关注。Indico Data Solutions 的 CTO Madison May 根据他们公司在产品和开发过程中的经验对 7 大 Python 深度学习框架进行了对比,希望这篇文章能对机器之心的读者有所帮助。

最近我无意间在「Best Python library for neural networks」话题下发现了一个我以前的数据科学栈交换(Data Science Stack Exchange)的答案,并且 Python 深度学习生态系统在过去两年半中的演变打击到了我。我在 2014 年 7 月推荐的库,pylearn2,已经不再被积极地开发或者维护,大量的深度学习库开始接替它的位置。这些库每一个都各有千秋。我们已经在 indico 的产品或者开发中使用了以下列表中的大部分的技术,但是对于剩下一些我们没有使用的,我将会借鉴他人的经验来帮助给出 2017 年 Python 深度学习生态系统的清晰的、详尽的理解。

确切地说,我们将会关注:

Theano

Lasagne

Blocks

TensorFlow

Keras

MXNet

PyTorch

下面是对这 7 大 Python 深度学习框架的描述以及优缺点的介绍,而且也为每个框架的使用推荐了一些资源,但因微信不支持外网链接,读者们请点击阅读原网址查看资源。

Theano

链接:https://github.com/Theano/Theano

描述:Theano 是一个 Python 库,允许你定义、优化并且有效地评估涉及到多维数组的数学表达式。它与 GPUs 一起工作并且在符号微分方面表现优秀。

文档:

概述:Theano 是数值计算的主力,它支持了许多我们列表当中的其他的深度学习框架。Theano 由 Frédéric Bastien 创建,这是蒙特利尔大学机器学习研究所(MILA)背后的一个非常优秀的研究团队。它的 API 水平较低,并且为了写出效率高的 Theano,atv,你需要对隐藏在其他框架幕后的算法相当的熟悉。如果你有着丰富的学术机器学习知识,正在寻找你的模型的精细的控制方法,或者想要实现一个新奇的或者不同寻常的模型,Theano 是你的首选库。总而言之,为了灵活性,Theano 牺牲了易用性。

优点:

灵活

正确使用时的高性能

缺点:

较高的学习难度

低水平的 API

编译复杂的符号图可能很慢

Lasagne

链接:https://github.com/Lasagne/Lasagne

描述:在 Theano 上建立和训练神经网络的轻量级库

文档:

概述:因为 Theano 致力于成为符号数学中最先且最好的库,Lasagne 提供了在 Theano 顶部的抽象,这使得它更适合于深度学习。它主要由当前 DeepMind 研究科学家 Sander Dieleman 编写并维护。Lasagne 并非是根据符号变量之间的函数关系来指定网络模型,而是允许用户在层级思考,为用户提供了例如「Conv2DLayer」和「DropoutLayer」的构建块。Lasagne 在牺牲了很少的灵活性的同时,提供了丰富的公共组件来帮助图层定义、图层初始化、模型正则化、模型监控和模型训练。

优点:

仍旧非常灵活

比 Theano 更高级的抽象

文档和代中包含了各种 Pasta Puns

缺点:

社区小

Blocks

链接:https://github.com/mila-udem/blocks

描述:用于构建和训练神经网络的 Theano 框架

文档:

概述:与 Lasagne 类似,Blocks 是在 Theano 顶部添加一个抽象层使深度学习模型比编写原始的 Theano 更清晰、更简单、定义更加标准化。它是由蒙特利尔大学机器学习研究所(MILA)编写,其中一些人为搭建 Theano 和第一个神经网络定义的高级接口(已经淘汰的 PyLearn2)贡献了自己的一份力量。比起 Lasagne,Blocks 灵活一点,代价是入门台阶较高,想要高效的使用它有不小的难度。除此之外,j2直播,Blocks 对递归神经网络架构(recurrent neural network architectures)有很好的支持,所以如果你有兴趣探索这种类型的模型,它值得一看。除了 TensorFlow,对于许多我们已经部署在 indico 产品中的 API,Blocks 是其首选库。

优点:

仍旧非常灵活

比 Theano 更高级的抽象

易于测试

缺点:

较高的学习难度

更小的社区

TensorFlow

链接:https://github.com/tensorflow/tensorflow

描述:用于数值计算的使用数据流图的开源软件库

文档:https://www.tensorflow.org/api_docs/python/

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容