TensorFlow今天3歲了。2015年的11月9日,谷歌開源TensorFlow,迅速成為最受歡迎的機器學(xué)習(xí)開源框架,構(gòu)建起龐大的開發(fā)者生態(tài)。一路走來,TensorFlow收獲眾多輝煌,也有批評,遭遇強手勁敵,目前仍舊穩(wěn)居處于開源框架王者之位。TensorFlow 2.0也已在研發(fā)中。謹(jǐn)以本文祝TensorFlow生日快樂,為TensorFlow發(fā)展做出貢獻(xiàn)的開發(fā)者也辛苦了!
TensorFlow今天3歲了!
作為全球最受歡迎的機器學(xué)習(xí)開源框架,TensorFlow 發(fā)展的3年見證了機器學(xué)習(xí)和人工智能領(lǐng)域的快速發(fā)展和變化,與人類的孩子一樣,不斷學(xué)習(xí),遭到批評,遇到對手,走向更大跟廣闊的環(huán)境。
接下來,新智元帶你簡單回顧過去3年TensorFlow 的發(fā)展,以及關(guān)于TensorFlow的一些你或許不知道的小知識。
TensorFlow:面向公眾的機器學(xué)習(xí)庫
TensorFlow其實是谷歌自豪的研究級機器學(xué)習(xí)基礎(chǔ)設(shè)施、第一代專有機器學(xué)習(xí)系統(tǒng)DistBelief 的繼承者,該系統(tǒng)負(fù)責(zé)DeepDream這一成就。
DeepDream生成的威廉王子一家畫像
2009年,Hinton領(lǐng)導(dǎo)的研究小組大大減少使用DistBelief的神經(jīng)網(wǎng)絡(luò)的錯誤數(shù)量,通過Hinton在廣義反向傳播的科學(xué)突破。最值得注意的是,Hinton的突破直接使Google語音識別軟件中的錯誤減少至少25%。
而后,谷歌指派計算機科學(xué)家,如Geoffrey Hinton和Jeff Dean,簡化和重構(gòu)DistBelief的代碼庫,使其變成一個更快、更健壯的應(yīng)用級別代碼庫,形成了TensorFlow。
TensorFlow的計算使用有狀態(tài)的數(shù)據(jù)流圖表示。TensorFlow的名字來源于神經(jīng)網(wǎng)絡(luò)對多維數(shù)組執(zhí)行的操作,這些多維數(shù)組被稱為張量。
通過將TensorFlow的代碼開源,谷歌為世界各地的公司和計算機科學(xué)家打開了在自己的產(chǎn)品和研究中實施尖端機器學(xué)習(xí)算法的大門。
初期爆發(fā)式發(fā)展被批壟斷生態(tài),用戶說放下TensorFlow立地成佛?
雖然在短時間內(nèi)迅速成長為Github最受歡迎的深度學(xué)習(xí)開源項目,并在全球范圍內(nèi)建立起了廣泛的開發(fā)者社區(qū),但一路走來,TensorFlow 也并非沒有遭遇批評和對手。
2016年6月,Jeff Dean稱在GitHub有1500個庫提到了TensorFlow,其中只有5個來自谷歌。截止2017年3月,TensorFlow 得到14000+次commit,超過5500標(biāo)題中出現(xiàn)過TensorFlow的Github project以及在Stack Overflow上有包括5000+個已被回答的問題,平均每周80+的issue提交。
初期爆發(fā)式的發(fā)展形成一家獨大的態(tài)勢,引起了業(yè)內(nèi)人士對TensorFlow 所構(gòu)成的潛在生態(tài)危害的擔(dān)憂,這種趨勢在2016年開始出現(xiàn),比如地平線創(chuàng)始人余凱博士曾在微信朋友圈呼吁:
算是一個鄭重的聲明吧:一直以來我非常欽佩谷歌的Jeff Dean在MapReduce和谷歌大腦(TensorFlow)等項目上的杰出成就。但是,我必須指出,放任TensorFlow成為世界上占統(tǒng)治地位的人工智能開發(fā)平臺對世界是危險的。盡管這個平臺目前是開源的,但是隨著時間的推移,人工智能變得越來越強大,這個系統(tǒng)會變得極端復(fù)雜到失去透明性,而且會很可怕的變成全世界數(shù)據(jù),計算,硬件,編譯器等的標(biāo)準(zhǔn)制定者。這樣會導(dǎo)致一個不健康的生態(tài),阻礙年輕人掌握技術(shù)的自由,讓個人,公司甚至國家在人工智能領(lǐng)域的自主發(fā)展,最終被一家商業(yè)公司所控制。這不是危言聳聽。可惜現(xiàn)在絕大部分人都還意識不到這點。尤其是在中國。我呼吁大家都來使用Caffe,Mxnet等更加開放中興的開源系統(tǒng),避免使用TensorFlow
后來,隨著 PyTorch、MXNet、PaddlePaddle 等新框架的出現(xiàn),開發(fā)者有了更多選擇,生態(tài)進(jìn)入良性競爭狀態(tài)后,這樣的擔(dān)憂也開始褪去。
其次是TensorFlow 本身使用性的問題。零星的“不好用”、“用不好”等抱怨之火,在2017 年下半年爆發(fā),引爆點是一篇題為 “TensorFlow Sucks”的博文,作者NicolasD.Jimenez 在肯定 TensorFlow 優(yōu)點的同時,指出人們對 TensorFlow 有一種盲目崇拜,TensorFlow 缺乏靈活性,在設(shè)計思想和使用上不便于快速原型部署,而且相關(guān)的庫太過高級無法輕松使用。
Quora 上開始出現(xiàn)“放棄使用 TensorFlow”的聲音。在差不多的時間里,中國問答網(wǎng)站知乎上也出現(xiàn)了提問“TensorFlow 有哪些令人難以接受的地方?” 引發(fā)了眾多的關(guān)注和討論。正如問題描述中所說,“沒有工具是完美的,TensorFlow 亦然,現(xiàn)在是時候來吐槽一下了”。
針對開發(fā)者提出的主要問題,谷歌后來都做了改進(jìn),比如推出動態(tài)圖模型,能夠保存和重用模型。
勁敵 PyTorch 出現(xiàn)
雖有 CNTK、Theano、MXNet、PaddlePaddle,如果說 TensorFlow 最強的對手,莫過于2017年 3月 Facebook 開源的 PyTorch,以靈活輕便等優(yōu)勢迅速贏得了一大批開發(fā)者,其中不乏從 TensorFlow 社區(qū)轉(zhuǎn)來的人。
今年5月,PyTorch 1.0 正式公開,新框架將 PyTorch 0.4與Caffe2合并,整合ONNX格式,讓開發(fā)者可以無縫地將AI模型從研究轉(zhuǎn)到生產(chǎn);今年 10月,F(xiàn)acebook召開了首屆 PyTorch開發(fā)者大會,其社區(qū)發(fā)展大有超越TensorFlow 之勢。
根據(jù) Reddit上一位博主貼出的統(tǒng)計,2018年至2019年,ICRL論文中所涉及到的主流框架工具TensorFlow、PyTorch和Keras的搜索結(jié)果數(shù),僅在一年時間內(nèi),PyTorch數(shù)據(jù)增長近3倍:
TensorFlow:228→266
Keras:42→56
PyTorch:87→252
更早一些,今年3月,手握 ArXiv Sanity 大數(shù)據(jù)、現(xiàn)在主管特斯拉人工智能部門的 Andrej Karpathy,也給出了精確的排名結(jié)果(過去一個月內(nèi))。
各個框架在論文中被提到(單次計算)的比例分別是:
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 在機器學(xué)習(xí)開源框架中的王者地位是毋庸置疑的。
今年8 月,TensorFlow 2.0 預(yù)覽版即將發(fā)布的消息傳出,TensorFlow 開發(fā)者團(tuán)隊表示,為了適應(yīng)計算硬件、機器學(xué)習(xí)研究和商業(yè)部署這三年的快速發(fā)展,更好地滿足廣大用戶的需求,TensorFlow 2.0 已在研究之中。
用戶對TensorFlow 2.0的期望包括:
Eager execution應(yīng)當(dāng)是2.0的核心功能。它將用戶對編程模型的期望與TensorFlow更好地結(jié)合起來,并且應(yīng)該使TensorFlow更易于學(xué)習(xí)和應(yīng)用。
通過交換格式的標(biāo)準(zhǔn)化和API的一致性,支持更多平臺和語言,并改善這些組件之間的兼容性和奇偶性。
將刪除已棄用的API并減少重復(fù)數(shù)量,否則會給用戶造成混淆。
TensorFlow 三年發(fā)展里程碑
TensorFlow是谷歌大腦的第二代機器學(xué)習(xí)系統(tǒng)。
從0.8.0版本(發(fā)布于2016年4月)開始本地的支持分布式運行。
從0.9.0版本(發(fā)布于2016年6月)開始支持iOS。
從0.12.0版本(發(fā)布于2016年12月)開始支持Windows系統(tǒng)。該移植代碼主要由微軟貢獻(xiàn)。
1.0.0版本發(fā)布于2017年2月11日。雖然參考實現(xiàn)運行在單臺設(shè)備,TensorFlow可以運行在多個CPU和GPU(和可選的CUDA擴展和圖形處理器通用計算的SYCL擴展)。
2015年11月9日
宣布TensorFlow開源,根據(jù) Apache 2.0 許可并以開放源代碼軟件包的形式發(fā)布了 TensorFlow API 和一個參考實現(xiàn)。
2015年12月
發(fā)布v0.6,支持GPU,Python 3.3
2016年4月
發(fā)布v0.8,分布式TensorFlow
2016年11月
發(fā)布v0.11,支持Windows
2017年2月
在首屆TensorFlow開發(fā)者峰會上,正式發(fā)布TensorFlow 1.0。v1.0的性能得到改進(jìn),API變得穩(wěn)定。TensorFlow1.0主要改進(jìn)了機器學(xué)習(xí)功能,發(fā)布了XLA的實驗版本,對Python和Java用戶開放,提升了debugging,并且加入和改進(jìn)了一些高級API,其中包括Keras。
2017年4月
發(fā)布v1.1,增加針對tf.keras的特性
2017年8月
發(fā)布v1.3,增加高級API,canned estimators,更多模型,原始TPU支持
2017年11月
發(fā)布v1.5,增加動態(tài)圖機制Eager Execution 和用于移動端的輕量級TensorFlow Lite版本
2018年3月
發(fā)布TF Hub, TensorFlow.js, 和TensorFlow Extended (TFX)
2018年5月
發(fā)布v1.6,增加支持Cloud TPU,模型和pipeline
2018年6月
發(fā)布v1.8,Distribution Strategy API, TensorFlow Probability
2018年8月
發(fā)布v1.10,整合Cloud Bigtable
2018年10月
發(fā)布v1.12,大量API改進(jìn),包括改進(jìn)XLA穩(wěn)定性和性能,改進(jìn)Keras模型支持
2019年
即將發(fā)布TensorFlow 2.0
結(jié)語
支持深度學(xué)習(xí)和機器學(xué)習(xí)研究的軟件生態(tài)系統(tǒng)一直在快速發(fā)展,開源軟件已經(jīng)是常態(tài);有各種各樣的框架可用,滿足從探索新想法到將它們部署到生產(chǎn)中的需求;而大型企業(yè)在激烈競爭中支持不同的軟件棧。
在眾多新工具涌現(xiàn)的同時,也有功成名退的老將,比如Theano,但這些年來 Theano 開發(fā)者團(tuán)隊所提出的大多數(shù)創(chuàng)新,現(xiàn)在已經(jīng)被其他框架采用和完善。例如,將模型表達(dá)為數(shù)學(xué)表達(dá)式,重寫計算圖以獲得更好的性能和內(nèi)存使用,GPU上的透明執(zhí)行,更高階的自動微分等,都成為了主流想法。
微軟和 Facebook 發(fā)起了開源人工智能項目ONNX(Open Neural Network Exchange),不久后亞馬遜AWS 也宣布加入并推出ONNX-MXNet 開源Python 軟件包。除了亞馬遜,AMD、ARM、華為、IBM、英特爾、高通都宣布將支持ONNX,形成強大的深度學(xué)習(xí)開源聯(lián)盟。
有人說控制了開源工具,就控制了整個生態(tài);但同時,這些巨頭也在去中心化,打通全球數(shù)據(jù)連接。開放生態(tài)系統(tǒng)的基礎(chǔ),使 AI 更容易獲取并富有價值。開發(fā)人員可以為其任務(wù)選擇合適的框架,框架作者可以專注于創(chuàng)新,硬件供應(yīng)商可以簡化優(yōu)化流程。
感謝所有幫助開發(fā)這些工具,并通過貢獻(xiàn)bug報告、配置文件、用例、文檔和支持來改進(jìn)它們的人。
-
人工智能
+關(guān)注
關(guān)注
1805文章
48899瀏覽量
247977 -
機器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8499瀏覽量
134331 -
tensorflow
+關(guān)注
關(guān)注
13文章
330瀏覽量
61102
原文標(biāo)題:TensorFlow三歲了!
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
面向AI與機器學(xué)習(xí)應(yīng)用的開發(fā)平臺 AMD/Xilinx Versal? AI Edge VEK280

用樹莓派搞深度學(xué)習(xí)?TensorFlow啟動!

Arm成功將Arm KleidiAI軟件庫集成到騰訊自研的Angel 機器學(xué)習(xí)框架
NPU與機器學(xué)習(xí)算法的關(guān)系
RISC-V如何支持不同的AI和機器學(xué)習(xí)框架和庫?
第四章:在 PC 交叉編譯 aarch64 的 tensorflow 開發(fā)環(huán)境并測試

評論