lasagne,keras,pylearn2,nolearn深度學習庫,到底哪家強?

最好有lasagne,keras,pylearn2,nolearn這幾個的比較,張量和符號計算框架我已經選定使用theano了,上層的庫用哪個好呢?

首先要文檔儘可能詳盡的,其次要架構清晰,繼承和調用方便的。


基於Python的各個庫個人最喜歡的是Keras,對於各種計算模式都有很好的wrapper,所以如果要實現一些標準模型很趁手。我和Francois聊過,他對Keras的定位很明確:Keras是一個類似API層的存在,後端引擎的計算和優化是和前端模型分開的,所以可以根據需要換不同的後端。

為什麼後端可換是個好事?因為所有基於Theano的庫都會有一個潛在的問題,就是編譯時間很慢,Theano天生的。。。所以題主如果喜歡Python的話,不妨關注一下cgt:

Computation Graph Toolkit

實時編譯很快,簡單地說就是有Theano的功能,沒有Theano的軟肋。

最後容我惡搞一下,基於Python的library其實還有一個decaf,這個才叫比Pylearn2更加徹底的棄樓停止開發(逃


首先,Pylearn2 也能位列其中...

題主大概是百度了一個幾百年前的「經驗帖」吧..

其次,題主問的是「用哪個庫」。如果從「裝逼性」來說 那必然單單上手Theao 自己開心編編DNN是墜吼的.. 但是這麼回答真的很欠揍且學習曲線巨tm離譜...

然後呢,什麼lasagne,keras,passage啊等一堆庫 都是站在theano肩膀上的耶穌們而已... 他們極大地削弱了上手深度學習演算法的難度.. 換句話說就是:傻瓜式調用。其實用哪個都差不多。

記得今年倫敦一場深度學習峰會 有好事者po過一張python library的階級對比圖(正在搜索原圖中...)我清楚的記得lasagne是穩穩的第一名。從我目前接觸的層面來看 lasagne確實以其嚴謹的構架邏輯 與 較強的可適性,甚至已經捕獲了歐美一幫深度大牛的芳心。但是它方法命名與調用的各種用語習慣和專業術語跟我接觸的流派不同... 所以我很不想接受... (簡單的說就是 它的documentation與我本人氣場不符~)

還有,我是個看臉的人... lasagne主頁那套免費的模版..真是不忍直視...

於是當年的我果斷選擇了Keras~

至少他的主頁搞了個風格主題~

多年的經驗告訴我

顏值靠譜的公司 質量不會太差哦~

Keras的社區活躍程度和維護力度確實是讓我有點感動的。基本上issue可以做到24h內完美解答...唯一問題是 keras的維護們灰常清高 經常是自以為是的回答一下就關了issue.. 然而他們其實也並沒有解決問題... 還好用keras的孩子們都知道把open和close的issue都搜一圈... 要不然 真尼瑪問個問題就被秒回一臉「傻d你這都不懂」 然後石沉大海。

當然最好的武器 還是你自己的「私人庫」。畢竟你自己要做的項目有很多很多的定製化的東西 特別是keras本身還很初級。他們太注重「給傻瓜用」了,導致很多功能都很局限。你要是有些奇思妙想,比如給CNN搞個新的pipeline、給圖片做完預處理再送入CNN等.. 他們現有的methods是解決不了的。

所以嘛,最好的解決方案 是去Github上fork他們,自己開個吊吊的branch,起個吊吊的名字,modify一些自己覺得驚為天人的新玩法。

結局也無怪乎

分分鐘被人f*k了..

或者分分鐘改變了世界..

對不~


可惜現在的所有深度學習庫無論是 tensorflow, theano, keras, tflearn, torch, lasagne, caffe 都只是提供 neural network框架。而沒有提供開源任何的 reinforcement learning 框架。

最近開源的 TensorLayer 是唯一一個支持 reinforcement learning 的庫,而且是基於TensorFlow開發的。


Theano + lasagne很好用,結構清晰。自己嘗試寫各種layer後再看看lasagne源碼會有豁然開朗的感覺。


不知道哪家最強,只知道pylearn2最爛。曾經花了大概一個月的時間學過,簡直噩夢,還好停止開發了。


用下了Keras,API著實優雅,計劃用Theano+Keras了,後期想轉Tensorflow+Keras,Theano的速度簡直== 至於為啥沒用Lasagne……我擔心深夜寫代碼會餓。。。


keras應該是最容易上手的深度學習框架,純python的特性使得閱讀和修改源代碼都非常方便,畢竟python比C++不知道簡單到哪裡去了。文檔也比較齊全,目前支持Theano+keras和Tensorflow+Keras。

本人製作了keras的中文文檔,包含更多的使用指導和說明,歡迎訪問:

http://keras-cn.readthedocs.io/en/latest/


bug全都一堆一堆


你在這提問的話我估計過一會mxnet吹就要來了


看github上的統計的貢獻者數量, issues跟星星等, 先去人多的地方, 用了不合適再換人少一點的, 我自己是用這方式選了keras

提一下pylearn2是失敗作, 主要開發者承認過度工程


nolearn+Theano+lasagne


這問題就是遞歸,直至棧爆!


pylearn2已經停止開發,就沒關注過;如果主要為了使用定製好的模塊,keras極其方便,上手容易,更新頻率還不錯,現在除了theano還支持tensorflow了,有問題可在keras-users或github提問;lasagne沒用過,blocks可以直接從寫好的computationgraph()調用theano.function,這樣與theano寫的代碼結合使用挺方便的,而且還有attention的模塊(我就是為了這個才看blocks的,我試著用keras寫過,簡直累死),不過它讀取數據的模塊fuel覺得挺複雜的,現在版本才更新到0.1.1,配置環境比keras要麻煩一些,僅供參考。另外推薦關注一下mxnet,粗略試過,顯存佔用率低,編譯速度比theano快很多,不過想實現自定義功能相比於基於theano的會麻煩些


個人推薦lasagne,結構清晰,擴展容易。

當然,前提條件是你願意花點時間去讀源碼,理解lasagne裡層與層之間是怎麼構建聯繫的。我相信這個過程對你進一步熟悉和使用theano也會很有幫助。

lasagne的文檔可能比不上keras,主要是實例稍微少了點,有時候僅看API有點迷糊,需要結合源碼去理解。


Theano+Keras


caffe呢


推薦閱讀:

[requests,pyquery]爬取獵聘網職位信息
三分鐘學會Scrapy選擇器(selectors)
敲敲級簡單的鑒別H圖片的小程序
pandas操作——合併數據集
如何優雅的「輪帶逛」初級篇——獲取單張圖片

TAG:Python | 深度學習DeepLearning |