mxnet和pytorch的区别(从PyTorch到Mxnet,对比7大Python深度学习框架)
作者:“admin”
从PyTorch到Mxnet,对比7大Python深度学习框架 选择什么深度学习框架一直是开发者非常关心的一个话题,而且深度学习框架之间的「战争」也越来越激烈。过去一段时间,我们发过多篇机器学习框架
从PyTorch到Mxnet,对比7大Python深度学习框架
选择什么深度学习框架一直是开发者非常关心的一个话题,而且深度学习框架之间的「战争」也越来越激烈。过去一段时间,我们发过多篇机器学习框架的对比文章,但随着Python逐渐成为机器学习社区最受欢迎的语言,支持Python的深度学习框架的性能也值得关注。IndicoDataSolutions的CTOMadisonMay根据他们公司在产品和开发过程中的经验对7大Python深度学习框架进行了对比,希望这篇文章能对机器之心的读者有所帮助。
最近我无意间在「BestPythonlibraryforneuralnetworks」话题下发现了一个我以前的数据科学栈交换(DataScienceStackExchange)的答案,并且Python深度学习生态系统在过去两年半中的演变打击到了我。我在2014年7月推荐的库,pylearn2,已经不再被积极地开发或者维护,大量的深度学习库开始接替它的位置。这些库每一个都各有千秋。我们已经在indico的产品或者开发中使用了以下列表中的大部分的技术,但是对于剩下一些我们没有使用的,我将会借鉴他人的经验来帮助给出2017年Python深度学习生态系统的清晰的、详尽的理解。
确切地说,我们将会关注:
Theano
Lasagne
Blocks
TensorFlow
Keras
MXNet
PyTorch
Theano
链接:https://github.com/Theano/Theano
描述:Theano是一个Python库,允许你定义、优化并且有效地评估涉及到多维数组的数学表达式。它与GPUs一起工作并且在符号微分方面表现优秀。
文档:http://deeplearning.net/software/theano/
概述:Theano是数值计算的主力,它支持了许多我们列表当中的其他的深度学习框架。Theano由FrédéricBastien创建,这是蒙特利尔大学机器学习研究所(MILA)背后的一个非常优秀的研究团队。它的API水平较低,并且为了写出效率高的Theano,你需要对隐藏在其他框架幕后的算法相当的熟悉。如果你有着丰富的学术机器学习知识,正在寻找你的模型的精细的控制方法,或者想要实现一个新奇的或者不同寻常的模型,Theano是你的首选库。总而言之,为了灵活性,Theano牺牲了易用性。
优点:
灵活
正确使用时的高性能
缺点:
较高的学习难度
低水平的API
编译复杂的符号图可能很慢
Lasagne
链接:https://github.com/Lasagne/Lasagne
描述:在Theano上建立和训练神经网络的轻量级库
文档:http://lasagne.readthedocs.org/
概述:因为Theano致力于成为符号数学中最先且最好的库,Lasagne提供了在Theano顶部的抽象,这使得它更适合于深度学习。它主要由当前DeepMind研究科学家SanderDieleman编写并维护。Lasagne并非是根据符号变量之间的函数关系来指定网络模型,而是允许用户在层级思考,为用户提供了例如「Conv2DLayer」和「DropoutLayer」的构建块。Lasagne在牺牲了很少的灵活性的同时,提供了丰富的公共组件来帮助图层定义、图层初始化、模型正则化、模型监控和模型训练。
优点:
仍旧非常灵活
比Theano更高级的抽象
文档和代码中包含了各种PastaPuns
缺点:
社区小
Blocks
链接:https://github.com/mila-udem/blocks
描述:用于构建和训练神经网络的Theano框架
文档:http://blocks.readthedocs.io/en/latest/
概述:与Lasagne类似,Blocks是在Theano顶部添加一个抽象层使深度学习模型比编写原始的Theano更清晰、更简单、定义更加标准化。它是由蒙特利尔大学机器学习研究所(MILA)编写,其中一些人为搭建Theano和第一个神经网络定义的高级接口(已经淘汰的PyLearn2)贡献了自己的一份力量。比起Lasagne,Blocks灵活一点,代价是入门台阶较高,想要高效的使用它有不小的难度。除此之外,Blocks对递归神经网络架构(recurrentneuralnetworkarchitectures)有很好的支持,所以如果你有兴趣探索这种类型的模型,它值得一看。除了TensorFlow,对于许多我们已经部署在indico产品中的API,Blocks是其首选库。
优点:
仍旧非常灵活
比Theano更高级的抽象
易于测试
缺点:
较高的学习难度
更小的社区
TensorFlow
链接:https://github.com/tensorflow/tensorflow
描述:用于数值计算的使用数据流图的开源软件库
文档:https://www.tensorflow.org/api_docs/python/
概述:TensorFlow是较低级别的符号库(比如Theano)和较高级别的网络规范库(比如Blocks和Lasagne)的混合。即使它是Python深度学习库集合的最新成员,在GoogleBrain团队支持下,它可能已经是最大的活跃社区了。它支持在多GPUs上运行深度学习模型,为高效的数据流水线提供使用程序,并具有用于模型的检查,可视化和序列化的内置模块。最近,TensorFlow团队决定支持Keras(我们列表中下一个深度学习库)。虽然TensorFlow有着自己的缺点,但是社区似乎同意这一决定,社区的庞大规模和项目背后巨大的动力意味着学习TensorFlow是一次安全的赌注。因此,TensorFlow是我们今天在indico选择的深度学习库。
优点:
由软件巨头Google支持
非常大的社区
低级和高级接口网络训练
比基于Theano配置更快的模型编译
完全地多GPU支持
缺点:
虽然Tensorflow正在追赶,但是最初在许多基准上比基于Theano的慢。
RNN支持仍不如Theano
Keras
链接:https://github.com/fchollet/keras
描述:Python的深度学习库。支持Convnets、递归神经网络等。在Theano或者TensorFlow上运行。
文档:https://keras.io/
概述:Keras也许是水平最高,对用户最友好的库了。由FrancisChollet(GoogleBrain团队中的另一个成员)编写和维护。它允许用户选择其所构建的模型是在Theano上或是在TensorFlow上的符号图上执行。Keras的用户界面受启发于Torch,所以如果你以前有过使用Lua语言的机器学习经验,Keras绝对值得一看。由于部分非常优秀的文档和其相对易用性,Keras的社区非常大并且非常活跃。最近,TensorFlow团队宣布计划与Keras一起支持内置,所以很快Keras将是TensorFlow项目的一个分组。
优点:
可供选择的Theano或者TensorFlow后端
直观、高级别的端口
更易学习
缺点:
不太灵活,比其他选择更规范
MXNet
链接:https://github.com/dmlc/mxnet
描述:MXNet是一个旨在提高效率和灵活性的深度学习框架。
文档:http://mxnet.io/api/python/index.html#python-api-reference
优点:
速度的标杆
非常灵活
缺点:
最小的社区
比Theano更困难的学习难度
PyTorch
链接:https://github.com/pytorch/pytorch
描述:Python中的张量(Tensors)和动态神经网络,有着强大的GPU加速。
文档:http://pytorch.org/docs/
概述:刚刚放出一段时间,PyTorch就已经是我们Python深度学习框架列表中的一个新的成员了。它是从Lua的Torch库到Python的松散端口,由于它由Facebook的人工智能研究团队(ArtificialIntelligenceResearchteam(FAIR))支持且因为它用于处理动态计算图(Theano,TensorFlow或者其他衍生品没有的特性,编译者注:现在TensorFlow好像支持动态计算图),它变得非常的有名。PyTorch在Python深度学习生态系统将扮演怎样的角色还不得而知,但所有的迹象都表明,PyTorch是我们列表中其他框架的一个非常棒的选择。
优点:
来自Facebook组织的支持
完全地对动态图的支持
高级和低级API的混合
缺点:
比其他选择,PyTorch还不太成熟(用他们自己的话说—「我们正处于早期测试版本。期待一些冒险」)
除了官方文档以外,只有有限的参考文献/资源
今日好课推荐
Python作为目前最火的编程语言之一
学习Python的人日渐增多
学习了基础理论,仍然对Python实际运用一头雾水
无法独立完成一套程序的开发
这套课程中麦子学院首席讲师张凌华老师不谈理论
直接从案例入手,带大家从0完成跨平台的记事本程序开发
(完全免费哦!!快戳↓↓↓)
选自kdnuggets
作者:MadisonMay
机器之心编译
参与:王宇欣、李亚洲
目前100000+人已关注加入我们
32位win10系统如何安装mxnet0.11.0
可通过以下方式在windows10操作系统上安装.netframework3.5:1.在Windows桌面下,按键盘的WIN+X组合键,打开高级管理工版具,选择控制权面板;2.接着点击程序和功能-->启动或关闭windows功能-->.netframework3.5即可
cuda版本和cpu版本的pytorch有啥区别?
回答如下:CUDA版本的PyTorch是指使用了CUDA(Compute Unified Device Architecture)技术的PyTorch版本,该版本可以在NVIDIA GPU上运行,利用GPU的并行计算能力加速模型训练和推断。而CPU版本的PyTorch则是指在CPU上运行的PyTorch版本。
主要区别如下:
1. 性能:CUDA版本的PyTorch可以利用GPU的并行计算能力,因此在训练和推断过程中通常比CPU版本的PyTorch更快。
2. 并行计算能力:GPU相对于CPU具有更高的并行计算能力,可以同时处理更多的数据和任务,因此CUDA版本的PyTorch可以更好地利用GPU的并行计算能力,提高模型的训练和推断效率。
3. 内存容量:GPU通常具有较大的内存容量,可以容纳更大规模的数据和模型,而CPU的内存容量较小。因此,CUDA版本的PyTorch可以处理更大规模的数据和模型。
4. 硬件要求:CUDA版本的PyTorch需要具备支持CUDA的NVIDIA GPU,而CPU版本的PyTorch可以在任何具备x86架构的CPU上运行。
5. 安装和配置:CUDA版本的PyTorch需要安装CUDA Toolkit,并进行相关配置,而CPU版本的PyTorch无需额外的安装和配置。
需要注意的是,CUDA版本的PyTorch在某些情况下可能会出现与CPU版本不同的行为,例如某些操作或函数可能在GPU上运行时会产生不同的结果。因此,在使用CUDA版本的PyTorch时,需要注意相关文档和示例的说明。
pytorch模型压缩方法总结
也就是一个tensor里有多种不同的scale和offset的方式(组成一个vector),如此以来,在量化的时候相比pertensor的方式会引入更少的错误。PyTorch目前支持conv2d()、conv3d()、linear()的perchannel量化。
mxnet和来自caffe哪个好
Caffe刚出来的时候我就一直再用了,前后大概用了RCNN,Fast-RCNN,目前在等待Faster-rcnn的代码release!回答下你的问题,目前我已经基于Fast-rcnn实现了caltech行人检测数据库与kitti数据库的车辆与行人检测,总的来说效果非常不错
卷积神经网络使用哪种框架最好TensorFloworCaffe
tensorflow跟caffe、mxnet、pytorch等一样是一个深度学习工具箱,其中当然也包含卷积神经网络工具箱。
2019年十大最佳深度学习框架
PS:Tensorflow处于底层框架:这和MXNet,Theano和PyTorch等框架一样。包括实现诸如广义矩阵-矩阵乘法和诸如卷积运算的神经网络原语之类的数学运算。Keras处于高度集成框架。虽然更容易创建模型,但是面对复杂的网络结构时可能不如TensorFlow。
MXNet的代码要怎么读
对于读项目源代码来说,可能对大多数人是件困难的事。首先,第一个障碍:看到项目,就已经放弃!如果有十个人,可能有5个人以上会是上面这种情况,分析其想法:这么多的代码,我要怎么读啊!我要读好久啊!算了,还是看小Demo吧,所以这样,他
mxnet的并行计算为什么这么牛,是什么原理
它主要基于GPU运算而不是基于CPU运算。看说明:ScalesuptomultiGPUsanddistributedsettingwithautoparallelism
做动态图片应该用哪个软件好?
我个人认为用falsh是比较好。方便,快捷,简单。。
【mxnet和pytorch的区别(从PyTorch到Mxnet,对比7大Python深度学习框架)】相关文章: