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