測(cè)試GPU是否能用于訓(xùn)練網(wǎng)絡(luò)汗菜,測(cè)試代碼見官網(wǎng):
https://databricks.com/tensorflow/using-a-gpu
運(yùn)行報(bào)錯(cuò):CUDA driver version is insufficient for CUDA runtime version
翻譯過來就是CUDA的驅(qū)動(dòng)版本和CUDA的運(yùn)行時(shí)版本不匹配荷并。
1、CUDA的驅(qū)動(dòng)版本查看命令
nvidia-smi
可以看到我電腦裝的CUDA驅(qū)動(dòng)版本是396.37
2舷夺、CUDA運(yùn)行時(shí)版本查看命令
coda list(如果你是用anaconda安裝的python環(huán)境就用coda list,否則用pip list就可以查看所有安裝包)
可以看到我電腦裝的CUDA運(yùn)行時(shí)版本是10.0
3茵瘾、CUDA驅(qū)動(dòng)和CUDA運(yùn)行時(shí)版本對(duì)應(yīng)關(guān)系
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
可以看到運(yùn)行時(shí)的本機(jī)的驅(qū)動(dòng)版本396.37只能匹配運(yùn)行時(shí)的9.2版本踢关,但anaconda(我在安裝keras時(shí)用的命令是:conda install keras-gpu,默認(rèn)安裝了conda的運(yùn)行時(shí)最新版本10.0)默認(rèn)安裝了10.0钝腺,運(yùn)行時(shí)版本過高了抛姑,不支持。
4艳狐、解決辦法
版本不匹配定硝,要不就是改驅(qū)動(dòng)版本,要不就是改運(yùn)行時(shí)版本毫目,但驅(qū)動(dòng)安裝太麻煩啦蔬啡,所以還是改運(yùn)行時(shí)版本比較方便呢诲侮。
所以根據(jù)版本對(duì)應(yīng)表,我們應(yīng)該安裝運(yùn)行時(shí)9.2版本箱蟆。
A沟绪、首先卸載python中安裝cudatoolkit和cudnn程序包
conda uninstall?cudnn 或 (pip uninstall?cudnn)
conda uninstall?cudatoolkit 或(?pip uninstall?cudatoolkit)
B、然后再安裝對(duì)應(yīng)版本的cudatoolkit和cudnn程序包
conda install?cudatoolkit=9.2 或(pip install?cudatoolkit=9.2)
conda install?cudnn 或(pip?install?cudnn)
C空猜、再安裝tensorflow和karas
再卸載CUDA運(yùn)行時(shí)程序包的時(shí)候绽慈,發(fā)現(xiàn)keras-gpu也被卸載了,只剩下base版本了辈毯,所以安裝完對(duì)應(yīng)版本的CDUA之后坝疼,再安裝一次keras-gpu,由于本機(jī)已經(jīng)安裝了cuda了谆沃,所以這次不會(huì)再安裝最新版本了钝凶。
執(zhí)行命令:conda install keras-gpu
運(yùn)行測(cè)試程序,結(jié)果中有如下輸出唁影,則代表正常
5耕陷、出現(xiàn)這種情況的原因
python中安裝tensorflow的gpu版本時(shí),pip會(huì)檢查tensorflow依賴的其他的包据沈,如果依賴的包沒有安裝哟沫,則會(huì)先安裝最新版本的依賴包,最終導(dǎo)致gpu驅(qū)動(dòng)版本和cuda運(yùn)行時(shí)版本不匹配卓舵。