异常解决(一)-- RuntimeError: expected device cpu but got device cuda:0
生活随笔
收集整理的這篇文章主要介紹了
异常解决(一)-- RuntimeError: expected device cpu but got device cuda:0
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近在編寫深度學習的相關代碼,基于PyTorch,運行程序的時候,報錯,報錯內容如下所示:
RuntimeError: expected device cpu but got device cuda:0歸根結底,這個錯誤出現的主要原因是GPU類型的數據和CPU類型的數據不匹配。了解了錯誤的本質原因,那如何解決就非常簡單了。
首先,需要分析大環境是在GPU上還是在CPU上,然后在出錯的位置更改。無非就兩種情況,分別如下:
-
1.將數據改為GPU支持的類型
-
2.將數據改為CPU支持的類型
另外,需要注意的一點是:
-
在CUDA下訓練中的數據不能直接轉換為numpy
需要用這行代碼先將cuda數據轉為cpu數據,然后在轉為numpy數據。
data.cpu().detach().numpy()這里,用我自己項目里的代碼舉例(環境是GPU),output是以訓練好的網絡模型對測試集某張圖片的預測結果,是Tensor類型,支持cuda類型的。
總結
以上是生活随笔為你收集整理的异常解决(一)-- RuntimeError: expected device cpu but got device cuda:0的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这些迹象表明公司即将裁员
- 下一篇: 拉面说:如何成为速食拉面独角兽