丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
人工智能開發(fā)者 正文
發(fā)私信給汪思穎
發(fā)送

0

迎來 PyTorch,告別 Theano,2017 深度學習框架發(fā)展大盤點

本文作者: 汪思穎 編輯:郭奕欣 2017-12-31 21:54
導語:新框架橫空出世,舊的框架也逐漸退出歷史舞臺

深度學習是機器學習中一種基于對數據進行表征學習的方法,作為當下最熱門的話題,谷歌、Facebook、微軟等巨頭紛紛圍繞深度學習做了一系列研究,一直在支持開源深度學習框架的建設。

過去一年間,在這些巨頭的加持下,深度學習框架格局發(fā)生了極大改變:新框架橫空出世,舊的框架也逐漸退出歷史舞臺,而框架與框架之間的聯系也更加緊密,生態(tài)更為開放。這一年,雷鋒網 AI 科技評論也在時刻關注著這些發(fā)展和變化,下面這些話題,每一個都引起了開發(fā)者此起彼伏的討論:

  • Facebook 開源 PyTorch,成為 TensorFlow 強敵

  • Theano 完成歷史使命,功成身退

  • ONNX 開放平臺橫空出世,力圖促進開放的開發(fā)生態(tài)

  • CNTK,Keras,MXNet 均迎來重大更新

  • 微軟攜手亞馬遜推出 Gluon 深度學習庫,英特爾推出增強學習框架 Coach

  • 針對移動終端,Caffe2 和 TensorFlow Lite 先后開源

接下來,雷鋒網 AI 科技評論會盤點上述機器學習框架之間的重大發(fā)展和改變,以饗讀者。

Facebook 開源 PyTorch,以風起云涌之勢占領開發(fā)者社區(qū)

迎來 PyTorch,告別 Theano,2017 深度學習框架發(fā)展大盤點

2017 年初,Facebook 在機器學習和科學計算工具 Torch 的基礎上,針對 Python 語言發(fā)布了全新的機器學習工具包——PyTorch。PyTorch 實際上是 NumPy 的替代,它支持 GPU,有著更高級的功能,可以用來構建和訓練深度神經網絡。一經發(fā)布,它便受到廣泛關注和討論。經過將近一年的發(fā)展,目前 PyTorch 已經成為從業(yè)者最重要的研發(fā)工具之一。

年初發(fā)布 PyTorch 時,Facebook 曾表示,「它有望輔助、或在一定程度上替代現有的 Python 數學庫(比如 NumPy)?!鼓壳皝砜?,PyTorch 的使用越來越廣泛,這一預言成為現實。

在眾多開發(fā)者眼中,PyTorch 是 TensorFlow 之外一個非常好的選擇。

以下為 PyTorch 主要優(yōu)勢:

  • 它處于機器學習第一大語言 Python 的生態(tài)圈之中,使得開發(fā)者能接入廣大的 Python 庫和軟件。因此,Python 開發(fā)者能夠用他們熟悉的風格寫代碼,而不需要針對外部 C 語言或 C++ 庫的 wrapper,使用它的專門語言。

  • 不需要從頭重新構建整個網絡,它為改進現有的神經網絡提供了更快速的方法——采用動態(tài)計算圖(dynamic computational graph)結構,而不是大多數開源框架,比如 TensorFlow、Caffe、CNTK、Theano 等采用的靜態(tài)計算圖。

  • PyTorch 中用于數據加載的 API 設計得很好。接口在數據集、采樣器和數據加載器中有明確規(guī)定。數據加載器接收數據集和采樣器,根據采樣器的調度,在數據集上生成迭代器。加載并行數據就像把 num_workers 語句傳遞到數據加載器一樣簡單。

  • 采用了定制的 GPU 內存分配器。這使得開發(fā)者的深度學習模型能夠有「最大限度的內存效能」,訓練比從前更大的深度神經網絡。

GitHub 地址:https://github.com/pytorch/pytorch

TensorFlow 遇強敵,引入動態(tài)圖機制等多個更新

迎來 PyTorch,告別 Theano,2017 深度學習框架發(fā)展大盤點

