執行時報錯RuntimeError: expected device cpu but got device cuda:0

於小勇發表於2020-12-17

最近在執行pytorch程式碼時發現的該錯誤,不管是 expected cpu 還是 expected cuda, 本質原因都是型別不匹配。

一般是因為:

  1. 等號左邊和右邊型別不一樣
  2. 運算子左右兩端型別不同,例:+ - * /
  3. 同一個函式內,傳入引數的型別不同,例matmul等

你要考慮你的大環境是在什麼上面部署的,CPU 還是 CUDA,然後再出錯位置嘗試修改資料.

->cuda : data.cuda()

->cpu: data.cpu()

->numpy:注意cuda型別不能直接轉numpy 須先轉成Cpu型別,data.cpu().numpy()   

                  注意在CUDA下訓練中的資料不能直接轉換為numpy,data.cpu().detach().numpy()

 

承接Matlab、Python和C++的程式設計,機器學習、計算機視覺的理論實現及輔導,本科和碩士的均可,鹹魚交易,專業回答請走知乎,詳談請聯絡QQ號757160542,非誠勿擾。

 

相關文章