PyTorch成TensorFlow最大竞争对手,微软亚马逊Facebook 合作联盟对抗谷歌
Posted 智能蝶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyTorch成TensorFlow最大竞争对手,微软亚马逊Facebook 合作联盟对抗谷歌相关的知识,希望对你有一定的参考价值。
【智能蝶导读】2017年,深度学习框架领域出现了许多新变化。TensorFlow仍然是最受欢迎的深度学习框架,但使用动态图的更高效的PyTorch作为后起之秀,已经成为TensorFlow的最大竞争对手。第一个被广泛采用的深度学习框架Theano“功成身退”,宣布停止开发和维护。此外,微软和亚马逊联合推出Gluon,微软、亚马逊和Facebook等联合发布ONNX格式,深度学习框架也呈现出合作联盟、对抗谷歌的趋势。
深度学习的图景在不断变化。Theano是第一个被广泛采用的深度学习框架,由Yoshua Bengio领导的MILA创建和维护。但情况已经发生改变。这个消息并不令人感到意外。在过去的几年里,出现了不同的开源Python深度学习框架,这些框架通常是由大型科技公司开发或支持的,而且有些引起了很大的关注。
2017年开源深度学习框架图景
目前,从GitHub的star和fork数量,以及Stack Overflow活跃度来看,谷歌的TensorFlow似乎是最常用的深度学习框架。有人预计,伴随着TensorFlow的推出,谷歌将主导这个市场多年。但是,看起来其他框架确实也吸引了越来越多的充满热情的用户群。值得一提的是PyTorch的开发和发展。PyTorch是在2017年1月由Facebook推出的。它是经典机器学习库Torch框架的一个端口,Torch二进制文件包装于GPU加速的Python。
除了GPU加速和内存使用的高效外,PyTorch受欢迎的主要因素是动态计算图的使用。已经有其他一些不太知名的深度学习框架使用动态计算图,例如Chainer。动态图的优点在于,图(graph)是由run定义(“define by run”),而不是传统的“define and run”。特别是,在输入可以变化的情况下,例如文本这样的非结构化数据,这非常有用而且高效。
图:PyTorch动态计算图 - 来源:http://pytorch.org/about/
其他科技巨头也坐不住了。微软开发了名为CNTK的内部深度学习框架,。 2017年,。它将成为众所周知的Caffe框架的继承者。Caffe框架最初是伯克利视觉和学习中心开发的,现在仍然非常受欢迎,这是由于它的社区性质,它是计算机视觉的应用程序,以及它的Model Zoo ——一系列预训练的模型。不过,Caffe2似乎还没有跟上Caffe的脚步。
另一个流行的深度学习框架是,由微软和亚马逊共同支持。MXNet的历史已经有一段时间了,但是当MXNet作为一个深度学习框架被提及时,我经常听到人们说“那是一个R语言的深度学习框架吧?”。是的,但不止。MXNet实际上支持许多语言,包括C ++,Python,javascript,Go,以及R。MXNet最为突出的是它的可扩展性和性能。
这些只是众多可选择的框架中的一小部分。其他开源的深度学习框架还有Deeplearning4j和Dlib(基于C ++)。而且在2017年,(一个建立在TensorFlow上的高级面向对象的库)。其他值得一提的框架还有H20.ai和Spark。
用Keras直接构建模型— source: https://github.com/keras-team/keras
除了这些框架之外,我们还有一些包装在一个或多个框架中的接口(interface)。对于深度学习来说,最为人熟知和广泛使用的接口无疑是Keras。Keras是一个高级深度学习API,用Python编写,由谷歌的深度学习研究员François Chollet开发。。这意味着Keras将被包含在下一个TensorFlow版本中。除了TensorFlow,Keras也可以使用Theano或者CNTK作为后端。
Keras的功能强大,因为它用非常直接的方式,即通过堆叠多个层来创建深度学习模型。使用Keras时,用户不必进行layers背后的数学运算。这似乎是快速原型设计的一种理想选择。Keras也是Kaggle比赛的热门工具。
那么,一方面我们现在拥有了高级的Keras API,可以让你轻松地构建简单而高级的深度学习模型;另一方面我们还有低级的TensorFlow框架,能为构建模型提供更大的灵活性。这两者都由谷歌支持。但是竞争并没有停止——2017年10月,。Gluon是一个封装了MXNet的高级Python深度学习接口,未来它还将支持微软的CNTK。Gluon是Keras的直接竞争对手,尽管AWS声称他们强烈支持所有深度学习框架,但显然,他们会打着AI民主化的口号押注于Gluon。
用Gluon堆叠卷积层和密集层以及参数初始化
令人惊讶的是,如今TensorFlow的最大竞争对手似乎是PyTorch。社区对PyTorch的兴趣越来越高涨,例如,Kaggle的最新竞赛中,参赛者经常选择使用PyTorch作为其解决方案的一部分,PyTorch也被用在最新的研究论文中。而TensorFlow终于引入动态图机制是在2017年10月发布的Eager Execution,这是TensorFlow的“define-by-run”接口。谷歌希望通过这次发布,赢回那些喜欢上PyTorch以及它的动态图的用户。
但对于广受欢迎的深度学习课程fast.ai的开发者来说,这个改变来得太迟了。今年9月,fast.ai宣布从Keras&TensorFlow转换到PyTorch。fast.ai的创始研究员、Kaggle的前总裁兼首席科学家Jeremy Howard认为PyTorch将能够保持领先地位。只有时间能告诉我们答案了。
有这么多深度学习框架,对于新入门者来说,选择哪个框架可能是有挑战性的问题。坦白说,即使是经验丰富的研究人员和开发人员,也很难跟上深度学习框架最新的发展。对此,一个好消息是。ONNX于9月8日由微软和Facebook联合发布,并在12月发布了V1版本。ONNX是一个表示深度学习模型的开放格式。它使用户可以更轻松地在不同框架之间转移模型。例如,它允许用户构建一个PyTorch模型,然后使用MXNet运行该模型来进行推理。
开放神经网络交换(ONNX)的Github页面
。谷歌不在这个阵营中并不令人惊讶。ONNX从一开始就支持Caffe2,Microsoft Cognitive Toolkit,MXNet和PyTorch,但与其他开源项目一样,社区也已经为TensorFlow添加了一个转换器。
2017年深度学习框架方面有很多令人兴奋的发展,就跟快速发展的深度学习和人工智能一样。很难预测新的一年会发生什么。我们可能会看到一些整合,不过,大科技公司肯定会想使用和推广自己的技术栈。我们很高兴看到由不同技术巨头支持的不同框架,它们互相推动,促进更快的创新。这是我对2017年深度学习框架竞争观察的第一部分,在第二部分中,我将根据不同的度量标准,例如速度、内存使用、可移植性和可伸缩性等,来对比不同的框架性能。
以上是关于PyTorch成TensorFlow最大竞争对手,微软亚马逊Facebook 合作联盟对抗谷歌的主要内容,如果未能解决你的问题,请参考以下文章
2019 王者之争:与 Tensorflow 竞争白热化,进击的 PyTorch 赢在哪里?
2019机器学习框架之争:与Tensorflow竞争白热化,进击的PyTorch赢在哪里?
如何能低成本地快速获取大量目标用户,而不是与竞争对手持久战?
如何能低成本地快速获取大量目标用户,而不是与竞争对手持久战?