深度學習哪家強?用資料來一較高下吧

xulinlucas發表於2019-02-22

作者介紹:blmoistawinde,喜歡有意思的資料探勘分析,本文首發於:https://blog.csdn.net/blmoistawinde

前言

本人現在還是一個初識深度學習的小白。初學者總是會面臨選擇的糾結,尤其是對看似高深的深度學習,有著眾多開源框架可供選擇,但自己又沒有能力評估。於是我看了許多比較文章,其中涉及各種層面的比較(資料結構、使用範圍、實現細節),讓姿勢水平還遠遠不夠的我看得眼花繚亂。

作為一個資料玩家,我想到,不妨讓它們在大資料的戰場上一較高下。這樣我們就能夠很輕鬆地從清晰的資料中作出我們的選擇了。

參賽選手


以下是參賽的選手們,是我瞭解的python上的一些著名深度學習框架:

● Google支援的tensorflow

● Facebook支援的pytorch

● 高層封裝,簡單易用的Keras

● 微軟加持的CNTK

● 亞馬遜選擇的mxnet

● 百度打造的PaddlePaddle

● 最老牌的Theano

比賽規則

資料來自Github上這些框架的repo。上面Star數等資料,雖然不是框架好壞的直接反應,但肯定體現了潮流。跟著潮流走總不會有大錯,就算學藝不精,總還能和別人談笑風生。

深度學習哪家強?用資料來一較高下吧

然而star是一個累計量,還不能完全反映這些框架的近期熱門度。這時,我們可以找到"Insight"欄目中的"Pulse"介面。正如它形象的名字(脈搏),其中有著一些能夠反應其近期活躍度的資料,以tensorflow為例:

深度學習哪家強?用資料來一較高下吧

其中Active PRs可以反映近期開發者的活躍度,而Active Issues可以反映近期的使用者的活躍度(用的人越多問題總會越多嗎)。

同樣,讓我們再為老態龍鍾的Theano“把把脈”:

深度學習哪家強?用資料來一較高下吧

儘管Theano因為歷史原因累計了不少star,但是因為已經官宣停更,近期很少有活動,奄奄一息。因此,它已經在我們的比賽中提前出局。

綜上,我為剩下的選手指定了這些“比賽規則”:

● 名聲:直接用Star來衡量

● 流行度:直接用Active Issues來衡量

● 開發活力:反映框架完善提升的潛力。用Active PRs / Star來衡量。除以Star的原因是考慮到專案越大,做的開發工作肯定會更多,所以要做一個修正。

● 使用活力:反映框架的相對其規模的流行度,較大的話也許可以期待使用者數的繼續增長。用Active Issues / Star來衡量。

比賽結果


01   名聲

深度學習哪家強?用資料來一較高下吧

Tensorflow一騎絕塵,好用的keras也有不少簇擁,接著是pytorch等其他框架。


02   流行度

深度學習哪家強?用資料來一較高下吧

此處tensorflow依然是老大,但pytorch後來居上,接近能和tensorflow分庭抗禮了。這也與我近期的觀感接近,近期開源的許多強大的NLP模型都提供了基於pytorch的實現,相信也帶動了其熱度。剩下keras,mxnet,paddlepaddle的流行度差不多,但還有一位CNTK,流行度與以上完全不在一個數量級上,這是要涼的節奏嗎?我不能猜測具體原因。

03  活力

深度學習哪家強?用資料來一較高下吧

在這個指標下,百度的PaddlePaddle表現亮眼,雖然有分母(star)較少的因素,但是其很高的開發活躍度還是會讓人期待其未來的發展,pytorch和mxnet也是同理,特別是pytorch使用活躍度極高,相信與近期基於其上的許多開源專案吸引了許多使用者不無關係。tensorflow和keras的使用者基數比較大,也相對成熟,活力較低。CNTK在此處依然涼涼……

總結

本文不作為專業的建議,但希望能對跟我一樣選擇困難的深度學習小白提供一些幫助,比如我現在就對pytorch很感興趣了。不知道大家心中最好的框架又是什麼呢?

我也做了一個以上圖表的每日更新皮膚:

也許框架的更新,會讓大牛們現在的基於技術的優劣分析不再適用,但我相信實時的潮流總會有一定的參考價值。曾經深度學習是TF的一家獨大,現在PyTorch大有異軍突起之勢。或許我們可以時時看看這些框架們的戰局,雖然還只是個吃瓜群眾,但我很期待看看一年後深度學習框架的潮流又會如何呢?


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31555699/viewspace-2636699/,如需轉載,請註明出處,否則將追究法律責任。

相關文章