0
本文作者: 汪思穎 | 2017-08-21 18:50 |
雷鋒網(wǎng)按:本文作者解浚源,原載于知乎,雷鋒網(wǎng)已獲其授權(quán)。
經(jīng)過3個(gè)月的開發(fā),MXNet 0.11版發(fā)布啦!0.11是MXNet正式加入Apache以后的第一個(gè)版本,官方網(wǎng)站搬到了Apache的服務(wù)器(注意:要在最上方Version處選擇master才能看到包含Gluon的最新文檔)。
這次最大的改進(jìn)是加入了動(dòng)態(tài)圖接口Gluon。Gluon學(xué)習(xí)了Keras,Chainer,和Pytorch的優(yōu)點(diǎn),并加以改進(jìn)。接口更簡單,且支持動(dòng)態(tài)圖(Imperative)編程。相比TF,Caffe2等靜態(tài)圖(Symbolic)框架更加靈活易用。同時(shí)Gluon還繼承了MXNet速度快,省顯存,并行效率高的優(yōu)點(diǎn),并支持靜、動(dòng)態(tài)圖混用,比Pytorch更快。
同時(shí)為了徹底解決MXNet文檔不全的弱點(diǎn),我們還特地邀請(qǐng)了前CMU知名教授Alex Smola和即將出任CMU教授的小網(wǎng)紅Zachary Lipton聯(lián)手為Gluon打造文檔!
Gluon采用Keras和Numpy風(fēng)格API,并且Layer可以自動(dòng)判斷輸入長度。用過Chainer和Pytorch的人想必都體會(huì)過每一層都要記住前一層輸出長度的麻煩,從卷積層到全連接層過渡時(shí)長度計(jì)算更是痛苦,往往要運(yùn)行一遍才知道。在Gluon里則沒有這種問題,每層只要指定輸出長度,輸入長度則可以由系統(tǒng)自動(dòng)計(jì)算。
深度學(xué)習(xí)框架大體分為兩類:以TensorFlow,caffe2為代表的靜態(tài)圖(Symbolic)框架和以Chainer,Pytorch為代表的動(dòng)態(tài)圖(Imperative)框架。靜態(tài)圖的優(yōu)勢在于速度快,省內(nèi)存,便于線上部署。而動(dòng)態(tài)圖框架的優(yōu)勢是靈活,易用,debug方便,特別是在自然語言處理和增強(qiáng)學(xué)習(xí)等領(lǐng)域,比起靜態(tài)圖框架有顯著優(yōu)勢。
Gluon同時(shí)支持靈活的動(dòng)態(tài)圖和高效的靜態(tài)圖,讓你在享受動(dòng)態(tài)編程的靈活易用的同時(shí)最小化性能的損失。而Gluon的HybridBlock和hybridize接口讓你可以在靜態(tài)動(dòng)態(tài)間一鍵切換。0.11版Gluon比0.20版Pytorch快10%以上,在未來的一兩個(gè)月我們會(huì)加入更多優(yōu)化,再提高10%以上的性能。
深度學(xué)習(xí)的教材和樣例雖多,但是教材往往重理論輕實(shí)踐,而樣例重實(shí)踐卻不系統(tǒng)。為了填補(bǔ)理論和實(shí)踐之間的空白,并一舉解決MXNet文檔不全的弱項(xiàng),我們特邀兩位CMU教授Alex Smola和Zachary Lipton為Gluon撰寫一部兼顧深度學(xué)習(xí)理論,動(dòng)手編程,和實(shí)戰(zhàn)應(yīng)用的文檔+教材。
Gluon教程包括深度學(xué)習(xí)理論講解和代碼實(shí)踐。前五章每個(gè)例子都包括了兩個(gè)版本。從零開始(from scratch)版本深入講解所有細(xì)節(jié),Gluon版本則著重演示高級(jí)封裝的靈活高效。建議剛開始接觸深度學(xué)習(xí)的同學(xué)從頭開始順序閱讀,而已經(jīng)有一定經(jīng)驗(yàn)的同學(xué)可以跳過基礎(chǔ)教程只看Gluon版。這套教程現(xiàn)在在Github上公開寫作,共計(jì)劃18章,已經(jīng)完成了前五章。印刷出版和中文翻譯也在計(jì)劃中。我們保證每天更新,絕不棄坑,歡迎大家試讀,也歡迎參與創(chuàng)作!
Tensorflow:Gluon同時(shí)支持靜態(tài)圖和動(dòng)態(tài)圖,在靈活性和速度上都有優(yōu)勢。但由于Gluon剛剛面市,在成熟度和線上部署方面還有不足??偟膩碚f在做深度學(xué)習(xí)研究的同學(xué)不妨一試。
Pytorch:Gluon與Pytorch的相似度很高,而Gluon獨(dú)特的靜、動(dòng)態(tài)圖混合功能可以在不犧牲靈活性的前提下提高性能。如果你喜歡pytorch的簡單易用又在乎性能,那么強(qiáng)烈建議你試一試Gluon。
Apache MXNet官方網(wǎng)站:https://mxnet.incubator.apache.org/
0.11 新特性:https://github.com/apache/incubator-mxnet/releases
安裝指南:https://mxnet.incubator.apache.org/versions/master/get_started/install.html
Gluon教程:http://gluon.mxnet.io/
Gluon講座PPT: https://github.com/zackchase/mxnet-slides/blob/master/kdd-mxnet-slides.pdf
Gluon深度學(xué)習(xí)樣例:https://github.com/apache/incubator-mxnet/tree/master/example/gluon
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。