Python中torch.load()加載模型以及其map_第1頁
Python中torch.load()加載模型以及其map_第2頁
Python中torch.load()加載模型以及其map_第3頁
Python中torch.load()加載模型以及其map_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第Python中torch.load()加載模型以及其map目錄參考torch.load()模型的保存模型加載中的map_location參數map_location=Nonemap_location=torch.device()map_location={xx:xx}總結

參考

TORCH.LOAD

torch.load()

函數格式為:torch.load(f,map_location=None,pickle_module=pickle,**pickle_load_args),一般我們使用的時候,基本只使用前兩個參數。

模型的保存

模型保存有兩種形式,一種是保存模型的state_dict(),只是保存模型的參數。那么加載時需要先創建一個模型的實例model,之后通過torch.load()將保存的模型參數加載進來,得到dict,再通過model.load_state_dict(dict)將模型的參數更新。

另一種是將整個模型保存下來,之后加載的時候只需要通過torch.load()將模型加載,即可返回一個加載好的模型。

具體可參考:PyTorch模型的保存與加載。

模型加載中的map_location參數

具體來說,map_location參數是用于重定向,比如此前模型的參數是在cpu中的,我們希望將其加載到cuda:0中。或者我們有多張卡,那么我們就可以將卡1中訓練好的模型加載到卡2中,這在數據并行的分布式深度學習中可能會用到。

首先定義一個AlexNet,并使用cuda:0將其訓練了一個貓狗分類,之后把模型存儲起來。

map_location=None

我們先把state_dict加載進來。

model_path="./cuda_model.pth"

model=torch.load(model_path)

print(next(model.parameters()).device)

結果為:

cuda:0

因為保存的時候就是模型就是cuda:0的,所以加載進來也是。

map_location=torch.device()

model_path="./cuda_model.pth"

model=torch.load(model_path,map_location=torch.device('cpu'))

print(next(model.parameters()).device)

結果為:

cpu

模型從cuda:0變成了cpu。

map_location={xx:xx}

model_path="./cuda_model.pth"

model=torch.load(model_path,map_location={'cuda:0':'cuda:1'})

print(next(model.parameters()).device)

結果為:

cuda:1

模型從cuda:0變成了cuda:1。

model_path="./cuda_model.pth"

model=torch.load(model_path,map_location={'cuda:2':'cpu'})

print(next(model.parameters()).device)

結果為:

cuda:0

模型還是cuda:0,并沒有變成cpu。因為這個map_location的映射是不對的,原始的模型就是c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論