Keras將死于谷歌之手?reddit網(wǎng)友寫“送葬文”,引發(fā)熱議
6歲的Keras經(jīng)歷了什么?
子豪 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
Keras一直深受程序員的歡迎,就在幾天前,MIT CSAIL剛幫它慶祝了6周歲生日。
然而,一轉(zhuǎn)眼,reddit上卻在為它舉辦“葬禮”。
一篇“Keras正在被谷歌殺死”的帖子,在reddit上引發(fā)熱議。
6歲的Keras經(jīng)歷了什么?
Keras和TensorFlow淵源頗深
Keras最初由一位谷歌工程師開發(fā),是一個開源高層深度學(xué)習(xí)API,其開發(fā)重點是支持快速實驗。
由于Keras本身不具備底層運算能力,所以需要和具備底層運算能力的后端協(xié)同工作。
最初發(fā)行的時候,Keras支持以Theano、CNTK等作為后端,而那個時候TensorFlow還沒有開源。
而用戶對Keras的評價,正如reddit文章作者所說:
“Keras早在幾年前就可用,而且API穩(wěn)定,這是它巨大的優(yōu)勢……最初的Keras只是一個機器學(xué)習(xí)的高級API規(guī)范,與缺少工程背景的人合作時,這點非常好?!?/p>
TensorFlow則是谷歌公司開發(fā)的開源軟件庫,用于各種感知和語言理解任務(wù)的機器學(xué)習(xí),具有很強的功能性。
2015年11月,谷歌將TensorFlow0.1開源,而后逐漸穩(wěn)定,并發(fā)展出強大的用戶群,成為深度學(xué)習(xí)框架的NO.1。
于是從Keras v1.1.0開始,TensorFlow成為Keras的默認(rèn)后端,二者的用戶量也產(chǎn)生關(guān)聯(lián)。
不過,TensorFlow逐漸由于API穩(wěn)定性不足、靜態(tài)計算圖編程復(fù)雜等缺陷,遇到了發(fā)展瓶頸。
與此同時,PyTorch的動態(tài)圖開發(fā)模式,以及更加便捷的編程方式,不斷吸引TF的用戶轉(zhuǎn)換陣營。
這迫使谷歌作出改變,考慮到Keras簡單易用,還擁有強大的用戶基礎(chǔ),于是谷歌將它集成進TensorFlow2.0,成為了tf.keras。
本應(yīng)是個皆大歡喜的結(jié)果,卻出現(xiàn)了不少質(zhì)疑聲。作者就表示:TF2延續(xù)了TF1的缺點,而Keras的優(yōu)勢正慢慢消失。
“谷歌將其并入TensorFlow2,這本身沒有問題,但Keras正在被慢慢“殺死。”
之所以產(chǎn)生這樣的觀點,他給出了3個理由:
? Keras API 在合并期間被 “凍結(jié) ”,使得它的功能落后于其他替代品;
? TF2的發(fā)布得太晚。最重要的是,第一版的bug很多,到現(xiàn)在仍缺乏一些基本功能;
? 谷歌把TF1的爛攤子搬到TF2,讓框架變得極其臃腫。出現(xiàn)故障時,冗長而含糊的錯誤信息和大量的堆棧痕跡,會讓人不知所措。
他強調(diào)自己一直使用原始Keras,對谷歌沒有偏見,也不是在抱怨TensorFlow。但Keras和TF2的故事讓他感到沮喪,因此將這篇文章作為Keras API的葬禮……
這篇略顯傷感的文章引起了網(wǎng)友關(guān)注,一起看看其他人怎么說。
網(wǎng)友觀點
這篇“送葬文”獲得了400+點贊,不過從評論來看,只有少數(shù)網(wǎng)友表示同感。
“和愚人節(jié)無關(guān),這完全表達(dá)了我對Keras和TF2的看法?!?/p>
大多數(shù)網(wǎng)友并不認(rèn)同作者的看法,認(rèn)為tf.keras比之前更勝一籌。
“完全不同意這種觀點。
Keras API比以往任何時候都容易;擁有更多功能,可以輕松利用TF分布式培訓(xùn);只需幾行代碼,就可以在數(shù)百個GPU上訓(xùn)練一個巨大的模型。如果是開發(fā)簡單的模型,Keras比過去更簡單,功能更強大。
雖然合并過程的確有點混亂……”
不少網(wǎng)友站在TF用戶的角度,認(rèn)為集成Keras是TF2的一大亮點。
“TF允許創(chuàng)建生產(chǎn)管道,采用多種策略進行分布式培訓(xùn),而Keras只有能在多個GPU上訓(xùn)練模型這一個不錯的功能……
對我這樣的TF用戶而言,集成Keras是件非常好的事?!?/p>
“我沒看到Keras消失,谷歌怎么會殺死它呢?”
“我從2016年一直使用它,現(xiàn)在雖然存在問題,但是比直接用TF更好”
PyTorch在前,JAX在后
此貼一出,網(wǎng)友們必然要將各家框架比較一番。
雖然TF2.0將重心放在了簡單性和易用性上,但在大多數(shù)人看來,PyTorch仍然更勝一籌:
“我們有更靈敏的PyTorch,有什么理由去用TensorFlow?”
“我認(rèn)為Keras會被PyTorch取代。過去使用Keras和TensorFlow的大多數(shù)人以及一些用PyTorch的人,都正在轉(zhuǎn)向JAX,它非常實用且快速?!?/p>
JAX由谷歌開發(fā),其前身是Autograd(通過numpy和本機python代碼進行梯度計算的庫),作為TF的簡化庫。
網(wǎng)友評價JAX更像是TF和python的混合體,保證功能性的同時,仍然簡潔易用。程序員們還為它開發(fā)了Haiku代碼庫,使用戶能面向?qū)ο箝_發(fā)。
有人表示:“實際上,比Keras消失更糟的是,TF2殺死了TensorFlow?!?/p>
“TensorFlow從一開始就是一團糟,作為可微編程的易用工具,設(shè)計問題阻礙了其靈活性,主要是靜態(tài)計算圖。PyTorch的動態(tài)計算圖效果更好,因此TF2試圖趕超,但為時已晚。
JAX真的很不錯,應(yīng)該是未來的發(fā)展趨勢。”
PyTorch帶來的危機尚在,如今谷歌又大力開發(fā)JAX。也許在未來某天,JAX會成為谷歌的主要神經(jīng)網(wǎng)絡(luò)庫。
此番境地,Keras未來真的會消失嗎?
reddit鏈接:
https://www.reddit.com/r/MachineLearning/comments/mhrpbm/d_Keras_killed_by_google/