编者按:本文来自微信公众号机之心(ID:almosthuman2014),36氪经授权发布。
将Keras并入TensorFlow,到底是不是一个正确的决定?
近日,Reddit上出现了一个「悼念」Keras的帖子,引发了不少人的围观。发帖者表示,谷歌已经慢慢地将Keras杀死了。
乍一看,这一观点似乎有点耸人听闻:Keras活得好好的,怎么能说已经被谷歌杀死了呢?而且前不久,这个神经网络库刚刚过完6岁生日。MITCSAIL官方账号还发推表示,Keras目前已经成为全世界使用最多的十大软件工具之一。
这一切还要从Keras和谷歌的恩怨说起。
Keras与谷歌的TensorFlow有一段极其复杂的历史,这个故事很长,有很多细节,有时甚至会有一些矛盾。
Keras最初是由GoogleAI开发人员/研究人员FrancoisChollet创建并开发的,作者于2015年3月27日将Keras的第一个版本commit并release到他的GitHub上。一开始,Francois开发Keras是为了方便他自己的研究和实验。但随着深度学习的普及,许多开发人员、程序员和机器学习从业人员都因其易于使用的API而涌向Keras。
为了训练你自己的自定义神经网络,Keras需要一个后端。后端是一个计算引擎——它可以构建网络的图和拓扑结构,运行优化器,并执行具体的数字运算。你可以把后台看作是你的数据库,Keras是你用来访问数据库的编程语言。
一开始,在v1.1.0之前,Keras的默认后端都是Theano。与此同时,Google发布了TensorFlow,这是一个用于机器学习和神经网络训练的符号数学库。Keras开始支持TensorFlow作为后端。渐渐地,TensorFlow成为最受欢迎的后端,这也就使得TensorFlow从Kerasv1.1.0发行版开始成为Keras的默认后端。
一般来说,一旦TensorFlow成为了Keras的默认后端,TensorFlow和Keras的使用量会一起增长——没有TensorFlow的情况下就无法使用Keras,所以如果你在系统上安装了Keras,那么你也得安装TensorFlow。
同样的,TensorFlow用户也越来越被高级KerasAPI的简单易用所吸引。tf.keras是在TensorFlowv1.10.0中引入的,这是将keras直接集成到TensorFlow包中的第一步。
tf.keras软件包与你通过pip安装的keras软件包(即pipinstallkeras)是分开的。为了确保兼容性,原始的keras包没有被包含在tensorflow中,因此它们的开发都很有序。
然而,这种情况后来发生了改变改变——当谷歌在2019年6月发布TensorFlow2.0时,他们宣布Keras现在是TensorFlow的官方高级API,用于快速简单的模型设计和训练。随着Keras2.3.0的发布,Francois在声明中写道:
这是Keras首个与tf.keras同步的版本,也是Keras支持多个后端(即Theano,CNTK等)的最终版本。最重要的是,所有深度学习从业人员都应将其代码转换成TensorFlow2.0和tf.keras软件包。原始的keras软件包仍会接收bug并修复,但请向前看,你应该开始使用tf.keras了。
对于Keras和TensorFlow来说,二者的合并似乎是一个双赢的决定,但很多开发者不这么认为。上述发帖者就是其中之一。
ta认为,这一决定已经慢慢地将Keras杀死了。为了解释这一观点,ta还给出了三个理由:
第一个理由是:在合并期间,KerasAPI被有效地「冻结」了,这使得它在特性方面落后于其他竞争者;
第二个理由是:TF2发布得太晚了。最重要的是,最初的几个2.x版本漏洞百出,甚至现在也缺乏一些基本的特性;
第三个理由是:谷歌没有在TF1和2之间进行坚决的切割,而是将TF1中的很多包和垃圾直接移植到TF2,使得框架非常臃肿。当某个地方出问题时,你会被满屏冗长的神
标签: 科技新闻、本文地址: https://yihaiquanyi.com/article/e8b88da79e9e1ced0f1e.html
上一篇:苹果超级签名怎么购买苹果超级签名...