當前位置:
首頁 > 新聞 > TensorFlow三歲了!

TensorFlow三歲了!

新智元報道

編輯:肖琴,王楠

【新智元導讀】TensorFlow今天3歲了。2015年的11月9日,谷歌開源TensorFlow,迅速成為最受歡迎的機器學習開源框架,構建起龐大的開發者生態。一路走來,TensorFlow收穫眾多輝煌,也有批評,遭遇強手勁敵,目前仍舊穩居處於開源框架王者之位。TensorFlow 2.0也已在研發中。謹以本文祝TensorFlow生日快樂,為TensorFlow發展做出貢獻的開發者也辛苦了!

TensorFlow今天3歲了!

作為全球最受歡迎的機器學習開源框架,TensorFlow 發展的3年見證了機器學習和人工智慧領域的快速發展和變化,與人類的孩子一樣,不斷學習,遭到批評,遇到對手,走向更大跟廣闊的環境。

接下來,新智元帶你簡單回顧過去3年TensorFlow 的發展,以及關於TensorFlow的一些你或許不知道的小知識。

TensorFlow:面向公眾的機器學習庫

TensorFlow其實是谷歌自豪的研究級機器學習基礎設施、第一代專有機器學習系統 DistBelief 的繼承者,該系統負責DeepDream這一成就。

DeepDream生成的威廉王子一家畫像

2009年,Hinton領導的研究小組大大減少使用DistBelief的神經網路的錯誤數量,通過Hinton在廣義反向傳播的科學突破。最值得注意的是,Hinton的突破直接使Google語音識別軟體中的錯誤減少至少25%。

而後,谷歌指派計算機科學家,如Geoffrey Hinton和Jeff Dean,簡化和重構DistBelief的代碼庫,使其變成一個更快、更健壯的應用級別代碼庫,形成了TensorFlow。

TensorFlow的計算使用有狀態的數據流圖表示。TensorFlow的名字來源於神經網路對多維數組執行的操作,這些多維數組被稱為張量。

通過將TensorFlow的代碼開源,谷歌為世界各地的公司和計算機科學家打開了在自己的產品和研究中實施尖端機器學習演算法的大門。

初期爆髮式發展被批壟斷生態,用戶說放下TensorFlow立地成佛?

雖然在短時間內迅速成長為Github最受歡迎的深度學習開源項目,並在全球範圍內建立起了廣泛的開發者社區,但一路走來,TensorFlow 也並非沒有遭遇批評和對手。

2016年6月,Jeff Dean稱在GitHub有1500個庫提到了TensorFlow,其中只有5個來自谷歌。截止2017年3月,TensorFlow 得到14000+次commit,超過5500標題中出現過TensorFlow的Github project以及在Stack Overflow上有包括5000+個已被回答的問題,平均每周80+的issue提交。

初期爆髮式的發展形成一家獨大的態勢,引起了業內人士對TensorFlow 所構成的潛在生態危害的擔憂,這種趨勢在2016年開始出現,比如地平線創始人余凱博士曾在微信朋友圈呼籲:

算是一個鄭重的聲明吧:一直以來我非常欽佩谷歌的Jeff Dean在MapReduce和谷歌大腦(TensorFlow)等項目上的傑出成就。但是,我必須指出,放任TensorFlow成為世界上占統治地位的人工智慧開發平台對世界是危險的。儘管這個平台目前是開源的,但是隨著時間的推移,人工智慧變得越來越強大,這個系統會變得極端複雜到失去透明性,而且會很可怕的變成全世界數據,計算,硬體,編譯器等的標準制定者。這樣會導致一個不健康的生態,阻礙年輕人掌握技術的自由,讓個人,公司甚至國家在人工智慧領域的自主發展,最終被一家商業公司所控制。這不是危言聳聽。可惜現在絕大部分人都還意識不到這點。尤其是在中國。我呼籲大家都來使用Caffe,Mxnet等更加開放中興的開源系統,避免使用TensorFlow

後來,隨著 PyTorch、MXNet、PaddlePaddle 等新框架的出現,開發者有了更多選擇,生態進入良性競爭狀態後,這樣的擔憂也開始褪去。

其次是TensorFlow 本身使用性的問題。零星的「不好用」、「用不好」等抱怨之火,在2017 年下半年爆發,引爆點是一篇題為 「TensorFlow Sucks」的博文,作者Nicolas D. Jimenez 在肯定 TensorFlow 優點的同時,指出人們對 TensorFlow 有一種盲目崇拜,TensorFlow 缺乏靈活性,在設計思想和使用上不便於快速原型部署,而且相關的庫太過高級無法輕鬆使用。

Quora 上開始出現「放棄使用 TensorFlow」的聲音。在差不多的時間裡,中國問答網站知乎上也出現了提問「TensorFlow 有哪些令人難以接受的地方?」 引發了眾多的關注和討論。正如問題描述中所說,「沒有工具是完美的,TensorFlow 亦然,現在是時候來吐槽一下了」。

針對開發者提出的主要問題,谷歌后來都做了改進,比如推出動態圖模型,能夠保存和重用模型。

勁敵 PyTorch 出現

雖有 CNTK、Theano、MXNet、PaddlePaddle,如果說 TensorFlow 最強的對手,莫過於2017年 3月 Facebook 開源的 PyTorch,以靈活輕便等優勢迅速贏得了一大批開發者,其中不乏從 TensorFlow 社區轉來的人。

今年5月,PyTorch 1.0 正式公開,新框架將 PyTorch 0.4與Caffe2合併,整合ONNX格式,讓開發者可以無縫地將AI模型從研究轉到生產;今年 10月,Facebook召開了首屆 PyTorch開發者大會,其社區發展大有超越TensorFlow 之勢。

