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

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ù),可以直接使用,下面就來詳細(xì)的介紹一下

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 類,需要進(jìn)行實例化才能使用。而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 可以更方便地進(jìn)行函數(shù)組合、復(fù)用等操作,而torch.nn 則更適合用于定義有狀態(tài)的模塊。

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

總之,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 asyncio 協(xié)程庫的使用

    python asyncio 協(xié)程庫的使用

    這篇文章主要介紹了python asyncio 協(xié)程庫的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python判斷直線和矩形是否相交的方法

    Python判斷直線和矩形是否相交的方法

    這篇文章主要介紹了Python判斷直線和矩形是否相交的方法,涉及Python坐標(biāo)系下的直線與矩形相關(guān)運算,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 利用python爬取斗魚app中照片方法實例

    利用python爬取斗魚app中照片方法實例

    最近在學(xué)習(xí)python,通過實踐是學(xué)習(xí)的一個好辦法,下面這篇文章就來給大家介紹了關(guān)于利用python爬取斗魚app中照片的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友下面來一起看看吧。
    2017-12-12
  • Python 中的 XML 轉(zhuǎn)換利器xml2dict詳解

    Python 中的 XML 轉(zhuǎn)換利器xml2dict詳解

    xml2dict是一個Python庫,可以將XML數(shù)據(jù)轉(zhuǎn)換為字典,也支持反向轉(zhuǎn)換,它簡化了XML的處理,使之像處理JSON一樣簡單,適用于Web服務(wù)數(shù)據(jù)交換、配置文件讀取等場景,安裝簡單,使用方便,還可以通過自定義轉(zhuǎn)換器處理XML屬性和命名空間
    2024-10-10
  • python使用標(biāo)準(zhǔn)庫根據(jù)進(jìn)程名如何獲取進(jìn)程的pid詳解

    python使用標(biāo)準(zhǔn)庫根據(jù)進(jìn)程名如何獲取進(jìn)程的pid詳解

    Python有一套很有用的標(biāo)準(zhǔn)庫(standard library)。標(biāo)準(zhǔn)庫會隨著Python解釋器,一起安裝在你的電腦中的,所以下面這篇文章主要給大家介紹了關(guān)于python使用標(biāo)準(zhǔn)庫根據(jù)進(jìn)程名如何獲取進(jìn)程pid的相關(guān)資料,需要的朋友可以參考下。
    2017-10-10
  • python argparser的具體使用

    python argparser的具體使用

    這篇文章主要介紹了python argparser的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 使用Python制作一個批量查詢搜索排名工具

    使用Python制作一個批量查詢搜索排名工具

    這篇文章主要為大家詳細(xì)介紹了如何使用Python制作一個批量查詢搜索排名工具,并且不需要花費任何費用,裝上python開發(fā)環(huán)境即可,需要的可以參考一下
    2023-06-06
  • 詳解Python的迭代器、生成器以及相關(guān)的itertools包

    詳解Python的迭代器、生成器以及相關(guān)的itertools包

    這篇文章主要介紹了詳解Python的迭代器、生成器以及相關(guān)的itertools包,Iterators、Generators是Python的高級特性,亦是Python學(xué)習(xí)當(dāng)中必會的基本知識,需要的朋友可以參考下
    2015-04-04
  • python用戶自定義異常的實例講解

    python用戶自定義異常的實例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python用戶自定義異常的實例講解,以后需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-07-07
  • 詳解Python3中的迭代器和生成器及其區(qū)別

    詳解Python3中的迭代器和生成器及其區(qū)別

    本篇將介紹Python3中的迭代器與生成器,描述可迭代與迭代器關(guān)系,并實現(xiàn)自定義類的迭代器模式。非常具有實用價值,需要的朋友可以參考下
    2018-10-10

最新評論

房山区| 荃湾区| 宁化县| 涞水县| 溧阳市| 墨脱县| 女性| 南宁市| 交口县| 旬阳县| 桐柏县| 普兰县| 堆龙德庆县| 淮安市| 财经| 司法| 若尔盖县| 凤山市| 信宜市| 靖安县| 鄱阳县| 靖西县| 江山市| 合阳县| 茶陵县| 新和县| 沙洋县| 隆尧县| 璧山县| 和龙市| 凤冈县| 建瓯市| 东宁县| 泊头市| 萝北县| 阿拉善右旗| 丹巴县| 策勒县| 绩溪县| 娱乐| 博客|