最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pytorch之關(guān)于PyTorch結(jié)構(gòu)介紹

 更新時(shí)間:2023年09月08日 09:47:59   作者:u012436149  
這篇文章主要介紹了pytorch之關(guān)于PyTorch結(jié)構(gòu)的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

PyTorch結(jié)構(gòu)介紹

對(duì)PyTorch架構(gòu)的粗淺理解,不能保證完全正確,但是希望可以從更高層次上對(duì)PyTorch上有個(gè)整體把握。

幾個(gè)重要的類型

和數(shù)值相關(guān)的

  • Tensor
  • Variable
  • Parameter
  • buffer(這個(gè)其實(shí)不能叫做類型,其實(shí)他就是用來保存tensor的)

Tensor

PyTorch 中的計(jì)算基本都是基于 Tensor 的,可以說是 PyTorch 中的基本計(jì)算單元。

Variable

Tensor 的一個(gè) Wrapper ,其中保存了 Variable 的創(chuàng)造者, Variable 的值(tensor),還有 Variable 的梯度( Variable )。

自動(dòng)求導(dǎo)機(jī)制的核心組件,因?yàn)樗粌H保存了 變量的值,還保存了變量是由哪個(gè) op 產(chǎn)生的。這在反向傳導(dǎo)的過程中是十分重要的。

Variable 的前向過程的計(jì)算包括兩個(gè)部分的計(jì)算,一個(gè)是其值的計(jì)算(即,Tensor的計(jì)算),還有就是 Variable 標(biāo)簽的計(jì)算。標(biāo)簽指的是什么呢?如果您看過PyTorch的官方文檔 Excluding subgraphs from backward 部分的話,您就會(huì)發(fā)現(xiàn) Variable 還有兩個(gè)標(biāo)簽: requires_grad volatile 。標(biāo)簽的計(jì)算指的就是這個(gè)。

Paramete:

這個(gè)類是 Variable 的一個(gè)子集, PyTorch 給出這個(gè)類的定義是為了在 Module (下面會(huì)談到)中添加模型參數(shù)方便。

模型相關(guān)的

  • Function
  • Module

Function

如果您想在 PyTorch 中自定義 OP 的話,您需要繼承這個(gè)類,您需要在繼承的時(shí)候復(fù)寫 forward backward 方法,可能還需要復(fù)寫 __init__ 方法(由于篇幅控制,這里不再詳細(xì)贅述如果自定義 OP )。您需要在 forward 中定義 OP ,在 backward 說明如何計(jì)算梯度。關(guān)于 Function ,還需要知道的一點(diǎn)就是, Function forward backward 方法中進(jìn)行計(jì)算的類型都是 Tensor ,而不是我們傳入的Variable。計(jì)算完forward和backward之后,會(huì)包裝成Varaible返回。這種設(shè)定倒是可以理解的,因?yàn)镺P是一個(gè)整體嘛,OP內(nèi)部的計(jì)算不需要記錄creator

Module

這個(gè)類和 Function 是有點(diǎn)區(qū)別的,回憶一下,我們定義 Function 的時(shí)候, Funciton 本身是不需要變量的,而 Module 是變量和 Function 的結(jié)合體。在某些時(shí)候,我們更傾向稱這種結(jié)構(gòu)為 Layer 。但是這里既然這么叫,那就這么叫吧。

Module 實(shí)際上是一個(gè)容器,我們可以繼承 Module ,在里面加幾個(gè)參數(shù),從而實(shí)現(xiàn)一個(gè)簡單全連接層。我們也可以繼承 Module ,在里面加入其它 Module ,從而實(shí)現(xiàn)整個(gè) VGG 結(jié)構(gòu)。

關(guān)于hook

PyTorch中注冊(cè)的hook都是不允許改變hook的輸入值的

下面對(duì)PyTorch中出現(xiàn)hook的地方做個(gè)總結(jié):

* Module : register_forward_hook, register_backward_hook

注意:forward_hook不能用來修改Module的輸出值,它的功能就像是安裝個(gè)監(jiān)視器一樣。

我們可以用forward_hook和visdom來監(jiān)控我們Module的輸出。

backward_hook和與 Variable 的功能是類似的,將和 Variable register_hook 一起介紹。

  • Variable: register_hook
  • Variable的register_hook注冊(cè)的是一個(gè) backward hook , backward hook 是在BP的過程中會(huì)用到的。可以用它來處理計(jì)算的梯度。

關(guān)于hook較為詳盡的介紹

foward過程與backward過程

forward

