日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Lesson 7 (3) 深入理解PyTorch与PyTorch库架构

發布時間:2025/4/5 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Lesson 7 (3) 深入理解PyTorch与PyTorch库架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們已經理解了神經網絡是如何誕生的也了解了怎樣的算法才是一個優秀的算法,現在我們需要借助深度學習框架(Deep?learning?framework來幫助我們實現神經網絡算法在本門課程中我們所使用的深度學習框架是PyTorch,也就是Torch庫的Python版本之前我們已經仔細地介紹了PyTorch中的基本數據結構Tensor以及自動求梯度工具autograd,相信你已經對PyTorch有了一定的了解在今天的課程中,我們將更深入地理解PyTorch庫的構成以及PyTorch框架的設計理念為之后熟練使用PyTorch打下基礎。

1?PyTorch的優勢

對于已經選擇了這門課的你,應該早就把PyTorch的優勢爛熟于心了。就如同每一個學習Python的人在Python課程的第一堂課會聽到的內容一樣無數的資料課程都在說著相似的話PyTorch簡單易用上手容易語法清晰……這些雖然是事實但卻無法加深你對PyTorch或深度學習的理解在這一節們將從深度學習模型的判別框架來看待,為什么PyTorch是一個優秀的深度學習框架

我們在上一節中說過一個好的深度學習模型應該是預測結果優秀計算速度超快并且能夠服務于業務(即實際生產環境)的。巧合的是,PyTorch框架正是基于這樣目標建立的

一個神經網絡算法的結果如何才能優秀呢?如果在機器學習中我們是通過模型選擇調整參特征工程等事項來提升算法的效果那在神經網絡中我們能夠做的其實只有兩件事

1)加大數據規模

2)調整神經網絡的架構,也就是調整網絡上的神經元個數網絡的層數信息在網絡之間傳遞的方

對于第一點PyTorch的優勢是毫無疑問的PyTorchFacebook AI研究實驗室研發。在2019年,FB天都需要支持400萬億次深度學習算法預測并且這個數據還在持續上漲因此PyTorch天生被設計成非常適合進行巨量數據運算并且可以支持分布式計算還可以無縫銜接到NVIDIAGPU上來運行除此之外,PyTorch的運行方式有意被設計成更快速更穩定的方式這使得它運行效率非常高速度很快,這一點你在使用PyTorch進行編程的時候就能夠感受到為高速運行巨量數據下的神經網絡而生PyTorch即保證了神經網絡結果優秀又權衡了計算速度

而第二點則是深度學習整個學科的靈魂操作我們耳熟能詳的RNNCNNLSTM等算法,其實都是在原始神經網絡上進行了神經元、鏈接、或信息傳遞方式的改變而誕生的因此一個優秀的深度學習框架必須具備非常高的靈活性和可調試性才有可能不斷推進深度學習算法的研(同時一個優秀的深度學習算法工程師必須具備靈活調用任何可用網絡結構的能力,才可能搭建出適應實際工業場景的神經網絡)。幸運的是,PyTorch框架的創始團隊在建立PyTorch時的目標就是建立最靈活的框架來表達深度學習算法這為PyTorch能夠最大程度釋放神經網絡算法的潛放大深度學習的本質優勢、實現更好的算法效果提供了基礎

同時為了能夠讓算法調試變得更加容易,PyTorch在設計之初就支持eager?model(類似于在jupyter notebook的運行方式,可以每寫幾行代碼就運行并且返回相應的結果通常在研究原型時使用),tensorflow等框架在最初是不支持eager model,只支持graph-based model(一次性寫完全部的編譯后上傳服務器進行全部運行這種類型的代碼更加適合部署到生產環境中)。現在的PyTorch使JIT編輯器使得代碼能夠在eagergraph?model之間自由轉換tensorflow也在1.7版本之后補充了這個功能

