2017深度学习框架大事记

更新于 2017年12月27日 机器学习
我来说两句
wx:   网页版 2017-12-26 19:58
会议活动 架构 深度学习 视觉 算法 资源 自然语言处理 Den Bakker GPU Jeremy Howard Kaggle Python R语言 Spark Yoshua Bengio 代码 行业动态 会议 课程 刘小芹 神经网络 数据科学
「【2017深度学习框架大事记】PyTorch成TensorFlow最大竞争对手,微软、亚马逊、Facebook 合作联盟对抗谷歌」   新智元编译  来源:towardsdatascience.com作者:Indra den Bakker编译:刘小芹 【新智元导读】2017年,深度学习框架领域出现了许多新变化。TensorFlow仍然是最受欢迎的深度学习框架,但使用动态图的更高效的PyTorch作为后起之秀,已经成为TensorFlow的最大竞争对手。第一个被广泛采用的深度学习框架Theano“功成身退”,宣布停止开发和维护。此外,微软和亚马逊联合推出Gluon,微软、亚马逊和Facebook等联合发布ONNX格式,深度学习框架也呈现出合作联盟、对抗谷歌的趋势。 深度学习的图景在不断变化。Theano是第一个被广泛采用的深度学习框架,由Yoshua Bengio领导的MILA创建和维护。但情况已经发生改变。今年9月,MILA宣布,在发布Theano的最新版本后,2018年将终止Theano的开发和维护。这个消息并不令人感到意外。在过去的几年里,出现了不同的开源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年正式推出2.0版本,并将其重新命名为微软认知工具包(Microsoft Cognitive Toolkit)。 2017年,Facebook还推出了Caffe2。它将成为众所周知的Caffe框架的继承者。Caffe框架最初是伯克利视觉和学习中心开发的,现在仍然非常受欢迎,这是由于它的社区性质,它是计算机视觉的应用程序,以及它的Model Zoo ——一系列预训练的模型。不过,Caffe2似乎还没有跟上Caffe的脚步。 另一个流行的深度学习框架是MXNet,由微软和亚马逊共同支持。MXNet的历史已经有一段时间了,但是当MXNet作为一个深度学习框架被提及时,我经常听到人们说“那是一个R语言的深度学习框架吧?”。是的,但不止。MXNet实际上支持许多语言,包括C ++,Python,JavaScript,Go,以及R。MXNet最为突出的是它的可扩展性和性能。 这些只是众多可选择的框架中的一小部分。其他开源的深度学习框架还有Deeplearning4j和Dlib(基于C ++)。而且在2017年,谷歌旗下的DeepMind发布了Sonnet(一个建立在TensorFlow上的高级面向对象的库)。其他值得一提的框架还有H20.ai和Spark。 用Keras直接构建模型— source: https://github.com/keras-team/keras 除了这些框架之外,我们还有一些包装在一个或多个框架中的接口(interface)。对于深度学习来说,最为人熟知和广泛使用的接口无疑是Keras。Keras是一个高级深度学习API,用Python编写,由谷歌的深度学习研究员François Chollet开发。谷歌在2017年宣布,Keras已被选为TensorFlow的高级API。这意味着Keras将被包含在下一个TensorFlow版本中。除了TensorFlow,Keras也可以使用Theano或者CNTK作为后端。 Keras的功能强大,因为它用非常直接的方式,即通过堆叠多个层来创建深度学习模型。使用Keras时,用户不必进行layers背后的数学运算。这似乎是快速原型设计的一种理想选择。Keras也是Kaggle比赛的热门工具。 那么,一方面我们现在拥有了高级的Keras API,可以让你轻松地构建简单而高级的深度学习模型;另一方面我们还有低级的TensorFlow框架,能为构建模型提供更大的灵活性。这两者都由谷歌支持。但是竞争并没有停止——2017年10月,微软和亚马逊的AWS联合宣布推出Gluon API。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)格式的发布。ONNX于9月8日由微软和Facebook联合发布,并在12月发布了V1版本。ONNX是一个表示深度学习模型的开放格式。它使用户可以更轻松地在不同框架之间转移模型。例如,它允许用户构建一个PyTorch模型,然后使用MXNet运行该模型来进行推理。 开放神经网络交换(ONNX)的Github页面 ONNX由微软、亚马逊和Facebook等公司共同发起,宣布支持ONNX的公司还有AMD、ARM、华为、 IBM、英特尔、Qualcomm等。谷歌不在这个阵营中并不令人惊讶。ONNX从一开始就支持Caffe2,Microsoft Cognitive Toolkit,MXNet和PyTorch,但与其他开源项目一样,社区也已经为TensorFlow添加了一个转换器。 2017年深度学习框架方面有很多令人兴奋的发展,就跟快速发展的深度学习和人工智能一样。很难预测新的一年会发生什么。我们可能会看到一些整合,不过,大科技公司肯定会想使用和推广自己的技术栈。我们很高兴看到由不同技术巨头支持的不同框架,它们互相推动,促进更快的创新。这是我对2017年深度学习框架竞争观察的第一部分,在第二部分中,我将根据不同的度量标准,例如速度、内存使用、可移植性和可伸缩性等,来对比不同的框架性能。 via: http://mp.weixin.qq.com/s?__biz=MzI3MTA0MTk1MA==&mid=2652010614&idx=2&sn=bcd9b6e11474e6e57815dc2c82142e6c&scene=0#wechat_redirect

 

回复