windows10系統(tǒng)安裝tensorflow-gpu1.8.0

最近的機(jī)器學(xué)習(xí)大作業(yè)要用卷積神經(jīng)網(wǎng)絡(luò)做模型,github上找了代碼卻發(fā)現(xiàn)跑起來特別慢,迭代一次就要好幾分鐘,于是終于下定決心安裝gpu版本的tensorflow,之前沒裝是因?yàn)榫W(wǎng)上查到的資料都在說好多坑,很難,僅供參考,目前適用于本人,把安裝過程和查閱的資料都擺在這里,分享一下,也為以后需要用到時(shí)做個(gè)備份吧。大體參考的博客:https://www.cnblogs.com/apan008/p/11254688.html

環(huán)境


windows10+anaconda3.0
顯卡是N卡 GeForce MX250
TensorFlow的GPU 版本需要 CUDA 和 cuDNN 的支持,你需要查看一下你的英偉達(dá)GPU是否支持CUDA,https://developer.nvidia.com/cuda-gpus,我在上邊并沒有找到我的顯卡,不過這個(gè)輕薄本獨(dú)顯應(yīng)該也湊合能用吧。
打開NVIDIA控制面板,點(diǎn)擊左下角的系統(tǒng)信息,點(diǎn)擊組件選項(xiàng)卡


應(yīng)該是支持的

步驟


第一步:安裝Anaconda

我先前已經(jīng)安裝過Anaconda3了,一路通過,中間出現(xiàn)的兩個(gè)選項(xiàng)都沒有選,自己配置一下環(huán)境就行了,具體可以參考上邊的博客或者網(wǎng)上有很多教程,這一步我用的清華鏡像安裝的,沒什么大問題。注意我安裝的版本默認(rèn)的base環(huán)境是python3.7的,3.7好像只能裝tensorflow2.0,室友也說沒有對應(yīng)的tensorflow,干脆我也把base版本降到了3.6,方法是在Anaconda Prompt中打一行

conda install python=3.6

即可

第二步:安裝CUDA Toolkit + cuDNN

我下載的是CUDA Toolkit 9.0 + cuDNNv7.0.5, for CUDA 9.0, for windows 10

tensorflow官網(wǎng)打不開,理論上應(yīng)該看下載的CUDA和cuDNN的版本是否一致,為了省事我就直接按照人家下載的版本安裝,安裝過程基本與其類似。

在這個(gè)網(wǎng)址查找CUDA已發(fā)布版本:https://developer.nvidia.com/cuda-toolkit-archive

下載好CUDA Toolkit 9.0 后,我們開始下載cuDnn 7.0,需要注意的是,下載cuDNN需要在nvidia上注冊賬號(hào),使用郵箱注冊就可以,免費(fèi)的。登陸賬號(hào)后才能下載。注意印象是密碼設(shè)置的為至少9位。

至關(guān)重要的一步:
由于CUDA Toolkit需要在指定版本顯卡驅(qū)動(dòng)環(huán)境下才能正常使用的,所以如果我們已經(jīng)安裝了nvidia顯卡驅(qū)動(dòng)(很顯然,大部分人都安裝了),再安裝CUDA Toolkit時(shí),會(huì)因二者版本不兼容而導(dǎo)致CUDA無法正常使用,這也就是很多人安裝失敗的原因。而CUDA Toolkit安裝包中自帶與之匹配的顯卡驅(qū)動(dòng),所以務(wù)必要?jiǎng)h除電腦先前的顯卡驅(qū)動(dòng)。我也把MX250的顯卡驅(qū)動(dòng)卸載了。后來掃描硬件的時(shí)候又出現(xiàn)了,一頭霧水。

CUDA:選擇自定義安裝--->勾選所有驅(qū)動(dòng)組件--->一路通過

cuDNN:解壓后將三個(gè)文件夾中內(nèi)容分別粘貼到CUDA安裝目錄下對應(yīng)文件夾內(nèi)即可。

第三步:安裝tensorflow-gpu

1.創(chuàng)建conda環(huán)境

conda create -n tensorflow pip python=3.5

之前就把conda設(shè)置為了清華源,下載速度很快

2.激活環(huán)境

activate tensorflow

這樣就進(jìn)入了剛創(chuàng)建的“tensorflow”環(huán)境。

3.安裝tensorflow-gpu

pip install --ignore-installed --upgrade tensorflow-gpu=1.8.0

4.測試

能成功運(yùn)行的話這樣就安裝成功啦!
注意在VScode中把設(shè)置調(diào)成env中的tensorflow環(huán)境就行了。

最終運(yùn)行代碼時(shí)報(bào)錯(cuò):failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED 并直接退出運(yùn)行,問題在于:
https://blog.csdn.net/weixin_42769131/article/details/84372952
如果你是使用 GPU 版 TensorFlow 的話,并且你想在顯卡高占用率的情況下(比如玩游戲)訓(xùn)練模型,那你要注意在初始化 Session 的時(shí)候為其分配固定數(shù)量的顯存,否則可能會(huì)在開始訓(xùn)練的時(shí)候直接報(bào)錯(cuò)退出:
這時(shí)你需要用下面的方法創(chuàng)建 Session:

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
這里的0.333就是占你總顯存的份額。

遇到的諸多問題:

1.tensorflow2.0

我完全按照博客中的步驟來時(shí),發(fā)現(xiàn)安裝了tensorflow-gpu2.0,結(jié)果證明,2.0完全用不了,如果是自己慢慢研究寫代碼或許還可以,我用的別人兩年前的代碼,人家用的tensorflow肯定不是2.0版本的,許多tf語句都不一樣,例如:報(bào)錯(cuò):“AttributeError: module 'tensorflow' has no attribute 'Session'”
因?yàn)槭莟ensorflow 2.0版本
怎么解決:
此時(shí)須用
tf.compat.v1.Session()
替代
tf.Session()`

2.tensorflow1.4.0

也用不了,報(bào)錯(cuò):ImportError: Could not find 'cudart64_100.dll'
解決方法:https://blog.csdn.net/aya_tao/article/details/100056269
但是解決了(改名后可以用但)事實(shí)上也無法用gpu加速,這就是第三個(gè)問題了

3.GPU占用率1%

看似安裝完成之后其實(shí)也沒有用GPU加速,原因尚未可知,至少前兩個(gè)問題中的版本用不了。我還嘗試使用TensorFlow指定GPU設(shè)備、分配顯存,依然沒有用。

4.查閱過的博客

https://ask.csdn.net/questions/710159無法調(diào)用gpu
https://blog.51cto.com/cfy10/2446977?source=dra安裝tensorflow2.0的坑
https://blog.csdn.net/gangeqian2/article/details/79358543tensorflow安裝
https://blog.csdn.net/littlehaes/article/details/82317220tensorflow獲取可用運(yùn)算設(shè)備(CPU,GPU)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容