以一個(gè)Module為例:

  • 1. 調(diào)用module的 call 方法
  • 2. module call 里面調(diào)用 module forward 方法
  • 3. forward 里面如果碰到 Module 的子類,回到第1步,如果碰到的是 Function 的子類,繼續(xù)往下
  • 4. 調(diào)用 Function call 方法
  • 5. Function call 方法調(diào)用了Function的 forward 方法。
  • 6. Function forward 返回值
  • 7. module forward 返回值
  • 8. 在 module call 進(jìn)行 forward_hook 操作,然后返回值。

backward

關(guān)于backward

總結(jié)

PyTorch基本的操作是 OP ,被操作數(shù)是 Tensor 。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實(shí)現(xiàn)掃描指定目錄下的子目錄及文件的方法

    Python實(shí)現(xiàn)掃描指定目錄下的子目錄及文件的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)掃描指定目錄下的子目錄及文件的方法,需要的朋友可以參考下
    2014-07-07
  • Python中的getopt函數(shù)使用詳解

    Python中的getopt函數(shù)使用詳解

    這篇文章主要介紹了Python中的getopt函數(shù)使用詳解,是Python進(jìn)階學(xué)習(xí)中的重要知識(shí),需要的朋友可以參考下
    2015-07-07
  • Python關(guān)于迭代器的使用

    Python關(guān)于迭代器的使用

    這篇文章主要介紹了Python關(guān)于迭代器的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 使用Python操作MySQL的一些基本方法

    使用Python操作MySQL的一些基本方法

    這篇文章主要介紹了使用Python操作MySQL的一些基本方法,Python+MySQL也是服務(wù)器端快速開發(fā)的一種絕佳搭配方案,需要的朋友可以參考下
    2015-08-08
  • Python實(shí)現(xiàn)目錄遍歷和內(nèi)容獲取的完整指南

    Python實(shí)現(xiàn)目錄遍歷和內(nèi)容獲取的完整指南

    在軟件開發(fā)中,目錄遍歷和文件系統(tǒng)操作是極其常見且重要的任務(wù),本文將深入探討Python中獲取目錄內(nèi)容的各種方法,展示如何在不同場(chǎng)景下選擇和使用最合適的工具,希望對(duì)大家有所幫助
    2025-09-09
  • python3中超級(jí)好用的日志模塊-loguru模塊使用詳解

    python3中超級(jí)好用的日志模塊-loguru模塊使用詳解

    loguru默認(rèn)的輸出格式是上面的內(nèi)容,有時(shí)間、級(jí)別、模塊名、行號(hào)以及日志信息,不需要手動(dòng)創(chuàng)建?logger,直接使用即可,另外其輸出還是彩色的,看起來會(huì)更加友好,這篇文章主要介紹了python3中超級(jí)好用的日志模塊-loguru模塊使用詳解,需要的朋友可以參考下
    2022-11-11
  • python的內(nèi)存管理和垃圾回收機(jī)制詳解

    python的內(nèi)存管理和垃圾回收機(jī)制詳解

    這篇文章主要介紹了python內(nèi)存管理和垃圾回收機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python多線程的退出控制實(shí)現(xiàn)

    Python多線程的退出控制實(shí)現(xiàn)

    這篇文章主要介紹了Python多線程的退出控制實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • python入門課程第三講之編碼規(guī)范知多少

    python入門課程第三講之編碼規(guī)范知多少

    這篇文章主要介紹了python入門課程第三講之編碼規(guī)范知多少,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Python元類Metaclass初探:理解類的類

    Python元類Metaclass初探:理解類的類

    文章介紹了Python中的元類,解釋了類和元類的關(guān)系,元類的創(chuàng)建過程和關(guān)鍵方法,詳細(xì)探討了元類的應(yīng)用場(chǎng)景如自動(dòng)注冊(cè)類、強(qiáng)制命名規(guī)范、實(shí)現(xiàn)單例模式等,同時(shí),文章還對(duì)比了元類和裝飾器的特性,并給出了使用元類時(shí)的注意事項(xiàng),感興趣的朋友一起看看吧
    2026-04-04

最新評(píng)論

晴隆县| 晋州市| 潞城市| 民县| 利津县| 五家渠市| 阿坝县| 博客| 于都县| 临城县| 汾西县| 久治县| 庄浪县| 托里县| 东丰县| 衡阳市| 伊川县| 文昌市| 阜南县| 四会市| 康马县| 公安县| 周口市| 阜平县| 秦皇岛市| 监利县| 平远县| 古丈县| 沧源| 沂水县| 阿巴嘎旗| 鸡西市| 城步| 罗定市| 玉田县| 镇远县| 肃北| 长子县| 育儿| 平顺县| 永丰县|