配置 TensorFlow 以充分利用 Windows 11 中的 GPU 效能 如果你對安裝 TensorFlow 一無所知就貿然上手,可能會遇到不少麻煩:版本不相容、各種奇怪的錯誤、過時的指南,以及與之前安裝的 Python、CUDA 或 cuDNN 的衝突。如果你曾經疑惑過“為什麼 TensorFlow 明明有強大的 GPU,卻還要使用 CPU?”,那麼這篇教學正是為你準備的。
在匯總和整合了來自各種官方指南和實際操作的資訊後,您將會看到 如何在 Windows 11 上讓 TensorFlow 與 GPU 協同運作 可靠地使用虛擬環境(Conda/Miniconda),你就會明白。 人工智慧的 Python 範例本文說明了哪些版本組合可行,如果您的 GPU 是 NVIDIA(CUDA),或者您想使用 DirectML(AMD、Intel、NVIDIA),您有哪些選項,以及如何驗證所有設定是否正確。最終目標是,完成後您將擁有一個穩定且隔離的環境,而不會破壞其他 Python 安裝或專案。
Windows 11 中的硬體需求和加速選項
在安裝任何東西之前,了解你想使用哪種類型的加速至關重要。 如果你 硬件 它兼容。在 Windows 11 中使用 GPU 運行 TensorFlow 主要有兩種方式:經典的 NVIDIA 技術堆疊(CUDA + cuDNN)或插件。 TensorFlow-DirectML-Plugin它基於 DirectX 12 運行,並支援 NVIDIA、AMD 和 Intel GPU。
如果您擁有支援 CUDA 的 NVIDIA GPU (例如,GeForce RTX 2060、RTX 3060 或類似顯示卡)您可以採用傳統的 CUDA 和 cuDNN 方法,此方法與原生 Windows 系統中的 TensorFlow 2.10 整合效果最佳。此方法非常依賴版本匹配: 驅動程序CUDA 工具包、cuDNN、Python 和 TensorFlow。有關安裝 CUDA 工具包的實用說明,您可以參考相關指南。 CUDA + cuDNN.
但是,如果您的GPU是AMD或Intel的,或者您只是想要一個更靈活的選擇, TensorFlow-DirectML-Plugin 可讓您透過 DirectML 使用 GPU。 在 Windows 10/11 系統上,無論是在原生模式下還是在 WSL 環境下,都無需依賴 CUDA/cuDNN,而是依賴 DirectX 12 支援和顯示卡的最新驅動程式。
Windows 系統上 DirectML 的典型最低系統需求概述 (根據微軟文件)這包括:Windows 10 版本 1709 或更高版本,或 Windows 11 21H2 或更高版本;64 位元系統上的 Python 3.7 至 3.10;以及相容的 GPU,例如 AMD Radeon R5/R7/R9 2xx 或更高版本、Intel HD Graphics 5 或更高版本。如果您直接使用 CUDA,請專注於支援 CUDA 3.5 架構或更高版本且驅動程式為最新版本的 NVIDIA GPU。
在任何情況下,都必須安裝最新的GPU驅動程式。 已安裝。在 Windows 系統中,您可以從「設定 >」檢查更新。 Windows更新 > 檢查更新”,對於 NVIDIA 顯示卡,還可以透過 GeForce Experience 應用程式或官方驅動程式網站進行檢查。
選擇版本:為什麼 TensorFlow 2.10 在 Windows 系統中至關重要
在 Windows 11 上使用 GPU 安裝 TensorFlow 時,最令人頭痛的問題之一就是… 問題在於並非所有版本都相容。從 TensorFlow 2.11 開始,Windows 系統不再原生支援 CUDA;因此,實際上,TensorFlow 2.10 是最後一個可以在 Windows 系統下透過 CUDA 使用 GPU 的穩定版本,而無需採用其他方法。 WSL 或者 Docker。
在配備英特爾酷睿 i7-11800H CPU、NVIDIA GeForce RTX 3060 筆記型電腦 GPU 和 16 GB 記憶體的 Windows 11 系統測試配置中, 在 Conda 環境中使用了 TensorFlow 2.10 和 Python 3.10,以及 CUDA 11.2 和 cuDNN 8.1。儘管系統全域安裝了 Python 3.12.6 和 CUDA 12.3,但正是由於使用了 Conda 虛擬環境才實現了這種分離。
TensorFlow 2.10 對 NumPy 特別敏感。它與 NumPy 2.x 不相容,因此請務必使用 NumPy 1.23.5 或其他受支援的 1.x 版本。如果您的環境中已安裝了 NumPy 2,則需要在安裝 TensorFlow 之前重新安裝相應的版本。
如果你使用的是歷史版本, TensorFlow 1.15 區分了 CPU 和 GPU 套件在 pip 中名稱不同(tensorflow 和 tensorflow-gpu)。從 TensorFlow 2.x 開始,pip 套件 tensorflow 在滿足 CUDA/cuDNN 要求時已整合 GPU 支持,但在 Windows 系統上,此支援實際上僅限於 2.10 分支。
對於選擇DirectML的人來說微軟推薦的組合是使用 tensorflow-cpu==2.10 作為基礎,然後添加 tensorflow-directml-plugin 套件,該套件會自動啟動 DirectML 後端,而無需更改您的程式碼。
在 Windows 11 上安裝並設定 Miniconda
避免 Python、TensorFlow、CUDA 和 cuDNN 版本之間衝突的最簡潔方法 它涉及到使用虛擬環境。 Miniconda 是一款輕量且非常便利的工具,可在 Windows 11 中建立這些隔離環境,同時保持全域安裝的完整性。
首先你需要 下載適用於 Windows 64 位元系統的 Miniconda 安裝程序 (x86-64 版本)。安裝程式通常為 .exe 檔案。在安裝過程中,強烈建議您不要選擇「將 Miniconda 新增至 PATH」選項,以免干擾您可能已安裝的其他 Python 版本。
安裝精靈完成後, 重新啟動電腦以確保所有內容都已正確註冊。然後,打開一個 終端 (CMD o PowerShell的)並透過執行以下命令檢查 conda 是否可用:
conda --version
如果你看到這樣的結果 conda 25.1.1 或類似情況,表示 Miniconda 已正確安裝,現在您可以開始為 TensorFlow 建立特定的 GPU 虛擬環境。
為TensorFlow 2.10和NVIDIA GPU建立Conda環境

