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

Pytorch中torch.nn.**和torch.nn.functional.**的區(qū)別

 更新時間:2024年11月12日 09:59:31   作者:奔跑的小狗  
本文主要介紹了Pytorch中torch.nn.**和torch.nn.functional的區(qū)別,torch.nn.**是一個繼承的類,需要構(gòu)造對象后再調(diào)用,而torch.nn.functional是純數(shù)學(xué)函數(shù),可以直接使用,下面就來詳細的介紹一下

torch.nn.**

torch.nn.**是一個繼承了torch.nn.Module的類,使用前必須先構(gòu)造對象,然后再調(diào)用。如果直接使用則會報錯
例如

a = torch.randn(3,4)
print(a)
sigmoid = torch.nn.Sigmoid()
a = sigmoid(a)
print(a)
a = torch.nn.Sigmoid(a)
tensor([[ 0.2462, -2.1680, -1.4064, -0.0268],
        [-0.4800, -0.4670,  1.7318,  0.3498],
        [ 0.0137, -2.1080, -0.0825, -0.1350]])
tensor([[0.5612, 0.1027, 0.1968, 0.4933],
        [0.3823, 0.3853, 0.8496, 0.5866],
        [0.5034, 0.1083, 0.4794, 0.4663]])
        Traceback (most recent call last):
        
Traceback (most recent call last):
  File "C:\文件\Llama\tmp.py", line 8, in <module>
    a = torch.nn.Sigmoid(a)
        ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\90929\AppData\Local\conda\conda\envs\lce\Lib\site-packages\torch\nn\modules\module.py", line 485, in __init__
    raise TypeError(
TypeError: Sigmoid.__init__() takes 1 positional argument but 2 were given

torch.nn.functional.**

torch.nn.functional.**是一個純數(shù)學(xué)函數(shù),可以直接使用

a = torch.randn(3,4)
print(a)
a = torch.nn.functional.sigmoid(a)
print(a)
tensor([[-0.1516,  0.5398,  0.3226, -0.4956],
        [-0.2250,  0.6393,  0.4432,  0.4215],
        [-0.5741,  0.0689,  0.3078, -1.5994]])
tensor([[0.4622, 0.6318, 0.5799, 0.3786],
        [0.4440, 0.6546, 0.6090, 0.6039],
        [0.3603, 0.5172, 0.5763, 0.1681]])

區(qū)別

PyTorch中torch.nn與torch.nn.functional的區(qū)別是:1.繼承方式不同;2.可訓(xùn)練參數(shù)不同;3.實現(xiàn)方式不同;4.調(diào)用方式不同。

1.繼承方式不同
torch.nn 中的模塊大多數(shù)是通過繼承torch.nn.Module 類來實現(xiàn)的,這些模塊都是Python 類,需要進行實例化才能使用。而torch.nn.functional 中的函數(shù)是直接調(diào)用的,無需實例化.

2.可訓(xùn)練參數(shù)不同
torch.nn 中的模塊可以包含可訓(xùn)練參數(shù),可以使用model.parameters() 方法獲取所有的可訓(xùn)練參數(shù),用于優(yōu)化算法的訓(xùn)練。而torch.nn.functional 中的函數(shù)沒有可訓(xùn)練參數(shù)。

3.實現(xiàn)方式不同
torch.nn 中的模塊是基于面向?qū)ο蟮姆椒▽崿F(xiàn)的,而torch.nn.functional 中的函數(shù)是基于函數(shù)式編程實現(xiàn)的。因此,使用torch.nn.functional 可以更方便地進行函數(shù)組合、復(fù)用等操作,而torch.nn 則更適合用于定義有狀態(tài)的模塊。

4.調(diào)用方式不同
torch.nn 中的模塊是通過類的實例進行調(diào)用,通常需要先創(chuàng)建模型實例,再將輸入數(shù)據(jù)傳入模型中進行前向計算。而torch.nn.functional 中的函數(shù)可以直接調(diào)用,只需要將輸入數(shù)據(jù)傳入函數(shù)中即可進行前向計算。

