您的位置:首頁>正文

2017年深度學習框架之間的競爭

摘要:本文總結並分析了2017年的相關深度學習框架之間的競爭, 包含一些主流的框架比如TensorFlow、PyTorch等, 以及一些相關的應用程式介面, 比如Keras等, 最後展望了下後續的發展。 歡迎廣大讀者留言說出自己支持的深度學習框架是哪一款呢。

在過去的兩年多時間裡, 各大公司或研究機構推出自己的深度學習框架, 比如Caffe、TensorFlow等, 並且關於深度學習相關的框架也在隨著時間不斷地發生變化。 Theano是第一個被廣泛使用的深度學習框架, 該框架是由深度學習領域中的大牛Yoshua Bengio牽頭、MILA創建。 然而, 在今年的九月份, MILA宣佈在2018年更新完最後一版Theano後,

將不再繼續開發該框架。 這一消息來得並不是很出人意外。 在過去的幾年裡, 一些不同的開源Python深度學習框架被引入, 這些深度學習框架通常是由一家大的科技公司或者來自於多家公司聯合開發。

與此同時, 谷歌公司開發的TensorFlow似乎成為了最為常用的深度學習框架,

一些專家預計, 谷歌的TensorFlow將會主導深度學習框架市場很多年。 然而, 一些其它類型的深度學習框架也逐漸吸引了越來越多的用戶, 最值得注意的是PyTorch深度學習框架。 PyTorch是由Facebook公司於2017年1月份開發的深度學習框架, 該框架是用C語言實現、Lua語言進行封裝, 並用Python語言完成GPU加速。 除了GPU加速以及高效的記憶體使用外, PyTorch受到歡迎的其它原因是其動態計算圖的使用, 這類動態計算圖已經被其它不主流的深度學習框架使用, 比如Chainer。 使用這些動態計算圖的優點是圖是通過運行起來才定義的, 而不像傳統的“定義並運行”模式, 尤其是輸入可變的情況下具有很大的優勢, 比如像文本一樣的非結構化資料等。

其它的科技巨頭也沒有坐以待斃, 微軟公司開發了一款內部深度學習框架CNTK, 並與2017年正式推出其第2.0版本並重命名為Microsoft Cognitive Toolkit。 同年, Facebook也推出了Caffe2, 該框架是眾所知周的Caffe框架的繼承人。 原始的Caffe框架是由伯克利大學視覺和學習中心開發, 依然被廣泛應用於電腦視覺領域,

並且還有一些成熟的模型參數能夠在Model Zoo中找到, 這些模型參數能夠用來遷移學習、初始化部分網路參數。 目前所知, Caffe2還沒有跟上Caffe的腳步。

另外一個流行的深度學習框架是MXNet, 該框架由微軟和亞馬遜兩大巨頭資助。 MXNet已經推出有一段時間了, 但當提到深度學習框架MXNet時, 經常有人會誤認為該框架只是針對於R語言的。 其實MXNet支援多種語言, 不僅包含R語言, 還包含其它的語言, 比如C++、Python、JavaScript及Go等。 MXNet的優勢在於其可擴展性及其高性能。

以上這些只是選擇了一些應用較為廣泛的深度學習框架來介紹, 還有一些其它的開源深度學習框架比如Deeplearning4j和Dlib(基於C++語言)。 此外, 谷歌的DeepMind於2017年發佈的Sonnet(基於TensorFlow運行的一個高層次物件導向的庫)。 值得一提的其它深度學習框架還有H2o.ai和Spark。

在所有的深度學習框架外, 還有些框架介面需要詳細介紹。 最為人知以及應用最為廣泛的應用介面毫無疑問是Keras, Keras是用Python寫的一個高層次的深度學習應用程式介面(API), 由穀歌公司的研究員 François Chollet 創建。 此外, 谷歌公司於2017年宣佈Keras已經被選定為TensorFlow的高級API, 這也意味著Keras將被包含於下一次發佈的TensorFlow版本中。除了TensorFlow外,Keras也能被用在Theano或CNTK中。

Keras 的強大在於它只需簡單地疊加多個層就能夠創建一個深度學習模型,當使用Keras時,用戶不必在層後面做數學運算。這看起來像是一個理想的快速原型製造機,並且Keras也成為了Kaggle競賽中的熱門工具。

因此,目前在一方面有高層次的Keras API,能夠讓你輕易地構建先進的深度學習模型;在另外一方面,有低層次的TensorFlow框架,能夠讓建模時變得更加靈活,這兩個項目都由穀歌公司支持。正如預期的那樣,其它公司也不甘人後,微軟和亞馬遜共同宣佈其Gluon API,Gluon是一個高層次的Python深度學習介面,目前支援MXNet框架,不久將支持微軟的CNTK框架。Gluon是Keras的直接競爭對手,雖然AWS(亞馬遜公司旗下雲計算服務平臺)聲稱它們強力支持所有的深度學習框架,但是AWS當然會支持Gluon在AI領域的競爭中獲勝。