最難得的是PyTorchAPI簡化程度很高代碼確實簡單易懂。在編程的世界里,封裝越底層就越靈活(如C++就比Python更加靈活),但越底層的框架往往就越復雜需要的代碼量也越多PyTorch建設團隊在構筑PyTorch項目時一直遵守簡單勝于復雜的原則為了讓PyTorch盡量簡單他們參考了大NumPy以及Python的基本語法PyTorch可以無縫銜接到Python在保留靈活性的同時最高程度地簡化了API,繼承了Python的大部分語法風格對于熟練使用Python的人來說使用PyTorch通常輕而易舉

此之外PyTorch十分重視從研發算法到工業應用的過程PyTorch的官網頭圖上甚至能夠直接看from?research to production(從研發到生產)的字樣。他們甚至完整地定義了算法部署到實際環境中需要達到的數個要求,并在2019年QCon會議的演講中詳細地說明了PyTorch團隊是如何圍繞”從研發到生產“這個目標設計了PyTorch的部署模塊JIT。

總結一下??PyTorch的優勢可以概括為以下幾點

  • 天生支持巨量數據和巨大神經網絡的高速運
  • 靈活性高足以釋放神經網絡的潛力并且在保留靈活性的同時又有Python語法簡單易學的優勢?
  • 支持研究環境與生產環境無縫切換調試成本很低

作為深度學習框架,PyTorch可以說具備幾乎所有產出優質深度學習算法的條件。現在,PyTorch社區及圍繞PyTorch的生態還在建設中這可以說是它唯一的弱勢了作為一門深度學習入門課程我們非常推薦你選擇PyTorch作為你的第一個深度學習框架但它是否會成為你的最后一個深度學習框架交由學完課程的你來決定

2?PyTorch庫的基本架構

雖然PyTorch庫在建設時擁有許多先進的理念但在庫的規劃整理這一點上它卻與大部分編程庫一顯得有些潦草任何編程庫都不是在一個完美的企劃下被設計出來的而是在實際應用中不斷被探索出來的,這就導致大部分編程庫的體系是混亂的——即初學者完全不知道應該從哪里開始學習典型的代表就是matplotlib??NumPy這些明明很有用,但是官網寫得不知所云的庫。

PyTorch官網在深度學習領域常常受到贊揚許多人認為PyTorch官網寫得簡單明了容易上手但如果是學過sklearn課堂的小伙伴,就會知道sklearn官網是多么規范多么易學

再看看PyTorch網這令人窒息的按字母表順序排列的類的列表

文檔寫得好?其實全是同行的襯托反正比tf寫得好一點點

在開始學習PyTorch之前,我們對PyTorch的核心模塊進行了梳理現在PyTorch中的模塊主要分為兩大類:原生Torch庫下,用于構建靈活神經網絡的模塊,以及成AI領域中用以輔助具體行業應用的模

?

兩大模塊的層次是并列的,當我們導入庫的時候我們是這樣做

import torch import torchvision

實際上在我們對PyTorch進行安裝的時候,我們也是同時安裝了torchtorchvision等模塊?當我們需要優化算法時我們運行的是

from torch import optim

看出庫的層次區別了嗎?在我們課程的前幾周我們會集中在Torch模塊幫助大家熟悉PyTorch的基本操作,并培養從0建立起自定義神經網絡的能力。在課程后續的篇章我們將會涉入成熟AI領域的許多庫中對成熟算法和先進的神經網絡架構進行講解為了構建強大的神經網絡我們會交叉使用兩個模塊的內容在我們學習的過程中我們或許會用到不在這兩張架構圖上的庫后續我們會繼續補充和修繕這兩張架構圖

了解了這么多內容后你終于可以開始學習神經網絡了PyTorch代碼雖然簡單但運行一行簡單的代碼卻需要豐富的基礎知識從下一節課開始我們從0學習神經網絡并逐漸讓你掌握PyTorch中的代

總結

以上是生活随笔為你收集整理的Lesson 7 (3) 深入理解PyTorch与PyTorch库架构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。