TensorFlow 是 Google 于 2015 年底推出的深度學習框架。過去兩年間,它在開發(fā)者社區(qū)享有盛譽,目前已成為最為常用的深度學習框架。它的功能全,社區(qū)好,因此使用率也一直穩(wěn)定保持領先。而隨著 PyTorch 等框架的橫空出世,因為文檔和接口混亂,使用繁瑣等缺點,TensorFlow 廣受詬病。

在 2017 年,開發(fā)團隊不斷為 TensorFlow 引入新的功能:年初發(fā)布 TensorFlow 1.0,實現對 Keras 的全面支持;年底引入 Eager Execution 動態(tài)圖機制,讓開發(fā)變得更加簡單和直觀。

以下為 TensorFlow 被大家廣為稱贊的優(yōu)點:

  • TensorFlow 的 Saver 對象很容易使用,并為檢查點(check-pointing)提供了更多選擇。

  • 在序列化中,TensorFlow 的主要優(yōu)點是可以將整個圖保存為協議緩沖區(qū)。這包括參數和運算。此外,該圖可以通過其他支持的語言 (C++,Java) 加載。這對不支持 Python 的調度棧來說至關重要。理論上,在改變模型源代碼之后,你想要運行舊模型時它也能有所幫助。

  • 支持移動和嵌入式部署,雖然將 TensorFlow 部署到 Android 或 iOS 上需要大量的工作,但不必用 Java 或 C++重寫模型的整個推理程序。

此外,TensorFlow Serving 支持高性能的服務器端部署,可以支持用戶輕松地換用模型而不會降低服務性能。

另外,它在年底引入 Eager Execution——一種命令式、由運行定義的接口,一旦從 Python 被調用可立即執(zhí)行操作,這使得 TensorFlow 的入門學習變得更簡單,也使得研發(fā)工作變得更直觀。

GitHub 地址:https://github.com/tensorflow/tensorflow

Theano 完成歷史使命,功成身退

迎來 PyTorch,告別 Theano,2017 深度學習框架發(fā)展大盤點

作為深度學習框架中祖師級的存在,由 Yoshua Bengio 主導的 Theano 在完成自己的歷史使命之后,退出歷史舞臺。

據雷鋒網 AI 科技評論了解,Theano 基于 Python,是個擅長處理多維數組的庫(這方面類似于 NumPy),它的設計初衷是執(zhí)行深度學習中大規(guī)模神經網絡算法的運算。大家可以把它理解為一個數學表達式的編譯器:用符號式語言定義你想要的結果,該框架會對你的程序進行編譯,來高效運行于 GPU 或 CPU。

在過去的很長一段時間內,Theano 都是深度學習開發(fā)與研究的行業(yè)標準。比起深度學習庫,它更像是一個研究平臺,需要開發(fā)者從底層開始做許多工作,來創(chuàng)建自己需要的模型。Theano 早期的開發(fā)者有 Yoshua Bengio 和 Ian Goodfellow,由于出身學界,它最初是為學術研究而設計。

對于 Theano 的退出,有開發(fā)者這樣評價,「它開啟了基于符號運算的機器學習框架的先河,然后隨著 TensorFlow 和 PyTorch 的崛起,完成自己的歷史任務。」

Bengio 在告別郵件中表示:

支持深度學習研究的軟件生態(tài)系統快速進化,且狀態(tài)良好;開源軟件成為規(guī)范,還有很多別的深度學習框架可選,滿足著從探索全新想法到將其部署實現的全部需求;在激烈競爭中,行業(yè)參與者們支持著不同的軟件堆棧。

多年以來,我們都以 Theano 的創(chuàng)新深感自豪,其創(chuàng)新也正被其他框架繼承和優(yōu)化。比如,把模型表達為數學表達式、重寫計算圖以獲得更優(yōu)性能和內存使用、GPU 上的透明執(zhí)行、更高階的自動微分,正在全部成為主流。

在這一背景下,我們認為繼續(xù)維護 Theano 不再是推動全新研究與應用的最佳方式。即使來自學界、業(yè)界的貢獻與支持在不斷增加,但維持陳舊的代碼庫已經成為了創(chuàng)新的阻礙。

Theano 雖然已經停止更新了,但基本上所有的框架都參考過 Theano,它并不算徹底消失。

GitHub 地址:https://github.com/Theano/Theano

Facebook 聯手微軟推出 ONNX 標準,共筑開放 AI 生態(tài)

迎來 PyTorch,告別 Theano,2017 深度學習框架發(fā)展大盤點

