欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

幾個重要的類型

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

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

Tensor

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

Variable

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

自動求導機制的核心組件,因為它不僅保存了 變量的值,還保存了變量是由哪個 op 產(chǎn)生的。這在反向傳導的過程中是十分重要的。

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

Paramete:

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

模型相關(guān)的

  • Function
  • Module

Function

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

Module

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

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

關(guān)于hook

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

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

* Module : register_forward_hook, register_backward_hook

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

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

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

  • Variable: register_hook
  • Variable的register_hook注冊的是一個 backward hook , backward hook 是在BP的過程中會用到的??梢杂盟鼇硖幚碛嬎愕奶荻取?/li>

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

foward過程與backward過程

forward

以一個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 進行 forward_hook 操作,然后返回值。

backward

關(guān)于backward

總結(jié)

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

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

相關(guān)文章

  • 深入淺出Python中的JSON操作和實踐

    深入淺出Python中的JSON操作和實踐

    在現(xiàn)代軟件開發(fā)中,JSON(JavaScript?Object?Notation)已成為數(shù)據(jù)交換的一種標準格式,本文將深入探討Python中處理JSON數(shù)據(jù)的方法和技巧,感興趣的可以了解下
    2024-03-03
  • Python 元組拆包示例(Tuple Unpacking)

    Python 元組拆包示例(Tuple Unpacking)

    今天小編就為大家分享一篇Python 元組拆包實例(Tuple Unpacking),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python 求一個列表中所有元素的乘積實例

    python 求一個列表中所有元素的乘積實例

    今天小編就為大家分享一篇python 求一個列表中所有元素的乘積實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python任意字符串轉(zhuǎn)16, 32, 64進制的方法

    Python任意字符串轉(zhuǎn)16, 32, 64進制的方法

    今天小編就為大家分享一篇Python任意字符串轉(zhuǎn)16, 32, 64進制的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • pycharm的console輸入實現(xiàn)換行的方法

    pycharm的console輸入實現(xiàn)換行的方法

    今天小編就為大家分享一篇pycharm的console輸入實現(xiàn)換行的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python實現(xiàn)中文分詞FMM算法實例

    python實現(xiàn)中文分詞FMM算法實例

    這篇文章主要介紹了python實現(xiàn)中文分詞FMM算法,實例分析了Python基于FMM算法進行中文分詞的實現(xiàn)方法,涉及Python針對文件、字符串及正則匹配操作的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • Python星號*與**用法分析

    Python星號*與**用法分析

    這篇文章主要介紹了Python星號*與**用法,結(jié)合實例形式較為詳細的分析了Python中的星號*與**在函數(shù)參數(shù)及數(shù)值運算中的相關(guān)使用技巧,需要的朋友可以參考下
    2018-02-02
  • 七種Python代碼審查工具推薦

    七種Python代碼審查工具推薦

    這篇文章主要介紹了七種Python代碼審查工具推薦,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-03-03
  • 使用python進行廣告點擊率的預測的實現(xiàn)

    使用python進行廣告點擊率的預測的實現(xiàn)

    這篇文章主要介紹了使用python進行廣告點擊率的預測的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python?異步之在?Asyncio中如何運行阻塞任務(wù)詳解

    Python?異步之在?Asyncio中如何運行阻塞任務(wù)詳解

    這篇文章主要為大家介紹了Python?異步之在?Asyncio?中運行阻塞任務(wù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論