国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - pytorch中的model=model.to(device)使用說明

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

2021-11-12 12:09Wanderer001 Python

這篇文章主要介紹了pytorch中的model=model.to(device)使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

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

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

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

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

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

?
1
2
3
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)方法。

?
1
2
3
4
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。

?
1
2
3
4
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上加載

保存:

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

加載:

?
1
2
3
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上加載

保存:

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

加載:

?
1
2
3
4
5
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上加載

保存:

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

加載:

?
1
2
3
4
5
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'))

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

原文鏈接:https://blog.csdn.net/weixin_36670529/article/details/104367696

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国偷自产av一区二区三区 | 欧美日韩国产综合视频 | 亚洲国产一区二区三区 | 国产最新一区 | 欧美一级裸体视频 | 欧美三级电影在线播放 | 免费中文字幕 | 午夜精品久久久久久久久久久久 | 亚洲成人网一区 | 亚洲免费成人 | 精品国产一区二区三区小蝌蚪 | 日韩欧美手机在线 | 思热99re视热频这里只精品 | 国产精品99久久久久久久女警 | 精品超碰| 成人免费aaa | 午夜免费小视频 | 中文字幕国产一区 | 天天综合视频网 | 国外精品视频在线观看 | 韩国一区二区视频 | 亚洲精品久 | 色综合天天综合网国产成人网 | 亚洲成人精选 | 视频1区2区 | av网址在线播放 | 国精产品一区二区三区有限公司 | 免费视频黄 | 久久久久九九九九九 | 亚洲视屏| 亚洲精品久久久一区二区三区 | 一级黄色a | 龙珠z国语291集普通话 | 免费成人在线观看视频 | 亚洲午夜精品片久久www慈禧 | 久久中文字幕一区二区 | 亚洲免费二区 | 欧美日韩中文在线 | 亚洲视频免费在线观看 | www.日韩| 高清18麻豆 |