Miniconda 啟動並運行後,下一步是建立隔離環境。 若要安裝 TensorFlow 2.10 及其所有 CUDA/cuDNN 依賴項,您需要確保這些變更不會影響其他專案或系統的整體 Python 環境。
打開 Anaconda Prompt 或 PowerShell 使用 Conda 支援並建立一個新環境,例如名為 tf-2.10 的環境,其中包含 Python 3.10:
conda create --name tf-2.10 python=3.10
環境創建完成後, 在你的 shell 中初始化 Conda 執行以下命令即可輕鬆啟動:
conda init
命令執行完畢後,關閉並重新開啟 PowerShell 或 CMD 窗口,以使變更生效。然後您就可以… 啟動新創建的環境 使用:
conda activate tf-2.10
啟用 tf-2.10 環境後,所有透過 pip 或 conda 安裝的程式都會生效。 它將被封裝在那裡,不會與其他安裝環境混雜。您將在該環境中安裝 NumPy、TensorFlow 2.10 以及必要的 CUDA/cuDNN 庫。
在 Conda 中安裝 TensorFlow 2.10、相容 NumPy、CUDA 和 cuDNN。
TensorFlow 2.10 對庫有非常具體的要求。首先要確保 tf-2.10 環境中的 NumPy 版本不是 2.x 版本。如果您懷疑安裝了不相容的版本,可以如下設定正確的版本:
pip install numpy==1.23.5
一旦你的 NumPy 版本達到可接受的程度, 使用 pip 安裝 TensorFlow 2.10。 在同一環境下:
pip install tensorflow==2.10
如前所述, 適用於原生 Windows 的 TensorFlow 2.10 與 CUDA 11.2 和 cuDNN 8.1 相關聯。為了簡化操作並避免使用 NVIDIA 的全域安裝程序,您可以使用 conda-forge 頻道直接在 Conda 環境中安裝這些函式庫:
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1
通過這種方法, 你不需要依賴機器的全域 CUDA 工具包匹配。 TensorFlow 所需的版本。實際上,例如,你可以在 Windows 系統中安裝 CUDA 12.3 用於其他任務,同時在 tf-2.10 中使用「虛擬」CUDA 11.2,而它們之間不會相互衝突。
請記住,TensorFlow 官方指南也對此進行了描述。 在系統層級安裝 CUDA 和 cuDNN 的「經典」流程方法是將它們的路徑加入 Windows PATH 環境變數中。如果您決定採用這種傳統方法,則需要確保已安裝的版本與 TensorFlow 所需的版本完全匹配,並確保該文件 cuDNN64_8.dll 它存在且易於獲取。
NVIDIA 驅動程式、CUDA 工具包 11.2 和 cuDNN 8.1 的經典安裝方式
如果您希望或需要將 CUDA/cuDNN 全域安裝在 Windows 11 上有一個廣泛使用的邏輯序列,已在 Windows 10 系統上使用 GeForce RTX 2060 等 GPU 進行了測試。這種方法基於 NVIDIA 的官方技術堆疊,並依賴一些額外的工具。
第一件事是擁有 Microsoft Visual C++ 編譯器由於 CUDA Toolkit 與 Visual Studio 整合以編譯某些元件,因此最簡單的方法是安裝啟用了 C++ 工具集的 Microsoft Visual Studio。
然後 安裝適用於您的 NVIDIA GPU 的最新驅動程式 從網站 下載 使用 NVIDIA 官方安裝程序,選擇您的顯示卡型號(例如 GeForce RTX 2060)和相應的 Windows 作業系統。安裝程式通常會提供快速安裝模式;實際上,您只需接受並繼續即可。
有了合適的司機,你就可以繼續下一步了。 安裝 CUDA 工具包 11.2 從 NVIDIA 歸檔版本檔案中選擇 11.2 版本、作業系統(Windows)和安裝程式類型(.exe)。安裝過程中,通常會選擇「自訂」模式,但大多數情況下,只需按一下「下一步」和「確定」即可保留預設設定。
下一步是處理… cuDNN 8.1,是專門用於此的函式庫 神經網絡 深要下載它,您需要在 NVIDIA 開發者入口網站上註冊。登入後,存取 cuDNN 版本文件,並選擇與 Windows 版 CUDA 11.2 相符的版本。
cuDNN軟體包不是傳統的安裝程序,而是 一個包含名為“cuda”資料夾的壓縮文件 在裡面,你會找到諸如 bin、include 和 lib 之類的子資料夾,其中包含 .dll、.hy 和其他檔案。你需要做的就是將這些子資料夾的內容複製到 CUDA 11.2 安裝目錄下的相應路徑中,通常位於 [此處應填寫特定路徑]。 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2尊重 bin、include 和 lib 的結構。
文件複製完成後,重要的是… 檢查並調整 Windows %PATH% 環境變數。 包括 CUDA、CUPTI 和 cuDNN 庫所在的目錄。例如,對於 CUDA 11.0(類似於 11.2),官方文件建議: 命令 如:
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\CUPTI\lib64;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include;%PATH%
SET PATH=C:\tools\cuda\bin;%PATH%
根據您的 CUDA 版本和 cuDNN 存放資料夾調整這些路徑。 (例如,C:\tools\cuda),確保 TensorFlow 在執行時能夠找到必要的 DLL 檔案。
在其他 Conda 環境中安裝 TensorFlow GPU 並測試 GPU
還有其他一些版本組合也已在 Windows 系統中成功使用。尤其是在使用較舊版本的 TensorFlow 時。例如,對於 Python 3.7 環境下的 TensorFlow 2.6.0(帶 GPU),您可以像這樣建立一個 Conda 環境:
conda create -n test_tensorflow_gpu python=3.7
環境創建完成後, 被激活:
conda activate test_tensorflow_gpu
然後它就安裝好了。 使用 pip 安裝 tensorflow-gpu 2.6.0:
pip install tensorflow-gpu==2.6.0
也有一些年代稍久遠的環境的例子。 TensorFlow 2.1.0 和 CUDA 10.1其中創建了一個包含 Anaconda 和 Python 3.7.7 的 Conda 環境,增加了 ipykernel,並安裝了各種科學計算依賴項、Keras 2.3.1 等:
$ conda create -n entornoGPU anaconda python=3.7.7
$ conda activate entornoGPU
$ conda install ipykernel
$ python -m ipykernel install --user --name entornoGPU --display-name "entornoGPU"
$ conda install tensorflow-gpu==2.1.0 cudatoolkit=10.1
$ pip install tensorflow==2.1.0
$ pip install jupyter
$ pip install keras==2.3.1
$ pip install numpy scipy Pillow cython matplotlib scikit-image opencv-python h5py imgaug IPython
無論你選擇哪種具體組合 (2.10、2.6.0、2.1.0 等),模式始終相同:建立一個乾淨的虛擬環境,安裝相容版本的 Python,加入 TensorFlow 和對應的 CUDA/cuDNN 函式庫,最後檢查 GPU 是否可見。
快速查看 TensorFlow 是否識別 GPU 的方法是開啟 Python 並執行:
import tensorflow as tf
print("TensorFlow version:", tf.__version__)
print("GPUs available:", tf.config.list_physical_devices('GPU'))
理想的輸出結果應該類似這樣:
TensorFlow version: 2.10.0
GPUs available:
如果相反, GPU列表似乎為空。 ([]如果 TensorFlow 僅使用 CPU,建議關閉終端,重新啟動環境,檢查 CUDA/cuDNN 路徑是否配置正確,NVIDIA 驅動程式是否為最新版本,以及是否有版本不相容的情況。
在 Windows 11 上使用 TensorFlow-DirectML-Plugin
對於許多 Windows 11 用戶來說,尤其是那些使用 AMD 或 Intel GPU 的用戶 對於想要避免 CUDA/cuDNN 複雜性的使用者來說,tensorflow-directml-plugin 提供了一個不錯的選擇。該插件利用 DirectX 12 上的 DirectML,無需依賴 CUDA 生態系統即可加速 TensorFlow。
首要條件是您的 Windows 10/11 版本必須相容(Windows 10 1709+ 或 Windows 11 21H2+),並且 該GPU支援DirectX 12和DirectML此外,您還需要 Python x86-64 版本 3.7、3.8、3.9 或 3.10,其中 3.10 是此外掛程式支援的最高版本。
再次推薦 使用 Miniconda 建立虛擬環境安裝 Miniconda 後,您可以使用以下指令建立一個名為 tfdml_plugin 的環境:
conda create --name tfdml_plugin python=3.9
conda activate tfdml_plugin
環境啟動後,您必須安裝 插件所需的 CPU 版 TensorFlow 基礎版本具體來說,需要使用 tensorflow-cpu==2.10 版本,因為它與「普通」的 tensorflow 或 tensorflow-gpu 不相容:
pip install tensorflow-cpu==2.10
接下來,安裝設備本身。 tensorflow-directml-plugin 簡單來說:
pip install tensorflow-directml-plugin
完成後,您的 TensorFlow 腳本應該開始使用 DirectML 後端透明化無需修改代碼。如果您已有模型或筆記本,只需在 tfdml_plugin 環境中運行它們即可。
將 Conda 環境與 PyCharm 和其他 IDE 集成
如果您使用 PyCharm 或其他 IDE 進行 Python 開發將 IDE 解釋器直接與為 TensorFlow 建立的 Conda 環境關聯起來非常有用,這樣您就可以使用您配置的程式庫版本來運行和偵錯專案。
例如,在 PyCharm 中,您可以前往 文件 > 設定 > 項目: Python直譯器 然後從那裡添加現有的 Conda 環境。為此,請選擇“新增解釋器 > 新增本機解釋器”。
在嚮導中,選擇 “現有環境” 然後導航到你的環境中的 Python 可執行檔的路徑,通常看起來像這樣:
C:\Users\<tu_usuario>\miniconda3\envs\tf-2.10\python.exe
選擇之後, 選擇 tf-2.10 環境(或你給它的任何名稱)。點擊「確定」後,PyCharm 將開始在該專案中使用它。這樣,TensorFlow、NumPy、CUDA/cuDNN 等的導入將始終從正確的環境解析。
進階 GPU 與 CPU 比較測試和基準測試
除了對「tf.config.list_physical_devices('GPU')」進行基本檢查之外還有更進階的方法可以確保 TensorFlow 使用 GPU,並且順便測量與 CPU 相比的實際效能差異。
對於像 Python 3.7 中的 TensorFlow-gpu 2.6.0 這樣的安裝,您可以這樣寫: 一點 腳本 在蟒蛇 此函數會擷取本機裝置列表,並顯示 TensorFlow 內部使用的 GPU、CUDA 版本和 cuDNN 版本的詳細資訊。一個典型的例子是:
import tensorflow
from tensorflow.python.client import device_lib
def print_info():
print(' TensorFlow 版本:{}'.format(tensorflow.__version__))
print(' GPU: {}'.format())
print('Cuda 版本 -> {}'.format(tensorflow.sysconfig.get_build_info()))
print(' Cudnn 版本 -> {}'.format(tensorflow.sysconfig.get_build_info()))
print_info()
這類腳本的產出會準確地告訴你 TensorFlow 看到了什麼。GPU 名稱(例如 NVIDIA GeForce RTX 2060)、運算能力以及整合的 CUDA/cuDNN 版本。這可以幫助您確認配置組合是否一致,以及是否正在使用正確的設備,並可參考相關文件。 專業術語 如果您對術語有任何疑問。
如果你想更進一步,可以使用以下工具: 人工智慧基準測試 它們可讓您比較各種流行神經網路(MobileNet、Inception、ResNet、VGG 等)的 GPU 和 CPU 效能。若要將其安裝到具有活動 GPU 的虛擬環境中:
pip install ai-benchmark
然後,您可以使用 Python 解釋器在 GPU 上執行基準測試:
from ai_benchmark import AIBenchmark
benchmark_gpu = AIBenchmark(use_CPU=False)
benchmark_gpu.run_training()
結果顯示每個模型的訓練時間。 以及一個整體的「設備訓練分數」。例如,在使用 RTX 2060 進行測試時,使用 batch=50 和 size 224×224 訓練 MobileNet-V2,在 GPU 上每次迭代大約需要 325 毫秒。
要與 CPU 進行比較,您可以運行:
benchmark_cpu = AIBenchmark(use_CPU=True)
benchmark_cpu.run_training()
在相同條件下, CPU耗時約3148毫秒 在相同場景下,MobileNet-V2 的效能比 GPU 高出近 10 倍。這種差異(儘管略有不同)在其他基準測試模型中也得到了驗證,這清楚地表明了使用 GPU 進行密集訓練的優勢。
在 TensorFlow 2.1.0/2.10 環境中,也可以透過執行下列指令執行更基本的檢查:
$ python
$ import tensorflow as tf
$ tf.__version__
$ tf.test.gpu_device_name()
如果 tf.test.gpu_device_name() 回傳類似「/device:GPU:0」的內容TensorFlow 正在偵測並使用 GPU。如果傳回空字串,則可能是 CUDA/cuDNN 堆疊需要正確配置,或有版本不相容問題。
結合這些檢查,使用 Miniconda 設定虛擬環境,並仔細選擇版本 (使用 TensorFlow 2.10 for Windows 原生版本,搭配 CUDA 11.2 和 cuDNN 8.1,或使用 tensorflow-cpu 2.10 搭配 DirectML 外掛程式),您可以讓 TensorFlow 在 Windows 11 上利用您的 GPU,而不會遇到令人抓狂的神秘錯誤,也不會破壞您安裝電腦上已有的其他 Python 電腦安裝。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。