亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PyTorch模型的保存與加載方法實(shí)例

 更新時(shí)間:2022年09月23日 09:53:59   作者:長命百歲?  
Pytorch保存模型其實(shí)非常簡單,下面這篇文章主要給大家介紹了關(guān)于PyTorch模型的保存與加載的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

模型的保存與加載

首先,需要導(dǎo)入兩個(gè)包

import torch
import torchvision.models as models

保存和加載模型參數(shù)

PyTorch模型將學(xué)習(xí)到的參數(shù)存儲(chǔ)在一個(gè)內(nèi)部狀態(tài)字典中,叫做state_dict。這可以通過torch.save方法來實(shí)現(xiàn)。
我們導(dǎo)入預(yù)訓(xùn)練好的VGG16模型,并將其保存。我們將state_dict字典保存在model_weights.pth文件中。

model = models.vgg16(pretrained=True)
torch.save(model.state_dict(), 'model_weights.pth')

想要加載模型參數(shù),我們需要?jiǎng)?chuàng)建一個(gè)和原模型一樣的實(shí)例,然后通過load_state_dict()方法來加載模型參數(shù)

  • 創(chuàng)建一個(gè)VGG16模型實(shí)例(未經(jīng)過預(yù)訓(xùn)練的)
  • 加載本地參數(shù)
model = models.vgg16() # we do not specify pretrained=True, i.e. do not load default weights
model.load_state_dict(torch.load('model_weights.pth'))
model.eval()

注意:在進(jìn)行測試前,如果模型中有dropout層和batch normalization層的話,一定要使用model.eval()將模型轉(zhuǎn)到測試模式。

  • train模式下,dropout網(wǎng)絡(luò)層會(huì)按照設(shè)定的參數(shù)p設(shè)置保留激活單元的概率(保留概率=p); batchnorm層會(huì)繼續(xù)計(jì)算數(shù)據(jù)的meanvar等參數(shù)并更新。
  • val模式下,dropout層會(huì)讓所有的激活單元都通過,而batchnorm層會(huì)停止計(jì)算和更新meanvar,直接使用在訓(xùn)練階段已經(jīng)學(xué)出的meanvar

當(dāng)然,相同的,在模型進(jìn)行訓(xùn)練之前,要使用model.train()來將模型轉(zhuǎn)為訓(xùn)練模式

保存和加載模型參數(shù)與結(jié)構(gòu)

當(dāng)加載模型權(quán)重時(shí),我們需要首先實(shí)例化模型類,因?yàn)轭惗x了網(wǎng)絡(luò)的結(jié)構(gòu)。我們可能希望將這個(gè)類的結(jié)構(gòu)與模型保存在一起。這樣的話,我們可以將model而不是model.state_dict()作為參數(shù)。

torch.save(model, 'model.pth')

這樣,我們加載模型的時(shí)候就不用再新建一個(gè)實(shí)例了。加載方式如下所示

model = torch.load('model.pth')

這種方式在網(wǎng)絡(luò)比較大的時(shí)候可能比較慢,因?yàn)橄噍^于上面的方式多存儲(chǔ)了網(wǎng)絡(luò)的結(jié)構(gòu)

總結(jié)

到此這篇關(guān)于PyTorch模型的保存與加載方法的文章就介紹到這了,更多相關(guān)PyTorch模型保存加載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 合并Excel工作薄中成績表的VBA代碼,非常適合教育一線的朋友

    合并Excel工作薄中成績表的VBA代碼,非常適合教育一線的朋友

    每次學(xué)生考試,評分完畢之后,把每個(gè)科的成績收集起來,就得到了一個(gè)有若干工作表,每個(gè)表有學(xué)生學(xué)號、分?jǐn)?shù)等列的Excel工作薄。
    2009-04-04
  • python+pygame實(shí)現(xiàn)坦克大戰(zhàn)小游戲的示例代碼(可以自定義子彈速度)

    python+pygame實(shí)現(xiàn)坦克大戰(zhàn)小游戲的示例代碼(可以自定義子彈速度)

    這篇文章主要介紹了python+pygame實(shí)現(xiàn)坦克大戰(zhàn)小游戲---可以自定義子彈速度,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 詳解Python中的join()函數(shù)的用法

    詳解Python中的join()函數(shù)的用法

    這篇文章主要介紹了詳解Python中的join()函數(shù)的用法,join()函數(shù)主要用來拼接字符串,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-04-04
  • python輸入一個(gè)水仙花數(shù)(三位數(shù)) 輸出百位十位個(gè)位實(shí)例

    python輸入一個(gè)水仙花數(shù)(三位數(shù)) 輸出百位十位個(gè)位實(shí)例

    這篇文章主要介紹了python輸入一個(gè)水仙花數(shù)(三位數(shù)) 輸出百位十位個(gè)位實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python-docx如何刪除所有bookmarks

    python-docx如何刪除所有bookmarks

    在Python-docx庫中,雖然沒有直接刪除書簽的功能,但可以通過操作XML元素,遍歷文檔結(jié)構(gòu)并刪除指定元素來實(shí)現(xiàn)刪除所有書簽的目的,首先要明白書簽在XML文件中的位置,然后利用Python-docx提供的element元素遍歷并刪除特定的書簽元素
    2024-09-09
  • Python3如何跳過第一行讀取文件

    Python3如何跳過第一行讀取文件

    這篇文章主要介紹了Python3如何跳過第一行讀取文件問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python wxPython庫Core組件BoxSizer用法示例

    Python wxPython庫Core組件BoxSizer用法示例

    這篇文章主要介紹了Python wxPython庫Core組件BoxSizer用法,結(jié)合實(shí)例形式分析了wxPython BoxSizer布局管理相關(guān)使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2018-09-09
  • python中str內(nèi)置函數(shù)用法總結(jié)

    python中str內(nèi)置函數(shù)用法總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于python中str內(nèi)置函數(shù)用法總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • python 裝飾器的使用示例

    python 裝飾器的使用示例

    這篇文章主要介紹了python 裝飾器的使用示例,幫助大家更好的理解和使用python裝飾器,感興趣的朋友可以了解下
    2020-10-10
  • Python中線程鎖的使用介紹

    Python中線程鎖的使用介紹

    大家好,本篇文章主要講的是Python中線程鎖的使用介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01

最新評論