婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > pytorch中的model=model.to(device)使用說明

pytorch中的model=model.to(device)使用說明

熱門標簽:地圖標注線上如何操作 開封語音外呼系統代理商 應電話機器人打電話違法嗎 400電話辦理哪種 河北防封卡電銷卡 開封自動外呼系統怎么收費 電銷機器人的風險 手機網頁嵌入地圖標注位置 天津電話機器人公司

這代表將模型加載到指定設備上。

其中,device=torch.device("cpu")代表的使用cpu,而device=torch.device("cuda")則代表的使用GPU。

當我們指定了設備之后,就需要將模型加載到相應設備中,此時需要使用model=model.to(device),將模型加載到相應的設備中。

將由GPU保存的模型加載到CPU上。

將torch.load()函數中的map_location參數設置為torch.device('cpu')

device = torch.device('cpu')
model = TheModelClass(*args, **kwargs)
model.load_state_dict(torch.load(PATH, map_location=device))

將由GPU保存的模型加載到GPU上。確保對輸入的tensors調用input = input.to(device)方法。

device = torch.device("cuda")
model = TheModelClass(*args, **kwargs)
model.load_state_dict(torch.load(PATH))
model.to(device)

將由CPU保存的模型加載到GPU上。

確保對輸入的tensors調用input = input.to(device)方法。map_location是將模型加載到GPU上,model.to(torch.device('cuda'))是將模型參數加載為CUDA的tensor。

最后保證使用.to(torch.device('cuda'))方法將需要使用的參數放入CUDA。

device = torch.device("cuda")
model = TheModelClass(*args, **kwargs)
model.load_state_dict(torch.load(PATH, map_location="cuda:0"))  # Choose whatever GPU device number you want
model.to(device)

補充:pytorch中model.to(device)和map_location=device的區別

一、簡介

在已訓練并保存在CPU上的GPU上加載模型時,加載模型時經常由于訓練和保存模型時設備不同出現讀取模型時出現錯誤,在對跨設備的模型讀取時候涉及到兩個參數的使用,分別是model.to(device)和map_location=devicel兩個參數,簡介一下兩者的不同。

將map_location函數中的參數設置 torch.load()為 cuda:device_id。這會將模型加載到給定的GPU設備。

調用model.to(torch.device('cuda'))將模型的參數張量轉換為CUDA張量,無論在cpu上訓練還是gpu上訓練,保存的模型參數都是參數張量不是cuda張量,因此,cpu設備上不需要使用torch.to(torch.device("cpu"))。

二、實例

了解了兩者代表的意義,以下介紹兩者的使用。

1、保存在GPU上,在CPU上加載

保存:

torch.save(model.state_dict(), PATH)

加載:

device = torch.device('cpu')
model = TheModelClass(*args, **kwargs)
model.load_state_dict(torch.load(PATH, map_location=device))

解釋:

在使用GPU訓練的CPU上加載模型時,請傳遞 torch.device('cpu')給map_location函數中的 torch.load()參數,使用map_location參數將張量下面的存儲器動態地重新映射到CPU設備 。

2、保存在GPU上,在GPU上加載

保存:

torch.save(model.state_dict(), PATH)

加載:

device = torch.device("cuda")
model = TheModelClass(*args, **kwargs)
model.load_state_dict(torch.load(PATH))
model.to(device)
# Make sure to call input = input.to(device) on any input tensors that you feed to the model

解釋:

在GPU上訓練并保存在GPU上的模型時,只需將初始化model模型轉換為CUDA優化模型即可model.to(torch.device('cuda'))。

此外,請務必.to(torch.device('cuda'))在所有模型輸入上使用該 功能來準備模型的數據。

請注意,調用my_tensor.to(device) 返回my_tensorGPU上的新副本。

它不會覆蓋 my_tensor。

因此,請記住手動覆蓋張量: my_tensor = my_tensor.to(torch.device('cuda'))

3、保存在CPU,在GPU上加載

保存:

torch.save(model.state_dict(), PATH)

加載:

device = torch.device("cuda")
model = TheModelClass(*args, **kwargs)
model.load_state_dict(torch.load(PATH, map_location="cuda:0"))  # Choose whatever GPU device number you want
model.to(device)
# Make sure to call input = input.to(device) on any input tensors that you feed to the model

解釋:

在已訓練并保存在CPU上的GPU上加載模型時,請將map_location函數中的參數設置 torch.load()為 cuda:device_id。

這會將模型加載到給定的GPU設備。

接下來,請務必調用model.to(torch.device('cuda'))將模型的參數張量轉換為CUDA張量。

最后,確保.to(torch.device('cuda'))在所有模型輸入上使用該 函數來為CUDA優化模型準備數據。

請注意,調用 my_tensor.to(device)返回my_tensorGPU上的新副本。

它不會覆蓋my_tensor。

因此,請記住手動覆蓋張量:my_tensor = my_tensor.to(torch.device('cuda'))

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 聊聊pytorch測試的時候為何要加上model.eval()
  • pytorch中的model.eval()和BN層的使用
  • 解決Pytorch中的神坑:關于model.eval的問題
  • Pytorch BertModel的使用說明
  • PyTorch中model.zero_grad()和optimizer.zero_grad()用法
  • pytorch掉坑記錄:model.eval的作用說明
  • pytorch:model.train和model.eval用法及區別詳解
  • pytorch 修改預訓練model實例
  • pytorch查看torch.Tensor和model是否在CUDA上的實例

標簽:山東 成都 宿遷 江蘇 駐馬店 蘭州 六盤水 常州

巨人網絡通訊聲明:本文標題《pytorch中的model=model.to(device)使用說明》,本文關鍵詞  pytorch,中的,model,model.to,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pytorch中的model=model.to(device)使用說明》相關的同類信息!
  • 本頁收集關于pytorch中的model=model.to(device)使用說明的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 阳西县| 五指山市| 苗栗市| 普兰县| 牙克石市| 阿图什市| 高雄县| 葫芦岛市| 大方县| 江阴市| 萍乡市| 三原县| 台中县| 西青区| 揭西县| 南昌市| 兰西县| 隆德县| 星子县| 汽车| 中山市| 榆树市| 梁平县| 泽库县| 泽普县| 荥阳市| 叶城县| 南涧| 大理市| 桐城市| 会宁县| 北安市| 西贡区| 盐城市| 柳州市| 措勤县| 蓬安县| 浏阳市| 田阳县| 黔西县| 渭南市|