關於我調試D4去霧代碼遇到的一些問題
論文和代碼連接如下:
文章:https://openaccess.thecvf.com/content/CVPR2022/html/Yang_Self-Augmented_Unpaired_Image_Dehazing_via_Density_and_Depth_Decomposition_CVPR_2022_paper.html
代码:代码已公布 https://github.com/YaN9-Y/D4
問題1;代碼閱讀的問題
1.首先是在官網下載代碼之後,要對代碼有一個初步的閱讀,深度學習無非是四個基本內容,1.數據集的獲取和處理,2.模型和網絡的基本架構,3.模型的訓練,4.模型的測試。因此在拿到工程文件後,我習慣於首先找到主函數main.py和測試函數text.py以及訓練函數train.py。當然有的工程還需要製作數據集,這時候首先應該運行對應的create dasteset.py文件。一些給出log以及examply的工程,我們可以用他們訓練好的參數直接測試,這一步比較簡單,不需要我們訓練,直接可以u測試模型的可靠性,但是往往來說的話,大多數都需要我們自己訓練模型,這就要注意對於新手來說,路徑的修改以及相應配置文件的生成。當路徑沒問題後,運行我們的train文件和text文件。建議新手先把代碼跑通,然後再詳細閱讀代碼。閱讀時注意每個文件的調用,明白每個數據的輸入與輸出,能清楚數據的來源以及走向,這可以借箸軟件完成,有不清楚的可以調試加搜索路徑解決。
問題2:代碼運行時候的報錯
報錯1:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
kornia 0.7.0 requires torch>=1.9.1, but you have torch 1.9.0+rocm4.2 which is incompatible.
諸如此類的報錯,歸根結底就是軟件和模塊不兼容的問題
解決方法:
輸入nvidia-smi指令查看自己電腦顯卡所支持的cuda版本,如圖表格中的第一行就是你的驅動器版本和對應的能支持的最高的cuda版本,我的是10.2,也就表明我能安裝的只能是《=10.2版本的cuda,因此,打開網址:Previous PyTorch Versions | PyTorch找到最適合自己的版本,這裡注意,我剛開始在網上找了好多解決方案,比如我安裝的代碼為:pip install torch-1.8.1+cu102-cp38-cp38-linux_x86_64.whl,可是,在後面總是報錯,以至於出現了報錯2中的情況。
報錯2:
RuntimeError: No HIP GPUs are available
查找了相關資料,百度給的解釋是:
出现"RuntimeError: No HIP GPUs are available"错误是因为系统中没有可用的HIP(Heterogeneous-compute Interface for Portability)兼容的GPU。
HIP是支持AMD GPU的统一编程模型,类似于NVIDIA的CUDA。如果您想在使用HIP的应用程序中运行GPU相关的代码,您需要确保系统上安装了HIP驱动和相应的GPU设备。
下面是一些可能的解决方案:
-
检查系统是否安装了正确版本的HIP驱动。您可以通过官方网站或驱动程序提供商的文档了解哪个版本的驱动程序与您的GPU兼容。
-
检查您的系统中是否存在兼容的AMD GPU设备。如果没有GPU设备或者设备不兼容HIP,您将无法运行HIP相关的代码。
-
检查系统中是否存在其他驱动程序或软件与HIP驱动冲突。有时,其他驱动程序或软件可能会干扰HIP驱动的正常工作。您可以尝试卸载冲突软件或更新驱动程序以解决冲突问题。
這時候我想我的顯卡是NVIDIA呀,並沒有用AMD,怎麼會涉及到HIP呢?,反覆思考後想到是我忘了檢查我安裝完的cuda是否可以運行,所以我在終端執行python->import torch->torch.cuda.is_available(),結果輸出flase,這下才恍然大悟,原來我的cuda壓根就不可用,所以他調用不了GPU,而出現flase的原因是及解決方案如下連接
安装pytorch报错torch.cuda.is_available()=false的解决方法_Mad-Eye的博客-CSDN博客
按照作者提示操作之後,這個問題就得到了解決!
報錯3:
ImportError: cannot import name 'COMMON_SAFE_ASCII_CHARACTERS' from 'charset_normalizer.constant'
原因:版本不匹配
解決方案:升級到最新:pip install --upgrade charset-normalizer
報錯4:
AttributeError: 'Dataset' object has no attribute 'data'
原因:數據集路徑問題
解決方案:復叛數據的走向,查找數據集路徑是否正確
總結:大多數問題是版本以及路徑問題,遇到從沒見過或者網上查不到的錯誤時,應該第一時間想到版本匹配的問題以及與顯卡兼容的問題。