2017 年 9 月,Facebook 聯手微軟發(fā)布了一個全新的開源項目——ONNX(Open Neural Network Exchange),欲借此打造一個開放的深度學習開發(fā)工具生態(tài)系統,讓不同的神經網絡開發(fā)框架做到互通互用。目前,CNTK,PyTorch , Caffe2,MXNet 已宣布支持 ONNX。

為何要共同打造 ONNX 開放平臺?

目前的開發(fā)現狀如下:大體上,每個框架都會針對某個特定屬性進行優(yōu)化,比如訓練速度、對網絡架構的支持、能在移動設備上推理等等。在大多數情況下,研發(fā)階段最需要的屬性和產品階段是不一樣的。而在任意一個框架上訓練的神經網絡模型,無法直接在另一個框架上用。開發(fā)者需要耗費大量時間精力把模型從一個開發(fā)平臺移植到另一個。這導致效率的降低以及進度延遲。

而借助 ONNX,開發(fā)者能實時跟蹤某個神經網絡是如何在框架上生成的,接著,使用這些信息創(chuàng)建一個符合 ONNX 標準的通用計算圖。大家能更方便地在不同框架間切換,為不同任務選擇最優(yōu)工具。使用支持 ONNX 表示方式的框架,大幅簡化了切換過程,讓開發(fā)者的工具選擇更靈活。

GitHub 地址:https://github.com/onnx/onnx

微軟基于 CNTK,推出 CNTK 2

迎來 PyTorch,告別 Theano,2017 深度學習框架發(fā)展大盤點

2016 年初,微軟開源 CNTK 深度學習工具包。作為語音識別領域聲名卓著的開發(fā)工具,CNTK 具有相當不錯的可擴展性、速度和精確性。

2017 年 6 月,微軟在 GitHub 上放出了 CNTK 的第一個候選(RC)版本,完成內測。在 Blog 中,微軟表示,CNTK 是一個針對深度學習的系統,可以用來加速諸如語音、圖像識別以及搜索相關性(search relevance)等領域相關研究,并可運行于 CPU 或英偉達 GPU。此外,CNTK 既可本地運行,也可在云端基于 Azure GPU 運行。

在 6 月更新的這一版本中,Layers 算法庫得到了大幅升級。大量的通用「layers」已預定義,使編寫包含標準層級的簡單網絡變得十分容易。新的 Cognitive Toolkit 評估算法庫在易用性和性能上也得到大幅升級。

此后,在 2.0 的多個 Beta 和 RC 版本中,微軟逐步更新了 CNTK 對 Python、C++、C#、Java 等的 API 支持,對 Keras 的后端支持等新功能。在 2.1 中,cuDNN 版本升級到 6.0,支持 Universal Windows Platform。在 2.2 中,微軟又做了許多模型支持相關的改進。

在 2017 年底的 2.3 版本中,又有如下幾個改進:提供了對 ONNX 標準的更好支持,分布式訓練支持切換到 NCCL2,改進了 C# API 的支持,增加了網絡優(yōu)化 API,以及更快的稀疏 Adadelta。

GitHub 地址:https://github.com/Microsoft/CNTK

Keras 2 帶來驚喜,與 TensorFlow 聯系更加緊密

迎來 PyTorch,告別 Theano,2017 深度學習框架發(fā)展大盤點

Keras 是一個崇尚極簡、高度模塊化的神經網絡庫,于 2015 年 3 月發(fā)布。

2017 年 3 月,keras 迎來全新版本——Keras 2。Keras 開發(fā)人員此前在博客中表示,他們更愿意人們將 Keras 視為一種通用的 API 規(guī)范,而不僅僅是一個代碼庫。當時,開發(fā)人員將此前的 Keras 實現歸結為兩個大類:

  • TensorFlow 的內部實現,即 TensorFlow 1.0 版本中發(fā)布的 tf.keras 模塊——完全基于 TensorFlow 編寫,并且與所有 TensorFlow 功能深度兼容;

  • 通用實現,兼容多種運行后端,包括 Theano 和 TensorFlow 等(將來可能會支持更多其他的后端)。

3 月的版本中,最重要的一項內容就是增強了 Keras 與 TensorFlow 的邏輯一致性。另一項重要更新就是 API 的變化。他們重新設計了絕大部分 API,為將來的擴展和更新預留了充足的修改空間,并且新設計的 API 完全兼容于谷歌 TensorFlow 規(guī)范。

