大家知道,深度學(xué)習(xí)的發(fā)展和推進(jìn),在某種程度上也是一場(chǎng)框架的爭(zhēng)奪戰(zhàn),其中 Google 發(fā)布的 TensorFlow 和 Facebook 主力支持的 PyTorch 是最耀眼的兩顆明星。我們今天就來(lái)看看其中一位明星 PyTorch,看看它為何值得學(xué)。
PyTorch 強(qiáng)調(diào)從研究到生產(chǎn)。來(lái)源:https://pytorch.org/
根據(jù)官網(wǎng)介紹,PyTorch 是一個(gè)開(kāi)源的深度學(xué)習(xí)平臺(tái),提供從研究原型到生產(chǎn)部署的無(wú)縫路徑(An open source deep learning platform that provides a seamless path from research prototyping to production deployment)。
PyTorch 的流行度僅次于 TensorFlow。而最近一年,在 GitHub 關(guān)注度和貢獻(xiàn)者的增長(zhǎng)方面,PyTorch 跟 TensorFlow 基本持平。甚至,PyTorch 的搜索熱度持續(xù)上漲,加上 FastAI 的加持,PyTorch 無(wú)疑會(huì)得到越來(lái)越多的機(jī)器學(xué)習(xí)從業(yè)者的青睞。
流行度雖然可以說(shuō)明問(wèn)題,但是,你一定要知道更多,才能明白 PyTorch 為什么值得學(xué),你在什么情況下需要學(xué)習(xí) PyTorch 。
PyTorch 關(guān)鍵發(fā)展節(jié)點(diǎn)
2017 年 1 月,F(xiàn)acebook AI 研究團(tuán)隊(duì)發(fā)布 PyTorch,一個(gè)基于 Torch 的 Python 工具包,專門用于 GPU 加速的深度學(xué)習(xí)編程。
2017 年 8 月,PyTorch V 0.2.0 發(fā)布,引入廣播、高級(jí)索引、高階梯度、新圖層,以及分布式訓(xùn)練等,前兩者進(jìn)一步方便了 Tensor 與 Numpy 互轉(zhuǎn)。
2018 年 4 月,Caffe2 代碼合并到 PyTorch。Facebook 打算將 PyTorch 的研究特性與 Caffe2 的生產(chǎn)特性更好地結(jié)合起來(lái)。
2018 年 4 月,PyTorch V 0.4.0 發(fā)布,新特性包括 Tensor 和 Variable 合并,強(qiáng)化 Numpy 風(fēng)格的 Tensor 構(gòu)建等,并正式支持 Windows 系統(tǒng)。
2018 年 10 月,PyTorch V 1.0.0 發(fā)布,融合 PyTorch 自身靈活性、研究?jī)?yōu)勢(shì)與 Caffe2 的后端與應(yīng)用能力、ONNX 的框架轉(zhuǎn)換能力于一體;同時(shí) FastAI V1.0 發(fā)布,可用單一 API 玩轉(zhuǎn)常見(jiàn)深度學(xué)習(xí)應(yīng)用,大大降低了深度學(xué)習(xí)的學(xué)習(xí)門檻。
2019 年 5 月,PyTorch V 1.1 發(fā)布,提供了新的 API,原生支持 TensorBoard 和自定義循環(huán)神經(jīng)網(wǎng)絡(luò),并提升了性能。
PyTorch 剛走過(guò)了 2 年 4 個(gè)月的時(shí)間,發(fā)展相當(dāng)迅速。
PyTorch 當(dāng)前穩(wěn)定版及相關(guān)配置。來(lái)源:https://pytorch.org/
受歡迎程度
Jeff Hale 4 月份在 Medium 上發(fā)表了一篇文章,比較了 TensorFlow、PyTorch、keras 和 FastAI 的流行度,全面涵蓋職位需求、使用、學(xué)術(shù)研究和興趣等維度。
Jeff 根據(jù)多個(gè)招聘網(wǎng)站在線職位搜索、Google Trends、GitHub 活躍度、Arxiv 文章數(shù)、Medium 文章數(shù)、Quora 相關(guān)問(wèn)題關(guān)注人數(shù)統(tǒng)計(jì)計(jì)算出了一個(gè)綜合的增長(zhǎng)分?jǐn)?shù)。我們這里引用一下最終結(jié)果圖片:
深度學(xué)習(xí)框架半年增長(zhǎng)分?jǐn)?shù)。(2018 年 10 月-2019 年 3 月)
可以看到 TensorFlow 穩(wěn)居第一,而 PyTorch 表現(xiàn)也非常搶眼,未來(lái)的需求和發(fā)展非常值得期待。
PyTorch 核心優(yōu)勢(shì):動(dòng)態(tài)計(jì)算圖
PyTorch 是一款強(qiáng)大的動(dòng)態(tài)計(jì)算圖模式的深度學(xué)習(xí)框架。大部分框架是靜態(tài)計(jì)算圖模式,其應(yīng)用模型在運(yùn)行之前就已經(jīng)確定了,而 PyTorch 支持在運(yùn)行過(guò)程中根據(jù)運(yùn)行參數(shù)動(dòng)態(tài)改變應(yīng)用模型。
可以簡(jiǎn)單理解為:一種是先定義后使用,另一種是邊使用邊定義。動(dòng)態(tài)計(jì)算圖模式是 PyTorch 的天然優(yōu)勢(shì)之一,Google 今年 3 月份發(fā)布的 TensorFlow 2.0 Alpha 版本中的 Eager Execution,被認(rèn)為是在動(dòng)態(tài)計(jì)算圖模式上追趕 PyTorch 的舉措。
靜態(tài)計(jì)算圖模式框架在執(zhí)行計(jì)算圖之前需要先聲明和編譯。 雖然在實(shí)際生產(chǎn)中這種實(shí)現(xiàn)比較高效,但在研究和開(kāi)發(fā)中非常繁瑣。
以 PyTorch 為代表的動(dòng)態(tài)計(jì)算圖框架則無(wú)需在每次執(zhí)行之前編譯模型。在建模 NLP 任務(wù)時(shí),每個(gè)輸入都可能導(dǎo)致不同的圖結(jié)構(gòu),因此動(dòng)態(tài)圖就絕對(duì)占優(yōu)了——這也是 PyTorch 在處理很多問(wèn)題上(尤其是 RNN 相關(guān)問(wèn)題)更高效的原因。
此外,動(dòng)態(tài)圖機(jī)制在調(diào)試方面非常方便,基本上,如果計(jì)算圖運(yùn)行出錯(cuò),就可以在堆棧跟蹤定義圖的代碼行。有人形容調(diào)試 PyTorch 就跟調(diào)試 Python 一樣,通過(guò)斷點(diǎn)檢查就可以高效解決問(wèn)題。
PyTorch 更多優(yōu)勢(shì)
無(wú)縫接入 Python 生態(tài)圈,張量、變量與 Numpy 互轉(zhuǎn)
在張量之上封裝變量,方便構(gòu)建神經(jīng)網(wǎng)絡(luò)
強(qiáng)大的后端功能
命令式編程風(fēng)格
擴(kuò)展性極好
廣泛應(yīng)用于 NLP 之外的多種深度學(xué)習(xí)應(yīng)用
富有活力的社區(qū)和背后大廠 Facebook 支持
-
谷歌
+關(guān)注
關(guān)注
27文章
6176瀏覽量
105678 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5510瀏覽量
121338 -
pytorch
+關(guān)注
關(guān)注
2文章
808瀏覽量
13283
原文標(biāo)題:深度學(xué)習(xí)框架PyTorch為何值得學(xué)
文章出處:【微信號(hào):BigDataDigest,微信公眾號(hào):大數(shù)據(jù)文摘】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論