译文:Python深度学习框架评价

Posted PPV课数据科学社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了译文:Python深度学习框架评价相关的知识,希望对你有一定的参考价值。

原文链接https://indico.io/blog/python-deep-learning-frameworks-reviewed/ 

麦迪逊月 - 2017年1月31日




我最近偶然发现了我在这个主题的一个旧的数据科学堆栈交换的答案,它让我深感python深度学习生态系统在过去的两年半内的快速发展。我在2014年七月推荐的一个库pylearn2,现在已经不再被积极地开发和维护,并且一大批深度学习的库已经占据它的位置。其实每一个库都有它的优势和弱点。我们已经使用了这个列表的大部分技术在indico进行生产或开发,但是有少部分没有做。我会根据别人的经验,提供一个关于2017年python深度学习生态系统的清晰、全面的路径。

特别地,我们将看下面这些库:

·        Theano

·        Lasagne

·        Blocks

·        TensorFlow

·        Keras

·        MXNet

·        PyTorch




描述:Theano是一个Python库,它可以有效地定义,优化和评估涉及多维数组的数学表达式。它与GPU一起工作,并执行高效的符号分化。

文档:

概要:

Theano是数值计算的主力,它支持我们列表中的许多其他深度学习框架。它由FrédéricBastien和蒙特利尔大学实验室MILA背后的杰出研究团队建造。它的API是相当低的水平,为了写入有效的Theano,你需要相当熟悉隐藏在幕后的其他框架的算法。如果您拥有丰富的学术机器学习专业知识,正在寻找对您的模型非常精细的控制,或想要实现一个新奇或不寻常的模型,Theano是一个关键的库。一般来说,Theano易于使用,因为它具有灵活性。

优点:

·        灵活

·        如果正确使用,性能高

缺点:

·        大量的学习曲线

·        低级别的API

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

资源:

·        

·        

·        

·        

·        




Lasagne

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

文档:

概要:

由于Theano主要是一个符号数学的库,Lasagne在Theano上进行了抽象,使它更适合深度学习。它主要由现代DeepMind研究科学家Sander Dieleman编写和维护。Lasagne让用户在Layer水平上思考,提供模块像“Conv2DLayer”和“DropoutLayer”给用户结合使用,而不是根据符号变量之间的函数关系来指定网络模型。Lasagne在灵活性方面需要牺牲一点,它提供了丰富的通用组件来帮助定义图层,图层初始化,模型正则化,模型监控和模型训练。

优点:

·        还是很灵活

·        比Theano的抽象层更高

·        文档和代码多样化

缺点:

·        小社区

资源:

·        

·        

·        

·        示例




Blocks

描述:建立和训练神经网络的Theano框架。

文档:

概要:

与Lasagne类似,Blocks是在Theano上添加一层抽象层,以便于创建比原始Theano更简洁,定义更标准的深度学习模型。它是由蒙特利尔大学实验室MILA 开发的,他们还建设了Theano和第一个神经网络的高级接口PyLearn2。它比Lasagne更灵活一点,但是它的学习曲线稍微更困难,这样才能更高效地使用。除此之外,Blocks对循环神经网络架构有很好的支持,所以如果你有兴趣探索这个模型的类型,值得一看。除了TensorFlow,Blocks是我们在indico配置的许多API的首选库。

优点:

·        还是很灵活

·        比Theano高的抽象层

·        很好测试

缺点:

·        大量的学习曲线

·        小社区

资源:

·        

·        

·        

·        




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

文档:

概要:

TensorFlow是较低级别的符号计算库(如Theano)和更高级别的网络规范库(如块和Lasagne)之间的混合。虽然它是Python深度学习库集合的最新成员,但它可能已经获得了最大的活跃社区,因为它由Google Brain团队支持。它支持在多个GPU上运行机器学习模型,为高效的数据流水线提供实用程序,并具有用于模型的检查,可视化和序列化的内置模块。最近,TensorFlow团队决定加入对Keras的支持,这是我们列表中的下一个深度学习库。社区似乎都认为,虽然,它的社区的庞大规模和项目背后的巨量势头意味着学习TensorFlow是比较保险的。因此,TensorFlow是我们今天在indico选择的深度学习库。

优点:

·        由软件巨头谷歌支持

·        非常大的社区

·        低级别和高级别接口到网络训练

·        比Theano-based的选项有更快的模型编译

·        清晰的多GPU支持

缺点:

·        起初在许多基准比Theano-based的选项慢,虽然Tensorflow正赶上它。

·        RNN的支持仍然超过了Theano

资源:

·        

·        

·        

·        

·        

·        

·        




描述:Python深度学习库。转换网络,递归神经网络等。在Theano或TensorFlow上运行。

文档:

概要:

Keras可能是最高水平,使用最友好的库。它由Google Brain团队的另一名成员Francis Chollet编写和维护。它允许用户选择他们构建的模型是在Theano的还是TensorFlow的符号图上执行。Keras的用户界面是火炬启发的,所以如果你以前在Lua有机器学习的经验,Keras绝对值得一看。由于优秀的文档和它的相对易用性,Keras社区是相当大,非常活跃。最近,TensorFlow团队宣布计划与Keras支持内置,所以很快Keras将是TensorFlow项目的一个子集。

优点:

·        是Theano或TensorFlow后端

·        直观,高级的接口

·        更容易的学习曲线

缺点:

·        不太灵活,比其他选项更具规范性

资源:

·        

·        

·        

·        

·        




描述:MXNet是一个旨在提高效率和灵活性的深度学习框架。

文档:

概要:

优点:

·        惊人的快速的基准

·        非常灵活

缺点:

·        是最小的社区

·        比Theano的学习曲线更陡峭

资源:

·        

·        

·        

·        

·        




描述:Python中的张力和动态神经网络具有强大的GPU加速。

文档:

概要:

PyTorch在一个多星期前发布,是Python的深度学习框架列表中的新的孩子。这是Lua的火炬库到Python的一个松散的端口,它十分吸引大家关注,因为它是由Facebook的人工智能研究小组(FAIR)支持的,还因为它是,像Theano,TensorFlow和衍生物的同类型的功能缺失。大家对PyTorch在Python深度学习生态系统中将扮演的角色众说纷纭,但所有迹象表明PyTorch是我们列表中其他框架的一个非常受人尊敬的替代品。

优点:

·        来自Facebook的组织支持

·        对动态图的新的支持

·        高级和低级API的混合

缺点:

·        相比其他选择不够成熟(用他们自己的话来说 - “我们正在早期发布测试版,期待一些冒险。”)

·        官方文档之外的参考文献/资源有限

资源:

·        

·        

·        

·        

 PPV课翻译,转载请联系授权。


以上是关于译文:Python深度学习框架评价的主要内容,如果未能解决你的问题,请参考以下文章

如何评价深度学习框架Keras

Python深度学习之路-3.1性能评价指标

Python 深度学习目标检测评价指标

掌握深度学习,为什么要用 PyTorchTensorFlow 框架?

Python深度学习之路-3.1性能评价指标

Python深度学习之路-3.1性能评价指标