+
80
-

TensorFlow、Keras、MXNet、PyTorch四款深度学习框架如何选择?

请问TensorFlow、Keras、MXNet、PyTorch四款深度学习框架如何选择?

网友回复

+
0
-

我们先看看目前的机器学习框架在github上的热度得分:

TensorFlow:

TensorFlow是Google Brain基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理,于2015年11月9日在Apache 2.0开源许可证下发布,并于2017年12月份预发布动态图机制Eager Execution。

Keras:

Keras是一个用Python编写的开源神经网络库,它能够在TensorFlow,CNTK,Theano或MXNet上运行。旨在实现深度神经网络的快速实验,它专注于用户友好,模块化和可扩展性。其主要作者和维护者是Google工程师FrançoisChollet。

MXNet:

MXNet是DMLC(Distributed Machine Learning Community)开发的一款开源的、轻量级、可移植的、灵活的深度学习库,它让用户可以混合使用符号编程模式和指令式编程模式来最大化效率和灵活性,目前已经是AWS官方推荐的深度学习框架。MXNet的很多作者都是中国人,其最大的贡献组织为百度。

PyTorch:

PyTorch是Facebook于2017年1月18日发布的python端的开源的深度学习库,基于Torch。支持动态计算图,提供很好的灵活性。在今年(2018年)五月份的开发者大会上,Facebook宣布实现PyTorch与Caffe2无缝结合的PyTorch1.0版本将马上到来。

下面分别列出四款框架的支持情况:

灵活性比较

TensorFlow主要支持静态计算图的形式,计算图的结构比较直观,但是在调试过程中十分复杂与麻烦,一些错误更加难以发。但是2017年底发布了动态图机制Eager Execution,加入对于动态计算图的支持,但是目前依旧采用原有的静态计算图形式为主。TensorFlow拥有TensorBoard应用,可以监控运行过程,可视化计算图。

Keras是基于多个不同框架的高级API,可以快速的进行模型的设计和建立,同时支持序贯和函数式两种设计模型方式,可以快速的将想法变为结果,但是由于高度封装的原因,对于已有模型的修改可能不是那么灵活。

MXNet同时支持命令式和声明式两种编程方式,即同时支持静态计算图和动态计算图,并且具有封装好的训练函数,集灵活与效率于一体,同时已经推出了类似Keras的以MXNet为后端的高级接口Gluon。

PyTorch为动态计算图的典型代表,便于调试,并且高度模块化,搭建模型十分方便,同时具备及其优秀的GPU支持,数据参数在CPU与GPU之间迁移十分灵活

原文链接:https://blog.csdn.net/Circlecircle3/article/details/82086396
我知道答案,我要回答