Python中Tensorflow無法調(diào)用GPU問題的解決方法
當(dāng)用以下代碼查看GPU數(shù)量時,gpus返回的是一個空列表,說明tensorflow沒有找到GPU。
import tensorflow as tf # 查看gpu和cpu的數(shù)量 gpus = tf.config.experimental.list_physical_devices(device_type='GPU') cpus = tf.config.experimental.list_physical_devices(device_type='CPU')
是由于tensorflow版本從2.x開始不再區(qū)分CPU版和GPU版,
官網(wǎng)中說明Tensorflow 2.10是最后一個在本地windows上支持GPU的版本。
所以要在native-windows上使用GPU,就只能安裝2.10.0版本及以下的版本,或者安裝老版的tensorflow-gpu。
解決步驟:
所有現(xiàn)在我們要做的就是:要使用python2.10版本的Tensorflow去調(diào)用GPU
但是你如果想使用2.10版本的Tensorflow,你必須下載相應(yīng)適配的CUDA
WIN+r 輸入cmd 用Python -V查看你的python版本
Python -V 或 python --version
查出來:
接下來就是要把TensorFlow的版本降下來,在PyCharm里面的終端運(yùn)行下面代碼
pip install tensorflow==2.10.0
WIN+R并輸入CMD打開命令提示符,輸入nvidia-smi查看驅(qū)動支持的最高CUDA版本,以本人驅(qū)動為例,適用的最高CUDA版本為12.1
nvidia-smi
下一步是徹底刪除舊的CUDA和cuDNN
先刪除含CUDA的程序
在搜索欄輸入控制面板---->打開控制面板
點擊 程序和功能
卸載所有與CUDA有關(guān)的程序
檢查刪除環(huán)境變量
打開 此電腦---->系統(tǒng)屬性---->高級系統(tǒng)設(shè)置---->環(huán)境變量
找到環(huán)境變量和系統(tǒng)變量的path,點擊編輯,若發(fā)現(xiàn)path中沒有含CUDA的環(huán)境變量,證明剛剛第一步卸載CUDA的時候系統(tǒng)已經(jīng)自動刪除,若系統(tǒng)沒有自動刪除(path中仍然含有C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0這樣含有CUDA的路徑),則需要手動刪除。
檢查刪除文件夾
找到NVIDIA GPU Computing Toolkit文件夾,刪除該文件夾即可,因為安裝CUDA時默認(rèn)的安裝路徑就是這個文件,又因為cuDNN是專門為深度學(xué)習(xí)設(shè)計的GPU加速庫,通常是安裝在CUDA的目錄下的,所以把這個文件刪了,也就把CUDA和cuDNN刪除干凈了!
完成以上三大步驟,CUDA和cuDNN就卸載完成啦!
接下來就是要重新安裝合適版本的CUDA(CUDA11.2)下載地址
驗證CUDA是否安裝完成
在新打開的cmd窗口中輸入:
nvcc -V
同樣下載匹配的cuDNN,這里選擇8.9.7適用于CUDA 11.X的版本:鏈接地址
解壓出cuDNN文件后
復(fù)制以下三個文件夾
將文件夾粘貼至如下路徑:
path to your cudaFolder/Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6
驗證cuDNN是否安裝成功
①在下述文件夾右鍵,打開終端
path to your cudaFolder/Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/extras/demo_suite
②輸入:
.\deviceQuery.exe
得到PASS即代表安裝成功
輸入:
.\bandwidthTest.exe
得到PASS即代表安裝成功
然后就是給CUDA配置環(huán)境變量
此電腦——屬性——高級系統(tǒng)設(shè)置——環(huán)境變量——系統(tǒng)變量 ,在系統(tǒng)變量中找到path,去里面加另外兩條,前兩條應(yīng)該本來就有,把后兩條加上,最終有四條路徑見截圖
在python中pip安裝tensorflow-cpu
pip install tensorflow-cpu==2.10
pip install tensorflow-cpu==2.10
如果曾經(jīng)安裝過,其他兩種,可以先執(zhí)行卸載。
pip uninstall tensorflow pip uninstall tensorflow-gpu
安裝plugin
pip install tensorflow-directml-plugin
如果此時出現(xiàn)
ERROR: Could not find a version that satisfies the requirement tensorflow-directml-plugin (from versions: none)
ERROR: No matching distribution found for tensorflow-directml-plugin
那一定是前面的環(huán)境沒有配置好,重新弄吧。
弄好后重啟電腦
安裝下面的倆個
conda install cudatoolkit=11.1 conda install "tensorflow<2.11"
然后在python運(yùn)行以下代碼:
import tensorflow as tf # 檢查 TensorFlow 是否看到 GPU print("TensorFlow version:", tf.__version__) print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU'))) # 打印出可用 GPU 的詳細(xì)信息 if tf.config.list_physical_devices('GPU'): for gpu in tf.config.list_physical_devices('GPU'): print("Name:", gpu.name, " Type:", gpu.device_type)
得到
以上就是Python中Tensorflow無法調(diào)用GPU問題的解決方法的詳細(xì)內(nèi)容,更多關(guān)于Python Tensorflow無法調(diào)用GPU的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python處理數(shù)據(jù),存進(jìn)hive表的方法
今天小編就為大家分享一篇python處理數(shù)據(jù),存進(jìn)hive表的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07Python實現(xiàn)數(shù)據(jù)庫并行讀取和寫入實例
本篇文章主要介紹了Python實現(xiàn)數(shù)據(jù)庫并行讀取和寫入實例,非常具有實用價值,需要的朋友可以參考下2017-06-06python實現(xiàn)域名系統(tǒng)(DNS)正向查詢的方法
這篇文章主要介紹了python實現(xiàn)域名系統(tǒng)(DNS)正向查詢的方法,結(jié)合實例形式分析了Python使用socket模塊下getaddrinfo方法進(jìn)行域名查詢的具體技巧,需要的朋友可以參考下2016-04-04Python 開發(fā)工具通過 agent 代理使用的方法
這篇文章主要介紹了Python 開發(fā)工具通過 agent 代理使用的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09