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

Pytorch中的modle.train,model.eval,with torch.no_grad解讀

 更新時(shí)間:2022年12月14日 15:30:41   作者:l8947943  
這篇文章主要介紹了Pytorch中的modle.train,model.eval,with torch.no_grad解讀,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

modle.train,model.eval,with torch.no_grad解讀

1. 最近在學(xué)習(xí)pytorch過程中遇到了幾個(gè)問題

不理解為什么在訓(xùn)練和測試函數(shù)中model.eval(),和model.train()的區(qū)別,經(jīng)查閱后做如下整理

一般情況下,我們訓(xùn)練過程如下:

拿到數(shù)據(jù)后進(jìn)行訓(xùn)練,在訓(xùn)練過程中,使用

  • model.train():告訴我們的網(wǎng)絡(luò),這個(gè)階段是用來訓(xùn)練的,可以更新參數(shù)。

訓(xùn)練完成后進(jìn)行預(yù)測,在預(yù)測過程中,使用

  • model.eval(): 告訴我們的網(wǎng)絡(luò),這個(gè)階段是用來測試的,于是模型的參數(shù)在該階段不進(jìn)行更新。

2. 但是為什么在eval()階段會使用with torch.no_grad()?

查閱相關(guān)資料:傳送門

with torch.no_grad - disables tracking of gradients in autograd.
model.eval() changes the forward() behaviour of the module it is called upon
       eg, it disables dropout and has batch norm use the entire population statistics

總結(jié)一下就是說,在eval階段了,即使不更新,但是在模型中所使用的dropout或者batch norm也就失效了,直接都會進(jìn)行預(yù)測,而使用no_grad則設(shè)置讓梯度Autograd設(shè)置為False(因?yàn)樵谟?xùn)練中我們默認(rèn)是True),這樣保證了反向過程為純粹的測試,而不變參數(shù)。

另外,參考文檔說這樣避免每一個(gè)參數(shù)都要設(shè)置,解放了GPU底層的時(shí)間開銷,在測試階段統(tǒng)一梯度設(shè)置為False

model.eval()與torch.no_grad()的作用

model.eval()

經(jīng)常在模型推理代碼的前面, 都會添加model.eval(), 主要有3個(gè)作用:

  • 1.不進(jìn)行dropout
  • 2.不更新batchnorm的mean 和var 參數(shù)
  • 3.不進(jìn)行梯度反向傳播, 但梯度仍然會計(jì)算

torch.no_grad()

torch.no_grad的一般使用方法是, 在代碼塊外面用with torch.no_grad()給包起來。 如下面這樣:

with torch.no_grad():
?? ?# your code?

它的主要作用有2個(gè):

  • 1.不進(jìn)行梯度的計(jì)算(當(dāng)然也就沒辦法反向傳播了), 節(jié)約顯存和算力
  • 2.dropout和batchnorn還是會正常更新

異同

從上面的介紹中可以非常明確的看出,它們的相同點(diǎn)是一般都用在推理階段, 但它們的作用是完全不同的, 也沒有重疊。 可以一起使用。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pytorch進(jìn)行上采樣的種類實(shí)例

    pytorch進(jìn)行上采樣的種類實(shí)例

    今天小編就為大家分享一篇pytorch進(jìn)行上采樣的種類實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • matplotlib實(shí)現(xiàn)區(qū)域顏色填充

    matplotlib實(shí)現(xiàn)區(qū)域顏色填充

    這篇文章主要為大家詳細(xì)介紹了matplotlib實(shí)現(xiàn)區(qū)域顏色填充,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • python中關(guān)于xmltodict的使用

    python中關(guān)于xmltodict的使用

    這篇文章主要介紹了python中關(guān)于xmltodict的使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Python Pandas處理csv文件常用示例

    Python Pandas處理csv文件常用示例

    Pandas是一個(gè)非常強(qiáng)大的數(shù)據(jù)操作python包,支持各種數(shù)據(jù)格式,包括CSV文件,本文就來介紹一下Python Pandas處理csv文件常用示例,感興趣的可以了解一下
    2023-12-12
  • Python ''takes exactly 1 argument (2 given)'' Python error

    Python ''takes exactly 1 argument (2 given)'' Python error

    這篇文章主要介紹了Python 'takes exactly 1 argument (2 given)' Python error的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 深入了解Python中字符串格式化工具f-strings的使用

    深入了解Python中字符串格式化工具f-strings的使用

    從Python?3.6版本開始,引入了一種新的字符串格式化機(jī)制,即f-strings,它強(qiáng)大且易于使用的字符串格式化方式,本文就來聊聊他的具體使用,希望對大家有所幫助
    2023-05-05
  • 使用python繪制隨機(jī)地形地圖

    使用python繪制隨機(jī)地形地圖

    Python 作為一門功能強(qiáng)大的編程語言,在地圖生成方面有著豐富的資源和庫,本文將介紹如何使用 Python 中的一些工具和庫來繪制隨機(jī)地形地圖,感興趣的小伙伴可以跟著小編一起來看看
    2024-04-04
  • Pyecharts 中Geo函數(shù)常用參數(shù)的用法說明

    Pyecharts 中Geo函數(shù)常用參數(shù)的用法說明

    這篇文章主要介紹了Pyecharts 中Geo函數(shù)常用參數(shù)的用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 基于Python實(shí)現(xiàn)流星雨效果的繪制

    基于Python實(shí)現(xiàn)流星雨效果的繪制

    這篇文章主要為大家介紹了如何利用Python繪制一個(gè)浪漫的流星雨效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動手試一試
    2022-03-03
  • Django 模板中常用的過濾器實(shí)現(xiàn)

    Django 模板中常用的過濾器實(shí)現(xiàn)

    在模版中,有時(shí)候需要對一些數(shù)據(jù)進(jìn)行處理以后才能使用。一般在Python中我們是通過函數(shù)的形式來完成的。而在模版中,則是通過過濾器來實(shí)現(xiàn)的,本文就來介紹一下如何實(shí)現(xiàn)
    2021-05-05

最新評論

阿克| 中江县| 依安县| 华坪县| 南皮县| 三门县| 颍上县| 余干县| 太和县| 大城县| 定边县| 汝州市| 龙山县| 郧西县| 吉林市| 呼和浩特市| 西安市| 惠东县| 毕节市| 青冈县| 阳原县| 东兰县| 博兴县| 武义县| 延川县| 南安市| 三台县| 克什克腾旗| 普格县| 乐清市| 清水县| 即墨市| 汉源县| 策勒县| 荆州市| 芦山县| 五家渠市| 彭泽县| 河源市| 阳泉市| 呼和浩特市|