【E-14-Pytorch】RuntimeError: Expected object of device type cuda but got device type cpu for argument #2 'mat1' in call to _th_addmm


一、出錯誤背景:

Pytorch 中想使用 CUDA 對程序計算進行加速

二、問題分析

錯誤的意思object device 類型期望得到的是 cuda 類型,但是實際上的類型確實 cpu 類型,在調用二分類交叉熵損失進行前向計算的時候

三、檢查下面幾點:

  1. 模型是否放到了CUDA model = model.to(device)  model = model.cuda(device)
  2. 輸入數據是否放到了CUDA data = data.to(device)  data = data.cuda(device)
  3. 模型內部新建的張量是否放到了CUDA p = torch.tensor([1]).to(device)  p = torch.tensor([1]).cuda(device)
    一般情況下應該是忘記了第三點,而根據提示也可以知道,在進行二分類交叉熵損失進行前向計算的過程中,存在沒有放到cuda上的張量,找到他,fix it !!!

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

四、解決方式

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM