亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

談?wù)剬?duì)Pytorch中的forward的理解

 更新時(shí)間:2023年04月06日 16:07:57   作者:使者大牙  
這篇文章主要介紹了談?wù)剬?duì)Pytorch中的forward的理解,在Pytorch中,forward方法是一個(gè)特殊的方法,被專(zhuān)門(mén)用來(lái)進(jìn)行前向傳播,本文給大家詳細(xì)講解,需要的朋友可以參考下

寫(xiě)在前面

以下是本人根據(jù)Pytorch學(xué)習(xí)過(guò)程中總結(jié)出的經(jīng)驗(yàn),如果有錯(cuò)誤,請(qǐng)指正。

正文

為什么都用def forward,而不改個(gè)名字?

在Pytorch建立神經(jīng)元網(wǎng)絡(luò)模型的時(shí)候,經(jīng)常用到forward方法,表示在建立模型后,進(jìn)行神經(jīng)元網(wǎng)絡(luò)的前向傳播。說(shuō)的直白點(diǎn),forward就是專(zhuān)門(mén)用來(lái)計(jì)算給定輸入,得到神經(jīng)元網(wǎng)絡(luò)輸出的方法。

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

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

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

forward有什么特殊功能?

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

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

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))
--------------------------運(yùn)行結(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)是可以輸出的!而且不用指定,默認(rèn)了調(diào)用forward方法。當(dāng)然如果非要寫(xiě)上.forward()這也是可以正常運(yùn)行的,和不寫(xiě)是一樣的。

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

# 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))
--------------------------運(yùn)行結(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

這里會(huì)報(bào):‘test’ object is not callable
因?yàn)閏lass不能被直接調(diào)用,不知道你想調(diào)用哪個(gè)方法。

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

如果在class中再增加一個(gè)方法:

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())
--------------------------運(yùn)行結(jié)果-------------------------
D:\Users\Lenovo\anaconda3\python.exe C:/Users/Lenovo/Desktop/DL/pythonProject/tt.py
48
80

Process finished with exit code 0

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

總結(jié)

在Pytorch中,forward方法是一個(gè)特殊的方法,被專(zhuān)門(mén)用來(lái)進(jìn)行前向傳播。

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

相關(guān)文章

  • python中的裝飾器詳解

    python中的裝飾器詳解

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

    linux平臺(tái)使用Python制作BT種子并獲取BT種子信息的方法

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

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

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

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

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

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

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

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

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

    Python中裝飾器使用方法整理

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

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

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

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

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

    淺析PyTorch中nn.Module的使用

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

最新評(píng)論