根據 Reddit上一位博主貼出的統計,2018年至2019年,ICRL論文中所涉及到的主流框架工具TensorFlow、PyTorch和Keras的搜索結果數,僅在一年時間內,PyTorch 數據增長近3倍:

TensorFlow:228266

Keras:4256

PyTorch:87252

更早一些,今年3月,手握 ArXiv Sanity 大數據、現在主管特斯拉人工智慧部門的 Andrej Karpathy,也給出了精確的排名結果(過去一個月內)。

各個框架在論文中被提到(單次計算)的比例分別是:

TensorFlow 14.3%

PyTorch 4.7%

Keras 4.0%

Caffe 3.8%

Theano 2.3%

Torch 1.5%

MXNet、Chainer 和 CNTK 均小於 1%:

TensorFlow 2.0 要來了!

雖有種種問題,但TensorFlow 在機器學習開源框架中的王者地位是毋庸置疑的。

今年8 月,TensorFlow 2.0 預覽版即將發布的消息傳出,TensorFlow 開發者團隊表示,為了適應計算硬體、機器學習研究和商業部署這三年的快速發展,更好地滿足廣大用戶的需求,TensorFlow 2.0 已在研究之中。

用戶對TensorFlow 2.0的期望包括:

Eager execution應當是2.0的核心功能。它將用戶對編程模型的期望與TensorFlow更好地結合起來,並且應該使TensorFlow更易於學習和應用。

通過交換格式的標準化和API的一致性,支持更多平台和語言,並改善這些組件之間的兼容性和奇偶性。

將刪除已棄用的API並減少重複數量,否則會給用戶造成混淆。

TensorFlow 三年發展里程碑

TensorFlow是谷歌大腦的第二代機器學習系統。

從0.8.0版本(發佈於2016年4月)開始本地的支持分散式運行。

從0.9.0版本(發佈於2016年6月)開始支持iOS。

從0.12.0版本(發佈於2016年12月)開始支持Windows系統。該移植代碼主要由微軟貢獻。

1.0.0版本發佈於2017年2月11日。雖然參考實現運行在單台設備,TensorFlow可以運行在多個CPU和GPU(和可選的CUDA擴展和圖形處理器通用計算的SYCL擴展)。

2015年11月9日

宣布TensorFlow開源,根據 Apache 2.0 許可並以開放源代碼軟體包的形式發布了 TensorFlow API 和一個參考實現。

2015年12月

發布v0.6,支持GPU,Python 3.3

2016年4月

發布v0.8,分散式TensorFlow

2016年11月

發布v0.11,支持Windows

2017年2月

在首屆TensorFlow開發者峰會上,正式發布TensorFlow 1.0。v1.0的性能得到改進,API變得穩定。TensorFlow1.0主要改進了機器學習功能,發布了XLA的實驗版本,對Python和Java用戶開放,提升了debugging,並且加入和改進了一些高級API,其中包括Keras。

2017年4月

發布v1.1,增加針對tf.keras的特性

2017年8月

發布v1.3,增加高級API,canned estimators,更多模型,原始TPU支持

2017年11月

發布v1.5,增加動態圖機制Eager Execution 和用於移動端的輕量級TensorFlow Lite版本

2018年3月

發布TF Hub, TensorFlow.js, 和TensorFlow Extended (TFX)

2018年5月

發布v1.6,增加支持Cloud TPU,模型和pipeline

2018年6月

發布v1.8,Distribution Strategy API, TensorFlow Probability

2018年8月

發布v1.10,整合Cloud Bigtable

2018年10月

發布v1.12,大量API改進,包括改進XLA穩定性和性能,改進Keras模型支持

2019年

即將發布TensorFlow 2.0

結語

支持深度學習和機器學習研究的軟體生態系統一直在快速發展,開源軟體已經是常態;有各種各樣的框架可用,滿足從探索新想法到將它們部署到生產中的需求;而大型企業在激烈競爭中支持不同的軟體棧。

在眾多新工具湧現的同時,也有功成名退的老將,比如Theano,但這些年來 Theano 開發者團隊所提出的大多數創新,現在已經被其他框架採用和完善。例如,將模型表達為數學表達式,重寫計算圖以獲得更好的性能和內存使用,GPU上的透明執行,更高階的自動微分等,都成為了主流想法。

微軟和 Facebook 發起了開源人工智慧項目ONNX(Open Neural Network Exchange),不久後亞馬遜AWS 也宣布加入並推出ONNX-MXNet 開源Python 軟體包。除了亞馬遜,AMD、ARM、華為、IBM、英特爾、高通都宣布將支持ONNX,形成強大的深度學習開源聯盟。

有人說控制了開源工具,就控制了整個生態;但同時,這些巨頭也在去中心化,打通全球數據連接。開放生態系統的基礎,使 AI 更容易獲取並富有價值。開發人員可以為其任務選擇合適的框架,框架作者可以專註於創新,硬體供應商可以簡化優化流程。

感謝所有幫助開發這些工具,並通過貢獻bug報告、配置文件、用例、文檔和支持來改進它們的人。

【加入社群】

新智元 AI 技術 + 產業社群招募中,歡迎對 AI 技術 + 產業落地感興趣的同學,加小助手微信號:aiera2015_3入群;通過審核後我們將邀請進群,加入社群後務必修改群備註(姓名 - 公司 - 職位;專業群審核較嚴,敬請諒解)。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 新智元 的精彩文章:

機器學習論文呼籲「預註冊」,事先評審專治「注水研究」!
用神經網路識別歌曲流派

TAG:新智元 |