0
關(guān)于深度學(xué)習(xí)的框架之爭一直都沒停止過,每隔一陣大家就要進(jìn)行一次框架大討論:
TensorFlow的使用者雖多,又有谷歌的背書,但真的很!難!用!
Pytorch雖然入門簡單、上手快,但因?yàn)殚_源時(shí)間不長,關(guān)于它的文檔和代碼相對較少。
Keras作為TensorFlow的高級KPI,一旦有什么想法需要快速建模驗(yàn)證時(shí)很方便,但相較tf功能還是沒那么全。
Caffe雖然方便部署,但是C++的框架,在編程上會比較難。
……
每個框架都各有優(yōu)劣,而針對于此的討論也一直沒有停息。
近日,Yoshua Bengio教授的一封郵件又讓對框架的討論迅速升溫,在郵件中,他表示, 他們將會停止對Theano的更新,接下來,會以最低成本對Theano進(jìn)行為期一年的維護(hù),之后就將徹底與Theano告別。詳情可參見雷鋒網(wǎng)此前發(fā)文【深度學(xué)習(xí)框架Theano 宣布完成歷史使命,即將退役】。
這意味著,開發(fā)者又要與一個深度學(xué)習(xí)框架說再見了。
深度學(xué)習(xí)框架祖師爺Theano
早在今年一月份雷鋒網(wǎng) AI科技評論進(jìn)行框架大盤點(diǎn)時(shí),就曾詳述過Theano 。詳情可以參見【盤點(diǎn)四大民間機(jī)器學(xué)習(xí)開源框架:Theano、Caffe、Torch 和 SciKit-learn】
Theano基于 Python,是一個擅長處理多維數(shù)組的庫(這方面類似于 NumPy),它的設(shè)計(jì)初衷是執(zhí)行深度學(xué)習(xí)中大規(guī)模神經(jīng)網(wǎng)絡(luò)算法的運(yùn)算。Theano早期的開發(fā)者有Yoshua Bengio和Ian Goodfellow,由于出身學(xué)界,它最初是為學(xué)術(shù)研究而設(shè)計(jì)。當(dāng)它與其他深度學(xué)習(xí)庫結(jié)合起來之后,會非常適合于數(shù)據(jù)探索。
Theano可以被更好地理解為一個數(shù)學(xué)表達(dá)式的編譯器:用符號式語言定義你想要的結(jié)果,該框架會對你的程序進(jìn)行編譯,來高效運(yùn)行于 GPU 或 CPU。
在過去的很長一段時(shí)間內(nèi),Theano都是是深度學(xué)習(xí)開發(fā)與研究的行業(yè)標(biāo)準(zhǔn)。比起深度學(xué)習(xí)庫,它更像是一個研究平臺,你需要從底層開始做許多工作,來創(chuàng)建自己需要的模型,這就意味著它的靈活性很強(qiáng)。
再怎么優(yōu)秀的工具都有退出歷史舞臺的一天,曾經(jīng)深得學(xué)界青睞的Theano也不例外。
作為深度學(xué)習(xí)框架中祖師級的存在,從 2007的推出到2017的落幕,到現(xiàn)在剛好歷經(jīng)十年。
Theano已完成歷史使命,功成身退
針對Theano的落幕,AI科技評論與眾多開發(fā)者進(jìn)行了交流,大家的看法出奇一致:
——對于這件事情并不吃驚,很正常的更新?lián)Q代。
——以前用 Theano的人大都已經(jīng)換成其他框架,Theano已完成了它的歷史使命,退出舞臺是必然的。
為什么說Theano的落幕是歷史必然?針對于此,AI科技評論聯(lián)系了幾個曾經(jīng)接觸過Theano的開發(fā)者進(jìn)行了采訪:
KDD Cup 2017的雙料冠軍胡可對AI科技評論表示 ,雖然在KDD Cup比賽時(shí)用了Theano,但平時(shí)在其他任務(wù)上一般用的是TensorFlow或者CNTK?!癟heano完成了它的歷史使命,它比較適合實(shí)驗(yàn)室的toy data,不太適合當(dāng)前工業(yè)界‘大數(shù)據(jù)’的需求?!闭绾伤裕趯W(xué)界的Theano,必然有其應(yīng)用局限性——比較適合做小規(guī)模的短期實(shí)驗(yàn),而在近兩年數(shù)據(jù)量劇增且優(yōu)秀框架層出不窮的當(dāng)下,就不再那么得人心了。
曾經(jīng)接觸過Theano的一位開發(fā)者表示,Theano的速度在當(dāng)時(shí)來說,與同期的Torch相比并不算快,更比不上現(xiàn)在新出的框架。此外,在代碼實(shí)現(xiàn)上,比起其他框架,Theano也不是很直接。
2015年,一個關(guān)于機(jī)器學(xué)習(xí)的博客fastML就將Torch與Theano進(jìn)行了對比:
圖中紅色柱狀圖指Torch,綠色柱狀圖指Theano,可以看到Torch在大多數(shù)情況下性能都要優(yōu)于Theano。
而對于使用Theano的原因,卡內(nèi)基梅隆大學(xué)(CMU)語言技術(shù)研究所(LTI)博士研究生王赟對AI科技評論表示,他是2015年初開始做深度學(xué)習(xí)的,那時(shí)候還沒有Tensorflow,而同時(shí)期的Torch又是基于他不會的Lua語言,所以最終選擇了Theano。“才短短兩年多,就已經(jīng)天翻地覆”,他感慨道。確實(shí)如此,短短兩年的時(shí)間,TensorFlow的用戶量就遙遙領(lǐng)先,亞馬遜開始為Mxnet背書,微軟和 Facebook 也牽手發(fā)布ONNX,而Theano則黯然退出歷史舞臺。
Theano并非完全消失
那么,就像之前媒體所報(bào)道的那樣,Theano已死?并非如此。
Bengio在他的公開郵件上這樣寫道,“多年以來,我們都以 Theano 的創(chuàng)新深感自豪,其創(chuàng)新也正被其他框架繼承和優(yōu)化。比如,把模型表達(dá)為數(shù)學(xué)表達(dá)式、重寫計(jì)算圖以獲得更優(yōu)性能和內(nèi)存使用、GPU 上的透明執(zhí)行、更高階的自動微分,正在全部成為主流?!?/p>
正如Bengio所言,從現(xiàn)在的主流模型之中,我們?nèi)匀豢梢钥吹絋heano的影子。它并沒有死,而是影響著許許多多的模型。
事實(shí)上,Theano的很多開發(fā)人員都去谷歌參與TensorFlow的開發(fā)了,其中包括早期開發(fā)成員Ian Goodfellow。而后起之秀Tensorflow在功能上與Theano十分相似,它也是一個偏底層的框架,相比Theano,性能也更加優(yōu)化。
上圖為TensorFlow系統(tǒng)架構(gòu),詳情可參見雷鋒網(wǎng)【從系統(tǒng)和代碼實(shí)現(xiàn)角度解析TensorFlow的內(nèi)部實(shí)現(xiàn)原理】一文。
AWS工程師張幟對AI科技評論表示:新老交替,這一天總會來的。基本上所有的輪子都參考過Theano,它也不算徹底消失。
知乎網(wǎng)友mileistone 也如此評價(jià)Theano:Theano開啟了基于符號運(yùn)算的機(jī)器學(xué)習(xí)框架的先河,然后隨著tf和pytorch的崛起,完成自己的歷史任務(wù)。
下一步
Bengio在他的郵件中表示,目前支持深度學(xué)習(xí)研究的軟件生態(tài)系統(tǒng)快速進(jìn)化,還有很多別的優(yōu)秀的深度學(xué)習(xí)框架可供選擇。
而隨著對「Theano停止更新」的緬懷結(jié)束,似乎話題又要轉(zhuǎn)向另一個方向了,那就是,究竟下一步該選擇什么框架呢?
討論雖多,每家各執(zhí)一言,但有個不爭的事實(shí):TensorFlow的忠實(shí)擁護(hù)者一直處于遙遙領(lǐng)先狀態(tài),有利于快速建模驗(yàn)證的Keras也頗得人心,后起之秀PyTorch的粉絲數(shù)日益增多,背靠亞馬遜的MxNet、背靠微軟的CNTK更新也一直穩(wěn)定。
不過對框架的選擇也許并不是重點(diǎn),有網(wǎng)友評價(jià),框架就是刻刀,而開發(fā)者是雕刻家。雖說刻刀的選擇很重要,但雕出來的東西好不好,更多是取決于個人。
CMU LTI博士研究生王赟也對AI科技評論這樣說道:
其實(shí)這么多年我看著各種庫的起起落落,還有一種感慨是研究者不能始終抱著一個大腿,要與時(shí)俱進(jìn)。但是時(shí)代的潮流在哪里也不是隨時(shí)都能看出來的,也沒法時(shí)刻保持自己在前沿,但好在掌握了一個庫之后再換另一個庫并不是很費(fèi)勁。
相信這也是千千萬萬開發(fā)者的觀點(diǎn),框架的選擇并沒有「那么」重要,更重要的是研究者自身的與時(shí)俱進(jìn)。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。