91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

pytorch中model=model.to怎么用

發布時間:2021-05-25 14:14:00 來源:億速云 閱讀:291 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關pytorch中model=model.to怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

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

其中,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的優點

1.PyTorch是相當簡潔且高效快速的框架;2.設計追求最少的封裝;3.設計符合人類思維,它讓用戶盡可能地專注于實現自己的想法;4.與google的Tensorflow類似,FAIR的支持足以確保PyTorch獲得持續的開發更新;5.PyTorch作者親自維護的論壇 供用戶交流和求教問題6.入門簡單

感謝各位的閱讀!關于“pytorch中model=model.to怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江达县| 石楼县| 景洪市| 固安县| 克山县| 沽源县| 波密县| 樟树市| 东城区| 怀化市| 富阳市| 武威市| 伊金霍洛旗| 宣恩县| 新津县| 准格尔旗| 沂水县| 清镇市| 花莲市| 右玉县| 涟源市| 东兴市| 夹江县| 成都市| 紫金县| 钟祥市| 保康县| 金湖县| 饶河县| 承德县| 巫山县| 聊城市| 拜泉县| 阜康市| 那坡县| 西乌珠穆沁旗| 广昌县| 巴彦淖尔市| 阿拉善右旗| 康马县| 务川|