最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決torch.to(device)是否賦值的坑

 更新時間:2024年06月27日 14:45:39   作者:不會卷積  
這篇文章主要介紹了解決torch.to(device)是否賦值的坑,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

torch.to(device)是否賦值的坑

在我們用GPU跑程序時,需要在程序中把變量和模型放到GPU里面。

有一些坑需要注意,本文用RNN模型實例

首先,定義device

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

對于變量,需要進行賦值操作才能真正轉(zhuǎn)到GPU上:

all_input_batch=all_input_batch.to(device)

對于模型,不需要進行賦值:

 model = TextRNN()
 model.to(device)

對模型進行to(device),還有一種方法,就是在定義模型的時候全部對模型網(wǎng)絡(luò)參數(shù)to(device),這樣就可以不需要model.to(device)這句話。

class TextRNN(nn.Module):

    def __init__(self):
        super(TextRNN, self).__init__()
        #self.cnt = 0
        self.C = nn.Embedding(n_class, embedding_dim=emb_size,device=device)
        self.rnn = nn.RNN(input_size=emb_size, hidden_size=n_hidden,device=device)
        self.W = nn.Linear(n_hidden, n_class, bias=False,device=device)
        self.b = nn.Parameter(torch.ones([n_class])).to(device)


    def forward(self, X):
        X = self.C(X)
        #print(X.is_cuda)
        X = X.transpose(0, 1) # X : [n_step, batch_size, embeding size]
        outputs, hidden = self.rnn(X)
        # outputs : [n_step, batch_size, num_directions(=1) * n_hidden]
        # hidden : [num_layers(=1) * num_directions(=1), batch_size, n_hidden]
        outputs = outputs[-1] # [batch_size, num_directions(=1) * n_hidden]
        model = self.W(outputs) + self.b # model : [batch_size, n_class]
        return model

pytorch中model=model.to(device)用法

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

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

當(dāng)我們指定了設(shè)備之后,就需要將模型加載到相應(yīng)設(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上。確保對輸入的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上

確保對輸入的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)

總結(jié)

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

相關(guān)文章

  • Python3批量移動指定文件到指定文件夾方法示例

    Python3批量移動指定文件到指定文件夾方法示例

    這篇文章主要給大家介紹了關(guān)于Python3批量移動指定文件到指定文件夾的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Python3具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python寫的一個簡單DNS服務(wù)器實例

    Python寫的一個簡單DNS服務(wù)器實例

    這篇文章主要介紹了Python寫的一個簡單DNS服務(wù)器實例,需要的朋友可以參考下
    2014-06-06
  • pytorch圖片分割原理分析

    pytorch圖片分割原理分析

    自Transformer模型被應(yīng)用于計算機視覺領(lǐng)域后,圖像分割技術(shù)得到了進一步的發(fā)展,但圖像分割操作復(fù)雜,特別是對張量的處理,涉及多種變換方法,其中,view/reshape用于改變數(shù)據(jù)形狀,而permute/transpose用于改變數(shù)據(jù)的維度順序
    2024-10-10
  • 基于python?win32setpixel?api?實現(xiàn)計算機圖形學(xué)相關(guān)操作(推薦)

    基于python?win32setpixel?api?實現(xiàn)計算機圖形學(xué)相關(guān)操作(推薦)

    這篇文章主要介紹了基于python?win32setpixel?api?實現(xiàn)計算機圖形學(xué)相關(guān)操作,這次的主要分為2個主要模塊,一個是實現(xiàn)畫線,畫圓的算法,還有填充的算法,以及裁剪的算法,需要的朋友可以參考下
    2021-12-12
  • Python實現(xiàn)圖片和視頻的相互轉(zhuǎn)換

    Python實現(xiàn)圖片和視頻的相互轉(zhuǎn)換

    有時候我們需要把很多的圖片合成視頻,或者說自己寫一個腳本去加快或者放慢視頻;也有時候需要把視頻裁剪成圖片,進行后續(xù)操作。這篇文章就將為大家介紹如何通過Python實現(xiàn)圖片和視頻的相互轉(zhuǎn)換,需要的可以參考一下
    2021-12-12
  • Python利用神經(jīng)網(wǎng)絡(luò)解決非線性回歸問題實例詳解

    Python利用神經(jīng)網(wǎng)絡(luò)解決非線性回歸問題實例詳解

    這篇文章主要介紹了Python利用神經(jīng)網(wǎng)絡(luò)解決非線性回歸問題,結(jié)合實例形式詳細分析了Python使用神經(jīng)網(wǎng)絡(luò)解決非線性回歸問題的相關(guān)原理與實現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • Python調(diào)用ollama本地大模型進行批量識別PDF

    Python調(diào)用ollama本地大模型進行批量識別PDF

    現(xiàn)在市場上有很多PDF文件的識別,然而隨著AI的興起,本地大模型的部署,這些成為一種很方便的方法,本文我們就來看看Python如何調(diào)用ollama本地大模型進行PDF相關(guān)操作吧
    2025-03-03
  • Notepad 輕量級文本編輯器的安裝及基本使用

    Notepad 輕量級文本編輯器的安裝及基本使用

    notepad–是一個國產(chǎn)跨平臺、輕量級的文本編輯器,是替換notepad++的一種選擇,notepad特點支持Window/Mac/Linux操作系統(tǒng)平臺,支持其他notepad競品的常用功能,這篇文章給大家介紹Notepad 輕量級文本編輯器的安裝及基本使用,感興趣的朋友一起看看吧
    2024-01-01
  • tensorflow入門之訓(xùn)練簡單的神經(jīng)網(wǎng)絡(luò)方法

    tensorflow入門之訓(xùn)練簡單的神經(jīng)網(wǎng)絡(luò)方法

    本篇文章主要介紹了tensorflow入門之訓(xùn)練簡單的神經(jīng)網(wǎng)絡(luò)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • python 實現(xiàn)屏幕錄制示例

    python 實現(xiàn)屏幕錄制示例

    今天小編就為大家分享一篇python 實現(xiàn)屏幕錄制示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論

吉林省| 厦门市| 白银市| 甘泉县| 丹凤县| 高安市| 岳普湖县| 武夷山市| 偏关县| 河北区| 鄂伦春自治旗| 乌什县| 遂平县| 旅游| 紫金县| 鸡泽县| 苍山县| 姚安县| 西青区| 新疆| 咸阳市| 潞城市| 松江区| 建宁县| 广丰县| 五大连池市| 普兰县| 拉萨市| 团风县| 阿鲁科尔沁旗| 大庆市| 扶绥县| 含山县| 新源县| 武宣县| 通道| 汉川市| 宁化县| 封开县| 四平市| 柘城县|