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

談談對Pytorch中的forward的理解

 更新時間:2023年04月06日 16:07:57   作者:使者大牙  
這篇文章主要介紹了談談對Pytorch中的forward的理解,在Pytorch中,forward方法是一個特殊的方法,被專門用來進行前向傳播,本文給大家詳細講解,需要的朋友可以參考下

寫在前面

以下是本人根據(jù)Pytorch學習過程中總結(jié)出的經(jīng)驗,如果有錯誤,請指正。

正文

為什么都用def forward,而不改個名字?

在Pytorch建立神經(jīng)元網(wǎng)絡模型的時候,經(jīng)常用到forward方法,表示在建立模型后,進行神經(jīng)元網(wǎng)絡的前向傳播。說的直白點,forward就是專門用來計算給定輸入,得到神經(jīng)元網(wǎng)絡輸出的方法。

在代碼實現(xiàn)中,也是用def forward來寫forward前向傳播的方法,我原來以為這是一種約定熟成的名字,也可以換成任意一個自己喜歡的名字。

但是看的多了之后發(fā)現(xiàn)并非如此:Pytorch對于forward方法賦予了一些特殊“功能”

(這里不禁再吐槽,一些看起來挺厲害的Pytorch“大神”,居然不知道這個。。。只能草草解釋一下:“就是這樣的。。。”)

forward有什么特殊功能?

第一條:.forward()可以不寫

我最開始發(fā)現(xiàn)forward()的與眾不同之處就是在此,首先舉個例子:

import torch.nn as nn
class test(nn.Module):
    def __init__(self, input):
        super(test,self).__init__()
        self.input = input

    def forward(self,x):
        return self.input * x

T = test(8)
print(T(6))

# print(T.forward(6))
--------------------------運行結(jié)果-------------------------
D:\Users\Lenovo\anaconda3\python.exe C:/Users/Lenovo/Desktop/DL/pythonProject/tt.py
48

Process finished with exit code 0

可以發(fā)現(xiàn),T(6)是可以輸出的!而且不用指定,默認了調(diào)用forward方法。當然如果非要寫上.forward()這也是可以正常運行的,和不寫是一樣的。

如果不調(diào)用Pytorch(正常的Python語法規(guī)則),這樣肯定會報錯的

# import torch.nn as nn  #不再調(diào)用torch
class test():
    def __init__(self, input):
        self.input = input

    def forward(self,x):
        return self.input * x

T = test(8)
print(T.forward(6))
print("************************")
print(T(6))
--------------------------運行結(jié)果-------------------------
D:\Users\Lenovo\anaconda3\python.exe C:/Users/Lenovo/Desktop/DL/pythonProject/tt.py
48
************************
Traceback (most recent call last):
  File "C:\Users\Lenovo\Desktop\DL\pythonProject\tt.py", line 77, in <module>
    print(T(6))
TypeError: 'test' object is not callable

Process finished with exit code 1

這里會報:‘test’ object is not callable
因為class不能被直接調(diào)用,不知道你想調(diào)用哪個方法。

第二條:優(yōu)先運行forward方法

如果在class中再增加一個方法:

import torch.nn as nn
class test(nn.Module):
    def __init__(self, input):
        super(test,self).__init__()
        self.input = input

    def byten(self):
        return self.input * 10

    def forward(self,x):
        return self.input * x

T = test(8)
print(T(6))
print(T.byten())
--------------------------運行結(jié)果-------------------------
D:\Users\Lenovo\anaconda3\python.exe C:/Users/Lenovo/Desktop/DL/pythonProject/tt.py
48
80

Process finished with exit code 0

可以見到,在class中有多個method的時候,如果不指定method,forward是會被優(yōu)先執(zhí)行的。

總結(jié)

在Pytorch中,forward方法是一個特殊的方法,被專門用來進行前向傳播。

到此這篇關(guān)于談談對Pytorch中的forward的理解的文章就介紹到這了,更多相關(guān)Pytorch中的forward內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中的裝飾器詳解

    python中的裝飾器詳解

    這篇文章主要介紹了python中的裝飾器詳解,本文講解了裝飾器語法、簡單裝飾器、帶內(nèi)嵌函數(shù)裝飾器、帶參數(shù)的裝飾器等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • linux平臺使用Python制作BT種子并獲取BT種子信息的方法

    linux平臺使用Python制作BT種子并獲取BT種子信息的方法

    這篇文章主要介紹了linux平臺使用Python制作BT種子并獲取BT種子信息的方法,結(jié)合實例形式詳細分析了Python BT模塊的安裝及針對BT種子文件的相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • 利用 PyCharm 實現(xiàn)本地代碼和遠端的實時同步功能

    利用 PyCharm 實現(xiàn)本地代碼和遠端的實時同步功能

    這篇文章主要介紹了利用 PyCharm 實現(xiàn)本地代碼和遠端的實時同步功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • python用faker庫批量生成假數(shù)據(jù)

    python用faker庫批量生成假數(shù)據(jù)

    這篇文章主要介紹了python用faker庫批量生成假數(shù)據(jù),幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-03-03
  • python爬蟲今日熱榜數(shù)據(jù)到txt文件的源碼

    python爬蟲今日熱榜數(shù)據(jù)到txt文件的源碼

    這篇文章主要介紹了python爬蟲今日熱榜數(shù)據(jù)到txt文件的源碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python實現(xiàn)的將文件每一列寫入列表功能示例【測試可用】

    Python實現(xiàn)的將文件每一列寫入列表功能示例【測試可用】

    這篇文章主要介紹了Python實現(xiàn)的將文件每一列寫入列表功能,涉及Python文件讀取、遍歷、序列追加、賦值等相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • Python中裝飾器使用方法整理

    Python中裝飾器使用方法整理

    這篇文章主要介紹了Python中裝飾器使用方法整理,裝飾器是給現(xiàn)有的模塊增添新的小功能,可以對原函數(shù)進行功能擴展,而且還不需要修改原函數(shù)的內(nèi)容,也不需要修改原函數(shù)的調(diào)用,需要的朋友可以參考下
    2023-08-08
  • Python3 列表,數(shù)組,矩陣的相互轉(zhuǎn)換的方法示例

    Python3 列表,數(shù)組,矩陣的相互轉(zhuǎn)換的方法示例

    這篇文章主要介紹了Python3 列表,數(shù)組,矩陣的相互轉(zhuǎn)換的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • numpy.linalg.eig() 計算矩陣特征向量方式

    numpy.linalg.eig() 計算矩陣特征向量方式

    今天小編就為大家分享一篇numpy.linalg.eig() 計算矩陣特征向量方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 淺析PyTorch中nn.Module的使用

    淺析PyTorch中nn.Module的使用

    這篇文章主要介紹了淺析PyTorch中nn.Module的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08

最新評論