出人意料的是,TensorFlow框架的最大競爭對手竟然似乎是PyTorch,社區中不斷增長對PyTorch框架的研究興趣,比如在最近的Kaggle競賽中,用戶經常選擇使用PyTorch框架作為其部分解決方案,同時也在最新的研究論文中被使用。在穀歌公司2017年10月發佈的最新TensorFlow版本中,引入了一個“運行後定義”的介面。穀歌公司希望這次版本的發佈能夠贏回那些喜歡PyTorch及其動態圖的使用者。

對於最流行的深度學習課程fast.ai的開發者而言,這次變化來得太晚了,fast.ai於9月份宣佈將從Keras和TensorFlow轉向PyTorch。fast.ai的創始者及Kaggle的首席科學家Jeremy Howard認為,PyTorch將能夠繼續保持領先的勢頭,時間會證明這個觀點是否正確。

目前存在這麼多深度學習框架,一些新手在選擇一個深度學習框架時會具有面臨一些挑戰。坦率地說,即使是經驗豐富的研究人員和開發人員都難以跟上最新進展的腳步。為了應對這個問題,微軟和Facebook發佈開源專案ONNX(開放神經網路交流),該專案旨在為涉及不同程式設計框架的神經網路創建一種共用的模型表示機制。比如,它允許你建立一個PyTorch模型並使用MXNet框架運行模型。

OXXN專案從一開始就支持Caffe2、Microsoft Cognitive Toolkit、MXNet以及PyTorch,但對於其它的開源項目也已增加了一個轉化器,比如TensorFlow等。

2017年有許多令人興奮的發展,這類似於深度學習和人工智慧領域的高速發展。很難去預測明年會發生一些什麼事情,但是我們可能會看到一些框架的合併。雖然,一些大型科技公司肯定希望使用並推廣自己開發的技術棧,但很高興看到由不同科技巨頭支持的不同深度學習框架相互推動,加快創新。後續將從速度、記憶體使用、可攜性和可擴展性等方面詳細地比較不同的深度學習框架,敬請期待。

作者資訊

Indra den Bakker,資料科學家、深度學習導師。

Linedin:https://www.linkedin.com/in/indradenbakker/

這也意味著Keras將被包含於下一次發佈的TensorFlow版本中。除了TensorFlow外,Keras也能被用在Theano或CNTK中。

Keras 的強大在於它只需簡單地疊加多個層就能夠創建一個深度學習模型,當使用Keras時,用戶不必在層後面做數學運算。這看起來像是一個理想的快速原型製造機,並且Keras也成為了Kaggle競賽中的熱門工具。

因此,目前在一方面有高層次的Keras API,能夠讓你輕易地構建先進的深度學習模型;在另外一方面,有低層次的TensorFlow框架,能夠讓建模時變得更加靈活,這兩個項目都由穀歌公司支持。正如預期的那樣,其它公司也不甘人後,微軟和亞馬遜共同宣佈其Gluon API,Gluon是一個高層次的Python深度學習介面,目前支援MXNet框架,不久將支持微軟的CNTK框架。Gluon是Keras的直接競爭對手,雖然AWS(亞馬遜公司旗下雲計算服務平臺)聲稱它們強力支持所有的深度學習框架,但是AWS當然會支持Gluon在AI領域的競爭中獲勝。

出人意料的是,TensorFlow框架的最大競爭對手竟然似乎是PyTorch,社區中不斷增長對PyTorch框架的研究興趣,比如在最近的Kaggle競賽中,用戶經常選擇使用PyTorch框架作為其部分解決方案,同時也在最新的研究論文中被使用。在穀歌公司2017年10月發佈的最新TensorFlow版本中,引入了一個“運行後定義”的介面。穀歌公司希望這次版本的發佈能夠贏回那些喜歡PyTorch及其動態圖的使用者。

對於最流行的深度學習課程fast.ai的開發者而言,這次變化來得太晚了,fast.ai於9月份宣佈將從Keras和TensorFlow轉向PyTorch。fast.ai的創始者及Kaggle的首席科學家Jeremy Howard認為,PyTorch將能夠繼續保持領先的勢頭,時間會證明這個觀點是否正確。

目前存在這麼多深度學習框架,一些新手在選擇一個深度學習框架時會具有面臨一些挑戰。坦率地說,即使是經驗豐富的研究人員和開發人員都難以跟上最新進展的腳步。為了應對這個問題,微軟和Facebook發佈開源專案ONNX(開放神經網路交流),該專案旨在為涉及不同程式設計框架的神經網路創建一種共用的模型表示機制。比如,它允許你建立一個PyTorch模型並使用MXNet框架運行模型。

OXXN專案從一開始就支持Caffe2、Microsoft Cognitive Toolkit、MXNet以及PyTorch,但對於其它的開源項目也已增加了一個轉化器,比如TensorFlow等。

2017年有許多令人興奮的發展,這類似於深度學習和人工智慧領域的高速發展。很難去預測明年會發生一些什麼事情,但是我們可能會看到一些框架的合併。雖然,一些大型科技公司肯定希望使用並推廣自己開發的技術棧,但很高興看到由不同科技巨頭支持的不同深度學習框架相互推動,加快創新。後續將從速度、記憶體使用、可攜性和可擴展性等方面詳細地比較不同的深度學習框架,敬請期待。

作者資訊

Indra den Bakker,資料科學家、深度學習導師。

Linedin:https://www.linkedin.com/in/indradenbakker/

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示