文章目錄

PyTorch 是執行與訓練 AI 模型時常用的 Python 框架,電腦有 NVIDIA 顯示卡時,PyTorch 就能把運算交給 GPU 處理。不過在 Windows 上照著常見的教學執行 pip install torch 後,裝到的是只支援 CPU 的版本,程式不會用到顯示卡,torch.cuda.is_available() 也會一直回傳 False。
這不是顯示卡或驅動程式出了問題,而是 pip 預設從 PyPI 下載,而 PyPI 上的 Windows 版 PyTorch 是 CPU 版。我們只要先確認驅動程式支援的 CUDA 版本,再從 PyTorch 官方的下載站重新安裝 CUDA 版,PyTorch 就能用上顯示卡,而且電腦上不需要另外安裝 CUDA Toolkit 或 cuDNN。
測試環境是 Windows 11、GeForce RTX 3070(8 GB)、NVIDIA 驅動程式 621.01 與 Python 3.15.1,安裝的是 PyTorch 2.15.0。
確認目前安裝的版本
先確認目前裝的是哪一種 PyTorch。用記事本或 VS Code 把下面的程式存成 check_gpu.py,再到平常執行程式的同一個終端機或虛擬環境裡執行 python check_gpu.py:
1import sys
2import torch
3
4print("Python:", sys.executable)
5print("PyTorch:", torch.__version__)
6print("CUDA:", torch.version.cuda)
7print("GPU 可用:", torch.cuda.is_available())
8if torch.cuda.is_available():
9 print("顯示卡:", torch.cuda.get_device_name(0))
腳本會印出 Python 的路徑、PyTorch 的版本號、它使用的 CUDA 版本,以及 GPU 能不能用。CPU 版與 CUDA 版的輸出差異如下:
| 欄位 | CPU 版 | CUDA 版 |
|---|---|---|
| PyTorch | 2.15.0+cpu |
2.15.0+cu134 |
| CUDA | None |
13.4 |
| GPU 可用 | False |
True |
版本號結尾是 +cpu、CUDA 是 None 時,代表目前裝的是 CPU 版,接著照下面的步驟改裝 CUDA 版。CUDA 版的版本號結尾是 +cu 加上 CUDA 版本,例如 CUDA 13.4 是 +cu134,CUDA 13.2 是 +cu132。版本號已經是 +cu,GPU 卻仍然不可用時,直接看「仍然無法使用 GPU 的原因」。
驅動程式支援的 CUDA 版本
改裝之前,先確認顯示卡的驅動程式能支援哪個 CUDA 版本。在終端機執行 nvidia-smi,表格右上角的數字就是驅動程式支援的最高 CUDA 版本,較新的驅動程式標示為「CUDA UMD Version」,較舊的則標示為「CUDA Version」:

這個數字是驅動程式的支援上限,電腦上不需要安裝這個版本的 CUDA。PyTorch 2.15.0 的官方安裝頁提供 Windows 用的 CUDA 13.2 與 13.4 兩種版本,我們選擇不超過 nvidia-smi 顯示數字的版本即可。顯示的數字低於 13.2 時,要先到 NVIDIA 驅動程式下載頁更新驅動程式,更新後再執行一次 nvidia-smi,確認數字已經變大。
重新安裝 CUDA 版
確認好版本後,到 PyTorch 官方安裝頁依序選擇「Stable」「Windows」「Pip」「Python」,再選擇不超過驅動程式上限的 CUDA 版本,頁面下方就會產生安裝指令。官方頁面產生的指令和常見教學只差在最後的 --index-url,這個參數會讓 pip 改從 PyTorch 的下載站下載內建 CUDA 元件的版本,因此不需要另外安裝 CUDA Toolkit:
已經裝過 CPU 版時,要先在原本的終端機或虛擬環境裡移除它。pip 看到 torch 2.15.0 已經安裝,即使加上 --index-url 也只會顯示 Requirement already satisfied 並略過安裝。這個指令只會移除 PyTorch 與 torchvision,NumPy 等其他套件與自己的程式都不受影響。沒有安裝 torchvision 時,pip 會顯示 WARNING: Skipping torchvision as it is not installed.,代表這個套件本來就沒裝,不用理會:
1pip uninstall -y torch torchvision
移除完成後,執行官方安裝頁產生的指令。我選的是 CUDA 13.4,選 13.2 時網址結尾會是 cu132。CUDA 版的安裝檔約 2.2 GB,裝好後約佔 3.1 GB 的空間,CPU 版的安裝檔則只有 126 MB:
1pip install torch torchvision --index-url https://download.pytorch.org/whl/cu134
安裝完成後,再執行一次 python check_gpu.py。版本號變成 2.15.0+cu134、「GPU 可用」顯示 True,並印出顯示卡的名稱,就代表 PyTorch 已經能用上顯示卡:

仍然無法使用 GPU 的原因
改裝時安裝失敗,或改裝後 GPU 仍然不可用時,依畫面上的訊息與檢查腳本的輸出對照下表:
| 現象 | 原因 | 處理方式 |
|---|---|---|
pip 回報 No matching distribution found for torch |
指令用了舊版 CUDA 的網址,例如 cu118,沒有新版 Python 可用的安裝檔 |
改用官方安裝頁產生的指令 |
版本號仍是 +cpu |
安裝前沒有移除 CPU 版,pip 略過了安裝 | 執行 pip uninstall -y torch torchvision 後重新安裝 |
| 在終端機是 True,在編輯器或 Jupyter 裡是 False | 編輯器使用的是另一個 Python 環境 | 比對兩邊印出的 Python 路徑,把編輯器的直譯器換成裝了 CUDA 版的環境 |
版本號是 +cu,GPU 可用卻是 False |
安裝的 CUDA 版本超過 nvidia-smi 顯示的上限 |
更新驅動程式,或改裝不超過上限的 CUDA 版本 |
總結
Windows 上的 PyTorch 要用上顯示卡,就要先確認驅動程式支援的 CUDA 版本,移除 CPU 版後再從 PyTorch 官方的下載站安裝 CUDA 版。實測改裝 CUDA 13.4 版後,torch.cuda.is_available() 從 False 變成 True。