而在 2017 年 8 月,Keras 又做了如下幾點更新:修復漏洞,性能提升,文件改善,為在 TensorFlow 的數據張量(比如 Datasets, TFRecords)上訓練模型提供了更好的支持,提升 TensorBoard 用戶體驗,提升測試覆蓋范圍。此外,還迎來兩個重大變化:一是讓約束管理(constraint management)基于變量屬性;二是把層和模型中已經不再使用的約束屬性移除(不會影響任何用戶)。

GitHub 地址:https://github.com/keras-team/keras

微軟攜手亞馬遜推出 Gluon 深度學習庫,全面支持符號式和命令式編程

迎來 PyTorch,告別 Theano,2017 深度學習框架發(fā)展大盤點

2017 年 10 月,微軟攜手亞馬遜推出全新 Gluon 深度學習庫。它是一個支持符號式和命令式編程的 API,在創(chuàng)造深度學習模型的過程中能極大的簡化進程,而不會使訓練速度減慢。據悉,Gluon 能讓開發(fā)者更簡單的學習、規(guī)定和調試深度神經網絡,也可以讓接下來的迭代和保持更加簡單,也支持開發(fā)作者快速構建和訓練神經網絡。目前 Gluon 已全面支持亞馬遜 MXNet,接下來也將支持 CNTK,主要的亮點如下:

  • 對于高級用戶,Gluon 支持很多復雜技術,如動態(tài)圖和靈活結構。

  • Gluon 包含完全的符號化的自動微分代碼,這些代碼已經被程序執(zhí)行了,也包括控制流。Gluon 通過 hybridization 實現這一點:靜態(tài)計算圖先被計算出來,然后在隨后的迭代中緩存和重用。計算圖也可以被導出,例如給移動設備提供服務。

  • 自帶一個豐富的內嵌層庫,通過重用庫中預建的構件,可以大大簡化規(guī)定復雜模型架構的任務。

  • Gluon 支持循環(huán)和不規(guī)則張量(ragged tensors)(能批處理變長度序列),對于 RNN 和 LSTM 模型具有空前的效率。

  • 提供對稀疏和量化數據及操作的全面支持,可以用于計算和通信。稀疏性在 NLP 領域的深度神經網絡中非常常見,而量化對于運行時性能評估至關重要。

  • 雖然在單個 GPU 上進行調度很容易,但在多個 GPU 上操作要復雜得多。通過 MXNet 或 CNTK 后端,Gluon 在符號式和命令式模式下都提供自動分配。

GitHub 地址:https://github.com/gluon-api/gluon-api/

背靠亞馬遜,MXNet 繼續(xù)改進

迎來 PyTorch,告別 Theano,2017 深度學習框架發(fā)展大盤點

MXNet 由華盛頓大學和卡內基梅隆大學的研究人員聯合發(fā)起,2016 年底,它被 Amazon AWS 選為官方深度學習平臺。

它的作者李沐曾表示,

MXNet 最早就是幾個人抱著純粹對技術和開發(fā)的熱情做起來的興趣項目,既沒有指望靠它畢業(yè),也沒想著用它賺錢。

能夠一步一步慢慢的擴大,我覺得最重要的是每個小伙伴對這個事情的投入,和抱著降低深度學習門檻的使命。也是讓大家只需要關心「數據量和運算量」,而不是如何有效實現利用硬件;只需要「數學公式寫好,根本就不想知道你支持哪些 layer,分別是干什么的」,不用管自動求導如何訓練;只需要「把手上的數據交出去給云即可,然后花錢租算力」,而不是云上如何管理如何優(yōu)化。

在 2017 年,開發(fā)人員一直在不斷改進和優(yōu)化該框架,目前 MXNet 已經迎來 1.0.0 版。

MXNet 于2017年8月加入了動態(tài)圖接口 Gluon,于 2017 年 11 月加入 ONNX 開放體系。

MXNet 主要有如下 3 方面的優(yōu)勢:

  • 效率:節(jié)省計算資源,資源利用效率高;

  • 速度:可以隨著機器和 GPU 的擴展呈線性增長,而且在單臺機器上也有很高的效率;

  • 簡單易用:同時支持命令式編程(imperative programming)和聲明式編程(declarative programming)

