RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED解決辦法
配置: Python 3.7.6, CUDA 10.0,Pytorch 1.3.1, cudNN 7.6
執行時出現如題錯誤
解決辦法: 在程式碼前面新增torch.backends.cudnn.enabled = False
作用: 網傳是禁用cuDNN作用,官網沒有查到相應API
說明: 網上查到的靠譜的解決辦法,意思大都是說各個版本匹配的問題,個人覺得有一定道理,可能是這麼回事,以上辦法,也只是針對個人的環境下,可以解決
ps:
1、什麼是CUDA
CUDA(ComputeUnified Device Architecture),是顯示卡廠商NVIDIA推出的運算平臺。 CUDA是一種由NVIDIA推出的通用平行計算架構,該架構使GPU能夠解決複雜的計算問題。
2、什麼是CUDNN
NVIDIA cuDNN是用於深度神經網路的GPU加速庫。它強調效能、易用性和低記憶體開銷。NVIDIA cuDNN可以整合到更高階別的機器學習框架中,如谷歌的Tensorflow、加州大學伯克利分校的流行caffe軟體。簡單的插入式設計可以讓開發人員專注於設計和實現神經網路模型,而不是簡單調整效能,同時還可以在GPU上實現高效能現代平行計算。
3、CUDA與CUDNN的關係
CUDA看作是一個工作臺,上面配有很多工具,如錘子、螺絲刀等。cuDNN是基於CUDA的深度學習GPU加速庫,有了它才能在GPU上完成深度學習的計算。它就相當於工作的工具,比如它就是個扳手。但是CUDA這個工作臺買來的時候,並沒有送扳手。想要在CUDA上執行深度神經網路,就要安裝cuDNN,就像你想要擰個螺帽就要把扳手買回來。這樣才能使GPU進行深度神經網路的工作,工作速度相較CPU快很多。
作者:Sunglam
連結:https://www.jianshu.com/p/622f47f94784
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
綜上,這個禁用cuDNN到底對速度有什麼影響還需要測試
還有一種方法可以試試:
pytorch torch.backends.cudnn設定作用
cuDNN使用非確定性演算法,並且可以使用torch.backends.cudnn.enabled = False來進行禁用
如果設定為torch.backends.cudnn.enabled =True,說明設定為使用使用非確定性演算法
然後再設定:
torch.backends.cudnn.benchmark = true
那麼cuDNN使用的非確定性演算法就會自動尋找最適合當前配置的高效演算法,來達到優化執行效率的問題
一般來講,應該遵循以下準則:
如果網路的輸入資料維度或型別上變化不大,設定 torch.backends.cudnn.benchmark = true 可以增加執行效率;
如果網路的輸入資料在每次 iteration 都變化的話,會導致 cnDNN 每次都會去尋找一遍最優配置,這樣反而會降低執行效率。
所以我們經常看見在程式碼開始出兩者同時設定:
torch.backends.cudnn.enabled = True
torch.backends.cudnn.benchmark = True
來源於:https://www.cnblogs.com/wanghui-garcia/p/11514502.html
相關文章
- RuntimeError: Error(s) in loading state_dict for SSD: Missing key(s) in解決辦法Error
- FTP Connection refused error 解決辦法FTPError
- Vue 下 ESLint 的 error 解決辦法VueEsLintError
- 解決報錯 cuDNN error: CUDNN_STATUS_NOT_SUPPORTED. This error may appear if you passed in a non-contiguous input.DNNErrorAPP
- ERROR 1290 (HY000) 解決辦法Error
- Openstack的error殭屍例項的解決辦法Error
- Myeclipse 錯誤An internal error has occurred 解決辦法EclipseError
- mysqldump error1066 錯誤的解決辦法MySqlError
- VS 2017 Git failed with a fatal error的解決辦法GitAIError
- iOS Error Domain=NSURLErrorDomain Code=-999 “cancelled” 解決辦法iOSErrorAI
- Navicat tnt版本提示“failed to save password error code”的解決辦法AIError
- 安裝VMware出現“Error 1406”的解決辦法Error
- 帝國CMSr的Fatal error:Allowed memory size of的解決辦法Error
- pecl PHP Parse error: syntax error, unexpected 'new' (T_NEW) 以及 XML缺失解決辦法PHPErrorXML
- Cargo invocation has failed: Error: exit code: 101.解決辦法CargoAIError
- 使用 Sublime 工具時報Decode error - output not utf-8解決辦法Error
- 安裝MySql出現Error Nr.1045的解決辦法MySqlError
- Proguard returned with error code 1. See console解決辦法”Error
- oracle 啟動不了 ora-12514 error 解決辦法OracleError
- github慢解決辦法Github
- Grub Rescue解決辦法
- /dev/null解決辦法devNull
- MSBuild Tools解決辦法UI
- 在Linux Mint中安裝Clion遇到CMake Error的解決辦法LinuxError
- Error:/etc/fstab:Read-only file system錯誤的解決辦法Error
- 檔案無法粉碎解決辦法
- 【Error】AttributeError: module ‘scipy.misc‘ has no attribute ‘logsumexp‘ 的解決辦法Error
- mongodb錯誤解決辦法-bash: ./mongod: cannot execute binary file: Exec format errorMongoDBORMError
- Sublime下python 報錯[Decode error - output not utf-8]解決辦法PythonError
- error while loading shared libraries 錯誤解決辦法總結ErrorWhile
- OpenStack 的NAT解決辦法
- android ExceptionInInitializerError解決辦法AndroidExceptionError
- Could not find *.apk!解決辦法APK
- man出錯解決辦法
- ARP病毒解決辦法
- 公寓噪音的解決辦法
- 非root使用者暴力法解決選擇性使用兩個cudnnDNN
- Sublime Text 2報 Decode error - output not utf-8 錯誤的解決辦法Error