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

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

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

torch.nn.**

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

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.**是一個(gè)純數(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.實(shí)現(xiàn)方式不同;4.調(diào)用方式不同。

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

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

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

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

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

聯(lián)系

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

如何選擇

1. 何時(shí)選擇torch.nn 

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

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

二是因?yàn)閙odel類(lèi)本身是nn.Module,看起來(lái)會(huì)比較協(xié)調(diào)統(tǒng)一;

三是因?yàn)榭梢越Y(jié)合nn.Sequential。

四是當(dāng)使用dropout時(shí)推薦使用nn模塊,因?yàn)榭梢栽跍y(cè)試階段通過(guò)eval()方法方便地關(guān)閉dropout。

2. 何時(shí)選擇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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

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

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

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

    Python判斷直線(xiàn)和矩形是否相交的方法

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

    利用python爬取斗魚(yú)app中照片方法實(shí)例

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

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

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

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

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

    python argparser的具體使用

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

    使用Python制作一個(gè)批量查詢(xún)搜索排名工具

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

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

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

    python用戶(hù)自定義異常的實(shí)例講解

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

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

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

最新評(píng)論

凤庆县| 安泽县| 深泽县| 仙居县| 漯河市| 突泉县| 金湖县| 宜州市| 丰都县| 揭阳市| 东宁县| 界首市| 铜川市| 广元市| 泸定县| 邓州市| 丁青县| 阳山县| 永和县| 辽阳县| 灵石县| 三明市| 岳阳市| 西乌珠穆沁旗| 东宁县| 阿荣旗| 延津县| 嵊州市| 兴安县| 宁城县| 明溪县| 崇信县| 蒙城县| 五指山市| 盐山县| 武宁县| 鄂州市| 儋州市| 保德县| 曲靖市| 成都市|