總之,torch.nn 和torch.nn.functional 都是用于構(gòu)建神經(jīng)網(wǎng)絡(luò)模型的模塊,但其實現(xiàn)方式、調(diào)用方式、可訓(xùn)練參數(shù)等方面有所不同。使用時需要根據(jù)具體需求選擇合適的模塊和函數(shù)

聯(lián)系

torch.nn的類會在forward()方法中調(diào)用torch.nn.functional的函數(shù),所以可以理解為nn模塊中的方法是對nn.functional模塊中方法的更高層的封裝。

如何選擇

1. 何時選擇torch.nn 

在定義深度神經(jīng)網(wǎng)絡(luò)的layer時推薦使用nn模塊。

一是因為當(dāng)定義有變量參數(shù)的層時(比如conv2d, linear, batch_norm),nn模塊會幫助我們初始化好變量,而我們只需要傳入一些參數(shù);

二是因為model類本身是nn.Module,看起來會比較協(xié)調(diào)統(tǒng)一;

三是因為可以結(jié)合nn.Sequential。

四是當(dāng)使用dropout時推薦使用nn模塊,因為可以在測試階段通過eval()方法方便地關(guān)閉dropout。

2. 何時選擇torch.nn.functional

nn.functional中的函數(shù)相比nn更偏底層,所以雖然封裝性不高,但透明度很高,可以在其基礎(chǔ)上定義出自己想要的功能

到此這篇關(guān)于Pytorch中torch.nn.**和torch.nn.functional.**的區(qū)別的文章就介紹到這了,更多相關(guān)Pytorch torch.nn.**和torch.nn.functional.**內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Python 找到列表中滿足某些條件的元素方法

    Python 找到列表中滿足某些條件的元素方法

    今天小編就為大家分享一篇Python 找到列表中滿足某些條件的元素方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 使用Python實現(xiàn)Office文檔(Word/Excel/PowerPoint)批量轉(zhuǎn)換為PDF

    使用Python實現(xiàn)Office文檔(Word/Excel/PowerPoint)批量轉(zhuǎn)換為PDF

    在處理不同格式的Office文檔(如Word、Excel和PowerPoint)時,將其轉(zhuǎn)換為PDF格式是常見的需求,本文就跟隨小編來看看如何使用Python將Word/Excel/PowerPoint批量轉(zhuǎn)換為PDF吧
    2024-10-10
  • django admin.py 外鍵,反向查詢的實例

    django admin.py 外鍵,反向查詢的實例

    今天小編就為大家分享一篇django admin.py 外鍵,反向查詢的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 聊聊python中的循環(huán)遍歷

    聊聊python中的循環(huán)遍歷

    這篇文章主要介紹了python中的循環(huán)遍歷的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • python里讀寫excel等數(shù)據(jù)文件的6種常用方式(小結(jié))

    python里讀寫excel等數(shù)據(jù)文件的6種常用方式(小結(jié))

    這篇文章主要介紹了python里讀寫excel等數(shù)據(jù)文件的6種常用方式(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 用Python提取PDF表格的方法

    用Python提取PDF表格的方法

    這篇文章主要介紹了用Python提取PDF表格的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • 簡單了解python的內(nèi)存管理機制

    簡單了解python的內(nèi)存管理機制

    這篇文章主要介紹了簡單了解python的內(nèi)存管理機制,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python 實現(xiàn)倒計時功能(gui界面)

    python 實現(xiàn)倒計時功能(gui界面)

    這篇文章主要介紹了python 實現(xiàn)倒計時功能(gui界面),幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • Python譜減法語音降噪實例

    Python譜減法語音降噪實例

    今天小編就為大家分享一篇Python譜減法語音降噪實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 一文教會你用nginx+uwsgi部署自己的django項目

    一文教會你用nginx+uwsgi部署自己的django項目

    uWSGI是一個Web服務(wù)器,它實現(xiàn)了WSGI協(xié)議、uwsgi、http等協(xié)議,下面這篇文章主要給大家介紹了關(guān)于用nginx+uwsgi部署自己的django項目的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08

最新評論