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

談?wù)剬ytorch中的forward的理解

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

寫在前面

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

正文

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

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

在代碼實(shí)現(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))
--------------------------運(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)然如果非要寫上.forward()這也是可以正常運(yùn)行的,和不寫是一樣的。

如果不調(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))
--------------------------運(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

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

第二條:優(yōu)先運(yùn)行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())
--------------------------運(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

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

總結(jié)

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

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

相關(guān)文章

  • Caffe卷積神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)層及參數(shù)

    Caffe卷積神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)層及參數(shù)

    這篇文章主要為大家介紹了Caffe卷積神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)層及參數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • python如何提升爬蟲效率

    python如何提升爬蟲效率

    這篇文章主要介紹了python如何提升爬蟲效率,幫助大家更好的理解和使用python 爬蟲,感興趣的朋友可以參考下
    2020-09-09
  • Python Requests庫及用法詳解

    Python Requests庫及用法詳解

    Requests庫作為Python中最受歡迎的HTTP庫之一,為開發(fā)人員提供了簡單而強(qiáng)大的方式來發(fā)送HTTP請求和處理響應(yīng),本文將帶領(lǐng)您深入探索Python Requests庫的世界,我們將從基礎(chǔ)知識開始,逐步深入,覆蓋各種高級用法和技巧,感興趣的朋友一起看看吧
    2024-06-06
  • python實(shí)現(xiàn)的用于搜索文件并進(jìn)行內(nèi)容替換的類實(shí)例

    python實(shí)現(xiàn)的用于搜索文件并進(jìn)行內(nèi)容替換的類實(shí)例

    這篇文章主要介紹了python實(shí)現(xiàn)的用于搜索文件并進(jìn)行內(nèi)容替換的類,涉及Python針對文件及字符串的相關(guān)操作技巧,需要的朋友可以參考下
    2015-06-06
  • python 在sql語句中使用%s,%d,%f說明

    python 在sql語句中使用%s,%d,%f說明

    這篇文章主要介紹了python 在sql語句中使用%s,%d,%f說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python筆試面試題小結(jié)

    Python筆試面試題小結(jié)

    這篇文章主要介紹了Python筆試面試題的一些相關(guān)代碼,需要的朋友可以參考下
    2019-09-09
  • Pycharm虛擬環(huán)境創(chuàng)建并使用命令行指定庫的版本進(jìn)行安裝

    Pycharm虛擬環(huán)境創(chuàng)建并使用命令行指定庫的版本進(jìn)行安裝

    Pycharm創(chuàng)建的項(xiàng)目,使用了虛擬環(huán)境,對庫的版本進(jìn)行管理,有些項(xiàng)目的對第三方庫的版本要求不同,可使用虛擬環(huán)境進(jìn)行管理,直接想通過pip命令安裝可以參考下本文的操作步驟
    2022-07-07
  • Jupyter notebook在mac:linux上的配置和遠(yuǎn)程訪問的方法

    Jupyter notebook在mac:linux上的配置和遠(yuǎn)程訪問的方法

    今天小編就為大家分享一篇關(guān)于Jupyter notebook在mac:linux上的配置和遠(yuǎn)程訪問的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 使用Python編寫文件重復(fù)檢查器的完整代碼

    使用Python編寫文件重復(fù)檢查器的完整代碼

    在日常工作中,我們經(jīng)常需要處理大量文件,但有時候會遇到文件重復(fù)的情況,為了有效管理文件并避免重復(fù)占用存儲空間,我們可以編寫一個簡單的Python程序來檢查文件夾中是否存在重復(fù)文件,本文將介紹如何使用Python和其庫來編寫一個文件重復(fù)檢查器
    2024-08-08
  • python如何獲取list字典的交集、并集和差集

    python如何獲取list字典的交集、并集和差集

    在Python編程中,對列表(list)進(jìn)行去重可通過set運(yùn)算符法和set函數(shù)法實(shí)現(xiàn),多個列表的交、并、差集也能簡便操作,此外,字典(dict)的鍵(keys)和鍵值對(items)的獲取也是常用技巧,這些操作方法不僅提高了代碼的簡潔性,也增強(qiáng)了數(shù)據(jù)處理的效率
    2024-09-09

最新評論

黄骅市| 申扎县| 民县| 景东| 赤峰市| 明溪县| 合水县| 东安县| 会泽县| 额敏县| 楚雄市| 射洪县| 新泰市| 扬州市| 泾阳县| 兰州市| 古蔺县| 金寨县| 酒泉市| 赫章县| 郓城县| 桃园市| 新郑市| 彭阳县| 陇川县| 灯塔市| 邵东县| 天峻县| 登封市| 清镇市| 保德县| 南平市| 丹凤县| 安泽县| 盱眙县| 东莞市| 延长县| 红桥区| 获嘉县| 石首市| 邛崃市|