GitHub 地址:https://github.com/apache/incubator-mxnet

Intel 開源 Coach,用于訓練和評估增強學習 Agent

迎來 PyTorch,告別 Theano,2017 深度學習框架發(fā)展大盤點

2017 年 10 月,英特爾開源增強學習框架 Coach。該框架利用多核 CPU 處理能力,用于訓練和評估增強學習 Agent。

Coach 包含許多 Agent 類型的實現,包括從單線程實現到多線程實現的無縫轉換。Agent 以模塊化方式實現,以允許重用不同的構建塊來構建新的和更復雜的代理。此外,Coach 可以在單個任務的基礎上編寫新的 Agent,并切換到同步或異步的多任務實現,并進行最少的更改。

它的主要特點如下:

  • 包含一些領先的增強學習算法的多線程實現,適用于各種游戲和機器人環(huán)境。它能夠在臺式計算機上高效地訓練強化學習 Agent,而無需任何額外的硬件。

  • 可與如 OpenAI Gym、Roboschool 和 ViZDoom 等頂級環(huán)境進行集成,同時還提供了可視化培訓過程和了解 Agent 的基本機制的各種技術,所有的算法都是使用英特爾優(yōu)化的 TensorFlow 來實現的,也可以通過 Intel 的 neon?框架來實現。

GitHub 地址:https://github.com/NervanaSystems/coach

針對移動終端,Facebook Caffe2 VS 谷歌 TensorFlow Lite

迎來 PyTorch,告別 Theano,2017 深度學習框架發(fā)展大盤點

2017 年 4 月,Facebook 開源深度學習框架 Caffe2。根據官網介紹,它最大的特點就是輕量、模塊化和擴展性好。Caffe2 可以方便地為手機等移動終端設備帶來 AI 加持,讓 AI 從云端走向終端。

據 Caffe2 官方博客表示:

長期以來,提起 AI 模型的訓練和部署,人們通常都會聯想到大數據中心或超級計算機。之所以會出現這種現象,是因為小型計算設備在大規(guī)模圖像、視頻、文本和語音處理上具有明顯的短板,無論在速度還是可靠性上都遠遠不及大型數據中心。

因此在移動設備上部署 AI 模型,使其能夠快速準確地處理相關分析任務,一直是一項有待解決的難題。要解決這個難題,讓 AI 終端化,除了有賴于移動硬件平臺的發(fā)展之外,在軟件框架層面也需要一個靈活輕便的框架支持。

而 Caffe2 正是這樣一個框架。它是在此前流行的開源框架 Caffe 基礎上的重構和升級,一方面集成了諸多新出現的算法和模型,另一方面在保證運算性能和可擴展性的基礎上重點加強了框架在輕量級硬件平臺的部署能力。

GitHub 地址:https://github.com/caffe2/caffe2

迎來 PyTorch,告別 Theano,2017 深度學習框架發(fā)展大盤點

2017 年 11 月,谷歌發(fā)布 TensorFlow Lite 預覽版,與 Caffe2 類似,這款框架針對移動和嵌入式設備等。TensorFlow Lite 是一種全新的設計,具備如下三點特性:

  • 輕量級(Lightweight):支持機器學習模型的推理在較小二進制數下進行,能快速初始化/啟動。

  • 跨平臺(Cross-platform):可以在許多不同的平臺上運行,現在支持 Android 和 iOS。

  • 快速(Fast):針對移動設備進行了優(yōu)化,包括大大減少了模型加載時間、支持硬件加速。

TensorFlow Lite 支持 Android 神經網絡 API(Android Neural Networks API),當加速器(硬件設備)不可用時,TensorFlow Lite 會返回到 CPU 來執(zhí)行,它目前支持很多針對移動端訓練和優(yōu)化好的模型,如 MobileNet,Inception v3,Smart Reply。

開發(fā)人員也表示,TensorFlow Lite 應該被看作是 TensorFlow Mobile 的升級,它的功能有很多,目前仍處于緊鑼密鼓的開發(fā)階段。

地址:http://tensorflow.org/mobile/tflite

(完)

雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。

迎來 PyTorch,告別 Theano,2017 深度學習框架發(fā)展大盤點

分享:
相關文章

編輯

關注AI學術,例如論文
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說