日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解决方案:炼丹师养成计划 Pytorch+DeepLearning遇见的各种报错与踩坑避坑记录(一)

發布時間:2024/1/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决方案:炼丹师养成计划 Pytorch+DeepLearning遇见的各种报错与踩坑避坑记录(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 問題1: load() missing 1 required positional argument: 'Loader'
  • 問題2:ModuleNotFoundError: No module named 'dateutil'
  • 問題3:RuntimeError: Expected object of backend CPU but got backend CUDA for argument #4 'mat1'
  • 問題4:ValueError: not enough values to unpack (expected 3, got 2)
  • 問題5:Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

問題1: load() missing 1 required positional argument: ‘Loader’

問題原因:該報錯原因提示為load函數缺少必填的Loader參數

解決方案1:使用safe_load()函數代替 load()

import yamlwith open(filename, 'r') as f:yaml_cfg = edict(yaml.safe_load(f))

解決方案2:添加參數 Loader=yaml.FullLoader

import yamlwith open(filename, 'r') as f:yaml_cfg = edict(yaml.load(f,Loader=yaml.FullLoader))

解決方案3:降級pyyaml 版本(親測有效)
pip install pyyaml==5.4.1

問題2:ModuleNotFoundError: No module named ‘dateutil’

問題原因:pip install dateutil失敗,因為該模塊非常坑,他叫 python-dateutil
解決方案: pip3 install python-dateuti

問題3:RuntimeError: Expected object of backend CPU but got backend CUDA for argument #4 ‘mat1’

問題原因:期望的對象是在后端CPU,但參數在后端CUDA上面,直白來說,就是模型沒有放到cuda上面,但是模型需要的參數或者模型的部分模塊被放到了cuda上面。

解決方案:將模型也放到cuda上

# 進行可用設備檢測, 有GPU的話將優先使用GPUdevice = torch.device("cuda" if torch.cuda.is_available() else "cpu")model = model.to(device) 或 model = model.cuda(device)

問題4:ValueError: not enough values to unpack (expected 3, got 2)

問題原因:期望有三個返回值,但其實函數只有兩個返回值

解決方案:定位到錯誤,檢查函數和接收函數返回值的參數個數

問題5:Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

問題原因:輸入的數據類型為torch.cuda.FloatTensor,說明輸入數據在GPU中
模型參數的數據類型為torch.FloatTensor,說明模型還在CPU

解決方案:將對應的模型參數放入cuda
如:

proj = nn.Conv2d(3, 3, 3, 4, 0) imgs[i] = proj(imgs[i])

出錯,說明img[i]在gpu上面,而我們的proj還在cpu上,所以要把proj放到cuda上面去:

proj = nn.Conv2d(3, 3, 3, 4, 0) proj = proj.cuda() imgs[i] = proj(imgs[i])

總結

以上是生活随笔為你收集整理的解决方案:炼丹师养成计划 Pytorch+DeepLearning遇见的各种报错与踩坑避坑记录(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。