欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2021年05月24日 15:11:01   作者:Wanderer001  
這篇文章主要介紹了pytorch中的model=model.to(device)使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

這代表將模型加載到指定設(shè)備上。

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

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

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

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

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

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

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

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

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

最后保證使用.to(torch.device('cuda'))方法將需要使用的參數(shù)放入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)

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

一、簡(jiǎn)介

在已訓(xùn)練并保存在CPU上的GPU上加載模型時(shí),加載模型時(shí)經(jīng)常由于訓(xùn)練和保存模型時(shí)設(shè)備不同出現(xiàn)讀取模型時(shí)出現(xiàn)錯(cuò)誤,在對(duì)跨設(shè)備的模型讀取時(shí)候涉及到兩個(gè)參數(shù)的使用,分別是model.to(device)和map_location=devicel兩個(gè)參數(shù),簡(jiǎn)介一下兩者的不同。

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

調(diào)用model.to(torch.device('cuda'))將模型的參數(shù)張量轉(zhuǎn)換為CUDA張量,無(wú)論在cpu上訓(xùn)練還是gpu上訓(xùn)練,保存的模型參數(shù)都是參數(shù)張量不是cuda張量,因此,cpu設(shè)備上不需要使用torch.to(torch.device("cpu"))。

二、實(shí)例

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

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))

解釋?zhuān)?/strong>

在使用GPU訓(xùn)練的CPU上加載模型時(shí),請(qǐng)傳遞 torch.device('cpu')給map_location函數(shù)中的 torch.load()參數(shù),使用map_location參數(shù)將張量下面的存儲(chǔ)器動(dòng)態(tài)地重新映射到CPU設(shè)備 。

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

解釋?zhuān)?/strong>

在GPU上訓(xùn)練并保存在GPU上的模型時(shí),只需將初始化model模型轉(zhuǎn)換為CUDA優(yōu)化模型即可model.to(torch.device('cuda'))。

此外,請(qǐng)務(wù)必.to(torch.device('cuda'))在所有模型輸入上使用該 功能來(lái)準(zhǔn)備模型的數(shù)據(jù)。

請(qǐng)注意,調(diào)用my_tensor.to(device) 返回my_tensorGPU上的新副本。

它不會(huì)覆蓋 my_tensor。

因此,請(qǐng)記住手動(dòng)覆蓋張量: 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

解釋?zhuān)?/strong>

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

這會(huì)將模型加載到給定的GPU設(shè)備。

接下來(lái),請(qǐng)務(wù)必調(diào)用model.to(torch.device('cuda'))將模型的參數(shù)張量轉(zhuǎn)換為CUDA張量。

最后,確保.to(torch.device('cuda'))在所有模型輸入上使用該 函數(shù)來(lái)為CUDA優(yōu)化模型準(zhǔn)備數(shù)據(jù)。

請(qǐng)注意,調(diào)用 my_tensor.to(device)返回my_tensorGPU上的新副本。

它不會(huì)覆蓋my_tensor。

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

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python列表的特點(diǎn)分析

    python列表的特點(diǎn)分析

    在本篇文章里小編個(gè)大家整理的是一篇關(guān)于python列表的特點(diǎn)分析內(nèi)容總結(jié),有需要的朋友們可以學(xué)習(xí)下。
    2021-08-08
  • Pytest自定義mark標(biāo)記篩選用例

    Pytest自定義mark標(biāo)記篩選用例

    這篇文章介紹了Pytest自定義mark標(biāo)記篩選用例的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • python3 將階乘改成函數(shù)形式進(jìn)行調(diào)用的操作

    python3 將階乘改成函數(shù)形式進(jìn)行調(diào)用的操作

    這篇文章主要介紹了python3 將階乘改成函數(shù)形式進(jìn)行調(diào)用的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • python一行代碼就能實(shí)現(xiàn)數(shù)據(jù)分析的pandas-profiling庫(kù)

    python一行代碼就能實(shí)現(xiàn)數(shù)據(jù)分析的pandas-profiling庫(kù)

    這篇文章主要為大家介紹了python一行代碼就能實(shí)現(xiàn)數(shù)據(jù)分析的pandas-profiling庫(kù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python同時(shí)替換多個(gè)字符串方法示例

    python同時(shí)替換多個(gè)字符串方法示例

    這篇文章主要介紹了python同時(shí)替換多個(gè)字符串方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python使用multiprocessing模塊實(shí)現(xiàn)多進(jìn)程并發(fā)處理大數(shù)據(jù)量的示例代碼

    Python使用multiprocessing模塊實(shí)現(xiàn)多進(jìn)程并發(fā)處理大數(shù)據(jù)量的示例代碼

    這篇文章主要介紹了Python使用multiprocessing模塊實(shí)現(xiàn)多進(jìn)程并發(fā)處理大數(shù)據(jù)量的示例代碼,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • 5分鐘 Pipenv 上手指南

    5分鐘 Pipenv 上手指南

    這篇文章主要介紹了5分鐘 Pipenv 上手指南,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python代碼注釋規(guī)范代碼實(shí)例解析

    Python代碼注釋規(guī)范代碼實(shí)例解析

    這篇文章主要介紹了Python代碼注釋規(guī)范代碼實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • python繪制直方圖的方法

    python繪制直方圖的方法

    這篇文章主要為大家詳細(xì)介紹了python繪制直方圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 對(duì)python中各個(gè)response的使用說(shuō)明

    對(duì)python中各個(gè)response的使用說(shuō)明

    今天小編就為大家分享一篇對(duì)python中各個(gè)response的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03

最新評(píng)論